Internet Control Message Protocol

   

Internet protocol suite
Application layer HTTP, SMTP, FTP, SSH, IRC, SNMP ...
Transport layer TCP, UDP, SCTP, RTP, DCCP ...
Network layer IPv4, IPv6, ARP, IPX ...
Data link layer Ethernet, 802.11 WiFi, Token ring, FDDI, ...

The Internet Control Message Protocol (ICMP) is part of the Internet protocol suite and defined in RFC 792. ICMP messages are typically generated in response to errors in IP datagrams (as specified in RFC1122 (http://www.ietf.org/rfc/rfc1122.txt)) or for diagnostic or routing purposes.

The version of ICMP for Internet Protocol version 4 is also known as ICMPv4, as it is part of IPv4. IPv6 has an equivalent protocol.

ICMP messages are constructed at the IP layer, usually from a normal IP datagram which has generated an ICMP response. IP encapsulates the appropriate ICMP message with a new IP header (to get the ICMP message back to the original sending host), and transmits the resulting datagram in the usual manner.

For example, every machine (such as intermediate routers) that forwards an IP datagram has to decrement the IP Time-to-live (TTL) field of the IP header by one; if the TTL reaches 0, an ICMP "Time to live exceeded in transit" message is sent to the source of the datagram.

Each ICMP message is encapsulated directly within a single IP datagram, and thus, like UDP, ICMP does not guarantee delivery.

Although ICMP messages are contained within standard IP datagrams, ICMP messages are usually processed as a special case distinguished from normal IP processing, rather than processed as a normal sub-protocol of IP. In many cases, it is necessary to inspect the contents of the ICMP message, and deliver the appropriate error message to the application which generated the original IP packet, the one which prompted the sending of the ICMP message.

Many commonly used network utilities are based on ICMP messages. The traceroute command is implemented by transmitting UDP datagrams with specially set IP TTL header fields, and looking for ICMP "Time to live exceeded in transit" (above) and "Destination unreachable" messages generated in response. The related ping utility (well known on Unix) is implemented using the ICMP "Echo" and "Echo reply" messages.

List of permitted control messages:
0 - Echo Reply
1 - Reserved
2 - Reserved
3 - Destination Unreachable
4 - Source Quench
5 - Redirect Message
6 - Alternate Host Address
7 - Reserved
8 - Echo Request
9 - Router Advertisement
10 - Router Solicitation
11 - Time Exceeded
12 - Parameter Problem
13 - Timestamp
14 - Timestamp Reply
15 - Information Request
16 - Information Reply
17 - Address Mask Request
18 - Address Mask Reply
19 - Reserved for security
20-29 - Reserved for robustness experiment
30 - Traceroute
31 - Datagram Conversion Error
32 - Mobile Host Redirect
33 - IPv6 Where-Are-You
34 - IPv6 Here-I-Am
35 - Mobile Registration Request
36 - Mobile Registration Reply
37 - Domain Name Request
38 - Domain Name Reply
39 - SKIP Algorithm Discovery Protocol
40 - Photuris, Security failures
41-255 - Reserved
(Please complete this list!)
(Source: IANA ICMP Parameters (http://www.iana.org/assignments/icmp-parameters))

See also:

  • ICMPv6

Further reading

  • RFC792 (http://www.ietf.org/rfc/rfc792.txt)



da:Internet control message protocol de:Internet Control Message Protocol es:ICMP fr:Internet Control Message Protocol id:ICMP it:ICMP ja:Internet Control Message Protocol pl:ICMP ru:ICMP sl:ICMP fi:ICMP sv:ICMP

Retrieved from "http://www.mywiseowl.com/articles/Internet_Control_Message_Protocol"

This page has been accessed 901 times. This page was last modified 05:58, 25 Nov 2004. All text is available under the terms of the GNU Free Documentation License (see Copyrights for details).