本发明涉及通信技术领域,特别涉及一种兼容桥加速的wifi漫游方法和装置。
背景技术:
wifi漫游是一种sta(station,无线工作站)在移动到主ap(accesspoint,无线接入点)和从ap覆盖范围的临界区域时,sta与从ap进行关联并与主ap断开关联,且在此过程中保持不间断的网络连接的技术。通常情况下,ap设备工作在桥模式,业务报文不经过内核转发,而是通过驱动软件或硬件直接转发。ap设备从它的所有端口接收mediaaccesscontrol(mac)地址信息,形成mac地址表并维护它。当收到一帧数据时,它将根据自己的mac地址表来决定是将这帧数据进行过滤还是转发。此时,维护的这张mac表称为fdb。普通的业务报文不经过内核转发,这样可以降低cpu的占用率,提升设备的数据转发性能,降低对设备的硬件配置要求。
然而,在wifimesh组网或者wifi中继组网中,当sta从主ap漫游切换到从ap的时候,sta在主ap转发的接口发生了变化。很多sta设备在漫游后不会发送广播的sta报文,而是发送单播的arp报文甚至不发送arp报文,主ap无法感知sta的端口发生变化,发给sta的数据还是从原来的端口转发,业务报文无法正确转发到sta,就会出现sta网络不通的问题。
技术实现要素:
基于此,有必要提供一种兼容桥加速的wifi漫游方法和装置,可在不影响转发性能的情况下解决网络转发异常的问题,有效地改善用户的漫游体验。
为实现上述发明目的,本发明采用以下技术方案。
本发明提供一种兼容桥加速的wifi漫游方法,用于sta从主ap向从ap过渡wifi网络连接,包括步骤:
接收sta发送的报文;
若匹配到arp或dns报文,则将所述arp或dns报文上报至主ap的内核;
根据所述arp或dns报文获取所述sta的端口信息,更新主ap的fdb;学习并创建新的sta桥加速表项;
根据所述新的sta桥加速表项转发从所述sta接收到的业务报文。
优选地,所述若匹配到arp或dns报文,则将所述arp或dns报文上报至主ap的内核的步骤具体包括:
若所述报文由软加速发送,则通过代码进行匹配;
若所述报文由硬加速发送,则通过主ap相关的寄存器进行匹配。
优选地,所述根据arp或dns报文获取sta的端口信息,更新主ap的fdb;学习并创建新的sta桥加速表项的步骤具体包括:
所述主ap的内核通过所述arp或dns报文自动感知所述sta的端口信息是否发生变化;
若所述sta的端口信息发生变化,则自动更新所述fdb,以更新发往sta的端口信息;
删除旧的sta桥加速表项,学习并创建新的sta桥加速表项。
优选地,还包括步骤:
若未匹配到arp或dns报文,则通过桥加速直接对所述报文进行转发。
本发明还提供一种兼容桥加速的wifi漫游方法,用于sta从主ap向从ap过渡wifi网络连接,包括步骤:
接收sta发送的报文;
若匹配到广播报文,则上报至主ap的内核;
根据所述广播报文获取所述sta的端口信息,更新主ap的fdb;学习并创建新的sta桥加速表项;
根据所述新的sta桥加速表项转发从所述sta接收到的业务报文。
优选地,所述若匹配到广播报文,则上报至主ap的内核的步骤具体包括:
若所述报文为广播报文,则判定其为arp或dns报文;
将所述报文上报至主ap的内核进行处理。
优选地,所述根据所述广播报文获取sta的端口信息,并更新主ap的fdb的步骤具体包括:
所述主ap的内核通过所述广播报文自动感知所述sta的端口信息是否发生变化;
若所述sta的端口信息发生变化,自动更新所述fdb,以更新发往sta的端口信息。
优选地,还包括步骤:
若未匹配到广播报文,则通过桥加速直接对所述报文进行转发。
优选地,在所述通过桥加速直接对所述报文进行转发的步骤之前,还包括步骤:
判断所述报文的入口信息是否能与所述fdb内的mac地址匹配;
若是,则进入下一步;否则,将所述报文丢弃。
本发明再提供一种兼容桥加速的wifi漫游装置,用于sta从主ap向从ap过渡wifi网络连接,包括:
接收模块,用于接收sta发送的报文;
上报模块,用于若匹配到arp或dns报文,则将所述报文上报至主ap的内核;
更新模块,用于根据arp或dns报文获取所述sta的端口信息,更新主ap的fdb;学习并创建新的sta桥加速表项;
转发模块,用于根据所述新的sta桥加速表项转发从所述sta接收到的业务报文。
本发明根据sta访问网络前会发送arp报文或者dns报文,且arp报文和dns报文的会附带sta的入口信息的特点,通过匹配arp报文和dns报文的特征,让这两种报文不走桥加速,而是交由内核进行处理,从而触发sta桥加速表项更新,使sta发送过来的业务报文直接从桥加速转发出去,从而不仅解决了在wifi漫游时的网络转发异常的问题,而且提高了转发效率。同时,由于arp报文和dns报文的流量不大,不会对ap的cpu造成负荷,使得在不影响转发性能的情况下,有效地改善了用户的漫游体验。
附图说明
图1为本实施例一中兼容桥加速的wifi漫游方法的流程示意图;
图2为本实施例二中兼容桥加速的wifi漫游方法的流程示意图;
图3为本实施例三中兼容桥加速的wifi漫游装置的方框结构示意图。
本发明目的的实现及其功能、原理将在具体实施方式中结合附图作进一步阐述。
具体实施方式
下面结合附图及具体实施例做进一步说明。
如图1所示,本实施例提供一种兼容桥加速的wifi漫游方法,用于sta从主ap向从ap过渡wifi网络连接,包括步骤:
s1:接收sta发送的报文;
s2:判断是否匹配到arp或dns报文;
s3:若是,则将所述arp或dns报文上报至主ap的内核;
s4:根据所述arp或dns报文获取所述sta的端口信息,更新主ap的fdb;学习并创建新的sta桥加速表项;
s5:根据所述新的sta桥加速表项转发从所述sta接收到的业务报文。
在sta连接网络时,会将各种报文发送给主ap,由主ap进行转发,这些报文大部分是业务报文,当sta在移动到主ap和从ap覆盖范围的临界区域时,可能会发送arp报文,有的sta可能在漫游后还没有发arp报文就去访问网络了,而访问网络一般通过域名,需要先发送dns请求,此时,主ap可接收到dns报文。
步骤s2中,所述若匹配到arp或dns报文,则将所述arp或dns报文上报至主ap的内核的步骤具体包括:
若所述报文由软加速发送,则通过代码进行匹配;
若所述报文由硬加速发送,则通过主ap相关的寄存器进行匹配。
由于arp或dns报文会附带发送方的端口信息,因此,步骤s3具体包括:
所述主ap的内核通过所述arp或dns报文自动感知所述sta的端口信息是否发生变化;
若所述sta的端口信息发生变化,则自动更新所述fdb,以更新发往sta的端口信息;
删除旧的sta桥加速表项,学习并创建新的sta桥加速表项。
本实施例将arp或dns报文交由主ap的内核的内核进行处理,若sta的入口发生了变化,会触发fdb更新,以更新sta的接口信息。
在更新fdb之后或者同时,删除旧的sta桥加速表项,学习并创建新的sta桥加速表项。主ap会根据新的sta桥加速表项通过桥加速转发转发从所述sta接收到的业务报文,实现了网络数据的无间断转发。
此外,本实施例还包括以下步骤:
s6:若未匹配到arp或dns报文,通过桥加速直接转发从所述sta接收到的业务报文。
即,本实施例对sta的业务报文,直接通过桥加速进行转发,不经过sta的系统内核,从而不占用设备的cpu,不影响设备的转发性能,可提升设备的转发速率,有效改善用户的漫游体验。
实施例二:
参照图2所示,本发明提供另一种兼容桥加速的wifi漫游方法,用于sta从主ap向从ap过渡wifi网络连接,主要包括以下步骤:
stp1:接收sta发送的报文;
stp2:判断是否匹配到广播报文;
stp3:若是,则将所述广播报文上报至主ap的内核;
stp4:根据所述广播报文获取所述sta的端口信息,更新主ap的fdb;学习并创建新的sta桥加速表项;
stp5:根据所述新的sta桥加速表项转发从所述sta接收到的业务报文。
其中,步骤stp2具体包括:
stp21:若所述报文为广播报文,则判定为匹配到广播报文;
stp22:将所述报文上报至主ap的内核进行处理。
由于在桥加速的场景下,单播报文(即单播业务报文)会直接被加速转发,不会上报ap内核,只有广播报文,如arp报文和dns报文才能交由ap内核进行处理,并触发fdb等sta的接口信息更新。
因此,在步骤stp2之后,还包括步骤:
stp6:若未匹配到广播报文,通过桥加速直接对所述报文进行转发。
很多sta漫游后不会发送广播的arp报文,而是发送单播的arp报文,甚至不发送arp报文。本实施例通过匹配报文的特征,把单播的arp报文也交由ap内核处理,触发sta的接口更新。同时把dns报文交ap内核处理,解决个别情况不发arp报文就访问网络的问题。
具体地,步骤stp4进一步包括:
所述主ap的内核通过所述广播报文自动感知所述sta的端口信息是否发生变化;
若所述sta的端口信息发生变化,自动更新所述fdb,以更新发往sta的端口信息。
此外,在所述通过桥加速对所述报文进行转发的步骤之前,还包括步骤:
判断所述报文的入口信息是否能与fdb内的mac地址匹配;
若是,则进入下一步;否则,将所述报文丢弃。
ap设备只对fdb内的mac地址表所对应的端口进行桥加速,若收到未能匹配到mac地址的入口信息的报文,则将该报文丢弃。
实施例三:
参照图3所示,基于实施例一,本实施例相应提供一种兼容桥加速的wifi漫游装置100,用于sta从主ap向从ap过渡wifi网络连接,包括:
接收模块10,用于接收sta发送的报文;
上报模块20,用于若匹配到arp或dns报文,则将所述报文上报至主ap的内核;
更新模块30,用于根据arp或dns报文获取所述sta的端口信息,更新主ap的fdb,学习并创建新的sta桥加速表项;
转发模块40,用于根据所述新的sta桥加速表项转发从所述sta接收到的业务报文。
本实施例的上述各模块的具体功能和用途可参照实施例一中所述,此处不再赘述。
综上所述,本发明根据sta访问网络前会发送arp报文或者dns报文,且arp报文和dns报文的会附带sta的入口信息的特点,通过匹配arp报文和dns报文的特征,让这两种报文不走桥加速,而是交由内核进行处理,从而触发sta桥加速表项更新,从而不仅解决了在wifi漫游时的网络转发异常的问题,而且提高了转发效率。同时,由于arp报文和dns报文的流量不大,不会对ap的cpu造成负荷,使得在不影响转发性能的情况下,有效地改善了用户的漫游体验。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。