Email This Page

ICMP & ICMPv6: Internet Message Control Protocol and ICMP version 6

Internet Control Message Protocol (ICMP) is an integrated part of IP suite. ICMP messages, delivered in IP packets, are used for out-of-band messages related to network operation or mis-operation. ICMP packet delivery is unreliable, so hosts can't count on receiving ICMP packets for any network problems. The key ICMP functions are:

  • Announce network errors, such as a host or entire portion of the network being unreachable, due to some type of failure. A TCP or UDP packet directed at a port number with no receiver attached is also reported via ICMP.
  • Announce network congestion. When a router begins buffering too many packets, due to an inability to transmit them as fast as they are being received, it will generate ICMP Source Quench messages. Directed at the sender, these messages should cause the rate of packet transmission to be slowed. Of course, generating too many Source Quench messages would cause even more network congestion, so they are used sparingly.
  • Assist Troubleshooting. ICMP supports an Echo function, which just sends a packet on a round--trip between two hosts. Ping, a common network management tool, is based on this feature. Ping will transmit a series of packets, measuring average round--trip times and computing loss percentages. 

  • Announce Timeouts. If an IP packet's TTL field drops to zero, the router discarding the packet will often generate an ICMP packet announcing this fact. TraceRoute is a tool which maps network routes by sending packets with small TTL values and watching the ICMP timeout announcements.
The Internet Control Message Protocol (ICMP) was revised during the definition of IPv6. In addition, the multicast control functions of the IPv4 Group Membership Protocol (IGMP ) are now incorporated with the ICMPv6.


Protocol Structure - ICMP & ICMPv6 Internet Message Control Protocol



8

 16

32 bit

Type

 Code

Checksum

Identifier

Sequence number

Address mask

  • Type -- Messages can be error or informational messages. Error messages can be Destination unreachable, Packet too big, Time exceed, Parameter problem. The possible informational messages are, Echo Request, Echo Reply, Group Membership Query, Group Membership Report, Group Membership Reduction.
  • Code -- For each type of message several different codes are defined. An example of this is the Destination Unreachable message, where possible messages are: no route to destination, communication with destination administratively prohibited, not a neighbor, address unreachable, port unreachable. For further details, refer to the standard.
  • Checksum -- The 16-bit one's complement of the one's complement sum of the ICMP message starting with the ICMP Type. For computing the checksum, the checksum field should be zero.
  • Identifier -- An identifier to aid in matching requests/replies; may be zero.
  • Sequence number -- Sequence number to aid in matching requests/replies; may be zero.
  • Address mask -- A 32-bit mask


Related Protocols
IP , IPv6 , TCP , UDP , IGMP , SNMP ,IRDP

Sponsor Source

ICMP is defined by IETF (http://www.ietf.org ) RFC792 and 950; ICMPv6 is defined by RFC 2461, 2463



Reference

http://www.javvin.com/protocol/rfc792.pdf : Internet Control Message Protocol
http://www.javvin.com/protocol/rfc950.pdf : Internet Standard Subnetting Procedure
http://www.javvin.com/protocol/rfc2461.pdf : Neighbor Discovery for IP Version 6 (IPv6).
http://www.javvin.com/protocol/rfc2463.pdf : ICMPv6 for the Internet Protocol Version 6 (IPv6) Specification