Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

ICMPv6

From Wikipedia, the free encyclopedia
Internet protocol used for error messages in network operations
Internet Control Message Protocol for IPv6
Communication protocol
General structure of ICMPv6 Messages
AbbreviationICMPv6
PurposeAuxiliary Protocol for IPv6
IntroductionDecember 1995; 30 years ago (1995-12)
OSI layerNetwork layer
RFC(s)4443
Internet protocol suite
Application layer
Transport layer
Internet layer
Link layer

Internet Control Message Protocol version 6 (ICMPv6) is the implementation of theInternet Control Message Protocol (ICMP) forInternet Protocol version 6 (IPv6).[1] 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 ofARP.[2]Secure Neighbor Discovery (SEND) is an extension of NDP with extra security.Multicast Listener Discovery (MLD) is used by IPv6 routers for discoveringmulticast listeners on a directly attached link, much likeInternet Group Management Protocol (IGMP) is used inIPv4.Multicast Router Discovery (MRD) allows the discovery of multicast routers.

Message types and formats

[edit]

ICMPv6 messages may be classified aserror messages andinformation messages. ICMPv6 messages are transported by IPv6 packets in which theIPv6 Next Header value for ICMPv6 is set to the value58.

The ICMPv6 message consists of a header and the protocol payload. The header contains only three fields:Type (8 bits),Code (8 bits), andChecksum (16 bits).

ICMPv6 message
OffsetOctet0123
OctetBit012345678910111213141516171819202122232425262728293031
00TypeCodeChecksum
432Message body
864
Type: 8 bits
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.
Code: 8 bits
TheCode field value depends on the message type and provides an additional level of message granularity.
Checksum: 16 bits
Provides a minimal level of integrity verification for the ICMP message. The checksum is calculated from the ICMP message (starting with theType field), prepended with an IPv6pseudo-header.[1] See below.
Message body: Variable
Contents depends on the message.

Types

[edit]

Control messages are identified by the value in thetype field. Thecode field gives additional context information for the message. Some messages serve the same purpose as the correspondingly named ICMP message types.

TypeCode
ValueMeaningValueMeaning
ICMPv6 Error Messages
1Destination unreachable0no route to destination
1communication with destination administratively prohibited
2beyond scope of source address
3address unreachable
4port unreachable
5source address failed ingress/egress policy
6reject route to destination
7Error in Source Routing Header
2Packet too big0
3Time exceeded0hop limit exceeded in transit
1fragment reassembly time exceeded
4Parameter problem0erroneous header field encountered
1unrecognized Next Header type encountered
2unrecognized IPv6 option encountered
100Private experimentation
101Private experimentation
127Reserved for expansion of ICMPv6 error messages
ICMPv6 Informational Messages
128Echo Request0
129Echo Reply0
130Multicast Listener Query (MLD)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 RFC 2710

131Multicast Listener Report (MLD)0
132Multicast Listener Done (MLD)0
133Router Solicitation (NDP)0
134Router Advertisement (NDP)0
135Neighbor Solicitation (NDP)0
136Neighbor Advertisement (NDP)0
137Redirect Message (NDP)0
138Router Renumbering[3]0Router Renumbering Command
1Router Renumbering Result
255Sequence Number Reset
139ICMP Node Information Query0The Data field contains an IPv6 address which is the Subject of this Query.
1The Data field contains a name which is the Subject of this Query, or is empty, as in the case of a NOOP.
2The Data field contains an IPv4 address which is the Subject of this Query.
140ICMP Node Information Response0A successful reply. The Reply Data field may or may not be empty.
1The Responder refuses to supply the answer. The Reply Data field will be empty.
2The Qtype of the Query is unknown to the Responder. The Reply Data field will be empty.
141Inverse Neighbor Discovery Solicitation Message0
142Inverse Neighbor Discovery Advertisement Message0
143Multicast Listener Discovery (MLDv2) reports[4]
144Home Agent Address Discovery Request Message0
145Home Agent Address Discovery Reply Message0
146Mobile Prefix Solicitation0
147Mobile Prefix Advertisement0
148Certification Path Solicitation (SEND)
149Certification Path Advertisement (SEND)
151Multicast Router Advertisement (MRD)
152Multicast Router Solicitation (MRD)
153Multicast Router Termination (MRD)
155RPL Control Message
160Extended Echo Request[5]0Request Extended Echo
161Extended Echo Reply[5]0No Error
1Malformed Query
2No Such Interface
3No Such Table Entry
4Multiple Interfaces Satisfy Query
200Private experimentation
201Private experimentation
255Reserved 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.

Checksum

[edit]

ICMPv6 provides a minimal level of message integrity verification by the inclusion of a 16-bitchecksum in its header. The checksum is calculated starting with apseudo-header of IPv6 header fields according to the IPv6 standard,[6] which consists of the source and destination addresses, the packet length and the next header field, the latter of which is set to the value58. Following this pseudo header, the checksum is continued with the ICMPv6 message. The checksum computation is performed according to Internet protocol standards using 16-bitones' complement summation, followed by a final ones' complement of the checksum itself and inserting it into the checksum field.[7] Note that this differs from the way it is calculated for IPv4 inICMP, but is similar tothe calculation done in TCP.

ICMPv6 pseudo-header
OffsetOctet0123
OctetBit012345678910111213141516171819202122232425262728293031
00Source Address
432
864
1296
16128Destination Address
20160
24192
28224
32256ICMPv6 Length
36288ZeroesNext Header (58)

Format

[edit]

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.

Destination Unreachable
Bit offset0–78–1516–31
01CodeChecksum
32Unused
64Message body (Variable Size)
Time Exceeded
Bit offset0–78–1516–31
03CodeChecksum
32Unused
64Message body (Variable Size)

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

Packet Too Big
Bit offset0–78–1516–31
020Checksum
32MTU
64Message body (Variable Size)
Parameter Problem
Bit offset0–78–1516–31
04CodeChecksum
32Pointer
64Message body (Variable Size)
Echo Request
Bit offset0–78–1516–31
01280Checksum
32IdentifierSequence Number
64Data (Variable Size)
Echo Reply
Bit offset0–78–1516–31
01290Checksum
32IdentifierSequence Number
64Data (Variable Size)

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

Router Solicitation
Bit offset0–78–1516–31
01330Checksum
32Reserved
64Options (Variable Size)
Router Advertisement
Bit offset0–78–1516–31
01340Checksum
32Cur Hop LimitManaged Address FlagOther Configuration FlagReservedRouter Lifetime
64Reachable Time
96Retrans Time
128Options (Variable Size)
Neighbor Solicitation
Bit offset0–78–1516–31
01350Checksum
32Reserved
64Target Address (16 bytes)
192Options (Variable Size)
Neighbor Advertisement
Bit offset0–78–1516–31
01360Checksum
32From Router (R)Solicited Flag(S)Override(O)Reserved
64Target Address (16 bytes)
192Options (Variable Size)

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:

ICMPv6 Redirect
Bit offset0–78–1516–31
01370Checksum
32Reserved
64Target Address (16 bytes)
192Destination Address (16 bytes)
320Options (Variable Size)

Message processing

[edit]

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

[edit]
  1. ^abA. 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. RFC4443.Internet Standard 89. ObsoletesRFC 2463. UpdatesRFC 2780. Updated byRFC 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).Internet Engineering Task Force.doi:10.17487/RFC8415.ISSN 2070-1721.RFC8415.Proposed Standard. sec. 3. ObsoletesRFC 3315,3633,3736,4242,7083,7283 and7550.
  3. ^M. Crawford (August 2000).Router Renumbering for IPv6. Network Working Group.doi:10.17487/RFC2894.RFC2894.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.RFC3810.Proposed Standard. UpdatesRFC 2710. Updated byRFC 4604.
  5. ^abR. Bonica; R. Thomas; J. Linkova; C. Lenart; M. Boucadair (February 2018).PROBE: A Utility for Probing Interfaces.Internet Engineering Task Force.doi:10.17487/RFC8335.ISSN 2070-1721.RFC8335.Proposed Standard. UpdatesRFC 4884.
  6. ^S. Deering; R. Hinden (July 2017).Internet Protocol, Version 6 (IPv6) Specification.Internet Engineering Task Force.doi:10.17487/RFC8200. STD 86. RFC8200.Internet Standard 86. sec. 8.1. ObsoletesRFC 2460.
  7. ^R. Braden; D. Borman; C. Partridge (September 1988).Computing the Internet Checksum. Network Working Group.doi:10.17487/RFC1071.RFC1071.Informational. Updated byRFC 1141.

External links

[edit]
Wikiversity has learning resources about ICMPv6
General
Deployment
IPv4 to IPv6 topics
Related protocols
Retrieved from "https://en.wikipedia.org/w/index.php?title=ICMPv6&oldid=1305735218"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp