Technical Paper
 ICMP evolution Telecom Italia Lab logo  
    Italiano | ngnet.it home >> What is IPv6 >> The IPv6 protocol >> ICMP evolution  
previous next
ICMP evolution

The new version of ICMP, called ICMPv6 [RFC2463] incorporates the old protocol (except for the less frequently used options) and the IGMPv2 protocol which IPv4 uses for multicast messages. To date, 14 types of messages have been defined, and can be grouped on the basis of the functions they perform. All messages have the same general format shown in Figure 24, where:

  • type indicates the type of message
  • code is used only in certain cases
  • checksum covers the entire ICMP and the fixed fields of the IPv6 header
  • message body is a variable-length field which contains message-specific data.

Figure 24. General ICMP packet format

ICMPv6 includes the error message management, ping and MTU Discovery procedures described below, as well as the automatic configuration procedures discussed in the next paragraph.

Error messages

When an IPv6 node discards a packet, it sends an error message to the source. There are four types of message:

  • destination unreachable (type=1). Sent by a router to the source when a packet cannot be forwarded to its destination.
  • packet too big (type =2). Used when the link MUT on the forwarding link is smaller than the packet.
  • time exceeded (type=3). Indicates that the packet's hop limit field is zero.
  • parameter problem (type=4). Indicates that a field of the datagram is not recognized as valid and the packet can thus not be processed. In this case, the parameter field (see figure 25) contains a pointer indicating the byte offset where the error was encountered, while code contains one of the following values:
  • 0 if there is an error in a header field
  • 1 if the type of the next header is not known
  • 2 if an unrecognized IPv6 option was encountered

Figure 25 - General format of ICMP error messages.

Ping procedure


Figure 26 - General Echo message format.

Ping is a simple procedure used to check the reachability of a destination available in both IPv6 and IPv4. Two messages are involved:
  • echo request (type=128);
  • echo reply (type=129);
When a node wishes to solicit a response from a remote node, e.g., to check reachability, it sends an ICMP echo request message. The packet has the format shown in Figure 26, where the code field is set to zero. The node can choose a value for the identifier, and if more than one ping is sent to the same destination, it must assign successive Sequence Number values. For each echo request received, the node responds with an echo reply.

MTU Discovery procedure

The MTU Discovery procedures enables stations to determine the maximum size of the packet that can be used in communication with a chosen destination. For this purpose, the source sends a packet whose MTU is equal to that of the first link. If this packet is larger than the MTU for the next hop, it is discarded and an ICMP error message (Type=2, message too big) is sent back to the source. The format of this message is as shown in Figure 26, where the MTU of the next link is set in the parameter field. Practical experience shows that this algorithm converges rapidly on an acceptable value.


previous next