Type |
1字节 |
消息类型,此处值为136。 |
Code |
1字节 |
该ICMPv6差错报文的始发者必须将该字段置为0,且接收端忽略该字段。 |
Checksum |
2字节 |
用来在ICMPv6报文中检验数据和部分IPv6首部的完整性。 |
R |
1比特 |
路由器标记。当置1时,R位指出发送者是路由器。R位由Neighbor Unreachability Detection使用,用于检测改变为主机的路由器。 |
S |
1比特 |
请求标记。当置1时,S位指出通告被发送以响应来自目的地地址的Neighbor Solicitation。S位用作Neighbor
Unreachability Detection的可达性确认。在多播通告和非请求单播通告中置0。 |
O |
1比特 |
替代标记。替代标志,1表示通告中的信息替代缓存,如更新链路层地址时,对于任播的回应则不应置位。在针对任播地址的请求通告中,以及在请求的前缀通告中它不能被置1。在其他请求通告中和在非请求通告中它应当被置1。 |
Reserved |
29比特 |
29位未使用字段。它必须由发送者初始化为0,接收者必须忽略它。 |
Target Address |
16字节 |
对于请求的通告,是在Neighbor Solicitation消息(该消息催促这个通告)中的Target Address字段。对于非请求通告,是其链路层地址已经改变的地址。Target
Address必须不是多播地址。 |
Options |
可变 |
选项:Target link-layer address: 目标的链路层地址,即,通告发送者。当响应多播请求时,在有地址的链路层上必须包括此选项。当响应单播Neighbor
Solicitation时应当包括此选项。
当对端节点由于没有缓存条目从而不能返回一个Neighbor Advertisements消息时,为了避免无休止的Neighbor
Solicitation“递归”,对于多播请求必须包括 此选项。当响应单播请求时,可忽略此选项,因为请求的发送者有正确的链路层地址;其他情况,此选项不能在第一位置发送单播请求。然而,在此情况,包括链路层地址仅增加了少许开销,却消除了潜在的竞争条件,那里在收到对先前的请求的响应之前,发送者删除缓存的链路层地址。
为TLV格式:
- Type: =2,字段长度为1字节。
- Length: 1字节,表示选项的长度(包括类型字段和长度字段),以8字节为单位计算。例如,IEEE802
地址的长度是1。
- Link-Layer Address: 可变长度的链路层地址。此字段的内容和形式(包括字节和比特顺序)一般由描述IPv6在不同链路层上如何运行的特定文件中规定。
|