1. IPv4 首部 TTL 与 IPv6 Hop Limit 在转发时如何变化,校验和更新有何差异?
请说明 IPv4 首部 TTL 与 IPv6 Hop Limit 在每跳转发时如何变化,以及两类报文在校验和更新上有什么差异?
- TTL/Hop Limit 每跳减 1
- IPv4 首部校验和需要更新,IPv6 无首部校验和
- 校验和更新方式(增量更新)
转发时 IPv4 的 TTL 和 IPv6 的 Hop Limit 每经过一跳路由器都减 1,减到 0 时丢弃并回送 ICMP 超时(IPv4 用 ICMPv4 type 11,IPv6 用 ICMPv6)。差异在于校验和:IPv4 首部包含 checksum 字段(覆盖整个首部),TTL 变化后发送端必须重新计算/更新首部校验和,路由器通常用增量更新(incremental update)只对变化的字段做调整,避免全量重算;IPv6 首部没有校验和,Hop Limit 变化无需更新任何校验和,因而转发更简单高效。IPv6 的传输层校验和(TCP/UDP)因依赖伪首部,在 IPv6 下是必选的(IPv4 的 UDP 可选)。
IPv6 移除首部校验和是"简化转发"的体现,因为链路层已有较强差错检测,且每跳重算校验和增加开销。这是 IPv4 与 IPv6 在转发路径上的本质差异之一。