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.
|