为什么 wifi 设备在其他设备开始工作时变慢?

网络工程 无线的 IEEE-802.11
2021-07-14 13:20:16

我最近在 802.11g 上做了一些测试,结果让我很困惑。我将在下面详细介绍。首先请理解我是一名软件开发人员,但不是网络工程师。我对 wifi 或网络一般工作方式的最低层知之甚少。所以这其中的一部分将是一个学习练习,同时试图解释我所看到的行为。

在我的测试中,我有 15 个运行 802.11g wifi 芯片的电池供电的 ARM 设备。我在我的机器上运行一个脚本,该脚本向 15 个设备中的每一个发送 SSH 命令,该命令执行rsync以提取大约 5GB 的数据。

网络主要是Aruba设备。我对此知之甚少,但我知道 AP 是他们的 205 型号,为了测试,我让他们将其配置为 2.4GHz,因为无论如何,这就是所有设备的能力。

当我运行 1 个设备时,它的速度约为 2MB/s。当我运行所有 15 台设备时,它们都减慢到每台设备50-100KB/s左右,甚至更多(它上下跳动很多,范围很广,并且非常不一致)。总体而言,所有 15 台设备的总吞吐量为 2-4MB/s。即使我关闭设备,所有设备的最大 2-4MB/s 也不会改变。当我关闭设备时,每个设备最终会变得更快,而当我打开更多设备时,每个设备最终会变得更慢。就好像某处发生了一些奇怪的负载平衡。

我幼稚的假设是,由于单个设备获得 1-2MB/s 的速度,因此 15 个设备将每个获得相同的速度,总共 30MB/s 左右。正如与我一起工作的其他人告诉我的那样,这不是它的工作方式。但是他们没有解释为什么当其他设备在网络上忙碌时设备吞吐量会实时受到影响。

谁能解释这种奇怪的负载平衡行为?我的感觉是,1 台设备的总体最大吞吐量与 15 台设备的总吞吐量相同。

我运行的后续测试涉及 15 个完全不同的 ARM 设备,它们带有支持 5GHz 和 2.4GHz 的 wifi 芯片,但由于我限制在 2.4GHz,我相信它们运行在 802.11n 上。在这些速度下,单个设备的运行速度在 5-10MB/s 之间,但如果有 15 个设备,它的总速度为 8MB/s。同样,我在这里看到了相同的语义,但总体而言,总限制仍然存在。

2个回答

Wifi 是一种共享媒体。这意味着一次只能发送一个站。当只有一个站传输时,它与接入点共享介质。站点(例如,膝上型电脑)和接入点轮流相互发送数据——它们不能同时发送数据。

如果有多个站点,则每个站点都必须等到介质空闲后才能进行传输。站点越多,就越有可能需要等待(并且也更长)才能进行传输。

打个比方,想象一艘渡轮载着乘客过河。如果只有一个乘客想过河,他或她可以直接上渡轮(或者最坏的情况是等待渡轮从另一边回来)。但是如果很多人想乘坐,他们必须在渡轮上等待一个空位。等待的人越多,穿越所需的时间就越长。

802.11 协议具有为每个等待站提供访问介质的平等机会的机制。

Wifi-6 将为我们改变这一点。这将允许所有设备根据他们的需要获得一大块带宽,并且不需要轮流与 Wifi 网络上的每个设备交谈,即使有一个很多设备。