ICMP(4) 1990 ICMP(4) NNAAMMEE icmp - Internet Control Message Protocol SSYYNNOOPPSSIISS ##iinncclluuddee <<ssyyss//ssoocckkeett..hh>> ##iinncclluuddee <<nneettiinneett//iinn..hh>> ss == ssoocckkeett((AAFF__IINNEETT,, SSOOCCKK__RRAAWW,, pprroottoo));; DDEESSCCRRIIPPTTIIOONN 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(3). 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. DDIIAAGGNNOOSSTTIICCSS 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. SSEEEE AALLSSOO send(2), recv(2), intro(4), inet(4), ip(4) Printed 7/27/90 June 1