我的 Rpi 和 wifi 设备丢失数据包的原因是什么?

我的 Rpi 和 wifi 设备丢失数据包的原因是什么?

我正在使用 Rpi,并尝试通过 UDP 将一些数据从我的 wifi 设备传输到 Rpi。但我经常遇到数据包丢失。我不知道为什么,在较短的距离(例如 5 米)内仍会出现数据包丢失。

我所在的建筑物中有很多 wifi AP。我认为数据包丢失是由于干扰的影响,对吗?

你能帮我了解数据包丢失的原因吗?我在网上搜索过,但几乎所有文章都说数据包丢失是由于网络拥塞、多径衰落、硬件问题或软件问题造成的。

使用 UDP 的 wifi 丢包的主要原因有哪些?

答案1

UDP 不提供可靠的数据传输。即使直接连接到主机,通过有线方式发送的 UDP 数据包也可能丢失。

通过 WiFi 发送的数据包容易受到干扰,从而增加丢失的可能性,但这只是需要考虑的另一个因素。UDP 数据包可能会丢失很多原因例如:校验和检查失败、队列缓冲区被丢弃(因为已满或由于策略等原因)红色的,...),QoS 策略优先考虑其他流量,也许操作系统决定放弃它,因为它优先考虑其他流量,...

编辑:

干扰是无线网络中的一个重要因素,但并不是唯一的因素,例如,它还取决于设备的传输速率:它是否以接近恒定的速率发送数据包?它们是突发的吗?还是偶尔发送几个数据包然后等待?

您可以尝试通过在两端运行来确定数据包丢失的位置tcpdump——在发送方运行以确保数据包被发送,在接收方运行以检查它们是否至少到达主机。您应该监视接收器的 NIC 计数器以查看是否存在高数据包错误/丢失计数。如果您的路由器运行 Linux(例如 dd-wrt ​​或 openWRT)或有某种busybox您可以ssh进入的程序,您也可以tcpdump在路由器中运行以尝试查看路由器和目标主机之间是否丢失了数据包。

相关内容