ICMPv6
Encyclopedia
Internet Control Message Protocol version 6 (ICMPv6) is the implementation of the Internet Control Message Protocol
Internet Control Message Protocol
The Internet Control Message Protocol is one of the core protocols of the Internet Protocol Suite. It is chiefly used by the operating systems of networked computers to send error messages indicating, for example, that a requested service is not available or that a host or router could not be...

 (ICMP) for Internet Protocol version 6 (IPv6) defined in RFC 4443. ICMPv6 is an integral part of IPv6 and performs error reporting, diagnostic functions (e.g., ping
Ping
Ping is a computer network administration utility used to test the reachability of a host on an Internet Protocol network and to measure the round-trip time for messages sent from the originating host to a destination computer...

), and a framework for extensions to implement future changes.

Several extensions have been published, defining new ICMPv6 message types as well as new options for existing ICMPv6 message types. Neighbor Discovery Protocol
Neighbor Discovery Protocol
The Neighbor Discovery Protocol is a protocol in the Internet Protocol Suite used with Internet Protocol Version 6 . It operates in the Link Layer of the Internet model and is responsible for address autoconfiguration of nodes, discovery of other nodes on the link, determining the Link Layer...

 (NDP) is a node discovery protocol in IPv6 which replaces and enhances functions of ARP. Secure Neighbor Discovery Protocol (SEND) is an extension of NDP with extra security. Multicast Router Discovery (MRD) allows discovery of multicast routers.

Technical details

ICMPv6 messages may be classified into two categories: error messages and information messages.
ICMPv6 messages are transported by IPv6 packets in which the IPv6 Next Header value for ICMPv6 is set to 58.

Packet format

The ICMPv6 packet consists of a header and the protocol payload. The header contains only three fields: type (8 bits), code (8 bits), and checksum (16 bits). type specifies the type of the message. Values in the range from 0 to 127 (high-order bit is 0) indicate an error message, while values in the range from 128 to 255 (high-order bit is 1) indicate an information message. The code field value depends on the message type and provides an additional level of message granularity. The checksum field provides a minimal level of integrity verification for the ICMP message.
ICMPv6 packet
Bit offset | 0–7 | 8–15 16–31
0 Type Code Checksum
32 Message body

Types of ICMPv6 messages

Type Code
Value Meaning Value Meaning
ICMPv6 Error Messages
1 Destination Unreachable 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
2 Packet Too Big  0
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
127 Reserved for expansion of ICMPv6 error messages
ICMPv6 Informational Messages
128 Echo Request  0
129 Echo Reply  0
130 Multicast Listener Query  0
There are two subtypes of Multicast Listener Query messages:
- General Query, used to learn which multicast addresses have
listeners on an attached link.
- Multicast-Address-Specific Query, used to learn if a
particular multicast address has any listeners on an attached
link.
These two subtypes are differentiated by the contents of the
Multicast Address field, as described in section 3.6 of RFC2710
131 Multicast Listener Report  0
132 Multicast Listener Done  0
133 Router Solicitation (NDP
Neighbor Discovery Protocol
The Neighbor Discovery Protocol is a protocol in the Internet Protocol Suite used with Internet Protocol Version 6 . It operates in the Link Layer of the Internet model and is responsible for address autoconfiguration of nodes, discovery of other nodes on the link, determining the Link Layer...

)
0
134 Router Advertisement (NDP) 0
135 Neighbor Solicitation (NDP) 0
136 Neighbor Advertisement (NDP) 0
137 Redirect Message (NDP) 0
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 0
142 Inverse Neighbor Discovery Advertisement Message 0
143 Multicast Listener Discovery (MLDv2
Multicast Listener Discovery
Multicast Listener Discovery is a component of the Internet Protocol Version 6 suite. MLD is used by IPv6 routers for discovering multicast listeners on a directly attached link, much like IGMP is used in IPv4. The protocol is embedded in ICMPv6 instead of using a separate protocol. MLDv1 is...

) reports (RFC 3810)
144 Home Agent Address Discovery Request Message 0
145 Home Agent Address Discovery Reply Message 0
146 Mobile Prefix Solicitation 0
147 Mobile Prefix Advertisement 0
148 Certification Path Solicitation (SEND)
149 Certification Path Advertisement (SEND)
151 Multicast Router Advertisement (MRD)
152 Multicast Router Solicitation (MRD)
153 Multicast Router Termination (MRD)
200 Private experimentation
201 Private experimentation
255 Reserved for expansion of ICMPv6 informational messages


Note that the table above is not comprehensive. The current complete list of assigned ICMPv6 types can be found at this link: IANA: ICMPv6 Parameters.

Message checksum

ICMPv6 provides a minimal level of message integrity verification by the inclusion of a 16-bit checksum
Checksum
A checksum or hash sum is a fixed-size datum computed from an arbitrary block of digital data for the purpose of detecting accidental errors that may have been introduced during its transmission or storage. The integrity of the data can be checked at any later time by recomputing the checksum and...

 in its header. The checksum is calculated starting with a pseudo-header of IPv6 header fields according to the IPv6 standard, which consists of the source and destination addresses, the packet length and the next header field, the latter of which is set to the value 58. Following this pseudo header, the checksum is continued with the ICMPv6 message in which the checksum is initially set to zero. The checksum computation is performed according to Internet protocol standards using 16-bit ones' complement summation, followed by complementing the checksum itself and inserting it into the checksum field. Note that this differs from the way it is calculated for IPv4 in ICMP
Internet Control Message Protocol
The Internet Control Message Protocol is one of the core protocols of the Internet Protocol Suite. It is chiefly used by the operating systems of networked computers to send error messages indicating, for example, that a requested service is not available or that a host or router could not be...

, but is similar to the calculation done in TCP
Transmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...

.
ICMPv6 pseudo-header
Bit offset 0 - 7 8–15 16–23 24–31
0 Source address
32
64
96
128 Destination address
160
192
224
256 ICMPv6 length
288 Zeros Next header

Message processing

When an ICMPv6 node receives a packet, it must undertake actions that depend on the type of message. The ICMPv6 protocol must limit the number of error messages sent to the same destination to avoid network overloading. For example, if a node continues to forward erroneous packets, ICMP will signal the error to the first packet and then do so periodically, with a fixed minimum period or with a fixed network maximum load. An ICMP error message must never be sent in response to another ICMP error message.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK