Wi-Fi 漫游切换耗时研究

2023-05-21 21:03:15 +08:00
 cwbsw
终端为 iOS 16.4 和 Android 13 。
AP 为数台 360 T7 ,分别测试了开源和闭源驱动,开启以及关闭 802.11r(FT)。
切换耗时数据来自日志。

结论:

1.开启 FT ,耗时约为 30-60ms ,iOS 和 Android 无明显区别,开源和闭源驱动无明显区别。

2.关闭 FT 。耗时约为 200-300ms ,iOS 和 Android 无明显区别,开源驱动大部分落在 200-300ms 区间,但也记录到一些低于 200ms 甚至低于 100ms 的记录,闭源驱动没有发现此现象。
3042 次点击
所在节点    宽带症候群
18 条回复
datocp
2023-05-21 21:06:58 +08:00
好伤心的结果,
非 802.11r 环境,支持弱信号踢除,依然是 1.的结果。无线是个玄学,系统终端都有各种各样的关系。
listenfree
2023-05-21 21:16:51 +08:00
我也纠结了几天,现在想通了,这点切换时间对日常使用已无影响,视频都有缓冲,游戏 udp 丢两个包也无所谓。
顺便说一下 360t7 开硬件加速,下载 PT,我靠直接拉满 300M 带宽,路由器毫无波澜。
owlbatex
2023-05-21 21:55:04 +08:00
漫游更多的还是看终端
cwbsw
2023-05-21 22:28:07 +08:00
@owlbatex
漫游策略确实主要看终端。
iOS 优先 5GHz 做得还可以,但我手上这个 Android 就很无语,经常连着一个-80db 的 2.4GHz 信号也不切换到-55db 的 5GHz 信号,甚至手动发送 802.11v 通知也会被拒绝,必须踢掉才会重连。
但是这里测试的是切换耗时,只要支持 FT ,表现都差不多。
LisaSue
2023-05-21 23:02:33 +08:00
lz 用的是啥安卓机啊,我在家里测过差不多的场景,用了三个高通+一个 mtk 的路由器刷集客组网,尝试了三星和华为还有荣耀,切换都很积极,耗时都在 70ms 以内.
kaedeair
2023-05-22 09:32:34 +08:00
@cwbsw #4 这时候就需要 AC 弱信号剔除的功能了
txydhr
2023-05-22 12:45:50 +08:00
这就是移动网络和 wifi 的本质区别了,移动网络由服务端调控。wifi 则是提供一串信号,客户端自由选择。
dfly0603
2023-05-23 14:35:10 +08:00
有人说 11r 主要优化了 802.1x 的认证速度,对 PSK 影响不大?
cwbsw
2023-05-23 15:06:03 +08:00
@dfly0603 数据都贴出来了,大不大自己判断呗。
leonunix
2023-05-24 08:06:25 +08:00
需要一个 ac 。再 802.11r 中 ac 会生成 PMK-R0 和 PMK-R1 ,并且下发给 ap 。再漫游中这个认证的过程就可以加快了
cwbsw
2023-05-24 10:57:29 +08:00
@leonunix 这个步骤 AC 不是必需的,开源和闭源驱动都有相应的解决方案。
NSAgold
2023-06-01 14:00:46 +08:00
其他路由器尤其是 mt76xx 好像闭源驱动不支持 kvr 来着?
然后好像 ft over DS 是没用的来着,还有重关联截止时间默认 1000 不起效要调到 20000 才行。
这边坑好像还是挺多的
dengyong
2023-06-21 23:36:58 +08:00
https://github.com/berlin-open-wireless-lab/DAWN ,openwrt 有个 wifi 控制器 dawn ,协助漫游效果非常好,可以用 ubus monitor hostapd 命令查看 ap 的 802.11kvr 协商过程,dawn 没有运行时 802.11kv 这些协议实际是没有工作的,hostapd_cli show_neighbor 可以查看邻居列表
dengyong
2023-06-21 23:55:15 +08:00
漫游中 802.11kv 比 802.11r 更重要,如果没有 dawn ,usteer 这些辅助,运行 hostapd_cli show_neighbor 可以看到邻居列表是空的。
cwbsw
2023-06-22 10:58:15 +08:00
@dengyong
然而实测下来 kv 才是没啥用的,FT 降低切换耗时才是实打实的。
neighbor report 我是 ubus 手动设置的,但是看不出来有什么积极作用,按照预设路线行走,漫游切换点没有变化。
bss_transition 如前所述,终端有自己的切换逻辑,没到它的阈值就算手动发送 bss_transition_request 也没用。
rzero
320 天前
@cwbsw 大佬你好。我购买了 360T7 和 wr30u 来对家中网络进行升级。但是由于这两个都没有官方 openwrt 支持,我用的都是别人编译的版本。
360T7 用的是这个[hanwckf/immortalwrt-mt798x (github.com)]( https://github.com/hanwckf/immortalwrt-mt798x),但是它的无限配置是 luci-app-mtk ,我找不到 802.11r 的配置选项。
wr30u 用的是这个 https://www.right.com.cn/forum/thread-8284824-1-1.html ,它有 802.11r 但是却啥都不能设置,我查看日志看到 FT 会有 The PMKID is invalid 错误。现象就是连上它之后压根不会漫游,甚至强度低于-80db 了都不会,只能手动断开 wifi 重连。

看到你测试了无线开源和闭源的固件,我想问下开源的固件在那找。我不需要最强的性能,我只想要它的设置和官方 openwrt 一样,可以一起工作就行。😭

注:家中网络原本是 ax6s(做 ac )+3 R3g ( ap ),802.11r 工作得很正常。
cwbsw
319 天前
@rzero 已经支持了啊。360T7 已经在 23.05-rc2 了,WR30U 代码也已合并,可以自己编译或者等下一个 RC 。
rzero
318 天前
@cwbsw 好的!我是在 openwrt 官网的 toh 里没有找到,甚至连设备的页面都没有,我就以为是不支持的。我现在就去编译😭

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/941746

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX