• 文章搜索:
  • IP技术专栏

        • 分享到...

        • 新浪微博
        • 腾讯微博
        • 推荐到豆瓣 豆瓣空间
        • 分享到搜狐微博 搜狐微博
        • 分享到QQ空间 QQ空间
        • 分享到腾讯朋友 腾讯朋友
        • 网易微博分享 网易微博
        • 添加到百度搜藏 百度搜藏
        • 转贴到开心网 开心网
        • 转发好友 告诉聊友
    • 推荐
    • 打印
    • 收藏

    WiFi世界之“漫游”纵谈

    文/张利兵

    WiFi网络中关于“漫游”的议论纷争始终没有停止过,期间不免夹杂着一些误解,当然在协议范围内各方见仁见智,依然是主流声音。本篇将从多个视角谈论一下WiFi网络的漫游行为,力求呈现一个客观的全景图。

    一、 WiFi终端“漫游”的概念诠释

    漫游,是个状态描述的概念词,它只是表征了终端的一种常规性行为状态。而在WiFi网络中,一般对漫游的理解是比较丰富和多元的,且并无标准定义,而针对其的完整理解可从两个视角入手,即终端本身和AP。

    • 终端视角的漫游概念

    终端是漫游行为的决策者和发起者,在终端看来,是它主动将与某一个AP的关联关系切换到另一个AP,从而实现其与无线始终保持连接的目的。当然,从漫游行为的设计目的来看,终端选择性漫游到品质优良的AP这种结果也有利于其自身电池电量的保存,因为好的无线链路可以降低传输数据所需的时间。

    • AP视角的漫游概念

    对于AP来说,终端的漫游行为其实就是终端移动性接入的一种需求实现。站在管理漫游行为和提供漫游服务的立场上,AP提供终端进行漫游所需的无线信号,并提供具有相同SSID标识的无线服务,同时以一定的机制保证终端在移动过程中不间断通信的无缝移动需求,以及保证移动前后终端的属性和权限保持不变。从漫游行为的设计目的来看,漫游旨在通过最小化不必要的数据交互流量来提高整体WiFi网络的性能。图1为AP下终端的漫游行为图示。

    图1 终端在AP覆盖范围下的漫游图示

    二、 WiFi终端“漫游”的行为特点

    • 终端选择AP点的“行为准则”

    既然终端具有漫游的决策权,那么整个漫游行为的发生自然也是由终端驱动的,一般而言,终端的驱动程序包含了其关于漫游的“智慧”。终端漫游的行为其实就是终端选择不同AP点接入的行为,而这种选择何时发生以及发生的触发条件都是没有标准规定的。

    终端选择AP的准则,即终端漫游发生的算法是随不同终端厂商而不同的,基本属于“私有产权”。一般而言,漫游算法采用的“触发条件”基本上都是相当的,其中包括但不限于信号强度、信号质量、误码率、遗漏的信标帧数等,而这些参量都是无线链路的“特征值”,其值表征了链路的品质。由此可知,漫游发生考量的条件是个综合实力的对比,而这个对比的结果就构成了“触发阈值”,一般来说,漫游发生的条件阈值都是不尽相同的,所以会有一种现象,即在无线覆盖的同一个位置,有些客户端可能尝试漫游,而有些则不会。

    终端感知信号的方式一般有被动和主动两种,被动监听Beacon帧和主动发送Probe帧进行探测。终端在漫游过程中,也是采用这两种方式进行信号感知的,而不同终端类型倚重的方式不同,但目的都是为了更好的感知环境信息以便为漫游行为提供决策依据。

    • 终端的漫游轨迹

    既然终端在两个AP间进行切换行为,而且是通过报文的交互实现的,那么终端在和新旧AP的交互顺序上就存在变数,由此构成终端的漫游轨迹不同。

    从终端视角来看,漫游终端可能先断开旧链接,再建立新链接;也有可能先建立新链接,后断开旧链接;还有可能保持旧链接的同时建立新链接,旧链接不主动断开,等待其自主废弃。从实践来看,大部分的终端设备在漫游的时候不会和旧AP断开,即不会主动向旧AP发送解关联或解认证报文,而直接选择一个新AP进行链接建立。在AC管理的瘦AP架构下,这种情况发生时,AC会维持“两个客户端的信息”,其中一个是在旧AP上的“链接成功状态”的客户端,另一个则是在新AP上的“正在链接状态”的客户端,最终状态收敛后,AC上只有一个“链接成功状态”的客户端,当然其可能是成功漫游至新AP的“客户端”,也可能是没有漫游成功依然留守在旧AP的“客户端”。

    从AP的视角的来看漫游轨迹,可以分为在一个AC管理下的AP间的漫游和在不同AC管理下的AP间漫游,后一种类型称为跨“漫游域”漫游。从管理用户漫游行为的角度出发,终端在同一AC下的AP间进行漫游相当于在AC的“手掌心”里面转,不管从哪一个AP接入,它的属性信息以及在每个AP上的驻留轨迹信息都始终记录在AC上。而对于漫游域这种情况,新的AP已经不属于原来的AC,它将终端接入后提供的相关信息提交到新AC后,新的AC上并无此终端用户记录信息,无法提供原有的服务。这种情况需要在这些AC间建立终端用户信息的同步机制,从而实现为漫游用户提供继承性服务。我司是通过IACTP协议将多个AC连接成一个漫游域,并使终端用户的信息得以同步,从而可提供接入终端在此漫游域下所有AC间的无缝漫游需求。

    • 终端漫游发生时的报文交互

    终端漫游行动的发生是通过报文交互来完成的,而对于无线开放不加密的服务和加密认证的服务两种情况,报文交互的具体内容是不同的。

    Ø 无线开放不加密方式下的终端漫游

    图2 终端在AP提供开放不加密服务下的漫游报文交互示意图

    图示2中表征的终端在漫游时向新AP(图示中为AP2)发起新的连接请求,最终完成连接,而整个漫游过程并没有和旧AP(图示中为AP1)发生报文交互联系。这是一种漫游发生的常规情况,但也有终端漫游时会主动先和旧AP断开连接,然后再进行漫游行为,和新AP建立新的连接。下面是这种漫游行为的一个debugging信息交互。

    1. 终端发送解关联报文:

    #Apr 20 13:40:31:945 2010 WX3024 WMAC/4/Station Deassociate:Station Deassoc:1.3.6.1.4.1.43.45.1.10.2.75.3.2.0.5<h3cDot11StationDeAssocTrap> StaMac1:00:03:2A:19:0A:CE StaMac2:00:03:2A:19:0A:CE UserName:00-03-2a-19-0a-ce@system StaMac3:00:03:2A:19:0A:CE VLANId:7 Radioid:2 SSIDName:TVvoip SessionDuration:1702 APID:219801A0AL9099G00596 AP Name:ap02 BSSID:00:24:73:4E:25:B4

    2. 终端断开与旧AP连接:

    #Apr 20 13:40:31:946 2010 WX3024 WMAC/4/Station Disconnect: Station Disconnect:1.3.6.1.4.1.43.45.1.10.2.75.3.2.0.8<h3cDot11StationDisconnectTrap> StaMAC:00:03:2A:19:0A:CE StaMAC:00:03:2A:19:0A:CE AP Name:ap02 BSSID:00:24:73:4E:25:B4 SSID:TVvoip SessionDuration:1702 VLAN Id:7 APID:219801A0AL9099G00596 Radioid:2 Reason:Receive de-authentation

    3. 终端发生漫游:

    #Apr 20 13:40:32:341 2010 WX3024 WMAC/4/Station Roam Success:Station Roam Success:1.3.6.1.4.1.43.45.1.10.2.75.3.2.0.7<h3cDot11StationRoamingTrap> StaMac1:00:03:2A:19:0A:CE StaMac2:00:03:2A:19:0A:CE Serial Id:219801A0AL9099G00651 UserName:00-03-2a-19-0a-ce@system StaMac3:00:03:2A:19:0A:CE VLAN Id:7 RoamingTime:1730957 Radioid:2 SSIDName:TVvoip AC IP Address:0.0.0.0

    4. 终端漫游上线成功

    #Apr 20 13:40:32:342 2010 WX3024 WMAC/4/Station Authorization Success:Station Auth Success:1.3.6.1.4.1.43.45.1.10.2.75.3.2.0.6<h3cDot11StationAuthorSuccTrap> StaMac1:00:03:2A:19:0A:CE StaMac2:00:03:2A:19:0A:CE UserName:00-03-2a-19-0a-ce@system StaMac3:00:03:2A:19:0A:CE VLANId:7 SessionStartTime:2010-4-20,13:40:31.0 Radioid:2 SSIDName:TVvoip APID:219801A0AL9099G00651 AP Name:ap04 BSSID:00:24:73:4E:2C:94

    Ø 无线认证加密方式下的终端漫游

    下面以无线802.1X认证为例说明终端漫游的报文交互情况。一般802.1X认证的报文交互较多,而终端进行漫游时,在向新AP发起连接时如果能够省去耗时的802.1X认证交互过程,那么漫游行为才能够快速及时地完成。

    图3 终端在AP提供认证加密服务下的漫游报文交互示意图

    图示3表征的终端在旧AP上接入时需要进行802.1X认证,而漫游至新AP时在规程上也是要进行802.1X认证才能接入的。为了提高漫游效率,系统提供了快速漫游方式的实现,即在接入新AP时省去802.1X认证的过程,直接利用终端在与旧AP交互时双方生成的密钥进行4步握手以快速完成认证步骤。这种快速漫游的方式其实是一种Key Caching技术,有SKC(Sticky Key Caching)和OKC(Opportunistic Key Caching)两种方式,在不同的终端上支持情况也不尽相同。

    三、 不同WiFi终端的“漫游”行为表现

    不同终端的漫游行为差异,除了反映在AP的选择机制外,还有其他方面,如漫游时发送的报文、漫游敏感度可否调整以及针对加密模式的处理机制等。终端基于不同的芯片厂商、驱动、网卡类型等,会有不同的AP选择机制,而最重要最常规的因素则是终端接收到的信号强度。终端漫游时,有的会完整发送认证和关联报文进行连接,而有的则直接发送重关联(Re-association)报文进行连接。某些终端的驱动提供了可供修改的外部参数,可进行终端漫游敏感度的调整。不同的终端对于快速漫游的支持情况也是不相同的,有的只支持SKC模式,有的只支持OKC模式,而有的则两种都支持。

    从实践来看,在同等无线条件下笔记本终端漫游成功率要高于手机类智能终端。如在同样无线条件下测试,HP E2560P在开放不加密模式服务和加密认证模式服务下的漫游成功率都较高,而手机终端如三星9250则漫游敏感度非常差,直到原有AP信号极弱甚至连接断开才开始扫描新AP并发起连接(当时驱动版本)。iPhone4S漫游效果则表现适中,而HTC G14的漫游效果也较好。同样,不是所有的手机终端漫游时都发送Re-association报文,很多手机如Me811、三星9250等都不会发送重关联报文。在支持快速漫游方式的终端中,苹果iPad无线芯片支持的是SKC模式,而目前主流的无线芯片一般都采用OKC快速漫游机制。

    从终端漫游时的AP选择机制来看,基本上是基于对信号的整体评估而进行的行为,而这种选择的策略有一个缺陷,就是终端没有评估AP的负荷状况。这方面情况的改善则需要在AP端进行相关负载均衡的策略实施,以实现资源配置最优。

    四、 改善“漫游”行为的综合策略

    • 科学设计AP部署方式,保证信号覆盖连续、平滑且充分无盲区

    无线网络的科学合理部署是保证无线网络是否满足用户业务需求的重要工作,而用户终端漫游的需求是业务需求中很重要的一环,需要在网络规划时认真对待。为了满足用户漫游时的信号强度和信号质量需求,在AP部署方式的选择和AP位置的确定上就要进行充分考虑,保证信号在覆盖区域中的连续和平滑,即AP间信号尽量重叠,信道交叉规划避免过重干扰,以及使信号在终端漫游轨迹上不要存在大的抖动,且覆盖目标区域不要存在盲区。可选择天线入室、X-share AP、信号功分等部署方式进行部署。

    • 修改终端驱动配置参数,改善其漫游行为

    某些终端的驱动开放了一些可以人为设置的参数接口,提供了一定程度的主观配置需求和修改意愿的实现。其中有关漫游行为的参数配置可以改善终端的漫游行为,如提高或降低漫游敏感度,而从本质上看,这种参数的调整就是对终端驱动关于其漫游算法的调整。下面图4是Intel网卡驱动的“漫游主动性”参数,提供了5个档位的选择,依次表征终端漫游的敏感度,即该值由“最低值”到“最高值”表示终端漫游行为的发生状态由迟钝演变至敏捷,相应的各类阈值则由大变小。

    图4 Intel网卡“漫游主动性”参数设置

    • 采用APP类辅助漫游软件

    对于某些终端漫游效果较差或者不会主动漫游的情况,可使用基于智能操作平台Android或者IOS开发的APP类软件进行漫游辅助。使用这类APP软件可帮助终端实现主动漫游触发,以及优化漫游行为的发生,但也存在一定的兼容隐患,不同的终端与软件的适配表现也不相同。

    • 缩短Beacon帧发送间隔

    对于倚重Beacon帧进行漫游信息收集的终端来说,Beacon帧采集的越多则对环境感知的越准确,越有利于终端漫游决策。所以适当提高Beacon的发送量则有利于终端漫游,即可通过缩短Beacon发送间隔来增加Beacon帧的发送量。

    配置命令在Radio-Policy视图下,Beacon-Interval num ,其中num 为Beacon发送间隔值,单位ms.

    • 采用触发重新连接的手段

    用户对于漫游的需求一般有两类,一类是关注漫游的结果,即希望终端能够很及时的切换到较佳的AP上;另一类是关注漫游的过程,即希望终端在漫游过程中尽可能得成功和无缝,无线连接不中断。对于第一类漫游需求,可采用触发终端重新连接的优化手段进行满足。

    开启终端触发重新连接的功能后,AP将感知无线客户端的信号强度,并根据指定的条件阈值进行判断,如果信号强度低于指定值,那么AP会主动向客户端发送解除认证帧报文,给无线客户端一次重新连接或者漫游的机会。这个手段对于希望终端始终连接到信号最好的AP这种需求有促进作用,其是通过主动将终端踢下线来改变终端漫游不灵敏的现状,从而实现无线链路良好状态的持续。

    配置命令可在AC下全局部署,也可以基于单个AP实施,wlan option client-reconnect-trigger rssi singal-check ,其中rssi 为判定阈值,即AP感知到终端的信号强度低于此值时,触发重连接功能。

    • 采用漫游导航特性进行漫游诱导

    另一类漫游需求,即关注漫游的过程而希望终端漫游尽可能无缝不间断,可以通过采用漫游导航特性进行改善。这种漫游特性是在AP侧部署,是通过改变AP发送管理报文的功率大小造成终端误导从而使终端主动发起漫游行为的一种手段。

    开启漫游导航特性后,AP也将感知无线客户端的信号强度,并根据指定的条件阈值进行判定,如果信号强度低于指定值,那么AP会主动降低其Beacon管理帧的发送功率至设定值,同时对于响应终端的Probe Response报文也以设定功率值进行发送。这样终端无论是从Beacon帧采集信号信息,还是从Probe Response采集,都可感知到原有AP信号的强度降低,从而选择其它信号良好的AP,实现主动漫游的效果。这个手段对于信号变化比较敏感的终端很适用,可改善其漫游行为。当然,这个手段也是有一定副作用的,即其通过降低AP的Beacon发送功率帧来诱导终端漫游的行为,可能造成在这个过程中该AP下其它用户的信号感知降低,而如果终端漫游离开AP,则AP的Beacon帧发送功率会恢复。

    这个配置命令可在AC下全局部署,也可以基于单个AP实施,wlan option roam-navigation level dBm RSSI dBm ,其中第一个dBm是Beacon帧在满足判定条件后的发送功率;RSSI是判定阈值,即AP感知到终端的信号强度低于此值时,触发此功能;第二个dBm是Probe Response帧在满足判定条件后的发送功率。

    WiFi网络中的两大“人物”就是终端和AP,而这两个“人物”间的行为互动基本构成了WiFi世界的内容,其中漫游是比较出彩的一笔,因为终端可以自由畅游于AP的“世界”,而AP也“海纳百川”,恣意于统管“千军万马”之终端。

    顶端