Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

icmp(7p) [sunos man page]

icmp(7P)							     Protocols								  icmp(7P)

NAME
icmp, ICMP - Internet Control Message Protocol SYNOPSIS
#include <sys/socket.h> #include <netinet/in.h> #include <netinet/ip_icmp.h> s = socket(AF_INET, SOCK_RAW, proto); t = t_open("/dev/icmp", O_RDWR); DESCRIPTION
ICMP is the error and control message protocol used by the Internet protocol family. It is used by the kernel to handle and report errors in protocol processing. It may also be accessed by programs using the socket interface or the Transport Level Interface (TLI) for network monitoring and diagnostic functions. When used with the socket interface, a "raw socket" type is used. The protocol number for ICMP, used in the proto parameter to the socket call, can be obtained from getprotobyname(3SOCKET). ICMP file descriptors and sockets are connection- less, and are normally used with the t_sndudata / t_rcvudata and the sendto() / recvfrom() calls. Outgoing packets automatically have an Internet Protocol (IP) header prepended to them. Incoming packets are provided to the user with the IP header and options intact. ICMP is an datagram protocol layered above IP. It is used internally by the protcol code for various purposes including routing, fault iso- lation, and congestion control. Receipt of an ICMP "redirect" message will add a new entry in the routing table, or modify an existing one. ICMP messages are routinely sent by the protocol code. Received ICMP messages may be reflected back to users of higher-level protocols such as TCP or UDP as error returns from system calls. A copy of all ICMP message received by the system is provided to every holder of an open ICMP socket or TLI descriptor. SEE ALSO
getprotobyname(3SOCKET), recv(3SOCKET), send(3SOCKET), t_rcvudata(3NSL), t_sndudata(3NSL), inet(7P), ip(7P), routing(7P) Postel, Jon, Internet Control Message Protocol -- DARPA Internet Program Protocol Specification, RFC 792, Network Information Center, SRI International, Menlo Park, Calif., September 1981. DIAGNOSTICS
A socket operation may fail with one of the following errors returned: EISCONN An attempt was made to establish a connection on a socket which already has one, or when trying to send a datagram with the destination address specified and the socket is already connected. ENOTCONN An attempt was made to send a datagram, but no destination address is specified, and the socket has not been con- nected. ENOBUFS The system ran out of memory for an internal data structure. EADDRNOTAVAIL An attempt was made to create a socket with a network address for which no network interface exists. NOTES
Replies to ICMP "echo" messages which are source routed are not sent back using inverted source routes, but rather go back through the nor- mal routing mechanisms. SunOS 5.10 3 Jul 1990 icmp(7P)

Check Out this Related Man Page

udp(7P) 							     Protocols								   udp(7P)

NAME
udp, UDP - Internet User Datagram Protocol SYNOPSIS
#include <sys/socket.h> #include <netinet/in.h> s = socket(AF_INET, SOCK_DGRAM, 0); s = socket(AF_INET6, SOCK_DGRAM, 0); t = t_open("/dev/udp", O_RDWR); t = t_open("/dev/udp6", O_RDWR); DESCRIPTION
UDP is a simple datagram protocol which is layered directly above the Internet Protocol ("IP") or the Internet Protocol Version 6 ("IPv6"). Programs may access UDP using the socket interface, where it supports the SOCK_DGRAM socket type, or using the Transport Level Interface ("TLI"), where it supports the connectionless (T_CLTS) service type. Within the socket interface, UDP is normally used with the sendto(), sendmsg(), recvfrom(), and recvmsg() calls (see send(3SOCKET) and recv(3SOCKET)). If the connect(3SOCKET) call is used to fix the destination for future packets, then the recv(3SOCKET) or read(2) and send(3SOCKET) or write(2) calls may be used. UDP address formats are identical to those used by the Transmission Control Protocol ("TCP"). Like TCP, UDP uses a port number along with an IPor IPv6 address to identify the endpoint of communication. The UDP port number space is separate from the TCP port number space, that is, a UDP port may not be "connected" to a TCP port. The bind(3SOCKET) call can be used to set the local address and port number of a UDP socket. The local IP or IPv6 address may be left unspecified in the bind() call by using the special value INADDR_ANY for IP, or the unspecified address (all zeroes) for IPv6. If the bind() call is not done, a local IP or IPv6 address and port number will be assigned to the endpoint when the first packet is sent. Broadcast packets may be sent, assuming the underlying network supports this, by using a reserved "broadcast address." This address is network interface dependent. Broadcasts may only be sent by the privileged user. IPv6 does not support broadcast addresses; their function is supported by IPv6 multicast addresses. Options at the IP level may be used with UDP; see ip(7P) or ip6(7p). There are a variety of ways that a UDP packet can be lost or corrupted, including a failure of the underlying communication mechanism. UDP implements a checksum over the data portion of the packet. If the checksum of a received packet is in error, the packet will be dropped with no indication given to the user. A queue of received packets is provided for each UDP socket. This queue has a limited capacity. Arriving datagrams which will not fit within its high-water capacity are silently discarded. UDP processes Internet Control Message Protocol ("ICMP") and Internet Control Message Protocol Version 6 ("ICMP6") error messages received in response to UDP packets it has sent. See icmp(7P) and icmp6(7p). ICMP "source quench" messages are ignored. ICMP "destination unreachable," "time exceeded" and "parameter problem" messages disconnect the socket from its peer so that subsequent attempts to send packets using that socket will return an error. UDP will not guarantee that pack- ets are delivered in the order they were sent. As well, duplicate packets may be generated in the communication process. ICMP6 "destination unreachable" packets are ignored unless the enclosed code indicates that the port is not in use on the target host, in which case, the application is notified. ICMP6 "parameter problem" notifications are similarly passed upstream. All other ICMP6 messages are ignored. SEE ALSO
read(2), write(2), bind(3SOCKET), connect(3SOCKET), recv(3SOCKET), send(3SOCKET), icmp(7P), icmp6(7P), inet(7P), inet6(7P), ip(7P), ip6(7P), tcp(7P) Postel, Jon, RFC 768, User Datagram Protocol, Network Information Center, SRI International, Menlo Park, Calif., August 1980 DIAGNOSTICS
A socket operation may fail if: EISCONN A connect() operation was attempted on a socket on which a connect() operation had already been performed, and the socket could not be successfully disconnected before making the new connection. EISCONN A sendto() or sendmsg() operation specifying an address to which the message should be sent was attempted on a socket on which a connect() operation had already been performed. ENOTCONN A send() or write() operation, or a sendto() or sendmsg() operation not specifying an address to which the message should be sent, was attempted on a socket on which a connect() operation had not already been performed. EADDRINUSE A bind() operation was attempted on a socket with a network address/port pair that has already been bound to another socket. EADDRNOTAVAIL A bind() operation was attempted on a socket with a network address for which no network interface exists. EINVAL A sendmsg() operation with a non-NULL msg_accrights was attempted. EACCES A bind() operation was attempted with a "reserved" port number and the effective user ID of the process was not the privileged user. ENOBUFS The system ran out of memory for internal data structures. SunOS 5.10 4 Nov 1999 udp(7P)
Man Page