UDP 校验和如何告诉我我的数据是否已更改?

网络工程 UDP 传输协议 校验和
2022-03-01 22:23:04

目前我有一个计算机网络课程,我正在阅读“计算机网络自上而下的方法”

此时我正在阅读传输层部分。我已经阅读了 UDP 为错误检测提供的校验和方法。我理解算法,但我不明白如果我发送的应用程序数据没有变大或变小并改变长度部分(数字),这对我有什么帮助?

例如,有人试图操纵我的 UDP 数据报,他没有更改长度或其他一些头信息,他只是交换数据部分中的字符。其他示例是,例如,链路中的噪声或存储在路由器中时

所以我们的头信息没有变化,我会再次正确的校验和 1111111111111111 16 位长数字。

也许我错过了什么?

1个回答

除非您实施了传输层加密或应用程序级加密或数据签名,否则无法判断是否有人操纵了您的 UDP 数据报——无论是内容还是大小。当然,操作必须包括重新计算校验和。

校验和的唯一目的是提供传输完整性以防止意外更改,即接收 IP 堆栈可以查看数据报在传输中是否已损坏,然后将其丢弃 - 静默地丢弃它,因为它是 UDP。

如果更深层正在使用校验和(如在以太网的链路层中),则损坏的数据包/帧已经在途中被丢弃,早在到达目的地之前。