当UDP头校验和不正确时,UDP包是否被丢弃?

inn*_*sam 6 c++ linux networking udp

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

use*_*842 5

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

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

UDP不保证甚至会发送数据包,更不用说接收了.如果他们确实收到了,他们会被检查.如果他们的校验和失败,他们就会被丢弃

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


Hon*_*nza 5

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

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