螃蟹WiFi驱动中的Band Steering功能

螃蟹WiFi驱动中的Band Steering功能

Band Steering功能简介

在双频路由器中,支持2.4G和5G频段同时接入。当把两个AP的SSID设为相同时,终端(如手机、笔记本)的无线网卡在连接指定的SSID时,可能会连到不同的频段上。一般地,5G频段干扰少,我们会优先连接5G(也可以反过来,优先2.4G),这样,只要用路由器上的Band Steering功能,就可以让终端接入时优先使用指定的频段。

基本原理

我们知道,无线终端在一个环境中,首先会进行scan扫描,找到不同信道中的AP。这是通过在不同的信道中主动或被动的接收AP发出的beacon、probe response帧,获得AP信息。然后通过auth、association帧进行认证和关联,建立连接。Band Steering基本原理就是,在优先的频段上,对终端发出的帧进行回应,在非优先频段则有条件地回应,从而使得终端能优先连接到指定的频段上的AP。

Band Steering的算法可以由厂家自定义,没有统一的标准。各种算法大同小异,这里以RTL的驱动代码为例,简单讲一下基础算法。

首先定义prefer band和other band,代表指定优先使用的频段(5G或2.4G)和另外一个频段。数据结构有preferband队列和block队列,其中preferband队列存储已确认支持优先频段的终端信息,block队列存储在other band中暂时被拒绝连接的终端信息。模块中还有几个定时器:aging表示终端在优先频段中正常处理的时间长度;timerX是终端在block队列中阶段1的时长;timerZ是终端在block队列中阶段2的时长。当定时器超时后,终端将会被移出相应的队列。

流程

prefer band接收probeReq的处理流程
上图描述了prefer band中接收到probeReq帧的处理流程。

  • 首先把STA加入preferband队列(如果原来已经加入,则只把aging=0);
  • 如果RSSI太低,表明信号弱;而STA如果并没有加入block队列,表明它可以与other band进行连接,这时算法决定让STA连接other band;
  • 否则,表明prefer band对STA来说,是可以连接的,进行正常帧处理。

下面再看一下other band接收到probeReq的处理流程:
other band接收probeReq处理流程

  • 在other band中接收到probeReq,先检查是否在block队列中,是则忽略此帧,目的是让终端可以尝试连接prefer band;
  • 如果不在block队列中,再检查是否在preferband队列中,如果是,则表明应该优先连接perfer band,于是把STA加入block队列,暂时阻止其连接other band;如果不在preferband队列,则表明终端可能只支持other band频段,于是走正常处理流程。

后续在prefer band中接收到auth或association帧,要检查此STA是否在preferband队列中,是则正常处理,否则忽略;

在other band中接收到auth或association帧,要检查STA是否在block队列中,是则忽略,否则正常处理。

aging定时器是保证一段时间后,可以把preferband队列中STA进行清除,避免长期记忆的副作用;timerX、timerZ是避免STA被长期锁定在block队列中。aging超时默认值300秒,timerX超时默认值300秒,timerZ超时默认值20秒。

总结

Band Steering功能并不复杂,主要考虑避免出现无法连接上的异常情况。要兼容只支持一个频段的终端能正常连接。对支持两个频段的终端,在算法上一定要保证不出现错误选择,同时也可以考虑其他因素对频段选择结果的影响。上面的流程中引入了对RSSI强度的判断,如果RSSI太弱,算法上会放弃preferband的选择,改作使用other band。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

两只勤劳的蜜蜂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值