根据我对UDP的了解,它没有错误处理,没有检查发送/接收的数据序列,没有检查重复的数据包,没有检查损坏的数据包以及显然不能保证已接收发送的数据包。 。
因此,考虑到这一点,为什么实际上在UDP中存在使用校验和的选项?因为可以肯定的是,如果您要确保以正确的顺序接收发送的数据(而不损坏等),则可以使用TCP ...
谢谢你的时间 :)
UDP数据包包括一个用于16位CRC校验和的字段,接收操作系统将使用该字段来检查数据包是否损坏。如果校验和存在且失败,则该数据包将被静默丢弃。由应用程序决定是否该数据包消失并采取纠正措施。
默认情况下,所有现代操作系统上均启用UDP校验和。可以在套接字或操作系统级别禁用IPv4中的UDP校验和。这样做将减少在发送者和接收者处处理每个数据包的CPU开销。例如,如果应用程序正在分别计算其自己的校验和,则可能需要这样做。没有任何校验和,将无法保证接收到的字节与发送的字节相同。