1. Internet Control Message Protocol for the IPv6 特征
ICMPv6 Message 格式解析
- Type:表明消息的类型
- 0~127 表示差错报文类型
- 1:目的不可达错误(数据包无法被转发到目的节点或上层协议)
- 2:数据包过大错误(报文超过出接口的MTU)
- 3:时间超时错误
- 4:参数错误
- 128~255 表示消息报文类型
- 128:回送请求报文(Request)
- 129:回送应答报文(Reply)
- 0~127 表示差错报文类型
- Code:表示此消息类型的细分类型
- Checksum:ICMPv6的校验和
3. ICMPv6 报文类型对应表
Type | Code | 消息名 |
---|---|---|
1 | 0 | 没有路由到达目的地 |
1 | 1 | 与目的地的通信由于管理被禁止 |
1 | 2 | 超过了源地址的范围 |
1 | 3 | 地址不可达 |
1 | 4 | 端口不可达 |
1 | 5 | 源地址的入口/出口策略失败 |
1 | 6 | 拒绝路由到达目的地 |
2 | 0 | 包太大 |
3 | 0 | 传输过程中“hop-limit”超时 |
3 | 1 | 分片重组超时 |
4 | 0 | 参数错误 |
4 | 1 | 错误的首部字段 |
4 | 2 | 不可识别的Next Header类型 |
4 | 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消息报文扩展保留 |
4. Path MTU 发现协议(PMTU)
可以动态发现整条传输路径上各链路的MTU值,减少由于重传带来的额外流量开销
- 在 IPv4 中,报文如果过大,必须要分片进行发送
- 在每个节点发送报文之前,设备都会根据发送接口的最大传输单元 MTU 来对报文进行分片
- 在 IPv6 中,为了减少中间转发设备的处理压力,中间转发设备不对 IPv6 报文进行分片,报文的分片将在源节点进行
- 当中间转发设备的接口收到一个报文后,如果发现报文长度比转发接口的 MTU 值大,则会将其丢弃
- 同时将转发接口的 MTU 值通过 ICMPv6 报文的 “Packet Too Big” 消息发给源端主机,告知源端口主机转发接口的 MTU,源端主机以该值重新发送 IPv6 报文