如果存在扩展标头,IPv6 数据包(UDP、TCP、ICMPv6 等)的校验和是否应该更改?例如,没有 Hop-By-Hop 扩展标头的 UDP 数据包与添加了 Hop-By-Hop 扩展标头的相同 UDP 数据包的校验和是否不同?
这是我的问题:
+---+ +---+ +---+
| A | ----> | B | ----> | C |
+---+ +---+ +---+
我有 3 台设备:
- A 正在向 C 发送 UDP 数据包。UDP 数据包不包含 Hop-By-Hop 扩展头。
- B 收到 A 的 UDP 数据包,添加一个 Hop-By-Hop 扩展头,并将修改后的数据包转发给 C。
- 由于校验和无效,C 拒绝该数据包。
我困惑的根源来自 UDP、TCP 和 ICMPv6 的 Wikipedia 页面,其中指出校验和是使用伪标头计算的,其中下一个标头字段设置为协议:UDP 为 17,TCP 为 6,TCP 为 58 ICMPv6。
我对上面的解释是,伪报头不依赖于数据包的下一个报头字段。因此,设备 C 不正确地计算校验和。