Internet_Control_Message_Protocol_for_IPv6

ICMPv6

ICMPv6

Internet protocol used for error messages in network operations


Internet Control Message Protocol version 6 (ICMPv6) is the implementation of the Internet Control Message Protocol (ICMP) for Internet Protocol version 6 (IPv6).[1] ICMPv6 is an integral part of IPv6 and performs error reporting and diagnostic functions.

Quick Facts Abbreviation, Purpose ...

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.[2] 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. 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 58.

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). 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.

More information Bit offset, 0–7 ...

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.

More information Type, Code ...

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,[5] 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. The checksum computation is performed according to Internet protocol standards using 16-bit ones' complement summation, followed by a final ones' complement of the checksum itself and inserting it into the checksum field.[6] Note that this differs from the way it is calculated for IPv4 in ICMP, but is similar to the calculation done in TCP.

More information Bit offset, 0 – 7 ...

Format

The payload of an ICMPv6 message varies according 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.

More information Bit offset, 0–7 ...
More information Bit offset, 0–7 ...

Others define a use only for the first four bytes of the body with no other defined content:

More information Bit offset, 0–7 ...
More information Bit offset, 0–7 ...
More information Bit offset, 0–7 ...
More information Bit offset, 0–7 ...

In the case of NDP messages the first four bytes are either reserved or used for flags/hoplimit. While the reset of body has unspecified structured data:

More information Bit offset, 0–7 ...
More information Bit offset, 0–7 ...
More information Bit offset, 0–7 ...
More information Bit offset, 0–7 ...

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:

More information Bit offset, 0–7 ...

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

  1. A. Conta; S. Deering (March 2006). M. Gupta (ed.). Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification. Network Working Group. doi:10.17487/RFC4443. STD 89. RFC 4443. Internet Standard. Obsoletes RFC 2463. Updates RFC 2780. Updated by RFC 4884.
  2. T. Mrugalski; M. Siodelski; B. Volz; A. Yourtchenko; M. Richardson; S. Jiang; T. Lemon; T. Winters (November 2018). Dynamic Host Configuration Protocol for IPv6 (DHCPv6). IETF. doi:10.17487/RFC8415. ISSN 2070-1721. RFC 8415. Proposed Standard. sec. 3. Obsoletes RFC 3315, 3633, 3736, 4242, 7083, 7283 and 7550.
  3. M. Crawford (August 2000). Router Renumbering for IPv6. Network Working Group. doi:10.17487/RFC2894. RFC 2894. Proposed Standard.
  4. R. Vida; L. Costa, eds. (June 2004). Multicast Listener Discovery Version 2 (MLDv2) for IPv6. Network Working Group. doi:10.17487/RFC3810. RFC 3810. Proposed Standard. Updates RFC 2710. Updated by RFC 4604.
  5. S. Deering; R. Hinden (July 2017). Internet Protocol, Version 6 (IPv6) Specification. IETF. doi:10.17487/RFC8200. STD 86. RFC 8200. Internet Standard 86. sec. 8.1. Obsoletes RFC 2460.
  6. R. Braden; D. Borman; C. Partridge (September 1988). Computing the Internet Checksum. Network Working Group. doi:10.17487/RFC1071. RFC 1071. Informational. Updated by RFC 1141.

Share this article:

This article uses material from the Wikipedia article Internet_Control_Message_Protocol_for_IPv6, and is written by contributors. Text is available under a CC BY-SA 4.0 International License; additional terms may apply. Images, videos and audio are available under their respective licenses.