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

时间:2013-08-26 20:44:12

标签: c++ linux networking udp

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

2 个答案:

答案 0 :(得分:5)

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

有关详细信息,请查看以下内容:http://www.diffen.com/difference/TCP_vs_UDP

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

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

答案 1 :(得分:4)

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

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