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

问题描述 投票:0回答:2

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

c++ linux network-programming udp
2个回答
6
投票

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

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

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

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


5
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.