Search

Types of ICMPv6 messages, ICMPv6 message format, ICMPv6 message fields

Why we need ICMPv6 (Internet Control Message Protocol version 6) along with IPv6? Well, the backbone protocol for moving data from one node to another node in a computer network is Internet Protocol version 6 (IPv6). But, the Internet Protocol version 6 (IPv6) needs additional functionalities to move data from one computer to another computer.

Examples of the additional functionalities required are; error reporting while packet transmission, router discovery, diagnostics, provision for ping command etc. For Internet Protocol version 6 (IPv6), all these additional functionalities are provided by Internet Control Message Protocol version 6 (ICMPv6).

ICMPv6 (Internet Control Message Protocol version 6) is the implementation of the Internet Control Message Protocol for IPv6 (Internet Protocol version 6). IPv6 (Internet Protocol version 6) uses the ICMPv4 (Internet Control Message Protocol) as defined in RFC 792 written for IPv4, with a number of additional changes. ICMPv6 (Internet Control Message Protocol version 6) has a number of additional changes from its predecessor ICMPv4 (Internet Control Message Protocol version 4). The Next Header value for ICMPv6 in IPv6 header is 58.

Please click the next link, if you are not sure what an RFC is.

In this lesson, we will learn about different types of ICMPv6 messages exchanged between IPv6 enabled nodes. Generally, ICMPv6 messages are classified into two types. The two types of ICMPv6 Messages are ICMPv6 Error Messages and ICMPv6 Informational Messages.

ICMPv6 Message Format

Following images shows ICMPv6 message format. Please note that the below image is the general format for an ICMPv6 message. There are ICMPv6 messages, having different format than general format.

icmpv6-message-format.jpg

As you can see from the above image, Type and Code fields in ICMPv6 message are binary numbers, 8-bits long. So the equivalent decimal values for the Type and Code fields can be between 0 to 255. Please refer following link to learn more about binary, decimal and hexadecimal numbers.

Following table explains different fields in an ICMPv6 message.

Field Number of bits Description
Type 8 bits The Type field in ICMPv6 message is used to inform the receiving computer-like device or a router about the Type of the ICMPv6 message. ICMPv6 message types are ICMPv6 Error messages and ICMPv6 informational messages.
Code 8 bits The Code field in ICMPv6 message header is dependent on the Type field of the ICMPv6 message header. Code field is used to provide additional information about the ICMPv6 message.
Checksum 16 bits The Checksum field is used to detect data corruption in ICMPv6 message header.
Reserved 32 bits Currently not in use. Set to 0 by the sender and ignored by the receiver.
Message body Variable The size of the Message body field of the ICMPv6 message is variable. The contents of the Message Body field depend on the Message Type and Message Code of the ICMPv6 message header.

 

Types of ICMPv6 messages

Following table lists the Types of ICMPv6 messages.

Type field value in ICMPv6 Message Description RFC Classification
0 Reserved RFC 4443 Error message
1 Destination Unreachable RFC 4443 Error message
2 Packet Too Big RFC 4443 Error message
3 Time Exceeded RFC 4443 Error message
4 Parameter Problem RFC 4443 Error message
100 Private Experimentation RFC 4443 Error message
101 Private Experimentation RFC 4443 Error message
102 to 126 Unassigned RFC 4443 Error message
127 Reserved for the Expansion of ICMPv6 Error Messages RFC 4443 Error message
128 Echo Request RFC 4443 Informational message
129 Echo Reply RFC 4443 Informational message
130 Multicast Listner Query RFC 2710 Informational message
131 Multicast Listener Report RFC 2710 Informational message
132 Multicast Listener Done RFC 2710 Informational message
133 Router Solicitation RFC 4861 Informational message
134 Router Advertisement RFC 4861 Informational message
137 Redirect Message RFC 4861 Informational message
138 Router Renumbering RFC 2894 Informational message
139 ICMP Node Information Query RFC 4620 Informational message
140 ICMP Node Information Response RFC 4620 Informational message
141 Inverse Neighbor Discovery Solicitation Message RFC 3122 Informational message
142 Inverse Neighbor Discovery Advertisement Message RFC 3122 Informational message
143 Version 2 Multicast Listener Report RFC 3810 Informational message
144 Home Agent Address Discovery Request RFC 6275 Informational message
145 Home Agent Address Discovery Reply RFC 6275 Informational message
146 Mobile Prefix Solicitation RFC 6275 Informational message
147 Mobile Prefix Advertisement RFC 6275 Informational message
148 Certification Path Solicitation RFC 3971 Informational message
149 Certification Path Advertisement RFC 3971 Informational message
150 ICMP message utilized by exeremental mobility protocols RFC 4065 Informational message
151 Multicast Router Advertisement RFC 4286 Informational message
152 Multicast Router Solicitation RFC 4286 Informational message
153 Multicast Router Termination RFC 4286 Informational message
154 FMIPv6 Messages RFC 5568 Informational message
155 RPL Control Message RFC 9010 Informational message
156 to 199 Unassigned Unassigned Informational message
200 Private experimentation RFC 4443 Informational message
201 Private experimentation RFC 4443 Informational message
255 Reserved RFC 4443 Informational message

 

ICMPv6 Error messages

ICMPv6 error messages are used to report errors happened while IPv6 packet transmission in forwarding or delivery. ICMPv6 error messages are normally sent by a destination node computer-like device or a router.

The left-most bit (high order bit) of the 8-bit Type field of an ICMPv6 Error Message is reserved as 0. So, the value of the Type field in an ICMPv6 Error Message can be between 0 to 127.

Click the following link to learn more about binary, decimal and hexadecimal numbers.

Following paragraph is copied from RFC 792

ICMPv6 messages are grouped into two classes: error messages and
   informational messages.  Error messages are identified as such by a
   zero in the high-order bit of their message Type field values.  Thus,
   error messages have message types from 0 to 127; informational
   messages have message types from 128 to 255.

Below image shows the minimum and maximum possible values for Type field in an ICMPv6 Error message. Please refer below image.

icmpv6-type-field-values-error-message.png

 

Type and Code values for ICMPv6 Error messages

Following table lists important Type and Code values for ICMPv6 Error Messages. Please note that the Type field value for ICMPv6 error messages are between 0 and 127.

Type Field in ICMPv6 Message Code Field in ICMPv6 Message Description
Destination Unreachable (Value 1) 0 No Route to destination network
1 Administratively prohibited
2 Beyond scope of source address
3 IPv6 address unreachable
4 Port unreachable
5 Source address failed
6 Reject route to destination
7 Error in Source Routing Header
Packet Too Big (Value 2) 0 Packet too big for next hop link
Time Exceeded (Value 3) 0 Hop Limit exceeded
1 Fragment reassembly time exceeded
Parameter Problem (Value 4) 0 Header field error
1 Unrecognized Next Header type
2 Unrecognized IPv6 option
Private experimentation (100)   Private experimentation. Not for general use.
Private experimentation (101)   Private experimentation. Not for general use.
Reserved (127)   Reserved for future expansion

 

ICMPv6 Informational messages

ICMPv6 (Internet Control Message Protocol version 6) Informational Messages provide diagnostic functions and additional host functionalities like Multicast Listener Discovery (MLD) and Neighbor Discovery (ND) in an IPv6 network. ICMPv6 (Internet Control Message Protocol version 6) Informational Messages are used to communicate information related with test, diagnosis, connectivity checks, support etc. between nodes in an IPv6 network.

The left-most bit (high order bit) of the 8-bit Type field of an ICMPv6 Informational Message is reserved as 1. So, the value of the Type field in an ICMPv6 Informational Message can be between 128 to 255.

Click the following link to learn more about binary, decimal and hexadecimal numbers.

Following paragraph is copied from RFC 792

ICMPv6 messages are grouped into two classes: error messages and
   informational messages.  Error messages are identified as such by a
   zero in the high-order bit of their message Type field values.  Thus,
   error messages have message types from 0 to 127; informational
   messages have message types from 128 to 255.

Below image shows the minimum and maximum possible values for Type field in an ICMPv6 Informational message. Please refer below image.

icmpv6-type-field-values-informational-message.jpg

 

Type and Code values for ICMPv6 Informational messages

 

Type Field in ICMPv6 Message Code Field in ICMPv6 Message Description
Echo Request (Value 128) 0 ICMPv6 Echo Request messages are used for network reachability testing in an IPv6 network. IPv6 Ping command uses ICMPv6 Echo Request and Echo Reply messages.
Echo Reply (Value 129) 0 ICMPv6 Echo Reply messages are used for network reachability testing in an IPv6 network. IPv6 Ping command uses ICMPv6 Echo Request and Echo Reply messages.
Multicast Listener Query (Value 130) 0 Multicast Listener Query messages are sent by an IPv6 multicast-capable router to query to it's link for multicast group membership. There are two subtypes of Multicast Listener Query. General Query is used to learn which multicast addresses have listeners on a subnet and Multicast-Address-Specific Query is used to learn if a particular multicast address has any listeners on a subnet. These two subtypes are differentiated by the contents of the Multicast Address field. Please refer (RFC 2710 - Multicast Listener Discovery (MLD) for IPv6.) Used for multicast group management.
Multicast Listener Report (Value 131) 0 Multicast Listener report messages are sent by a listener, to a multicast address FF02::16 (all MLDv2-capable routers), as a reply to a Query or as an unsolicited message. The purpose of an IPv6 Multicast Listener report message is to register for a multicast group.
Multicast Listener Done (Value 132) 0 Multicast Listener Done messages are sent if a node no longer wants to receive multicast traffic for a particular multicast group.
NDP Router Solicitation (Value 133) 0 Neighbor Discovery Protocol (NDPƑRouter Solicitation (RS) messages are multicast messages sent by hosts to an IPv6 network. NDP Router Solicitation (RS) messages are sent to IPv6 multicast address FF02::2 (all-routers multicast address). Main purpose of NDP Router Solicitation (RS) message is to find IPv6 capable routers in the network.
NDP Router Advertisement (Value 134) 0 Neighbor Discovery Protocol (NDP) Router Advertisement (RA) Messages are sent by IPv6 routers in response to Router Solicitation (RS) messages. Router Advertisement (RA) Messages are also sent periodically to provide network configuration information to devices on the network. Router Advertisement (RA) Messages are sent to FF02::1 (IPv6 all-nodes multicast address) Router Advertisement (RA) Messages are also sent as a unicast message to a particular host.
NDP Neighbor Solicitation (Value 135) 0 Neighbor Discovery Protocol (NDP) Neighbor Solicitation (NS) Messages are sent by the nodes to find the corresponding link-layer address (layer-two address or MAC address) of an IPv6 address on the local link. Neighbor solicitation messages are also used for DAD (Duplicated Address Detection).
NDP Neighbor Advertisement (Value 136) 0 Neighbor Discovery Protocol (NDP) Neighbor Advertisement (NA) Messages are sent in response with Neighbor Solicitation (NS) Messages. Neighbor Advertisement (NA) Messages are also sent unsolicited to network devices, to inform them any change.
NDP Redirect Message (Value 137) 0 Neighbor Discovery Protocol (NDP) Redirect Messages are used by routers to show a better default-gateway address to forward, for the destination address.
Router Renumbering (Value 138) 0 Router Renumbering feature allow routers in an autonomous system to be renumbered, by configuring them with new network prefixes.
Node Information Query (Value 139) 0 Node Information Query messages are used to request certain network information, such as its hostname or FQDN (Fully-qualified Domain Name).

Code 0 indicates that Data field contains an IPv6 address
1 Code 1 indicates that Data field contains a Name
2 Code 2 indicates that Data field contains an IPv4 address
Node Information response (Value 140) 0 A successful reply to the Query
1 Responder refuses to answer the query. The result data field will be empty.
2 Query is unknown to the responder
Inverse Neighbor Discovery Solicitation Message (Value 141) 0 The Inverse Neighbor Discovery Solicitation Message is used to obtain the full list of IPv6 addresses from a remote link. A node sends an Inverse Neighbor Discovery Solicitation message to request an IPv6 address corresponding to a link-layer address (commonly MAC address) of the target node while also providing its own link-layer address to the target. Please refer RFC 3122 - Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification.
Inverse Neighbor Discovery Advertisement Message (Value 142) 0 Inverse Neighbor Discovery Advertisement Message is used as a response to an Inverse Neighbor Discovery Solicitation Message. Please refer RFC 3122 - Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification.
Version 2 Multicast Listener Report (Value 143) 0 Multicast Listener Discovery Protocol version 2 (MLDv2) is a protocol which helps IPv6 router to discover the presence of multicast listeners on its links, and to discover which multicast addresses are of interest to those neighboring nodes. MLDv1 and MLDv2 are interoperable. MLDv2 has additional source-specific multicast capabilities.
Home Agent Address Discovery Request (Value 144) 0 Home Agent Address Discovery Request messages are sent by a mobile node to Mobile IPv6 Home-Agents for dynamic home agent address discovery.
Home Agent Address Discovery Reply (Value 145) 0 Home Agent Address Descovery Reply messages are sent by an IPv6 Home-Agent to complete the dynamic home agent address discovery process.
Mobile Prefix Solicitation (Value 146) 0 Mobile Prefix Solicitation messages are sent by a mobile node, to find if any changes in the prefix configuration at its home link.
Mobile Prefix Advertisement (Value 147) 0 Mobile Prefix Advertisement is the reply for Mobile Prefix Solicitation message. Home-Agents may also send unsolicited Mobile Prefix Advertisement messages at regular intervals.
Certification Path Solicitation (Value 148) 0 Certification Path Solicitation messages are related with SEcure Neighbor Discovery (SEND). Certification Path Solicitation messages are used to prompt routers to generate Certification Path Advertisements.
Certification Path Advertisement (Value 149) 0 Certification Path Advertisement messages are related with SEcure Neighbor Discovery (SEND). Certification Path Advertisement messages are sent by routers in response to a Certification Path Solicitation.
ICMP message utilized by experimental mobility protocols (Value 150) 0 Informational message
Multicast Router Advertisement (Value 151) 0 Multicast Router Discovery (MRD) protocol is used for identifying multicast routers without a depending on multicast routing protocols. Multicast Router Advertisement are sent unsolicited periodically on all router interfaces on which multicast forwarding is enabled.
Multicast Router Solicitation (Value 152) 0 Multicast Router Discovery (MRD) protocol is used for identifying multicast routers without a depending on multicast routing protocols. Multicast Router Solicitation messages are sent by devices, whenever they want to discover multicast routers on their directly attached link.
Multicast Router Termination (Value 153) 0 Multicast Router Termination
Private experimentation. (Value 200)   Private experimentation. Not for general use.
Private experimentation. (Value 201)   Private experimentation. Not for general use.
Reserved (Value 255)   Reserved for future expansion

 

Written by Jajish Thomas.
Last updated on 6th January, 2024.

 

 

Related Tutorials
Limitations of IPv4
IPv6 History and related RFCs
IPv6 Features
Differences Between IPv4 and IPv6
Unicast, Multicast and Anycast - Types of communication in IPv6
IPv6 Datagram Header Format
Comparison between IPv4 Header and IPv6 Header
Introduction to IPv6 Addressing
What is prefix and prefix length in IPv6, Similarity between IPv4 subnet mask and IPv6 prefix
IPv6 Address formats
How to Simplify Shorten and Compress IPv6 Addresses
Types of IPv6 Addresses, Global Unicast, Link-local, Multicast, Anycast, Loopback addresses
Global Unicast IPv6 Addresses, Global Unicast IPv6 Address prefix, format and range
Different methods to assign a Global Unicast IPv6 address to an interface
What are IEEE EUI-64 based Global Unicast IPv6 addresses
How to configure Static Global Unicast IPv6 Address in a Cisco Router Interface
How to configure EUI-64 based Global Unicast IPv6 Address in a Cisco Router Interface
How to configure static Global Unicast IPv6 Address in a Windows Server
Types of ICMPv6 messages
What is SLAAC - Stateless Address Auto-configuration in IPv6
How SLAAC works in IPv6