7

如果我打开一个原始套接字,并发送带有错误校验和的 udp 数据包,这些数据包是否会被 tcp/ip 堆栈丢弃在另一端?

4

2 回答 2

6

是的,他们会被丢弃。如果您需要更可靠的通信,最好使用 TCP。

有关更多信息,请查看:http ://www.diffen.com/difference/TCP_vs_UDP

UDP 不能保证数据包会被发送,更不用说接收了。但是,如果它们实际上已收到,则会对其进行检查。如果它们校验和失败,它们将被丢弃。

编辑:此外,udp 默认情况下不会在发送数据包时对其进行排序,这必须在应用程序级别完成。如果您仍打算使用 UDP,请记住这一点。

于 2013-08-26T20:49:37.703 回答
5

如果数据包的校验和错误,操作系统将在将其传递给套接字之前将其丢弃。

目标应用程序无法确定数据包是否丢失或带有错误的校验和。我认为它也不能强迫其他行为。

于 2013-08-26T21:00:55.983 回答