MTK 路由器固件无线漫游不断线重连的方法

2021-12-24 12:25:41 +08:00
 bibiisme
贴子已经发在恩山了,我是恩山最早折腾老毛子 KVR 的,也在这里发下。先下结论:对于非开源 MT76 驱动的固件。只需要同样的 SSID 密码和加密方式,固件启用 ralinkiappd ,不需启用 kvr ,漫游便不会断线重连。

原因:观察驱动日志可以发现,断线重连的实际情况是漫游过来后部分设备已经连上,但路由器会将这些设备断开后再让其重新连接(可能是安全策略,而且与手机本身有关,有的手机并不会断线重连) 而通过启用 MTK SDK 里的 RALINKIAPPD 这一软件包,客户端加入后,它会将客户端信息广播到整个局域网内(前提是路由器的本身 ip 在同一网段),这时候漫游就不会断线重连了。理论上 7612 这种无线驱动缺失 kvr 的芯片,只要启用 mtkiappd ,漫游也不会断线重连。


因此对于老毛子固件,只要源码里有 ralinkiappd ,不管你是什么无线芯片,只要设置同样的 ssid 密码和加密方式便能成功漫游,不会断线重连。
2280 次点击
所在节点    路由器
15 条回复
bibiisme
2021-12-24 12:26:08 +08:00
另外关于漫游切换这一问题,个人查过一些文档,是否切换完全取决于手机,例如 iphone 是在信号低于-65dbm (记不太清,之前 mtk 文档写的)开始扫描。不同厂商这一阈值设定不一样,所以不同品牌手机在漫游这方面差异挺大。
PMR
2021-12-24 13:11:10 +08:00
同样的 ssid 密码和加密方式便能成功漫游

谬论


但凡有花生也不会醉
bibiisme
2021-12-24 13:14:24 +08:00
@PMR 我测过,你测过?
bibiisme
2021-12-24 13:24:35 +08:00
我是实际测过的,手机软件显示切换延迟 60ms ,状态栏 wifi 先变弱再满格,农药也没卡。如果有人来扯什么没 mesh 不能漫游的,建议先去看看 kvr 和 mesh 的文档。
ghjexxka
2021-12-24 13:46:11 +08:00
ralinkiappd 本身就是 kvr 相关的,所以依然算是开启了 kvr 吧?
bibiisme
2021-12-24 13:58:52 +08:00
@ghjexxka ralinkiappd 还有 802.11f ,这才是 mtk 漫游实现的关键,参考下面文档。
https://doc88.com/p-6691789965327.html
bibiisme
2021-12-24 14:19:52 +08:00
@bibiisme 文档里 802.11f 协议的部分流程:
1.当 STA (手机客户端)尝试连接新 AP 时,新 AP 会把 STA 信息广播到局域网,旧 AP 收到消息后会把 STA 的之前信息发给新 AP ,帮助新 AP 重建用户环境,
2.旧 AP 断掉与 STA 的连接
3.新 AP 收到旧 AP 的消息后,会以 STA 的 MAC 地址作为源地址发一个广播帧,更新局域网内二层设备(如交换机)的转发表。
xiaobinkk
2021-12-24 14:44:47 +08:00
老毛子固件怎么启用 ralinkiappd ?
bibiisme
2021-12-24 14:55:29 +08:00
@xiaobinkk 用有 ralinkiappd 的源码编译个固件就行。
PMR
2021-12-24 16:32:03 +08:00
上 voip 场景测


别搞虚的
bibiisme
2021-12-24 16:40:32 +08:00
@PMR 微信通话也测过,倒是你测过吗?另外你被降权了,根本收不到消息提醒,怪不得上来就来搞笑。
PMR
2021-12-24 16:48:43 +08:00
哈哈

无知者无谓
bibiisme
2021-12-24 16:54:18 +08:00
@Livid 站长您好。 @PMR 这人既无实测,又无理论依据,在这阴阳怪气发布一些没有意义的回复,麻烦处理下。
datocp
2021-12-25 19:41:51 +08:00
漫游确实不是什么黑科技,查询到的 802.11 时代,也就是没有 ac ,只有两个 ap 间的漫游就低到 55ms 。1 秒有 1000ms
datocp
2021-12-25 21:15:35 +08:00
漫游确实不是什么黑科技,查询到的 802.11 时代,也就是没有 kvr 没有 ac ,只有两个 ap 间的漫游,人家通过抓包无线贞特症就低到 55ms 。1 秒有 1000ms ,你觉得 1 秒钟会语音掉几个字。这里又存在一个叫 tcp/udp timeout 的并发时间消亡控制。当然这些参数不同的路由系统默认值差别非常大,像 routerboard 的值就极低。曾经有个值从 65 调整到 60s 就影响到苹果笔记本的在线更新。
至于 802.11r 四步验证缩小到两步,不会抓包也不知道实际能短到多少时间。
但是现实环境是异常复杂,包括硬件 /软件 /网络设定。很多像 h3c 的文档都强调切换是由终端发起的,而且不同厂家不同的黑科技存在兼容性问题。比如我就用高通刷 openwrt,兼容性最好的是 intel 无线网卡,最差的就是大螃蟹。为了解决 realtek 低速率问题,在这套已经看似稳定运行两年,uptetime 超过 280+天的无线网络调成每天重启就为解决 realtek 。。。
统一 ssid/密码,通过统一 dhcp 获得一样的网络设置,就够漫游了。其它测试中有遇到的问题仅在同一个 mac 地址出现在不同的接口上,可能会导致 dhcp 无法分配地址而导致网络断线,也就是潜在的 arp 问题。当然这个问题我认为不可能在普通家用网络出现。
华为的无缝漫游大体上指的同一个终端在不同的网络设备间移动获得一致的网络设置,acl 权限。另外一种无缝概念指的就是极短无感知的 ap 间切换,但是到底多短和 55ms 相比是多少秒,从来没见人发表过可信服的实验过程。

我在公司使用的是 Batman adv mesh 。我之前使用的是早期的 unifi ap lr2.4g 设备。真的上了 unifi 的当,什么漫游吗,真烂!!!所以当大家在使用不一样的硬件却讨论同一个名词漫游,可能会得出不一样的经验。为了解决没有软 ac 的漫游。又特别写了一个弱信号踢除脚本。也是这时才注意到对于 Windows7 默认设置为了省电是不开启根据信号阈值自动切换 ap 的。它永远粘滞在最后一次连接的那个 bssid 上,除非彻底断开,又手动连接又输入了一遍密码。所以看似统一 ssid 跟 bssid 不是一个概念。
公司是为了解决笔记本台车在一万平方的场地移动接入 erp 系统。所以考察时重点在漫游特性。而 Batman adv mesh 却是唯一一个也是公认的具备一定漫游特性,这些聪明的人看似在解决一个非常小儿科的当终端从 1ap 切换到 2ap 时,数据如何从 1ap 断开快速的切换到 2ap 和终端的联系。这些以为想当然的问题,当然人家的系统解决的是在成千上万 ap 的 mesh 社区网络,而不是才 10 几个 ap 的公司环境。
早期测试使用 tp wdr4310 用的 batman adv mesh,adhoc 结构组网。这个设定里面最直接的一个设置就是所有 ap 都可以设置一样的 bssid 。这不就是 unifi 吹的 zero 漫游,现场看起来只有一个 ap 。
买了 uap ac lr 眼也不眨一下全部刷成 openwrt 。只是这次是 802.11s+batman adv mesh 。当时测试时最直观的感受,win10 intel 7260 无线网卡,通过 bssid 连接软件连接到一个信号更弱的无线 ap 。没几秒又被拉到信号更好的 ap 。802.11s 应该也是具备 adhoc 的统一 bssid 实现只是它可能是另外一个名词。当然注意当时只是两 ap 的测试。
到了公司这种上下左右有 4 个 ap 的环境。我也不敢说我的环境漫游有多强。
对漫游是终端发起的,虽然可以在 ap 端可以通过弱信号踢除脚本强制终端断开重新选择信号更好的 ap ,可能像 Windows7 因为设置问题,就是要连在那 ap 上。也可能近的 ap
不如远的发射信号强,而远的却是从三楼覆盖二楼加强了功率,结果终端舍近求远。无线这种被动组网遇到的问题远比理论多。

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

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

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

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

© 2021 V2EX