WIFI - 无缝漫游
背景知识点
802.11 k、802.11v 和 802.11r 相结合,可以使终端与AP 设备充分利用已建立的行业标准来改进用户的漫游体验。
802.11k/v/r
协议是软件实现的,不涉及硬件,所以同时需要 AP 和终端两者的支持。
- 优点:不要换硬件,只需要更新软件即可实现,成本低
- 缺点:各个设备对协议的支持程度不同,造成漫游效果各不相同。
802.11 k (邻居报表)
支持 802.11k 的 APs 能够向终端设备提供一个包含相邻可用 APs 信息 的报表,以便终端设备更好地了解其周围的 APs。
802.11v (BSS 转换管理框架)
支持 802.11v 的 APs 为终端设备提供另一个它认为可以提供更好 WLAN 体验的 AP。最终由终端设备决定是否跳转至此AP。
802.11r (快速 BSS 转换)
802.11r (Fast BSS Transition) 定义了 STA 在同一移动域 (MD) 中的不同 AP 之间漫游时的交互细则,提供了实现 BSS 快速切换的标准。802.11r 快速漫游实现方法为:
- STA 首次关联 MD 内的 AP 时,利用 802.1x 认证获得的主会话密钥(MSK,由于该密钥为认证者和申请者共享,也称为成对主密钥PMK)和 MD 内各个 AP 的
R1KH_ID
计算出不同的PMK_R1
分发给 MD 内的其它 AP; - STA 切换 AP 时,STA 直接利用之前发送到目标 AP 上的 PMK_R1 协商出成对临时密钥(PTK)和组临时密钥(GTK),以此缩短漫游切换时间,避免再重复进行耗时的 802.1x 认证。
802.11r协议主要描述了四个部分的内容:密钥管理、FT初始化关联、快速切换和新增的信息元素。
漫游方案
有 AC + AP 方案,还有最近炒得火热的 Mesh 方案。
AC + AP 漫游方案
此方案依赖 AC 控制器。
低端的AC/AP方案,采用剔除模式来进行漫游。即AC为AP下发功率/信道/密码 等等参数后,主动剔除某AP下信号弱的终端,以强迫终端重新寻找 AP。
- 优点:在 APs 的覆盖范围内,不用等终端或用户主动去切换信号好的 AP。终端设备无论走到哪都可以连接在信号质量最好的 AP 下。
- 缺点:造成终端的短暂断网。
高端的 AC/AP 方案,除了剔除模式,还有负载均衡、802.11 k/v/r
协议等等,以使终端在切换 AP 的过程中不断网。价格十分昂贵。
Mesh
在 802.11 k/v/r
协议的基础上,加上自动化部署 APs 来实现的无缝漫游。
优势是组网和部署更灵活,即可用无线回程,也能插网线做有线回程。
缺点是不同的终端漫游效果不同,如 iPhone 完整的实现的802.11 k/v/r
,所以它漫游效果最好。而 Android 手机版本太多,有的完全不支持 802.11 k/v/r
协议,有的只支持部分协议,所以有的手机漫游效果差有的手机漫游效果好。
现在的 Mesh 路由器一般都有一个主一个副,主路由具备一些AC的功能,通过特定协议来为副路由推送 WLAN 相关参数,免去手动配置副路由的步骤。
高通 - 芯片厂家
高通推出的 Wi-Fi SON 概念,就是利用 802.11 k/v/r
来实现漫游的。
所以只要是高通方案的路由器,厂商购买了高通的漫游版权,都可利用 802.11 k/v/r
来实现无缝漫游。
如 网件R7800,为高通方案的路由器。它支持 802.11 k/v
。
两台原厂固件的 R7800 ,一台做路由器,另一台开启 AP 模式,Wifi 设置为相同的参数,两台都在 “路由地址/debug.htm” 勾选802.11k,就可以开启无缝漫游模式了;或者其它路由器做主路由并关闭WIFI,两台R7800开启 AP模式并打开 802.11k,也可实现无缝漫游。
如下图:
华硕ACRH17,Linksys(领势) 的EA7500/EA8300/EA9000 等高通方案的路由器,在原厂固件下,都可以实现无缝漫游。
无缝漫游经验总结
- 合理的射频规划和布局是无缝漫游的第一要素。保证信号的连续覆盖,重叠区域的设计能适应移动设备的漫游阈值,相邻AP信道要错开等等。
802.11 k/v
主要应用在商用大规模部署的场景,802.11r 也只是对 802.1x 认证的企业网络效果比较显著,家用场景的 PSK 认证速度本来就很快,所以只要做好了合理布局与规划,漫游切换基本就不会掉线了,如果再支持802.11r,漫游切换过程基本就无感知了。- 终端设备对
802.11 k/v/r
的支持
- iOS 设备触发漫游的阈值为 -70dbm,信号强度大于 -65dbm 时,优先连接5G频段。
在决定漫游目标AP时,如果当前有数据传输,选择信号强度比当前AP高8dbm的AP,如果当前没有数据传输,选择高12dbm的AP。 - iPhone 4s及以后的设备支持
802.11 k/r
,iPhone 5s及以后的设备支持 802.11v。 - macOS不支持
802.11 k/r
。 - Windows 10在硬件允许的条件下支持
802.11 k/v
,在 802.1x 认证网络中支持 802.11r。 - 三星自 Note8 开始支持
802.11 k/v/r
- 国产的手机未知。
- OpenWrt 开启 802.11r 只需设置
802.11r Fast Transition
这一个选项,其他不用动。
在PSK认证的网络中,ft_over_ds
这个选项没有意义,因为认证所需的信息都是在AP本地生成的,不涉及AP之间的通讯。(更新:看日志还是有区别的,ft_over_ds=1会有一条报错,虽然没有实际影响。建议还是设置ft_over_ds=0) - 无论是同一 AP 还是不同 AP,它们的 5G 和 2.4G 频段之间都可以实现 802.11r 快速切换。
- 「Wi-Fi 魔盒」的漫游测试不是很靠谱,还是要以真实环境下 App 的实际表现为准,要知道是否进行了802.11r 快速切换,最准确的方法还是看日志。OpenWrt 在
/etc/config/wireless
中config wifi-device
下增加一行option log_level ‘0’ 即可开启详细日志。
802.11r快速切换的日志类似于这样:1
2
3
4
5
6
7
8
9
10Tue Jun 11 14:56:32 2019 daemon.debug hostapd: wlan1: STA 14:d0:0d:32:1a:58 IEEE 802.11: binding station to interface 'wlan1'
Tue Jun 11 14:56:32 2019 daemon.debug hostapd: wlan1: STA 14:d0:0d:32:1a:58 IEEE 802.11: authentication OK (FT)
Tue Jun 11 14:56:32 2019 daemon.debug hostapd: wlan1: STA 14:d0:0d:32:1a:58 MLME: MLME-AUTHENTICATE.indication(14:d0:0d:32:1a:58, FT)
Tue Jun 11 14:56:32 2019 daemon.debug hostapd: wlan1: STA 14:d0:0d:32:1a:58 IEEE 802.11: association OK (aid 2)
Tue Jun 11 14:56:32 2019 daemon.info hostapd: wlan1: STA 14:d0:0d:32:1a:58 IEEE 802.11: associated (aid 2)
Tue Jun 11 14:56:32 2019 daemon.notice hostapd: wlan1: AP-STA-CONNECTED 14:d0:0d:32:1a:58
Tue Jun 11 14:56:32 2019 daemon.debug hostapd: wlan1: STA 14:d0:0d:32:1a:58 MLME: MLME-REASSOCIATE.indication(14:d0:0d:32:1a:58)
Tue Jun 11 14:56:32 2019 daemon.debug hostapd: wlan1: STA 14:d0:0d:32:1a:58 IEEE 802.11: binding station to interface 'wlan1'
Tue Jun 11 14:56:32 2019 daemon.debug hostapd: wlan1: STA 14:d0:0d:32:1a:58 WPA: event 6 notification
Tue Jun 11 14:56:32 2019 daemon.debug hostapd: wlan1: STA 14:d0:0d:32:1a:58 WPA: FT authentication already completed - do not start 4-way handshake
References:
Koolshare
Koolshare
docs-microsoft