Wi-Fi 协议栈与漫游
Wi-Fi 协议栈与漫游
一次"卡顿"的会议
2023 年某互联网公司的产品评审会,40 人用笔记本电脑连会议室 Wi-Fi,开会 30 分钟时开始卡顿,Zoom 视频掉线、共享屏幕延迟 3 秒。事后 IT 排查发现:
- 会议室 AP 信号 -65dBm(边缘)
- 旁边会议室 AP 信号 -58dBm(更近但客户端没切)
- 客户端在两个 AP 之间"粘连"着不切换
- 漫游切换瞬间掉线 800ms
这就是 Wi-Fi 漫游的真实痛点。802.11 协议设计时主要考虑"单 AP 覆盖",漫游是后来打补丁加的特性。这一章从 802.11 协议栈演进讲到企业级漫游机制。
问题一:802.11 协议族演化
| 协议 | 年份 | 频段 | 最大速率 | 关键特性 |
|---|---|---|---|---|
| 802.11 | 1997 | 2.4 GHz | 2 Mbps | 原始协议,FHSS/DSSS |
| 802.11b | 1999 | 2.4 GHz | 11 Mbps | DSSS,Wi-Fi 雏形 |
| 802.11a | 1999 | 5 GHz | 54 Mbps | OFDM |
| 802.11g | 2003 | 2.4 GHz | 54 Mbps | 兼容 b |
| 802.11n (Wi-Fi 4) | 2009 | 2.4/5 | 600 Mbps | MIMO 4×4,HT40 |
| 802.11ac (Wi-Fi 5) | 2014 | 5 GHz | 6.93 Gbps | MU-MIMO 8×8,160MHz |
| 802.11ax (Wi-Fi 6) | 2019 | 2.4/5/6 | 9.6 Gbps | OFDMA, BSS Coloring, TWT |
| 802.11ax (Wi-Fi 6E) | 2021 | 6 GHz | 9.6 Gbps | Wi-Fi 6 + 6 GHz 频段 |
| 802.11be (Wi-Fi 7) | 2024 | 2.4/5/6 | 46 Gbps | MLO, 320MHz, 4K-QAM |
25 年单链路速率提升 23000 倍——从 2 Mbps 到 46 Gbps。这是工程奇迹的体现。
问题二:802.11 物理层演进
DSSS(直接序列扩频)— 802.11b
DSSS 把 1 bit 数据用 11 bit "chip" 扩频,占用 22 MHz 频谱。多个 AP 之间不重叠的信道只有 3 个(1, 6, 11)。这是为什么 2.4 GHz Wi-Fi 容易干扰。
OFDM(正交频分复用)— 802.11a/g
OFDM 把数据分到 52 个子载波(48 数据 + 4 导频)上并行传输。每个子载波速率低,整体吞吐高。抗多径衰落能力强。
MIMO(多入多出)— 802.11n
多天线同时收发是速率提升的关键。2×2 MIMO 链路速率提升 2 倍(理想情况),4×4 MIMO 提升 4 倍。空间复用让多个用户同时收发。
MU-MIMO — 802.11ac Wave 2
传统 MIMO 是单用户多流(SU-MIMO),AP 一次只和一个客户端通信。MU-MIMO 让 AP 同时和多个客户端通信——AP 4 天线,4 个客户端各占 1 流。但实际效果有限——客户端也得多天线支持。
OFDMA — 802.11ax(Wi-Fi 6)
OFDMA 把信道分成多个资源单元(RU),每个 RU 分配给不同用户。多个用户同时使用一个信道——类似 LTE 的下行多址。
想象 OFDM 是"一整条公交车一次只载一个乘客",OFDMA 是"一整条公交车分多个座位,每个座位给一个乘客"。高密度场景(30+ 设备)下 OFDMA 效率提升 4 倍。
320 MHz + 4K-QAM — 802.11be (Wi-Fi 7)
320 MHz 连续频谱:Wi-Fi 6 最多 160 MHz,Wi-Fi 7 翻倍到 320 MHz。信道带宽翻倍,理论速率翻倍。
4K-QAM:Wi-Fi 6 用 1024-QAM(10 bit/符号),Wi-Fi 7 用 4096-QAM(12 bit/符号)。符号率不变的情况下吞吐量提升 20%。但 4K-QAM 对信噪比要求极高(25+ dB),实际只在近距离能跑。
MLO(Multi-Link Operation):Wi-Fi 7 最大的创新。客户端同时在 2.4 GHz + 5 GHz + 6 GHz 三个频段同时收发。一个包可以走 5 GHz 频段,下一个包走 6 GHz 频段。降低延迟 + 提升吞吐 + 提升可靠性。
问题三:802.11 MAC 层 DCF
DCF(Distributed Coordination Function) 是 Wi-Fi 的基础 MAC 协议。核心问题:无线是共享介质,多设备同时发会冲突,没有像以太网那样的 CSMA/CD(冲突检测)。
CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance):
- 设备侦听信道空闲
- 等待 DIFS(分布式帧间隔)时间
- 启动随机退避(0-31 个 slot,每个 slot 9μs)
- 退避过程中信道忙就暂停计数(Freeze)
- 退避到 0 才发包
问题:2 个设备同时退避到 0 还是会冲突。冲突概率 0-10%。Wi-Fi 协议不检测冲突(无线冲突检测困难),只假设没收到 ACK 就是冲突。
ACK 机制:
AP 收到 DATA 后短帧间间隔 SIFS 后回 ACK。Client 收到 ACK 才认为发送成功。如果没收到 ACK,Client 走退避流程重传。
这就是 Wi-Fi 速率"看起来 100Mbps 实际只有 30Mbps"的原因——开销大、冲突概率高、ACK 占用带宽。
问题四:Wi-Fi 漫游的本质
漫游(Roaming):客户端从一个 AP 切换到另一个 AP,保持网络连接不中断。
为什么需要漫游?
- AP 覆盖范围有限(2.4 GHz 室内约 50 米,5 GHz 约 30 米)
- 大型场所(机场、酒店、园区)需要多个 AP
- 用户移动时信号变差,必须切换到更近的 AP
漫游的过程:
理想情况下整个过程 50-100ms。但实际漫游可能 500ms-2s,这期间所有流量中断。
漫游的三大挑战:
挑战 1:何时切换
客户端需要决定"该切了"。两种策略:
- 主动漫游:客户端主动扫描、切换
- 强制漫游:AP 信号低于阈值后强制切换
主动漫游体验更好,但需要一个控制器统一调度。
挑战 2:二层漫游 vs 三层漫游
二层漫游(同子网内漫游):
- 客户端 IP 不变
- 漫游后流量直接转发,不需要重新连接 TCP
- 前提:两个 AP 在同一 VLAN/子网
三层漫游(跨子网):
- 客户端 IP 必须变(新子网)
- 所有 TCP 连接断开
- 现代手机/电脑用 802.11r/k/v 优化,但仍可能中断 1-2 秒
挑战 3:802.11r 快速漫游
802.11r(2008 年发布)专门解决漫游速度问题。引入 FT(Fast Transition) 概念:
预共享密钥(OKC, Opportunistic Key Caching):
- 客户端在 AP-1 完成 4 次握手后,把 PTK 缓存起来
- 漫游到 AP-2 时,AP-2 询问 AP-1 客户端的 PTK
- 如果 AP-2 能从 AP-1 拿到 PTK,跳过 4 次握手,漫游时间从 500ms 降到 50ms
FT 流程:
[STA-AP1 已连接] → 决定漫游到 AP-2
[STA] --FT Request (含 AP-1 信息)--> [AP-2]
[AP-2] --FT Request (转发)--> [AP-1]
[AP-2] <--FT Response (含 PTK 信息)-- [AP-1]
[AP-2] --FT Response (含新 PTK)--> [STA]
[STA] 切换完成,整个过程 50ms问题五:企业级 WLAN 架构
家庭 Wi-Fi 一个 AP 跑所有功能(DHCP、防火墙、AC)。企业级 100+ AP 必须有集中管理架构。
典型企业 WLAN 架构:
[终端设备] --Wi-Fi--> [轻量级 AP] --隧道--> [AC] --> [核心交换机]
(瘦 AP) (CAPWAP) (无线控制器)术语:
- AC(Access Controller):无线控制器。集中管理所有 AP,处理漫游、安全、策略
- AP(Access Point):无线接入点。瘦 AP 只做收发和加解密,复杂逻辑在 AC
- CAPWAP(Control And Provisioning of Wireless Access Points, RFC 5415):AC 和 AP 之间的隧道协议
CAPWAP 协议:
- 控制隧道(UDP 5246):AP 启动、配置、认证
- 数据隧道(UDP 5247):用户流量封装在 CAPWAP 里转发到 AC
为什么用 CAPWAP?集中转发——所有用户流量先到 AC,AC 再转发到核心交换机。漫游时 AC 直接转发流量到新 AP,漫游延迟降到 30ms。但代价是 AC 成为单点故障和性能瓶颈。
本地转发模式:AP 收到流量后本地转发,不经 AC。漫游延迟高(500ms+),但 AC 不成瓶颈。
主流企业 WLAN 厂商:
- Cisco(Catalyst 9100 + WLC)
- Aruba(HPE 收购)
- Ruckus(CommScope 收购)
- Huawei(AirEngine)
- H3C
问题六:Mesh 网络
Wi-Fi Mesh(802.11s)解决"AP 部署拉网线困难"的场景:
- 多个 Mesh 节点间无线互联(不需要每个 AP 都拉网线)
- 一个节点连接上游(路由器/光猫),其他节点通过无线回传到上游
- 节点之间自动选择最优路径
典型家用 Mesh 部署(TP-Link Deco、Netgear Orbi、小米 Mesh):
[光猫] --网线--> [Mesh 1(主节点)] --无线--> [Mesh 2] --无线--> [Mesh 3]
客厅 卧室 书房Mesh 协议:
- 802.11s:标准协议
- 厂商私有:TP-Link EasyMesh、Orbi 自研协议
Mesh 的代价:
- 每跳无线回传占用一半带宽(2 跳后只剩 1/4)
- 延迟累加(每跳 1-5ms)
- 频道干扰(同 AP 邻居用不同频道难协调)
问题七:Wi-Fi 6 关键特性深度
OFDMA 资源分配
Wi-Fi 5 一次只能给一个用户发包。Wi-Fi 6 把 20 MHz 信道分成最多 9 个 RU(Resource Unit),每个 RU 26/52/106/242 个子载波,分配给不同用户。
高密度场景(教室、会议室、商场)下:
- Wi-Fi 5:50 设备竞争 1 个信道
- Wi-Fi 6:50 设备分 9 个 RU 并行
效率提升 4-5 倍。
BSS Coloring
BSS Coloring 减少同信道干扰。每个 AP 给自己的 BSS 标一个"颜色"(6 bit 标识)。客户端只把同色 BSS 当作有效信号,其他颜色 BSS 视为干扰降权。
效果:密集部署场景(同信道 AP 干扰)下吞吐提升 30%。
TWT(Target Wake Time)
Wi-Fi 6 引入定时唤醒机制。AP 和客户端约定"X 时刻才收发,其他时间睡眠"。IoT 设备(电池供电的传感器)平均功耗降低 50%。
1024-QAM
Wi-Fi 5 用 256-QAM(8 bit/符号),Wi-Fi 6 用 1024-QAM(10 bit/符号)。符号率不变时吞吐量提升 25%。但 1024-QAM 需要 30+ dB 信噪比,只在近距离能跑。
问题八:Wi-Fi 7 关键特性
MLO(Multi-Link Operation)
Wi-Fi 7 最大创新。客户端同时在 2.4 GHz + 5 GHz + 6 GHz 多频段通信。
- 负载均衡:5 GHz 频段繁忙时用 6 GHz
- 冗余备份:5 GHz 频段干扰时无缝切到 6 GHz
- 聚合吞吐:两个频段并发,理论速率叠加
320 MHz 连续频谱
Wi-Fi 6 在 5 GHz 最多 160 MHz,Wi-Fi 7 翻倍到 320 MHz。6 GHz 频段(5.925-7.125 GHz)有 1200 MHz 频谱,能容纳 3 个不重叠 320 MHz 信道。
4K-QAM
4096-QAM 比 1024-QAM 多 2 bit/符号,速率提升 20%。但 4K-QAM 要求 35+ dB 信噪比,只有 1-2 米距离能跑。实际设备很少跑出 4K-QAM。
Multi-RU 和 Preamble Puncturing
Wi-Fi 6 RU 分配时一个用户占用连续 RU。Wi-Fi 7 允许一个用户用多个非连续 RU。这让频谱利用更灵活——某个子载波被干扰时,AP 不需要让出整个 80 MHz 信道,只让出被干扰的 20 MHz。
问题九:Wi-Fi 性能实测
# Linux 看 Wi-Fi 连接状态
iw dev wlan0 link
# 输出:SSID, freq, signal, bitrate
# 信号强度
iw dev wlan0 station dump
# signal: -45 dBm ← 极好
# signal: -65 dBm ← 良好
# signal: -75 dBm ← 边缘
# signal: -85 dBm ← 不可用
# 看周围 AP
sudo iw dev wlan0 scan | grep SSID
# 显示所有 AP 的 SSID、信号、加密、协议
# 看 802.11 协议版本
iw dev wlan0 link | grep -i protocol
# 802.11ax 表示 Wi-Fi 6
# 802.11be 表示 Wi-Fi 7
# iperf3 测 Wi-Fi 吞吐
iperf3 -c 192.168.1.100 -t 60 -i 1
# 看 PHY 速率(物理层协商速率)
iw dev wlan0 station dump | grep tx_bitrate
# 1200 Mbps 表示协商到 Wi-Fi 6 速率Wi-Fi 实际速率 vs 协商速率:
| 协议 | 最大协商速率 | 实际吞吐 |
|---|---|---|
| Wi-Fi 4 (n) | 600 Mbps | 200-300 Mbps |
| Wi-Fi 5 (ac) | 6.93 Gbps | 1-2 Gbps |
| Wi-Fi 6 (ax) | 9.6 Gbps | 2-4 Gbps |
| Wi-Fi 7 (be) | 46 Gbps | 5-10 Gbps |
协商速率 ≠ 实际吞吐。实际只有 30-50%,因为:
- MAC 开销(ACK、退避、组帧)
- 信道竞争(同 AP 邻居)
- 加密开销(WPA3 加解密)
- 客户端天线数量
实战命令
# 看 Wi-Fi 网卡支持哪些协议
iw list
# Supported interface modes: managed, monitor, AP
# Band 1: 2.4 GHz
# HT20/HT40 (802.11n)
# VHT20/VHT40/VHT80/VHT160 (802.11ac)
# HE-MCS 0-11 (802.11ax, Wi-Fi 6)
# Band 2: 5 GHz
# 同上
# Band 4: 6 GHz (EHT, Wi-Fi 7)
# 看当前连接速率
iw dev wlan0 link | grep -E "tx bitrate|rx bitrate|signal"
# tx bitrate: 866.7 MBit/s VHT-MCS 9 80MHz
# signal: -47 [-50, -54] dBm
# 扫描周围 AP
sudo iw dev wlan0 scan | grep -E "SSID|signal|primary channel"
# 切到 5 GHz 频段
sudo iw dev wlan0 set freq 5180 # 5 GHz 第 36 信道
# 启用 monitor 模式
sudo ip link set wlan0 down
sudo iw dev wlan0 set type monitor
sudo ip link set wlan0 up
# 抓 802.11 帧
sudo tcpdump -ni wlan0 -X
# 看 Wi-Fi 驱动统计
cat /proc/net/wireless思考题
- 你家路由器支持 Wi-Fi 6,但你只把 2.4 GHz 频段打开了,5 GHz 频段关闭。这会影响 802.11ax 特性吗?OFDMA 在 2.4 GHz 上能工作吗?
- 一个会议室 30 人同时用 Wi-Fi,每个客户端需要 5 Mbps 视频会议流量。会议期间 AP 协商速率(PHY rate)保持在 1200 Mbps,但实际 30 人卡顿到无法视频。可能的原因是什么?怎么排查?
- 802.11r 快速漫游要求 AP 之间共享密钥(OKC)。这安全吗?攻击者能否伪造 AP 利用 OKC 绕过认证?WPA3 + 802.11r 怎么结合?
- Wi-Fi 7 的 MLO 让客户端同时在 5 GHz + 6 GHz 通信。这对 AP 部署有什么要求?5 GHz + 6 GHz 频段需要独立的天线和射频芯片吗?
- 假设你是某酒店网络工程师,1000 房间要全覆盖 Wi-Fi。AP 怎么选型?5 GHz 还是 6 GHz?Mesh 还是企业级 AC + 瘦 AP?漫游延迟要求多少?
- 用
iw dev wlan0 link看你的设备当前连接速率。然后站在 AP 旁边 vs 走开 20 米,速率变化多少?PHY 速率下降一半时实际 TCP 吞吐下降多少?理解为什么 Wi-Fi 是"看天吃饭"。
延伸阅读
- IEEE 802.11-2020: 无线局域网标准
- 《802.11 无线网络权威指南》(Matthew Gast)
- 《Next Generation Wireless LANs》(Eldad Perahia)
- Wi-Fi Alliance: Wi-Fi 6/6E/7 规范
- 802.11r/k/v 漫游机制官方文档
- 动手实验:家里两个路由器开同 SSID 漫游,观察手机切换时机