ICMP(4P) UNIX Programmer's Manual ICMP(4P) NAME icmp - Internet Control Message Protocol SYNOPSIS #include #include s = socket(AF_INET, SOCK_RAW, proto); DESCRIPTION ICMP is the error and control message protocol used by IP and the Internet protocol family. It may be accessed through a "raw socket" for network monitoring and diagnostic functions. The _p_r_o_t_o parameter to the socket call to create an ICMP socket is obtained from _g_e_t_p_r_o_t_o_b_y_n_a_m_e(3N). ICMP sockets are connectionless, and are normally used with the _s_e_n_d_t_o and _r_e_c_v_f_r_o_m calls, though the _c_o_n_n_e_c_t(2) call may also be used to fix the destination for future packets (in which case the _r_e_a_d(2) or _r_e_c_v(2) and _w_r_i_t_e(2) or _s_e_n_d(2) system calls may be used). Outgoing packets automatically have an IP header prepended to them (based on the destination address). Incoming pack- ets are received with the IP header and options intact. DIAGNOSTICS A socket operation may fail with one of the following errors returned: [EISCONN] when trying 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] when trying to send a datagram, but no desti- nation address is specified, and the socket hasn't been connected; [ENOBUFS] when the system runs out of memory for an internal data structure; [EADDRNOTAVAIL] when an attempt is made to create a socket with a network address for which no network interface exists. SEE ALSO send(2), recv(2), intro(4N), inet(4F), ip(4P) Printed 11/26/99 May 16, 1986 1