校验和的 UDP 校验和计算结果为零

网络工程 IPv4 tcp UDP 第 4 层 校验和
2022-02-24 03:49:03

我从Wikipedia中读到 UDP 校验和 ,“如果校验和计算的结果为零(所有 16 位 0),它应该作为一个补码(全 1)发送,因为零值校验和表示没有计算校验和。在这个在这种情况下,接收器不需要任何特定的处理,因为在 1 的补码算法中所有 0 和所有 1 都等于零。”

我不明白校验和计算何时在一个补码中为零,但所有 1 都可能得到。我的理解零和意味着没有数据可以计算。请帮忙。

1个回答

UDP 校验和值为零表示未使用校验和选项(不验证校验和值)。因此,计算出的校验和为零被全 1 替换,以明确指示该情况。

参见RFC 768

如果计算的校验和为零,则将其作为全 1 传输(在一个补码算法中的等价物)。传输的校验和值全为零意味着发送器没有生成校验和(用于调试或不关心的更高级别的协议)。