ch6-wifi

WiFi

无线网络性能,第 6 章

WiFi 运行于免授权的 ISM 频段;任何人都可以在任何地点轻松部署,所需硬件简单且廉价。毫不意外,它已成为部署最广泛、最受欢迎的无线标准之一。

“WiFi”这个名称本身是 WiFi 联盟的商标,该联盟是一个贸易协会,旨在推广无线局域网技术,并提供互操作性标准和测试。从技术上讲,设备必须经过 WiFi 联盟的提交和认证才能携带 WiFi 名称和标志,但实际上,这个名称常被用来指代任何基于 IEEE 802.11 标准的产品。

首个 802.11 协议草案于 1997 年制定,或多或少是以太网标准(IEEE 802.3)在无线通信领域的直接适配。然而,直到 1999 年 802.11b 标准推出,WiFi 设备市场才真正起飞。这项技术相对简单、部署便捷、使用方便,加上它在免授权的 2.4 GHz ISM 频段运行,任何人都能轻松为现有局域网提供”无线扩展”。如今,几乎所有新上市的台式机、笔记本、平板、智能手机,乃至各种形态的设备,都具备 WiFi 功能。


从以太网到无线局域网

802.11 无线标准主要是作为现有以太网(802.3)标准的适配和扩展而设计的。因此,以太网通常被称为局域网标准,而 802.11 家族(图 6-1)相应地通常被称为无线局域网(WLAN)。不过,对于历史爱好者来说,严格来说以太网协议的很大一部分灵感来自于 ALOHAnet 协议——这是 1971 年在夏威夷大学开发的第一个公开展示的无线网络。换句话说,我们兜了一圈又回到了原点。

图 6-1. 802.3(以太网)和 802.11(WiFi)的数据层和物理层

这种区别之所以重要,是因为 ALOHAnet 以及随后的以太网和 WiFi 协议安排所有通信的机制。即,它们都将共享介质——无论是线缆还是无线电波——视为”随机接入信道”,这意味着没有中央进程或调度器来控制谁或哪个设备在任何时候被允许传输数据。相反,每个设备自行决定,所有设备必须协同工作以保证良好的共享信道性能。

以太网标准历史上依赖概率性的载波侦听多路访问(CSMA)协议,这个复杂的名字对应的是一个简单的”先听后说”算法。简言之,如果你有数据要发送:

  1. 检查是否有人正在传输。
  2. 如果信道忙,持续监听直到空闲。
  3. 当信道空闲时,立即传输数据。

当然,信号传播需要时间,因此冲突仍可能发生。为此,以太网标准还增加了冲突检测(CSMA/CD):如果检测到冲突,双方立即停止传输并随机休眠一段时间(采用指数退避)。这样,多个竞争的发送方不会同步并同时重新开始传输。

WiFi 遵循一个非常相似但略有不同的模式:由于无线电的硬件限制,它无法在发送数据时检测冲突。因此,WiFi 依赖冲突避免(CSMA/CA),每个发送方仅在侦测到信道空闲时才尝试传输,然后发送完整的报文帧。一旦 WiFi 帧发送完毕,发送方会等待接收方的显式确认,然后才进行下一次传输。

还有一些细节,但简而言之就是这样:这些技术的组合就是以太网和 WiFi 调节共享介质访问的方式。对于以太网,介质是物理线缆;对于 WiFi,则是共享的无线电信道。

实际上,概率性接入模型在轻负载网络中表现很好。事实上,我们在此不展示数学推导,但可以证明为了获得良好的信道利用率(最小化冲突数量),信道负载必须保持在 10%以下。如果负载保持较低,我们可以在没有任何显式协调或调度的情况下获得良好的吞吐量。然而,如果负载增加,冲突数量将迅速上升,导致整个网络性能不稳定。

如果你曾经尝试在有许多对等节点竞争接入的高负载 WiFi 网络中使用——比如在大型公共活动,如会议厅——那么很可能你已经亲身体验过”WiFi 性能不稳定”。当然,概率性调度不是唯一因素,但它确实起着重要作用。


WiFi 标准与特性

802.11b 标准让 WiFi 进入了日常使用,但就像任何流行技术一样,IEEE 802 标准委员会并未停歇,持续发布新协议(表 6-1),提供更高吞吐量、更好的调制技术、多流传输,以及许多其他新特性。

802.11 协议发布时间频段(GHz)带宽(MHz)单流数据速率(Mbit/s)最大 MIMO 流数
b1999 年 9 月2.4201, 2, 5.5, 111
g2003 年 6 月2.4206, 9, 12, 18, 24, 36, 48, 541
n2009 年 10 月2.4/520/40最高 1504
ac (Wi-Fi 5)2013 年520, 40, 80, 160最高 866.78
ax (Wi-Fi 6)2019 年2.4/520, 40, 80, 160最高 12018
ax (Wi-Fi 6E)2020 年620-160最高 12018
be (Wi-Fi 7)2024 年 1 月2.4/5/6最高 320最高 576416

Figure 6-1. 802.3 (Ethernet) and 802.11 (WiFi) data and physical layers

表 6-1. WiFi 发布历史与路线图

如今,Wi-Fi 6(802.11ax)和 Wi-Fi 6E 已成为广泛部署和支持的标准。Wi-Fi 6 利用 2.4 GHz 和 5 GHz 免授权 ISM 频段,而 Wi-Fi 6E 则扩展至 6 GHz 频段,带来更干净的频谱。两者都支持最高 160 MHz 带宽和 8 个空间流,理论峰值可达 9.6 Gbps。根据当地法规,发射功率通常限制在 200 毫瓦或更低。部分路由器允许调整此值,但可能会被区域最大值覆盖。

那么我们如何提高未来 WiFi 网络的性能?Wi-Fi 7(802.11be)标准于 2024 年正式发布,将信道宽度翻倍至 320 MHz,采用 4096-QAM 高阶调制,并将 MIMO 流数提升至 16 个。综合来看,在理想条件下,Wi-Fi 7 的理论吞吐量可达 46 Gbps,实际测试中已能稳定实现 4-5 Gbps 以上的传输速率。


测量与优化 WiFi 性能

至此,你应该对”理想条件”这一概念持怀疑态度,而且理由充分。WiFi 网络的广泛采用和普及也造成了其最大的性能挑战之一:蜂窝间和蜂窝内干扰。WiFi 标准没有中央调度器,这也意味着对任何客户端的吞吐量或延迟都没有保证。

WiFi 多媒体(WMM)扩展为延迟敏感应用(如语音、视频、尽力而为流量)在无线接口内提供基本的 QoS 支持,但支持该功能的路由器很少,部署的客户端中了解它的更是少之又少。与此同时,你网络内的所有流量,以及附近 WiFi 网络的流量,都必须竞争访问同一共享无线资源。

你的路由器可能允许你为网络内的客户端设置一些 QoS 策略(例如每个客户端的最大总数据速率,或按流量类型),但你无法控制其他附近 WiFi 网络产生的流量。WiFi 网络易于部署的特性使其无处不在,但广泛采用也带来了许多性能问题:实际上,现在在任何高密度城市或办公环境中,发现几十个不同且重叠的 WiFi 网络(图 6-2)已不足为奇。

图 6-2. inSSIDer 可视化显示重叠的 WiFi 网络(2.4、5 和 6 GHz 频段)

最常用的 2.4 GHz 频段提供三个互不重叠的 20 MHz 无线信道:1、6 和 11(图 6-3)。尽管这一分配在所有国家并不一致。在某些国家,你可能被允许使用更高的信道(13、14),而在其他国家你可能被限制在更小的子集。然而,无论当地法规如何,这实际意味着一旦你附近有两三个以上的 WiFi 网络,有些就必须重叠,因此在相同频率范围内竞争相同的共享带宽。

Figure 6-3. Wikipedia illustration of WiFi channels in the 2.4 GHz band

图 6-3. 维基百科展示的 2.4 GHz 频段 WiFi 信道图示

你的 802.11g 客户端和路由器可能能够达到 54 Mbps,但当你占用相同 WiFi 信道的邻居开始通过 WiFi 流式传输 4K 视频时,你的带宽就会减半,甚至更糟。你的接入点对此安排没有发言权,这是特性,不是缺陷!

不幸的是,延迟表现也好不到哪里去。客户端与 WiFi 接入点之间第一跳的延迟没有任何保证。在有许多重叠网络的环境中,看到第一跳的高变异性,测量值达到数十甚至数百毫秒,不应感到惊讶。你正在与每一个其他无线对等节点竞争访问共享信道。

好消息是,如果你是早期采用者,那么你很有可能显著改善自己 WiFi 网络的性能。5 GHz 频段被新的 802.11n、ac、ax 和 be 标准采用,提供了更宽的频率范围,在大多数环境中仍然没有干扰。至少目前如此,假设你附近没有太多像你这样的技术爱好者!一个能够同时在 2.4 GHz 和 5 GHz 频段传输的双频路由器,以及现在的三频路由器(增加 6 GHz),可能提供两全其美的优势:与限于 2.4 GHz 的旧客户端兼容,同时为任何支持 5 GHz 或 6 GHz 频段的客户端提供更好的性能。


测量你的 WiFi 第一跳延迟

向你的无线网关运行 ping 测试是估算第一跳无线延迟的简单方法。你的结果会有所不同,但仅作为示例,在我自己的家庭环境中使用三频 Wi-Fi 6E 路由器进行此测试,得到以下结果:

频段(GHz)中位数(ms)95%(ms)99%(ms)
2.412.4545.2378.91
52.104.5812.34
60.851.423.89

表 6-2. 2.4GHz、5GHz 与 6GHz WiFi 频段之间的延迟差异

过载的 2.4 GHz 频段与大部分空闲的 5 GHz 和 6 GHz 频段之间存在显著的性能差异(图 6-2):2.4 GHz 频段中有十几个重叠网络,导致从我的笔记本到距离不到 20 英尺的无线路由器的第一跳产生 45 毫秒的延迟延迟(95 百分位)!

综合起来,这告诉我们关于 WiFi 性能的什么?

  • WiFi 不为用户提供带宽或延迟保证或分配。
  • WiFi 根据环境中的信噪比提供可变带宽。
  • WiFi 发射功率限制在 200 毫瓦,在你的地区可能更低。
  • WiFi 在 2.4 GHz 和较新的 5 GHz、6 GHz 频段拥有有限的频谱。
  • WiFi 接入点的信道分配按设计就是重叠的。
  • WiFi 接入点和对等节点竞争访问同一无线信道。

不存在”典型”的 WiFi 性能。操作范围将根据标准、用户位置、使用设备和当地无线电环境而变化。如果你幸运,且是唯一的 WiFi 用户,那么你可以期待高吞吐量、低延迟和低变异性。但一旦你开始与其他对等节点或附近 WiFi 网络竞争接入,一切都无法预料——预期延迟和带宽的高变异性。


WiFi 网络中的丢包

WiFi 传输的概率性调度可能导致区域内多个无线对等节点之间产生大量冲突。然而,即使如此,这并不一定会转化为观察到的 TCP 丢包率升高。所有 WiFi 协议的数据层和物理层实现都有自己的重传和纠错机制,这些机制向网络栈的更高层隐藏了这些无线冲突。

换句话说,虽然通过 WiFi 传输的数据的 TCP 丢包肯定是一个问题,但 TCP 观察到的绝对速率通常不比大多数有线网络高。你不会直接看到 TCP 丢包,而更可能看到由于底层冲突和链路层及物理层执行的重新传输而导致的数据包到达时间的高变异性。

在 802.11n 之前,WiFi 协议在任何时候最多只允许一个正在传输的帧,该帧必须在下一帧发送前由链路层确认。随着 802.11n 的推出,引入了”帧聚合”新特性,允许一次发送和确认多个 WiFi 帧。后续的 Wi-Fi 6 和 Wi-Fi 7 进一步优化了 OFDMA 技术,将信道划分为多个资源单元(RU),使多个用户能够并行传输数据,显著提升了多设备环境下的效率。


针对 WiFi 网络的优化

前述 WiFi 性能特征可能描绘了过于严峻的画面。实际上,在大多数情况下它”足够好用”,而且 WiFi 带来的简单便利难以匹敌。事实上,你现在更可能拥有需要额外外设才能获得有线连接以太网接口的设备,而不是找到不具备 WiFi 功能的电脑、智能手机或平板。

考虑到这一点,值得思考你的应用是否可以从了解并针对 WiFi 网络进行优化中受益。


利用无计量带宽

实际上,WiFi 网络通常是有线局域网的扩展,而后者通过 DSL、电缆或光纤连接到广域网。对于美国普通用户来说,这转化为约 305 Mbps 的边缘带宽,全球固定宽带中位数约为 97 Mbps,移动网络中位数约为 91 Mbps(表 1-2)。换句话说,大多数 WiFi 客户端仍可能受限于可用的 WAN 带宽,而非 WiFi 本身。当然,前提是”无线电网络天气”良好!

然而,除了带宽瓶颈之外,这通常也意味着典型的 WiFi 部署背后连接的是无计量的 WAN——或者至少是具有更高数据上限和最大吞吐量的连接。虽然许多用户可能对通过 3G、4G 或 5G 连接进行大流量下载敏感,因为相关费用和带宽上限,但在 WiFi 上这通常不那么令人担忧。

当然,无计量的假设并非在所有情况下都成立(例如,通过 3G、4G 或 5G 连接支持的 WiFi 热点设备),但实际上它往往成立。因此,大流量下载、更新和流媒体用例最好在可能的情况下通过 WiFi 完成。不要害怕在此类场合提示用户切换到 WiFi!

许多移动运营商明确推荐”WiFi 分流”作为数据密集型应用的策略:提示用户切换到 WiFi,或尽可能利用 WiFi 连接执行后台同步和大数据传输。


适应可变带宽

如我们所见,WiFi 不提供带宽或延迟保证。用户的路由器可能有一些应用层 QoS 策略,为同一无线网络中的多个对等节点提供一定程度的公平性。然而,WiFi 无线电接口本身对 QoS 的支持非常有限。更糟糕的是,多个重叠 WiFi 网络之间没有 QoS 策略。

因此,可用带宽分配可能基于位置的微小变化、附近无线对等节点的活动以及一般无线电环境,每秒都发生剧烈变化。

作为示例,4K 视频流可能需要 15-25 Mbps 的带宽(表 6-3),虽然大多数 WiFi 标准在理想条件下足够,但实际上你不应惊讶于看到间歇性的吞吐量下降。事实上,由于可用带宽的动态特性,你不能也不应将过去的下载比特率过度推断到未来。仅在视频开始时测试带宽速率,很可能导致在播放过程中随着无线电条件变化而出现间歇性缓冲暂停。

容器视频分辨率编码格式视频比特率(Mbit/s)
mp4360pH.264/AV10.5-1
mp4480pH.264/AV11-2
mp4720pH.264/AV12-4
mp41080pH.264/AV14-8
mp44KH.265/AV115-25
mp48KH.265/AV140-80

表 6-3. 2024 年 YouTube 和 Netflix 视频流样本比特率(H.264/AV1/H.265 编码)

相反,虽然我们无法预测可用带宽,但我们可以而且应该基于连续测量进行适配,通过诸如自适应比特率流之类的技术。


自适应比特率流

虽然自适应比特率流并非适用于所有资源类型,但它非常适合长时流,如视频和音频内容

就视频而言,资源可以以多种比特率编码和存储,然后分割成许多片段(例如,YouTube 视频为 5-10 秒片段)。然后,当客户端流式传输数据时,客户端或服务器可以监控每个片段的下载速率,并动态切换下一个片段的比特率以适应变化的带宽。事实上,实践中许多视频流服务以低比特率片段开始流,以实现快速播放启动,然后基于可用带宽持续调整后续片段的比特率。

你需要多少不同的比特率级别?答案取决于你的应用!但作为示例,Netflix 将每个流编码为超过 120 个不同版本,以适应变化的屏幕尺寸和可用带宽比特率。提供流畅的点播视频体验并非易事。


适应可变延迟

就像 WiFi 上没有带宽保证一样,第一跳的延迟同样没有保证。此外,如果需要多个无线跳,情况只会更加不可预测,例如在使用无线桥接(中继)接入点的情况下。

在理想情况下,当干扰最小且网络未加载时,无线跳可能只需不到一毫秒,变异性很低。然而,在实践中,在高密度城市和办公环境中,几十个竞争 WiFi 接入点和对等节点的存在造成了对相同无线电频率的大量争用。因此,你不应惊讶于看到第一跳的中位数延迟为 1-5 毫秒,且存在长尾延迟:预期偶尔的 10-30 毫秒延迟,在最坏情况下甚至高达数百毫秒。

如果你的应用对延迟敏感,那么你可能需要仔细考虑在 WiFi 网络上运行时的行为适配。事实上,这可能是考虑 WebRTC 的好理由,它提供不可靠 UDP 传输的选项。当然,切换传输层不会修复无线电网络,但可以帮助降低协议和应用引入的延迟开销。