3. 多AP组网架构与拓扑
802.11v,全称是“无线网络管理”。说实话,刚接触这个协议时,我觉得它就是个辅助工具。后来在大型园区网里折腾了两年,我才明白——没有802.11v,漫游体验基本靠运气。
这一章,我们重点聊三个核心机制:BSS Transition Management(BTM)、建议的AP列表、以及网络辅助漫游。它们共同构成了“智能漫游”的骨架。
一句话总结:802.11v让网络侧主动告诉终端“你该走了,去那个AP”,而不是让终端自己瞎猜。
3.1 BSS Transition Management——网络主动“劝退”终端
传统漫游里,终端自己决定何时切换。这有个大问题:终端只知道自己的信号强度,不知道网络侧是否已经拥塞。我见过一个案例:某办公室的AP信号很好,但关联了40多个终端,每个终端都在抱怨网速慢。终端自己死活不肯切到隔壁负载低的AP,因为它的信号“看起来”还行。
BTM就是来解决这个问题的。网络侧(AC或AP)可以主动给终端发一个BSS Transition Management Request帧,告诉它:“你该换个AP了。”终端收到后,可以选择接受、拒绝或协商。
我个人习惯把BTM的交互流程拆成三步:
- 网络侧评估:AC根据负载、信号、干扰等因素,判断某个终端需要漫游。
- 发送请求:AP向目标终端发送BTM Request帧,里面包含建议的AP列表。
- 终端响应:终端回复BTM Response,表示接受、拒绝或延迟切换。
这里有个关键点——BTM Request里可以携带一个“建议的AP列表”。这个列表不是随便写的,而是网络侧根据实时情况算出来的最优候选。
我的经验:BTM的触发条件别设得太敏感。我曾经把信号阈值设成-70 dBm就触发,结果终端在AP边缘来回切换,反而更糟。建议-75 dBm以下再触发,配合负载均衡一起用。
3.2 建议的AP列表——给终端一张“优选地图”
BTM Request里可以携带一个Candidate List,也就是建议的AP列表。这个列表最多可以包含多少个AP?嗯,规范里没硬性限制,但实际部署中我建议不超过8个。太多了终端处理不过来,反而会延迟切换。
列表里的每个AP条目包含以下信息:
| 字段 | 说明 | 我的建议 |
|---|---|---|
| BSSID | 目标AP的MAC地址 | 确保是同一个ESS下的AP |
| Channel | 目标AP的工作信道 | 终端可以提前做信道扫描 |
| Preference | 优先级(0-255) | 255表示强制切换,慎用 |
你想想看,终端拿到这个列表后,就不需要自己全网扫描了。它只需要按优先级顺序,依次尝试列表里的AP。这大大缩短了漫游时间。
我记得有一次在部署某连锁酒店WiFi时,终端总是漫游到信号弱但负载高的AP上。后来我们启用了BTM并配置了建议列表,把负载低的AP优先级调高,漫游成功率从70%直接升到95%。
避坑指南:我曾经把某个AP的Preference设为255(强制切换),结果终端死活连不上那个AP,因为信号太弱。强制切换一定要确认目标AP的信号覆盖没问题,否则终端会直接断开WiFi。
3.3 网络辅助漫游——让终端“少干活”
网络辅助漫游,说白了就是网络侧帮终端收集信息,然后告诉它“哪个AP最好”。这包括两部分:
- 主动报告:终端可以主动向AP报告它扫描到的邻居AP信息。
- 被动建议:网络侧根据全局信息,给终端推荐最佳AP。
802.11v里定义了Neighbor Report机制。AP可以给终端发一个Neighbor Report Response帧,里面包含邻居AP的BSSID、信道、SSID、以及一些能力信息。终端拿到这个报告后,就知道周围有哪些AP可选,不需要自己一个个去探测。
我个人觉得,网络辅助漫游最大的价值在于减少终端扫描时间。传统终端漫游时,需要切换信道去扫描所有可能的AP,这个过程通常要花100-300毫秒。有了Neighbor Report,终端可以直接锁定目标信道,扫描时间可以压缩到20-50毫秒。
为什么会这样?因为终端不需要再盲目扫描所有信道了。它只需要按报告里的信道列表,快速做一次被动或主动扫描即可。
下面这张图展示了802.11v辅助漫游的核心流程:
3.4 三个机制的协同工作
BTM、建议AP列表、网络辅助漫游,这三个机制不是孤立的。在实际部署中,它们通常一起使用:
- 网络辅助漫游提供“地图”(Neighbor Report)
- 建议AP列表提供“导航路线”(Candidate List)
- BTM提供“导航指令”(Transition Request)
举个例子:当AC发现某个终端信号变差时,它会先通过Neighbor Report告诉终端周围有哪些AP。然后AC生成一个建议AP列表,按优先级排好。最后AC通过BTM Request告诉终端:“现在切换到列表里的第一个AP。”终端收到后,因为已经知道目标AP的信道,直接快速扫描并关联,整个过程可能不到50毫秒。
实际效果:在我参与的一个大型商场项目中,启用802.11v后,漫游切换时延从平均180ms降到了35ms。用户反馈的“视频卡顿”问题基本消失。
3.5 部署802.11v的注意事项
嗯,这里要注意。802.11v虽然好,但不是所有终端都支持。我见过一些老旧手机(比如iPhone 5及以下)完全不响应BTM Request。所以部署时要考虑兼容性。
我的建议是:
| 场景 | 建议策略 |
|---|---|
| 终端全部支持802.11v | 完全启用BTM + 建议列表 + Neighbor Report |
| 部分终端不支持 | 启用BTM,但不强制;不支持终端走传统漫游 |
| 混合终端环境 | 启用BTM,同时保留802.11k/r作为补充 |
另外,建议AP列表里的优先级设置要合理。我一般把同信道的AP优先级设低一些,避免同频干扰。把不同信道的AP优先级设高,引导终端切换到干扰更少的信道。
再次提醒:Preference=255是强制切换,终端没有拒绝权。除非你100%确定目标AP能覆盖终端当前位置,否则别用。我曾经在一个仓库里用了强制切换,结果叉车司机走到货架后面,终端直接断网了。