ICMPv6报文格式
ICMPv6(Internet Control Message Protocol version 6)是IPv6网络使用的控制消息,功能类似于IPv4网络的ICMP。
-
-
用于检测IPv6网络连通性的Ping/Tracert,是通过发送ICMPv6 Echo (回显请求/应答)消息实现的。
-
当IPv6路由设备无法转发或者交付IPv6数据报时,会向源站发送一个ICMPv6目的不可达消息,然后丢弃该数据报。
-
ICMPv6重定向消息是ICMPv6控制报文中的一种。在特定的情况下,当路由器检测到一台主机或网络设备使用非优化路由的时候,它会向该主机或网络设备发送一个ICMPv6重定向报文,请求主机或网络设备改变路由。路由器也会把初始数据报向它的目的地转发。
-
如果IPv6节点收到的IPv6数据包超过出接口的IPv6 MTU时,丢弃该数据包并返回ICMPv6包太大(Too Big)消息。IPv6的路径MTU(Path MTU)机制中会用到此消息。ICMPv6消息封装在IPv6报文中,IPv6首部携带了一个或多个IPv6扩展头,扩展头中的Next Header字段值为58(0x3a)。
-
当收到TTL为0的报文时,IPv6网络设备/主机会丢弃该报文,并返回一个ICMPv6超时消息。
-
如果发现接收的数据包存在报文头参数有问题,无法完成数据包解析时,IPv6网络/主机会将数据包丢弃,并可能会返回一个ICMPv6参数问题消息给源端。
-
主机启动后,通过ICMPv6路由器请求RS(Router Solicitation)消息报文向路由设备发出请求,路由设备则会以RA报文响应。
-
IPv6路由器周期性发送ICMPv6路由器通告RA(RouterAdvertisement)消息,或者在收到路由请求RS(Router Solicitation)消息时回应ICMPv6 RA消息。ICMPv6 RA消息包括前缀和一些标志位的信息。
-
IPv6节点通过邻居请求NS(Neighbor Solicitation)消息可以得到邻居的链路层地址,检查邻居是否可达,也可以进行重复地址检测。
-
ICMPv6邻居通告NA(Neighbor Advertisement)消息是IPv6节点对ICMPv6邻居请求NS(Neighbor Solicitation)消息的响应,同时IPv6节点在链路层变化时也可以主动发送NA消息。
协议栈结构
ICMPv6消息封装在IPv6报文中,IPv6首部携带了一个或多个IPv6扩展头,扩展头中的 Next Header 字段值为58(0x3a)。
ICMPv6消息封装格式
+-------------------------------+
| ICMPv6 |
+-------------------------------+
| IPv6 (Protocol = 0x3a) |
+-------------------------------+
| L2 |
+-------------------------------+
| L1 |
+-------------------------------+
ICMPv6报文通用格式
ICMPv6报文通用格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Message Body +
| |
ICMPv6报文通用报文字段解释
| 字段 | 长度 | 描述 |
|---|---|---|
| Type | 1B | 定义了报文的类型,该字段决定了其它部分的报文格式。Type字段的取值和含义如所示。 |
| Code | 1B | 该字段依赖TYPE字段,在TYPE字段的基础上,它被用来在基本类型上创建更详细的报文等级。该字段的取值和含义如所示。 |
| Checksum | 2B | 用来在ICMPv6报文中检验数据和部分IPv6首部的完整性。 |
| Message Body | 可变 | 大体上说,ICMPv6报文可以被分为2大类:差错报文与消息报文。这2类报文是依靠报文中的TYPE字段来标识的,当TYPE字段的最高位置0,即在0~127范围时(TYPE字段长度为1字节),被标识为差错报文,TYPE字段值为128~255范围时,则标识为消息报文。详细请参见。 |
ICMPv6报文类型
ICMPv6报文类型对应表
| Type | Code | 消息名 |
|---|---|---|
| 1 |
0 | 没有路由到达目的地 |
| 1 | 与目的地的通信由于管理被禁止 | |
| 2 | 超过了源地址的范围 | |
| 3 | 地址不可达 | |
| 4 | 端口不可达 | |
| 5 | 源地址的入口/出口策略失败 | |
| 6 | 拒绝路由到达目的地 | |
| 2 | 0 | 包太大 |
| 3 |
0 | 传输过程中“hop-limit”超时 |
| 1 | 分片重组超时 | |
| 4 |
0 | 参数错误 |
| 1 | 错误的首部字段 | |
| 2 | 不可识别的Next Header类型 | |
| 3 | 不可识别的IPv6选项 | |
| 100 | x | 私有实验用 |
| 101 | x | 私有实验用 |
| 127 | x | ICMPv6差错报文扩展保留 |
| 128 | 0 | 回显请求 |
| 129 | 0 | 回显应答 |
| 133 | x | 路由请求 |
| 134 | x | 路由通告 |
| 135 | x | 邻居请求 |
| 136 | x | 邻居通告 |
| 137 | x | 重定向 |
| 143 | x | 组播MLDv2 (Multicast Listener Report Message v2)消息 |
| 200 | x | 私有实验用 |
| 201 | x | 私有实验用 |
| 255 | x | ICMPv6消息报文扩展保留 |
ICMPv6 Echo消息
用于检测IPv6网络连通性的Ping/Tracert,是通过发送ICMPv6 Echo (回显请求/应答)消息实现的。
ICMPv6 Echo消息的格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+-------------------------------+
| Type | Code | Checksum |
+---------------+---------------+-------------------------------+
| Identifier | Sequence Number |
+-------------------------------+-------------------------------+
| Data ...
+---------------
ICMPv6 Echo消息字段解释
| 字段 | 长度 | 含义 |
|---|---|---|
| Type | 1B | 消息类型:128: Echo Request 129: Echo Reply |
| Code | 1B | 消息代码,此处值为0。 |
| Checksum | 2B | 用来在ICMPv6报文中检验数据和部分IPv6首部的完整性。 |
| Identifier | 2B | 请求与应答报文能够彼此匹配的一个标识,可能是全0。 |
| Sequence Number | 2B | 请求与应答报文能够彼此匹配的一个标识,可能是全0。 |
| Data | 变长 | 0或任意数据的8位组。 |
ICMPv6目的不可达消息
当IPv6路由设备无法转发或者交付IPv6数据报时,会向源站发送一个ICMPv6目的不可达消息,然后丢弃该数据报。
ICMPv6目的不可达消息的格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Unused |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| As much of invoking packet |
+ as possible without the ICMPv6 packet +
| exceeding the minimum IPv6 MTU [IPv6] |
ICMPv6目的不可达消息字段含义
| 字段 | 长度 | 含义 |
|---|---|---|
| Type | 1B | 消息类型,此处值为1。 |
| Code | 1B | 消息代码,详细代码请参见。 |
| Checksum | 2B | 用来在ICMPv6报文中检验数据和部分IPv6首部的完整性。 |
| unused | 4B | 该字段对所有的code值均未使用。在报文的发送端,该字段必须被初始化为0,且在接收端,该字段应该被忽略。 |
ICMPv6重定向消息
ICMPv6重定向消息是ICMPv6控制报文中的一种。在特定的情况下,当路由器检测到一台主机或网络设备使用非优化路由的时候,它会向该主机或网络设备发送一个ICMPv6重定向报文,请求主机或网络设备改变路由。路由器也会把初始数据报向它的目的地转发。
ICMPv6重定向消息的格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Target Address ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Destination Address ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options ...
+-+-+-+-+-+-+-+-+-+-+-+-
ICMPv6重定向消息字段含义
| 字段 | 长度 | 含义 |
|---|---|---|
| Type | 1B | 消息类型,此处值为137。 |
| Code | 1B | 该ICMPv6差错报文的始发者必须将该字段置为0,且接收端忽略该字段。 |
| Checksum | 2B | 用来在ICMPv6报文中检验数据和部分IPv6首部的完整性。 |
| Reserved | 4B | 此字段未使用。它必须由发送者初始化为0,接收者必须忽略它。 |
| Target Address | 16B | 更好的下一跳地址。当目标是实际通信端点时,即,目的地是邻居,Target Address字段必须包括与ICMP Destination Address字段相同的值。其他情况,目标是更好的第一跳路由器并且Target Address必须是该路由器的链路本地地址,以便主机能够唯一地识别路由器。 |
| Destination Address | 16B | 重定向到目标的目的地的IP地址。 |
| Options | 可变 | 选项,TLV格式。 |
ICMPv6包太大(Too Big)消息
如果IPv6节点收到的IPv6数据包超过出接口的IPv6 MTU时,丢弃该数据包并返回ICMPv6包太大(Too Big)消息。IPv6的路径MTU(Path MTU)机制中会用到此消息。ICMPv6消息封装在IPv6报文中,IPv6首部携带了一个或多个IPv6扩展头,扩展头中的Next Header字段值为58(0x3a)。
ICMPv6包太大消息的格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MTU |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| As much of invoking packet |
+ as possible without the ICMPv6 packet +
| exceeding the minimum IPv6 MTU |
ICMPv6包太大消息字段解释
| 字段 | 长度 | 含义 |
|---|---|---|
| Type | 1B | 消息类型,此处值为2。 |
| Code | 1B | 该ICMPv6差错报文的始发者必须将该字段置为0,且接收端忽略该字段。 |
| Checksum | 2B | 用来在ICMPv6报文中检验数据和部分IPv6首部的完整性。 |
| MTU | 4B | 下一跳链路的最大传输单元。 |
ICMPv6参数错误消息
如果发现接收的数据包存在报文头参数有问题,无法完成数据包解析时,IPv6网络/主机会将数据包丢弃,并可能会返回一个ICMPv6参数问题消息给源端。
ICMPv6参数错误消息的格式
+0-------7-------15---------------31
| Type | Code | Checksum |
+----------------------------------
| Pointer |
+---------------------------------+
| As much of invoking |
| packet as possible without |
| the ICMPv6 packet exceeding |
| the minimum IPv6 MTU |
+---------------------------------+
ICMPv6参数错误消息字段解释
| 字段 | 长度 | 含义 |
|---|---|---|
| Type | 1B | 消息类型,此处值为4。 |
| Code | 1B | 0 – 错误的首部字段; 1 – 不可识别的Next Header类型; 2 – 不可识别的IPv6选项。 |
| Checksum | 2B | 用来在ICMPv6报文中检验数据和部分IPv6首部的完整性。 |
| Pointer | 4B | 标识出报文中出现错误地方的8位片偏移量;若原报文中出现错误的地方在ICMPv6差错报文达到最大长度时也不能被包括在内,指针的值将超过ICMPv6差错报文的长度。 |
ICMPv6路由器请求RS(Router Solicitation)消息
主机启动后,通过ICMPv6路由器请求RS(Router Solicitation)消息报文向路由设备发出请求,路由设备则会以RA报文响应。
ICMPv6路由器请求消息的格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options ...
+-+-+-+-+-+-+-+-+-+-+-+-
ICMPv6路由器请求消息字段解释
| 字段 | 长度 | 含义 |
|---|---|---|
| Type | 1B | 消息类型,此处值为133。 |
| Code | 1B | 该ICMPv6差错报文的始发者必须将该字段置为0,且接收端忽略该字段。 |
| Checksum | 2B | 用来在ICMPv6报文中检验数据和部分IPv6首部的完整性。 |
| Reserved | 4B | 此字段不使用。它必须由发送者初始化为0,接收者必须忽略它。 |
| Options | 可变 | 选项 |
ICMPv6路由器通告RA(RouterAdvertisement)消息
IPv6路由器周期性发送ICMPv6路由器通告RA(RouterAdvertisement)消息,或者在收到路由请求RS(Router Solicitation)消息时回应ICMPv6 RA消息。ICMPv6 RA消息包括前缀和一些标志位的信息。
ICMPv6路由器通告消息的格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cur Hop Limit |M|O| Reserved | Router Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reachable Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Retrans Timer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options ...
+-+-+-+-+-+-+-+-+-+-+-+-
ICMPv6路由器通告消息字段解释
| 字段 | 长度 | 含义 |
|---|---|---|
| Type | 1B | 消息类型,此处值为134。 |
| Code | 1B | 该ICMPv6差错报文的始发者必须将该字段置为0,且接收端忽略该字段。 |
| Checksum | 2B | 用来在ICMPv6报文中检验数据和部分IPv6首部的完整性。 |
| Cur Hop Limit | 1B | 8位无符号整数。默认值应当放置在发出IP分组的IP首部的Hop Count字段中。 取0值意味着未(由该路由器)规定。 |
| M | 1bit | 1位“管理地址配置”标记。当置1时,它指出地址可通过Dynamic Host Configuration协议获得。如果M标记置1,则O标记为冗余,可以忽略,因为DHCPv6将返回所有可用配置信息。 |
| O | 1bit | 1位“其他配置”标记。当M=0且O=1时,指示其他配置信息可通过DHCPv6获得。例如,这类信息包括DNS相关信息或关于网络内其他服务器的信息。如果M=0且O=0,指示没有信息可通过DHCPv6获得。 |
| Reserved | 6bits | 6位未使用字段。它必须由发送者初始化为0,接收者必须忽略它。 |
| Router Lifetime | 2B | 16位无符号整数。与默认路由器关联的生存期,以秒为单位。最大值18.2小时。取0值的Lifetime指出路由器不是默认路由器并且不应当出现在默认路由器列表中。Router Lifetime仅适用于作为默认路由器的路由器应用;对包括在其他消息字段或选项中的信息不适用。需要对它们的信息规定时间限制的选项有它们自己的生存期字段。 |
| Reachable Time | 4B | 32位无符号整数。此时间以毫秒计,在收到可达性确认后节点假定该邻居是可到达的。它由Neighbor Unreachability Detection算法使用(参阅第7-3节)。此值为0意味着没有(由此路由器)作出规定。 |
| Retrans Timer | 4B | 32位无符号整数。重发的Neighbor Solicitation消息间隔时间,以毫秒计。由地址解析和Neighbor Unreachability Detection算法使用。此值为0意味着没有(由此路由器)作出规定。 |
| Options | 可变 | 选项 |
ICMPv6邻居请求NS(Neighbor Solicitation)消息
IPv6节点通过邻居请求NS(Neighbor Solicitation)消息可以得到邻居的链路层地址,检查邻居是否可达,也可以进行重复地址检测。
ICMPv6邻居请求消息
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Target Address ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options ...
+-+-+-+-+-+-+-+-+-+-+-+-
ICMPv6邻居请求消息字段含义
| 字段 | 长度 | 含义 |
|---|---|---|
| Type | 1B | 消息类型,此处值为135。 |
| Code | 1B | 该ICMPv6差错报文的始发者必须将该字段置为0,且接收端忽略该字段。 |
| Checksum | 2B | 用来在ICMPv6报文中检验数据和部分IPv6首部的完整性。 |
| Reserved | 4B | 此字段不使用。它必须由发送者初始化为0,接收者必须忽略它。 |
| Target Address | 16B | 请求的目标的IP地址。它必须不是多播地址。 |
| Options | 可变 | 选项 |
ICMPv6邻居通告NA(Neighbor Advertisement)消息
ICMPv6邻居通告NA(Neighbor Advertisement)消息是IPv6节点对ICMPv6邻居请求NS(Neighbor Solicitation)消息的响应,同时IPv6节点在链路层变化时也可以主动发送NA消息。
ICMPv6邻居通告NA
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R|S|O| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Target Address ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options ...
+-+-+-+-+-+-+-+-+-+-+-+-
ICMPv6邻居通告NA消息字段解释
| 字段 | 长度 | 含义 |
|---|---|---|
| Type | 1B | 消息类型,此处值为136。 |
| Code | 1B | 该ICMPv6差错报文的始发者必须将该字段置为0,且接收端忽略该字段。 |
| Checksum | 2B | 用来在ICMPv6报文中检验数据和部分IPv6首部的完整性。 |
| R | 1bit | 路由器标记。当置1时,R位指出发送者是路由器。R位由Neighbor Unreachability Detection使用,用于检测改变为主机的路由器。 |
| S | 1bit | 请求标记。当置1时,S位指出通告被发送以响应来自目的地地址的Neighbor Solicitation。S位用作Neighbor Unreachability Detection的可达性确认。在多播通告和非请求单播通告中置0。 |
| O | 1bit | 替代标记。替代标志,1表示通告中的信息替代缓存,如更新链路层地址时,对于任播的回应则不应置位。在针对任播地址的请求通告中,以及在请求的前缀通告中它不能被置1。在其他请求通告中和在非请求通告中它应当被置1。 |
| Reserved | 29bits | 29位未使用字段。它必须由发送者初始化为0,接收者必须忽略它。 |
| Target Address | 16B | 对于请求的通告,是在Neighbor Solicitation消息(该消息催促这个通告)中的Target Address字段。对于非请求通告,是其链路层地址已经改变的地址。Target Address必须不是多播地址。 |
| Options | 可变 | 选项 |
Options
ICMPv6 Options格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ... ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Options Type Code
| Option Name | Type | 说明 |
|---|---|---|
| Source Link-Layer Address | 1 | 该选项包含数据包发送方的链路层地址。它用于 Neighbor Solicitation、Router Solicitation 和 Router Advertisement 数据包。对于其他邻居发现消息,必须默默地忽略该选项。 |
| Target Link-Layer Address | 2 | 该选项包含目标的链路层地址。它用于Neighbor Advertisement和重定向数据包。对于其他邻居发现消息,必须默默地忽略该选项。 |
| Prefix Information | 3 | 该选项为主机提供链路上前缀和地址自动配置前缀。该选项出现在 Router Advertisement 数据包中,出现在其他消息中会被静默忽略。 |
| Redirected Header | 4 | 该选项用于重定向消息,包含被重定向的全部或部分数据包。 |
| MTU | 5 | 该选项用于路由器广告消息中,以确保在链路 MTU 未知的情况下,链路上的所有节点都使用相同的 MTU 值。 |
Source/Target Link-layer Address
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+-------------------------------+
| Type | Length | Link-Layer Address ...
+---------------+---------------+-------------------------------+
Prefix Information
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Prefix Length |L|A| Reserved1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Valid Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Preferred Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Prefix ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Redirected Header
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ IP header + data ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
MTU
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MTU |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
参考标准
| 标准 | 描述 |
|---|---|
| Neighbor Discovery for IP Version 6 (IPv6) | |
| Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification |
No comments to display
No comments to display