1. 课程导入与全景认知

各位好,我是老周。干无线网络这行十几年了,今天咱们聊聊WiFi漫游。

说实话,很多刚入行的工程师觉得漫游就是“从一个AP跳到另一个AP”,听起来简单。但实际项目里,漫游体验搞砸的情况比比皆是。我见过不少企业花大价钱买了高端AP,结果员工在办公区走着走着视频会议就卡住了——问题就出在漫游上。

1.1 什么是WiFi漫游

WiFi漫游,说白了就是终端设备在移动过程中,从一个AP的覆盖范围切换到另一个AP,同时保持网络连接不中断的过程。

你想想看,手机连着会议室AP,走到工位区,信号越来越弱。这时候手机得自动断开会议室AP,连上工位区的AP。整个过程用户无感知,这就是漫游。

关键点:漫游不是简单的“断连-重连”,而是“保持会话连续性的无缝切换”。如果切换过程中TCP连接断了、VoIP通话掉了,那就不叫漫游,叫“断网重连”。

我习惯把漫游分成两个层面:

  • 链路层漫游:终端在同一个SSID下,从一个AP切换到另一个AP。这是基础。
  • 网络层漫游:终端跨子网移动时,IP地址不变。这需要上层协议支持,比如Mobile IP或SD-WAN。

咱们这门课主要讲链路层漫游,因为这是日常项目里最常碰到的坑。

1.2 为什么需要漫游

这个问题看似简单,但我在项目里见过不少反面教材。

有人觉得:“AP覆盖范围够大不就行了?一个AP管一层楼,用户不用漫游。”——嗯,这种想法很危险。

为什么需要漫游?三个核心原因:

  1. 覆盖连续性:单个AP的覆盖半径有限。2.4GHz大概30-50米,5GHz更短,20-30米。用户不可能永远待在一个AP底下。
  2. 容量需求:一个AP能承载的客户端数量有限。我见过一个AP带50多个终端,延迟直接飙到500ms以上。漫游到不同AP,本质上是负载分担。
  3. 移动性需求:仓库里的扫码枪、医院的移动护士站、工厂的AGV小车——这些设备一直在移动,没有漫游就没法工作。

我的经验:有一次给一家医院做无线覆盖,护士推着移动查房车在走廊里走,每过一个门就断一次网。后来发现是AP切换阈值没调好,终端死抓着弱信号不放。调完阈值,问题解决。这就是漫游优化的价值。

1.3 漫游切换的触发条件

终端什么时候会触发漫游?这个问题很关键。我把它归纳为三种触发机制:

触发类型 触发条件 典型场景
信号强度触发 当前AP的RSSI低于阈值(如-75dBm),且目标AP信号更强 用户从会议室走到走廊
信号质量触发 当前链路的SNR(信噪比)恶化,误码率升高 AP附近有微波炉干扰
负载均衡触发 当前AP关联客户端过多,AC主动引导终端漫游 会议室AP挂了30个终端,隔壁AP只有5个

这里有个容易忽略的点:漫游决策权在终端手里,不在AP或AC。AC只能“建议”终端漫游,但不能强制。这也是为什么不同品牌的手机漫游表现差异巨大——苹果、三星、华为的漫游算法完全不一样。

避坑指南:我曾经遇到一个项目,客户抱怨iPhone在办公区漫游频繁掉线。排查后发现,iPhone的漫游触发阈值是-70dBm,而安卓手机是-75dBm。iPhone更早触发漫游,但切换速度慢,导致短暂断流。解决方案是调整AP的功率和信道规划,让相邻AP的信号过渡更平滑。

1.4 漫游切换的完整流程

一个完整的漫游切换,大致分四步:

  1. 扫描:终端周期性扫描信道,发现周围AP。可以是主动扫描(发Probe Request),也可以是被动扫描(听Beacon帧)。
  2. 决策:终端根据信号强度、信道利用率、AP负载等因素,决定是否切换、切换到哪个AP。
  3. 执行:终端发送Reassociation Request到目标AP,完成认证和关联。
  4. 收敛:切换完成后,终端更新ARP缓存、重新获取IP(如果跨子网),恢复数据通信。

整个流程的时间窗口非常短。802.11标准要求漫游切换延迟不超过50ms,否则VoIP通话就会产生可感知的卡顿。实际项目中,能做到20ms以内的切换才算优秀。

下面这张图展示了漫游切换的核心流程:

WiFi漫游切换核心流程 终端连接当前AP 信号强度/质量恶化 扫描候选AP列表 信号变弱 触发扫描 切换决策 评估信号/负载 执行切换 发送Reassoc 切换完成 认证/关联 目标:切换延迟 < 50ms

1.5 漫游的两种模式

根据切换过程中是否与旧AP保持连接,漫游分为两种模式:

模式 工作原理 优点 缺点
硬切换(Break-Before-Make) 先断开当前AP,再连接目标AP 实现简单,兼容性好 切换期间有短暂断流(50-200ms)
软切换(Make-Before-Break) 先与目标AP建立连接,再断开旧AP 切换无感知,延迟低 需要终端支持,实现复杂

目前市面上绝大多数终端(手机、笔记本)都采用硬切换。软切换多见于一些工业级设备或专用终端。嗯,这里要注意:软切换虽然体验好,但需要终端同时维持两条链路,对功耗和芯片能力要求更高。

1.6 影响漫游体验的关键因素

我总结了一个“漫游体验三角”,三个角缺一不可:

  • AP侧:信号覆盖规划、信道干扰控制、AC漫游策略配置
  • 终端侧:漫游算法、驱动实现、天线性能
  • 环境侧:物理遮挡、同频干扰、多径效应

说白了,漫游体验好不好,不是单方面能决定的。你AP配得再好,终端算法烂,照样卡。反过来,终端再强,AP覆盖有盲区,也没用。

核心观点:漫游优化的本质,是在AP侧为终端创造“最容易做出正确切换决策”的环境。你不能替终端做决定,但你可以让它的决定更明智。