ICMPv6
Internet Control Message Protocol version 6 (ICMPv6) is the new implementation of the Internet Control Message Protocol (ICMP) that is part of Internet Protocol version 6 (IPv6). The ICMPv6 protocol is defined in RFC 4443.
ICMPv6 is a multipurpose protocol. It performs such things as:
- error reporting in packet processing
- diagnostic functions
- Neighbor Discovery process
- IPv6 multicast membership reporting
It is also designed as a framework to use extensions for use with future implementations and changes.
Examples of extensions that have already been written for ICMPv6:
- Neighbor Discovery Protocol (NDP) - a node discovery protocol in IPv6 which replaces and enhances functions of ARP.
- Secure Neighbor Discovery Protocol (SEND) - an extension of NDP with extra security.
- Multicast Router Discovery (MRD) - allows discovery of multicast routers.
- ICMPv6 messages use IPv6 packets for transportation and can include IPv6 extension headers. ICMPv6 includes some of the functionality that in IPv4 was distributed among protocols such as ICMPv4, ARP (Address Resolution Protocol), and IGMP (Internet Group Membership Protocol version 3).
- ICMPv6 has simplified the communication process by eliminating obsolete messages.
ICMPv6 messages are subdivided into two classes: error messages and information messages.
Error Messages are divided into four categories:
- Destination Unreachable
- Time Exceeded
- Packet Too Big
- Parameter Problems
- Information messages are divided into three groups:
- Diagnostic messages
- Neighbor Discovery messages
- Messages for the management of multicast groups.
ICMPv6 Types and Codes
ICMPv6 has a number of messages that are identified by the “Type” field. Some of these types have assigned “Code” fields as well. The table below shows the different types of ICMP Types with their associated codes if there are any.
Type codes 0 − 127 are error messages and type codes 128 − 255 are for information messages.
ICMPv6 Types and Codes
Type # | Type Name | Code |
---|---|---|
0 | Reserved | 0 - no route to destination 1 - communication with destination administratively prohibited 2 - beyond scope of source address 3 - address unreachable 4 - port unreachable 5 - source address failed ingress/egress policy 6 - reject route to destination 7 - Error in Source Routing Header |
1 | Destination Unreachable | |
2 | Packet Too Big | |
3 | Time Exceeded | 0 - hop limit exceeded in transit 1 - fragment reassembly time exceeded |
4 | Parameter Problem | 0 - erroneous header field encountered 1 - unrecognized Next Header type encountered 2 - unrecognized IPv6 option encountered |
100 | Private Experimentation | |
101 | Private Experimentation | |
102 - 126 | Unassigned | |
127 | Reserved for expansion if ICMPv6 error messages | |
128 | Echo Request | |
129 | Echo Replay | |
130 | Multicast Listener Query | |
131 | Multicast Listener Report | |
132 | Multicast Listener Done | |
133 | Router Solicitation | |
134 | Router Advertisement | |
135 | Neighbor Solicitation | |
136 | Neighbor Advertisement | |
137 | Redirect Message | |
138 | Router Renumbering | 0 - Router Renumbering Command 1 - Router Renumbering Result 255 - Sequence Number Reset |
139 | ICMP Node Information Query | 0 - The Data field contains an IPv6 address which is the Subject of this Query. 1 - The Data field contains a name which is the Subject of this Query, or is empty, as in the case of a NOOP. 2 - The Data field contains an IPv4 address which is the Subject of this Query. |
140 | ICMP Node Information Response | 0 - A successful reply. The Reply Data field may or may not be empty. 1 - The Responder refuses to supply the answer. The Reply Data field will be empty. 2 - The Qtype of the Query is unknown to the Responder. The Reply Data field will be empty. |
141 | Inverse Neighbor Discovery Solicitation Message | |
142 | Inverse Neighbor Discovery Advertisement Message | |
143 | Version 2 Multicast Listener Report | |
144 | Home Agent Address Discovery Request Message | |
145 | Home Agent Address Discovery Reply Message | |
146 | Mobile Prefix Solicitation | |
147 | Mobile Prefix Advertisement | |
148 | Certification Path Solicitation Message | |
149 | Certification Path Advertisement Message | |
150 | ICMP messages utilized by experimental mobility protocols such as Seamoby | |
151 | Multicast Router Advertisement | |
152 | Multicast Router Solicitation | |
153 | Multicast Router Termination | |
154 | FMIPv6 Messages | |
155 | RPL Control Message | |
156 | ILNPv6 Locator Update Message | |
157 | Duplicate Address Request | |
158 | Duplicate Address Confirmation | |
159 − 199 | Unassigned | |
200 | Private experimentation | |
201 | Private experimentation | |
255 | Reserved for expansion of ICMPv6 informational messages |