UDP校验和算法的可靠性如何?

UDP校验和算法的可靠性如何?,udp,checksum,Udp,Checksum,看起来UDP使用了一个相当简单的校验和算法,并且大部分情况下它会产生期望的结果并检测错误 然而,据我所知,UDP的头在使用巨型帧时是相同的,校验和也是相同的。只有16位 这是否会增加错误渗入的可能性,以及使用UDP的协议(尤其是那些使用大数据包的协议)根本不应该依赖UDP校验和?需要对大帧进行分段,并且每个分段都有一个与之相关联的校验和。报头的大小没有改变是正确的,但是发送的数据包的数量会改变,从而增加发送的校验和位的数量。我希望这会有所帮助。正如您所指出的,UDP使用16位校验和,无论数据包有

看起来UDP使用了一个相当简单的校验和算法,并且大部分情况下它会产生期望的结果并检测错误

然而,据我所知,UDP的头在使用巨型帧时是相同的,校验和也是相同的。只有16位


这是否会增加错误渗入的可能性,以及使用UDP的协议(尤其是那些使用大数据包的协议)根本不应该依赖UDP校验和?

需要对大帧进行分段,并且每个分段都有一个与之相关联的校验和。报头的大小没有改变是正确的,但是发送的数据包的数量会改变,从而增加发送的校验和位的数量。我希望这会有所帮助。

正如您所指出的,UDP使用16位校验和,无论数据包有多大。如果更改没有改变所有16位字的总和,UDP校验和将无法检测错误。随着数据包大小的增加,这种情况更可能发生

然而,UDP通常运行在以太网之上,以太网提供32位CRC,这比UDP校验和更健壮。因此,大多数人依靠etherframe来保证数据完整性


大型UDP数据包将被分割成多个IP数据包,每个数据包都在自己的以太网数据包中,并带有32位CRC。因此,从数据完整性的角度来看,发送大型UDP数据包不是一个问题,尽管IP碎片会增加数据包丢失和重新排序。

两点。巨型帧!=较大的碎片帧,如果UDP负载碎片化,则只有一个UDP校验和。但每个片段都有一个IP校验和。@skjaidev感谢您指出jumbo!=大的。我不知道jumbo是一个专业术语。我很高兴我学到了一些东西。我为这个糟糕的回答道歉。