我最近在 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。同样,我在这里看到了相同的语义,但总体而言,总限制仍然存在。