icmp(4p)icmp(4p)Nameicmp - Internet Control Message Protocol
s = socket(AF_INET, SOCK_RAW, proto);
The ICMP is the error and control message protocol used by the Internet
Protocol (IP) transport layer and the Internet protocol family. It can
be accessed through a ``raw socket'' for network monitoring and diag‐
nostic functions. The proto argument to the socket call to create an
ICMP socket is obtained from the routine. ICMP sockets are connection‐
less, and are normally used with the and system calls. The call can
also be used to fix the destination for future packets (in which case
the or and or system calls can then be used).
Outgoing packets automatically have an IP header prepended to them
(based on the destination address). Incoming packets are received with
the IP header and options intact.
On failure, a socket operation returns any of the following errors:
[EISCONN] Tried to establish a connection on a socket that already
has one, or tried to send a datagram with the destina‐
tion address specified and the socket was already con‐
[ENOTCONN] Tried to send a datagram, but no destination address was
specified, and the socket has not connected.
[ENOBUFS] The system ran out of memory for an internal data struc‐
An attempt was made to create a socket with a network
address for which no network interface exists.
See Alsoinet(4f), intro(4n), ip(4p)icmp(4p)