V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bibiisme
V2EX  ›  路由器

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

  •  
  •   bibiisme · 2021-12-24 12:25:41 +08:00 · 2276 次点击
    这是一个创建于 1066 天前的主题,其中的信息可能已经有所发展或是发生改变。
    贴子已经发在恩山了,我是恩山最早折腾老毛子 KVR 的,也在这里发下。先下结论:对于非开源 MT76 驱动的固件。只需要同样的 SSID 密码和加密方式,固件启用 ralinkiappd ,不需启用 kvr ,漫游便不会断线重连。

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


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

    谬论


    但凡有花生也不会醉
    bibiisme
        3
    bibiisme  
    OP
       2021-12-24 13:14:24 +08:00 via Android
    @PMR 我测过,你测过?
    bibiisme
        4
    bibiisme  
    OP
       2021-12-24 13:24:35 +08:00 via Android
    我是实际测过的,手机软件显示切换延迟 60ms ,状态栏 wifi 先变弱再满格,农药也没卡。如果有人来扯什么没 mesh 不能漫游的,建议先去看看 kvr 和 mesh 的文档。
    ghjexxka
        5
    ghjexxka  
       2021-12-24 13:46:11 +08:00
    ralinkiappd 本身就是 kvr 相关的,所以依然算是开启了 kvr 吧?
    bibiisme
        6
    bibiisme  
    OP
       2021-12-24 13:58:52 +08:00 via Android
    @ghjexxka ralinkiappd 还有 802.11f ,这才是 mtk 漫游实现的关键,参考下面文档。
    https://doc88.com/p-6691789965327.html
    bibiisme
        7
    bibiisme  
    OP
       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
        8
    xiaobinkk  
       2021-12-24 14:44:47 +08:00
    老毛子固件怎么启用 ralinkiappd ?
    bibiisme
        9
    bibiisme  
    OP
       2021-12-24 14:55:29 +08:00 via Android
    @xiaobinkk 用有 ralinkiappd 的源码编译个固件就行。
    PMR
        10
    PMR  
       2021-12-24 16:32:03 +08:00 via Android
    上 voip 场景测


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

    无知者无谓
    bibiisme
        13
    bibiisme  
    OP
       2021-12-24 16:54:18 +08:00
    @Livid 站长您好。 @PMR 这人既无实测,又无理论依据,在这阴阳怪气发布一些没有意义的回复,麻烦处理下。
    datocp
        14
    datocp  
       2021-12-25 19:41:51 +08:00 via Android
    漫游确实不是什么黑科技,查询到的 802.11 时代,也就是没有 ac ,只有两个 ap 间的漫游就低到 55ms 。1 秒有 1000ms
    datocp
        15
    datocp  
       2021-12-25 21:15:35 +08:00 via Android
    漫游确实不是什么黑科技,查询到的 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
    不如远的发射信号强,而远的却是从三楼覆盖二楼加强了功率,结果终端舍近求远。无线这种被动组网遇到的问题远比理论多。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2694 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:48 · PVG 18:48 · LAX 02:48 · JFK 05:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.