What is ICMPv6?
The Internet Control Message Protocol Version 6 (ICMPv6) is a new version of the ICM protocol that forms an integral part of the Internet Protocol version 6 (IPv6) architecture. ICMPv6 messages are transported within an IPv6 packet that may include IPv6 extension headers.
ICMPv6 offers a comprehensive solution by offering the different functions earlier subdivided among the different protocols such as ICMP, ARP (Address Resolution Protocol), and IGMP (Internet Group Membership Protocol version 3).
ICMPv6 further simplifies the communication process by eliminating obsolete messages.
ICMPv6 is a multipurpose protocol and is used for a variety of activities including error reporting in packet processing, diagnostic activities, Neighbor Discovery process and IPv6 multicast membership reporting. To perform these activities, ICMPv6 messages are subdivided into two classes: error messages and information messages.
1. Error Messages – The Internet Control Message Protocol Version 6 (ICMPv6)
error messages belong to four different categories: Destination Unreachable, Time Exceeded,
Packet Too Big, and Parameter Problems.
2. Information Messages – The Internet Control Message Protocol Version 6 (ICMPv6) information messages are subdivided into three groups: diagnostic messages,
Neighbor Discovery messages, and messages for the management of multicast groups.
ICMPv6 packets have the format shown in the figure. The 8-bit Type field indicates the type of the message. If the high-order bit has value zero (values in the range from 0 to 127), it indicates an error message; if the high-order bit has value 1 (values in the range from 128 to 255), it
indicates an information message. The 8-bitCodefield content depends on the message type.
The Checksum field helps in the detection of errors in the ICMP message and in part of the IPv6 message.
ICMPv6 Message Types
ICMPv6 is a multipurpose protocol as it is used for a plethora of activities such as reporting errors encountered in processing data packets, reporting multicast memberships, performing Neighbor Discovery, and performing diagnostics. An ICMP message is identified by a value of 58 in the
Next Header field of the IPv6 header or of the preceding Header. A list of currently defined message types is shown in the table below.
- If a wrong IP address is used for configuring a client to the DNS server,
an ICMP message is sent by the destination device to indicate the error.
- If a program does not allow fragmentation of its communications but it is required to communicate with a destination device, the router undertaking the fragmentation of the packet sends an ICMP message to the source device to indicate the error.
- If a client sends all communications to a particular router despite another router
offering a best route, the particular router responds with the IP address of the
router that provides a better route in the form of an ICMP message.
- All IP headers contain a Time to Live (TTL) value. This value is decremented as the IP packet is forwarded through each router. If a packet arrives at a router with a
Time To Live (TTL) value of 1, the router cannot decrement the value any further and forward it. Instead, the router discards the packet and sends an ICMP message to
indicate the expiry of the packet’s TTL value.
- The Internet Control Message Protocol Version 6 (ICMPv6) also provides testing and diagnostics services for many utilities. In order to test the communication process,
an ICMP echo is used by the Internet Protocol Packet Internet Gopher (PING) utility.
- In order to discover the routers on a path, the Trace Route utility uses ICMP echo requests with different TTL values. For example, the Trace Route utility creates
and sends an ICMP echo packet with a TTL value of 1. Since the router cannot set the TTL value to 0 and forward the packet, it sends an ICMP message indicating that the destination device is unreachable. This way, the Trace Route utility gets to know the IP address of the first router. The utility then increments the TTL and repeats the process. The second router in the route responds in the same manner and is added to the list of known routers. This process continues until the packet reaches the destination
device and it sends an echo reply after receiving the packet.