UDP-可选校验和

Sup*_*off 6 error-handling checksum udp tcp packet

根据我对UDP的了解,它没有错误处理,没有检查发送/接收的数据序列,没有检查重复的数据包,没有检查损坏的数据包以及显然不能保证已接收发送的数据包。 。

因此,考虑到这一点,为什么实际上在UDP中存在使用校验和的选项?因为可以肯定的是,如果您要确保以正确的顺序接收发送的数据(而不损坏等),则可以使用TCP ...

谢谢你的时间 :)

Set*_*ble 5

UDP数据包包括一个用于16位CRC校验和的字段,接收操作系统将使用该字段来检查数据包是否损坏。如果校验和存在且失败,则该数据包将被静默丢弃。由应用程序决定是否该数据包消失并采取纠正措施。

默认情况下,所有现代操作系统上均启用UDP校验和。可以在套接字或操作系统级别禁用IPv4中的UDP校验和。这样做将减少在发送者和接收者处处理每个数据包的CPU开销。例如,如果应用程序正在分别计算其自己的校验和,则可能需要这样做。没有任何校验和,将无法保证接收到的字节与发送的字节相同。

  • 该应用程序不处理UDP校验和,通常甚至看不到它。这是在网络层处理的,并且可能发生在OS内核,网络驱动程序或网络接口卡中。如果校验和失败,接收应用程序将永远不会看到该数据包:它只会消失。 (2认同)