Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
icmp(7P)			   Protocols			      icmp(7P)

       icmp, ICMP - Internet Control Message Protocol

       #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);

       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	inter-
       face, a "raw socket" type is used. The protocol number for  ICMP,  used
       in the proto parameter to the socket call, can be obtained from getpro-
       tobyname(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	isola-
       tion, 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.

       getprotobyname(3SOCKET),	   recv(3SOCKET),    send(3SOCKET),    t_rcvu-
       data(3NSL), t_sndudata(3NSL), inet(7P), ip(7P), routing(7P)

       Postel,	Jon,  Internet Control Message Protocol	-- DARPA Internet Pro-
       gram Protocol Specification, RFC	792, Network Information  Center,  SRI
       International, Menlo Park, Calif., September 1981.

       A socket	operation may fail with	one of the following errors returned:

	     An	 attempt  was made to establish	a connection on	a socket which
	     already has one, or when trying to	send a datagram	with the  des-
	     tination address specified	and the	socket is already connected.

	     An	 attempt  was  made to send a datagram,	but no destination ad-
	     dress is specified, and the socket	has not	been connected.

	     The system	ran out	of memory for an internal data structure.

	     An	attempt	was made to create a socket with a network address for
	     which no network interface	exists.

       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.9			  3 Jul	1990			      icmp(7P)


Want to link to this manual page? Use this URL:

home | help