摘要
- IPv4 的 16 位校验和只覆盖报头,用来检查处理和转发数据报所需的信息。
- 报头字段会在传输中改变,因此每个报头处理点都必须验证并重新计算校验和。
保护转发所依赖的部分
RFC 791 将校验和定义为报头所有 16 位字的一补码和的反码。计算时,校验和字段本身按零处理,结果写回报头。
目的地址、长度、分片状态、生存时间和协议标识都会影响数据报的处理。RFC 791 因而说明,校验和验证的是处理信息,而数据本身仍可能出错。检测到报头校验失败时,检测实体必须立即丢弃数据报。
这不是端到端的数据完整性服务。IPv4 校验和不覆盖载荷;仅凭它无法知道载荷是否受到其他机制保护。
报头会合法地变化
路由器处理数据报时会减少 TTL。分片、地址变化或选项变化也可能改写报头。RFC 791 要求在每个报头处理点进行验证和重新计算。
实现可以完整重算,也可以只根据旧值和变化字段进行增量更新。RFC 1624 强调,增量路径必须与完整计算产生完全相同的结果。
零的两种表示
一补码算术有正零和负零两种零表示。RFC 1141 的早期增量公式在特殊情况下可能得到与完整计算不同的表示。RFC 1624 修正了公式,但没有改变线上的字段宽度或报头专属范围。
来源
会员简报
阅读完整趋势简报
会员可阅读完整简报,以及每项发现背后的来源注释。
战略圈层
每天用你选择的语言,送上一份基于我们已核实变化的简报。
以 USD 20/月加入可随时取消。
会员还能使用完整的研究文库、关于所关注网络的每日简报,以及私密论坛。






