如果我打开一个原始套接字,并发送带有错误校验和的udp数据包,那么这些数据包会被tcp / ip堆栈丢弃吗?
答案 0 :(得分:5)
是的,他们会被放弃。如果您需要更可靠的通信,那么使用TCP会更好。
有关详细信息,请查看以下内容:http://www.diffen.com/difference/TCP_vs_UDP
UDP无法保证甚至会发送数据包,更不用说接收了。如果他们确实收到了,他们会被检查。如果他们的校验和失败,他们就会被丢弃
编辑:也是为了补充一点,udp默认不会在发送数据包时对数据包进行排序,这必须在应用程序级别完成。如果您仍打算使用UDP,请记住这一点。
答案 1 :(得分:4)
如果数据包的校验和错误,操作系统会在将其传递给套接字之前删除它。
目标应用程序无法确定数据包是丢失还是校验和错误。 我认为它也不能强迫其他行为。