平均UDP数据包丢失率和数据包乱序

11

我想了解与UDP数据包丢失(或掉包)有关的问题,希望得到SO社区中其他人的经验。

起初我的理解是,如果直接进行点对点连接,并且NIC通过交叉线缆连接且具有充足的缓冲区,并及时处理这些缓冲区,那么就不应该存在数据包丢失或排序问题。我相信,在两点之间加入一个好的/高端交换机也是如此。

  1. 除上述情况外,局域网中预期的平均UDP数据包丢失率是多少?

  2. 什么情况会导致UDP数据包排序问题?


Sami,你是在解决一个实际问题,还是这只是一个理论问题? - Mike Pennington
3个回答

4

对于平均局域网上的UDP数据包丢失,我不确定。我假设在现代交换网络上相对较低,否则您的局域网或终端负载过高。 :)

重新排序可能最容易实现的方法是在路由启动和关闭时进行;例如,您组织中的一个交换机负载足够重,需要重新组织树形结构并将流量发送到不同的交换机。更有可能的是您的ISP的对等方进出或达到流量限制,并且它们通过的数据包的优先级发生变化--旧数据包在重载网络上飞行,新数据包在轻载网络上飞行,并且它们无序到达。


2
我也在寻找预期的平均值。我发现从直接链接(PC到PC)时,数据包丢失很少发生,尽管确实会发生。在50 Hz下,1 kB数据包的可用性大约为99.9%。
我曾经看到通过在同一网络接口上发送和接收而重新排序。我得出结论,这是因为每个数据包都是异步处理的,所以新到达的数据包被处理之前,先前接收到的数据包有机会被处理。

2
在我的基本千兆交换机局域网中,使用FreeBSD、Solaris或Linux时,即使每秒发送50000个数据包,也不会出现任何丢包情况。但是Windows则有些特殊,在低速率(例如每秒10000个)下,我很容易看到在完全相同的硬件上出现数据包丢失的情况。这主要是由于WinSock和NIC之间的缓冲区溢出引起的。如果你发送数据包的速度更快,则会丢失更多数据包;如果你间隔发送数据包,则会丢失较少数据包。并没有一个神奇的数字,我的情况可能更糟,因为Broadcom的Windows驱动程序很差。你可以很容易地看到数据包排序问题,但几乎总是只有最后两个数据包被交换。这是交换机功能的产物。有趣的是,你没有提到Wi-Fi,无线电信号极易受干扰和环境条件影响。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接