为什么理论和实际 Wifi 速度之间存在如此大的差异?

网络工程 以太网 IEEE-802.11 表现
2022-02-05 01:21:14

我正在测试从网络共享传输文件的实际速度。

在我的 1 Gigabit 以太网上,我得到大约 120 MB/s - 这是理论最大值的 96%。

在我的旧无线 GI 上获得大约 2.5 MB/s - 这只是 54 Mbit/s 的理论最大值的 37%。

在我的新无线 AC 上,我得到大约 30 MB/s - 这只是 866 Mbit/s 的理论最大值的 28%。

在每种情况下,客户端和服务器机器都是相同的。它们拥有巨大的 CPU 能力和一系列出色的 M.2 NVMe SSD,因此硬件应该不是问题。

在这两种情况下,高级协议是相同的,因此协议开销应该相同(物理层除外)。SMB -> TCP -> IP -> PHY。

对于无线案例,客户端和服务器相距约 1 m,在视线范围内以及在 2.4 和 5 GHz 上没有或很少流量的农村地区。

与以太网相比,为什么我所有的无线连接都与理论最大值相差如此之远?

(使用华硕 RT-AC88U 进行无线 AC 测试)。

3个回答

虽然是一个相当简单的问题,但答案却相当复杂。仅仅是因为有很多因素可以影响您在无线上的实际吞吐量。

让我先清理一些东西;即您使用术语“理论”和“真实” WiFi 速度。从理论上讲,您只是指无线环境能够传输的数据速率。实际上,您指的是两个客户端端点之间的端到端吞吐量。这些不相等。

虽然 802.11 系统可能会使用其最大数据速率来传输数据,但通常情况下并非如此,而且最现实的是​​,在数据传输期间,数据正在以多种不同的数据速率传输。这将对实际吞吐量产生影响。

然后在传输数据时总会出现某种程度的低效率,即使您只是将使用的标头视为低效率的一个点。正如您所指出的,即使是有线以太网连接也无法将其吞吐量与数据速率相匹配。

以下是造成 802.11 的可能数据速率和吞吐量之间差异的一些(不是全部)因素:

  • 802.11 是半双工的。这意味着一次只有一台设备可以通话,即使使用一台客户端设备,这意味着有两台设备在尝试传输时必须共享“通话时间”(即可用于传输的时隙数)。
  • 802.11 使用多种不同的数据速率进行通信,可能一直低至 1 Mbit/s。离接入点太近或太远,使用的数据速率可能会下降。如果环境与相同或附近频率的其他通信“嘈杂”,则相同。
  • 802.11 要求确认所有数据帧(或从 802.11n 开始支持时,多个帧的聚合),否则数据将被重新传输。这些 ack 占用了一些“通话时间”。
  • 802.11 使用多种类型的管理帧。这些管理帧通常以比数据帧低得多的数据速率传输,因此该区域中所有支持的设备都可以接收它们。这些示例将是信标、探测请求和探测响应。
  • 对传统 802.11 协议的支持可能需要使用其他类型的管理帧,例如 RTS/CTS,以防止可能无法理解新设备正在传输的旧设备之间的冲突。
  • 支持(或不支持)可能对客户端和/或基础设施可用的可选 802.11 功能。如果两者都支持,其中一些将显着提高性能。
  • 在相同频率(或重叠频率)上运行的其他 802.11 网络的数量。同一区域中只需一个其他网络即可将您的吞吐量降低 50%。
  • 您的基础设施正在传输的 SSID(即无线网络)的数量。每个 SSID 都有自己的管理开销,降低了“通话时间”的效率。
  • 与接入点关联的客户端设备越多,它们获得的“通话时间”份额就越小。根据使用的基础设施,它可以尝试以某种方式管理通话时间的使用,或者将其留作随机分配。
  • 如果基础设施没有使用“通话时间公平”过程,则数据速率较低的客户端设备将占用不成比例的通话时间来传输与具有较高数据速率的客户端相同数量的数据。
  • 某些类型的流量(广播和多播)会导致数据以较低的数据速率传输或可能多次传输。大多数客户端设备上都有许多经常运行的后台应用程序发送此类流量。
  • 该区域中更多的客户端设备将降低效率,无论它们是否关联。这是因为大多数客户端设备将继续发送探测请求并期待探测响应,即使在连接到 AP 以尝试找到更好的连接点(即漫游)时也是如此。
  • 相同频率/频率上的干扰会对性能产生重大影响。对于 2.4 GHz,这包括许多设备,例如蓝牙设备、无线键盘/鼠标、微波炉、附近车辆中的轮胎压力传感器等。
  • AP 和/或客户端设备的天线方向会显着影响信号质量。
  • 空气中的湿度会吸收 802.11 信号,从而降低信号强度。
  • 您的身体相对于 AP 和客户端设备的位置。
  • AP 和/或客户端设备与可能导致反射的物体(例如混凝土墙)的距离有多近。对于 802.11 设备来说,被塞进角落可能非常糟糕。
  • 客户端和/或基础架构的驱动程序质量。这会对性能产生重大影响。我个人处理过的几个例子之一是,一位客户供应商在 802.11n 被批准后有一段时间出现驱动程序问题,导致他们的无线设备在某些条件下传输数千个不必要的帧。这极大地影响了这些客户端设备的性能,直到后来的驱动程序更新修复了它。

我可以继续,但希望你开始明白这一点。有很多因素可以降低两个设备通信时使用的 802.11 数据速率或降低介质的效率,其中任何一个都会降低您在两个端点之间获得的实际吞吐量。

您所指的“理论最大值”是 PHY 时钟速率。正如您所发现的,这与吞吐量无关。一个更好的问题是为什么 Wi-Fi 比以太网慢。有几个重要的差异会影响吞吐量:

  1. 802.11 是半双工的,而交换以太网是全双工的。这意味着站点可以同时在以太网上发送和接收,但在 802.11 上,站点必须停止发送才能接收。因此,在一个站发送后,它必须停止发送并切换到接收才能听到确认。这让事情变慢了。
  2. 与以太网是 CSMA/CD 不同,802.11 是 CSMA/CA。冲突避免机制 (RTS/CTS) 更“健谈”,并且比以太网产生更多开销。即使在您描述的“安静”环境中,CSMA/CA 也试图避免冲突,这会占用带宽。相反,全双工以太网不应该有冲突。
  3. 对于 802.11AC,空间流的数量取决于 AP 和客户端硬件。您只能与最慢的组件一样快。您没有提及您使用的是哪种客户端,因此您的AP可能是4x4,但您的客户端可能是2x2。
  4. 最后,虽然你说你在一个安静的环境中,相距 1 米,但还是值得验证一下你的连接速度。

理论上的最大数据速率受几个条件的影响。802.11 采用多个 MCS(调制和编码方案)索引,根据 SNR 确定数据速率。这就是当您远离路由器(或干扰)时获得较低数据速率的原因。

让我们假设您在给定场景中确实具有出色的 SNR。即使使用了最高的 MCS 指数,需要注意的重要一点是吞吐量与数据速率不同。最大数据速率是在考虑以下因素后测量的 -

1/ 使用所有空间流(802.11ac 中最多 8 个)。这只会发生在支持大量波散射/衍射的环境中。在您的情况下,对于点对点链路,我认为您仅获得 1 个有效流(MIMO 矩阵将是秩不足的)。

2/ 通道对错误具有鲁棒性(干扰或热噪声不大)

3/ 所有发送/接收队列最大但没有溢出(应用速率等于发送速率)

4/ TCP MSS 匹配底层 MTU(802.11 为 2304 字节)

除了其他几个因素之外,这些只是一些重要因素。

802.3 和 802.11 之间的比较并不公平,因为 CSMA/CA 存在一些障碍(冲突、延迟、周期性 ACK 的要求、争用),但有助于提供无线接入。