Internet Control Message Protocol version 6 (ICMPv6) is the implementation of the
Internet Control Message Protocol (ICMP) for
Internet Protocol version 6
Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communication protocol, communications protocol that provides an identification and location system for computers on networks and routes traffic ...
(IPv6). ICMPv6 is an integral part of IPv6 and performs error reporting and diagnostic functions.
ICMPv6 has a framework for extensions to implement new features. Several extensions have been published, defining new ICMPv6 message types as well as new options for existing ICMPv6 message types. For example,
Neighbor Discovery Protocol (NDP) is a node discovery protocol based on ICMPv6 which replaces and enhances functions of
ARP.
Secure Neighbor Discovery (SEND) is an extension of NDP with extra security.
Multicast Listener Discovery (MLD) is used by IPv6 routers for discovering
multicast listeners on a directly attached link, much like
Internet Group Management Protocol (IGMP) is used in
IPv4
Internet Protocol version 4 (IPv4) is the first version of the Internet Protocol (IP) as a standalone specification. It is one of the core protocols of standards-based internetworking methods in the Internet and other packet-switched networks. ...
.
Multicast Router Discovery (MRD) allows the discovery of multicast routers.
Message types and formats
ICMPv6 messages may be classified as ''error messages'' and ''information messages''. ICMPv6 messages are transported by IPv6 packets in which the
IPv6 Next Header value for ICMPv6 is set to the value .
The ICMPv6 message consists of a header and the protocol payload. The header contains only three fields: ''Type'' (8 bits), ''Code'' (8 bits), and ''Checksum'' (16 bits).
;
;
;
;
Types
Control messages are identified by the value in the ''type'' field. The ''code'' field gives additional context information for the message. Some messages serve the same purpose as the correspondingly named ICMP message types.
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
Checksum
ICMPv6 provides a minimal level of message integrity verification by the inclusion of a 16-bit
checksum 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 . Following this pseudo header, the checksum is continued with the ICMPv6 message. The checksum computation is performed according to Internet protocol standards using 16-bit
ones' complement
The ones' complement of a binary number is the value obtained by inverting (flipping) all the bits in the Binary number, binary representation of the number. The name "ones' complement" refers to the fact that such an inverted value, if added t ...
summation, followed by a final ones' complement of the checksum itself and inserting it into the checksum field. Note that this differs from the way it is calculated for IPv4 in
ICMP, but is similar to
the calculation done in TCP.
Format
The payload of an ICMPv6 message varies according to the type of message being sent. It begins at bit 32 immediately after the header described above. For some messages such as destination unreachable or time exceeded there is no defined message body.
Others define a use only for the first four bytes of the body with no other defined content:
In the case of
NDP messages the first four bytes are either reserved or used for flags/hoplimit. While the rest of the body has unspecified structured data:
For a redirect the first bytes of the message body are reserved but not used. This is followed by a Target and destination address. Unspecified options can be attached to the end:
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.
References
External links
IANA: ICMPv6 Parameters
{{IPv6
Internet protocols
Internet layer protocols
Network layer protocols
IPv6