举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔知了社区有害的内容
×
不规范转载
×
举报说明
WLAN漫游深入探讨
文/王宁 刘彦东
——网络老爬虫(无线新技术专题)
漫游是WLAN技术的一个重要应用。通过漫游技术,真正实现无线终端移动办公,特别是快速漫游技术,使用户可以在不同的地点快速、安全的接入WLAN网络,漫游切换对用户上网体验无影响。本文针对漫游方式以及漫游与终端的关系等对漫游进行深入探讨。
传统漫游方式主要体现在选择漫游策略时比较PMKID(Pairwise Master key identifier,成对主密钥标识符)的过程,而比较PMKID的方式目前业界主流的是SKC和OKC。
SKC(Sticky Key Caching), 是IEEE 802.11i协议中提供的一种漫游方式。这种方式要求无线网络为无线客户端和它关联的每一个AP都生成一个PMK(Pairwise Master Key,成对主密钥),无线网络中的AP对同一无线客户端不能共用PMK,只能使用自己和无线客户端生成的PMK。无线客户端需要为它关联过的每一个的AP都缓存一个PMK。当无线客户端从Old AP漫游到New AP时,会查找是否有为New AP的缓存的PMK,如果有,就携带关联请求中带New AP的PMKID,New AP收到后根据PMKID查找是否有为该无线客户端缓存的PMK,如果有,则进行快速漫游(即跳过802.1X认证过程,直接进行四次握手);如果没有,就触发无线客户端进行802.1X认证过程。如果无线客户端没有为New AP缓存的PMK,无线客户端就进行全802.1X认证过程。
这种方式并没有被普遍支持,最大的原因就是这种方式下,无线客户端只能快速漫游到它曾经认证过的AP。目前所知仅有苹果终端支持这种方式。
OKC(Opportunistic Key Caching), 也称为PKC(Proactive Key Caching), 这种方式允许无线网络中的所有AP对同一个无线客户端共用一个PMK,这个无线网络和无线客户端缓存的唯一PMK是无线客户端第一次关联到无线网络完成802.1X全认证通过后产生的PMK,之后无线客户端从Old AP漫游到New AP时,PMK依然使用这个PMK,只是在关联请求中携带根据New AP的MAC重新计算的PMKID,New AP收到后根据PMKID计算是否有为该无线客户端缓存的PMK,如果有,则进行快速漫游;没有,就触发无线客户端进行全802.1X认证过程。
这种方式是目前主流的漫游方式,为绝大多数终端所支持。
802.11r是IEEE官方于2008年公布的一个漫游标准,802.11r协议中定义的FT(Fast BSS Transition,快速BSS切换)功能用来减少客户端在漫游过程中的时间延迟,从而降低连接中断概率、提高漫游服务质量。目前主要是苹果终端及一些高档终端支持。和上面介绍的SKC及OKC有如下不同:
1) 在关联过程或者Action帧交换过程就可以交互生成PTK所需信息(PMKID、ANonce和 SNonce等),而且PTK的生成也是在关联过程中完成,不需要进行四次握手。
2) 和SKC及OKC两层密钥结构不同,802.11r是三层密钥结构。
3) 它提供了两种快速漫游信息交互方式: Over the AIR和Over the Distribution System (DS)。
4) 802.11r也支持PSK认证方式,PSK认证的无线客户端进行漫游时也不需要进行四次握手。
1) 第一层是PMK-R0,如果采用的是802.1X认证方式,PMK-R0根据在认证交互过程中从Radius认证服务器得到的主会话密钥(MSK)计算出PMK-R0。如果是采用PSK方式则直接根据PSK进行计算。
2) 第二层是PMK-R1,是通过PMK-R0经过一定算法生成。当无线客户端第一次成功接入无线网络后,会为它产生PMK-R0,但这个PMK-R0并不作为最后生成PTK所需的PMK,而是从PMK-R0为无线客户端连接的AP产生一个独有的PMK-R1,这个才是作为无线客户端和连接的AP产生PTK所需的PMK。当无线客户端和第一个连接的AP成功产生PTK后,无线网络就会为它管理的每一个AP根据无线客户端的PMK-R0生成一个独有的PMK-R1并且分发给各个AP,这样当无线客户端在无线网络的AP间漫游时,就不需要重新生成PMK-R1,可以用已有的PMK-R1生成最终的PTK。对于一个无线客户端来说,无线网络中的所有AP共用相同的PMK-R0,却拥有独有的PMK-R1。
3) 第三层为PTK,由PMK-R1生成,用于加密无线客户端的单播数据报文。
如图1,是802.11r快速漫游过程:
图1 802.11r快速漫游过程
1) 当无线客户端从Old AP漫游到New AP时,会发送FT-Authentication Request给New AP,
2) FT-Authentication request携带了PMKR0Name和SNonce,New AP利用PMKR0Name和帧中的其它信息计算出PMKRlName,然后通过PMKRlName找到对应的已经生成的PMK-R1。无线客户端和New AP计算PTK和PTKName需要用到PMK-R1、PMKR1Name、ANonce和SNonce,所以New AP需要计算出ANonce,随后生成PTK,返回FT-Authentication response给无线客户端,报文会携带PMKR0Name、ANonce、SNonce、R1KH-ID、R0KH-ID。
3) 无线客户端收到FT-Authentication response后,根据报文携带的PMKR0Name、R1KH-ID、
4) R0KH-ID信息计算出PMK-R1和PMKR1Name,随后结合报文中的ANonce、SNonce生成PTK和PTKName。至此,New AP和无线客户端就都有了PTK和PTKName,可以进行加解密操作了。
5) STATarget AP:Authentication-Request (FTAA, 0, RSNIE[PMKR0Name], MDIE,FTIE[SNonce, R0KH-ID])
6) Target APSTA:Authentication-Response (FTAA, Status, RSNIE[PMKR0Name], MDIE,FTIE[ANonce, SNonce,R1KH-ID, R0KH-ID])
7) 重关联请求帧携带的PMKRlName、ANonce、SNonce、MIC值R1KH-ID和R0KH-ID
8) 这些信息都是为了提供给New AP进行确认需要。New AP会将自身的值与这些信息比较,如果发现不同,关联就会失败。
9) New AP验证无误后,回复重关联响应帧给无线客户端,帧内带有加密的GTK,无线客户端可以
10) 用PTK解密获取GTK。重关联完成后,快速漫游过程就完了,无线客户端就可以开始数据通信。
11) STATarget AP:Reassociation Request(RSNIE[PMKR1Name],MDIE,FTIE[MIC, ANonce,SNonce,R1KH-ID,R0KH-ID],RIC-Request)
12) Target APSTA:Reassociation Response(RSNIE[PMKR1Name], MDIE, FTIE[MIC, ANonce,SNonce, R1KH-ID,R0KH-ID, GTK[N]], RIC-Response)
终端型号 | 漫游方式 | H3C | Aruba | Cisco |
ipad Air2 | over-the-air | 支持 | 支持 | 支持 |
Iphone 6 | over-the-air | 支持 | 支持 | 支持 |
Iphone6 plus | over-the-air | 支持 | 支持 | 支持 |
Galaxy Note3 | over-the-air | 支持 | 支持 | 支持 |
图2 部分终端和厂家对802.11r支持情况
零漫游技术是设备厂商为了更好的避免无线客户端在不同AP间漫游时发生掉线和报文丢失而研发的一种新技术,其最大的特点就是可以做到“无缝漫游”,让用户完全感知不到漫游过程。
零漫游的实现方式如下所述:
(1) 当网络中的AP收到来自客户端的Probe Request帧,AC会为该客户端生成一个虚拟的服务,该虚拟服务的BSSID(Basic service set identifier,基本服务集标识)将由AC的桥MAC地址、AP ID和RADIO ID等组成, AP会用这个虚拟BSSID来与客户端进行交互。
(2) 如果客户端选择通过AP 1上线,则AC会将AP 1的虚拟BSSID通告到AP 2上。AP 2将替换本地的虚拟BSSID,并监控该客户端的信号强度。
(3) 当AC发现AP 2对客户端而言服务质量更好时,即AP 2接收到客户端报文的RSSI(Received Signal Strength Indicator,接收信号强度指示)值达到/超过RSSI门限值,并且与AP 1所接收到的客户端报文RSSI值的差值达到/超过RSSI差值门限,那么AC将指定AP 2为客户端提供无线服务。
由于客户端始终使用相同的虚拟BSSID发送数据,所以即使为客户端提供无线服务的AP发生变化,对客户端而言使用的无线服务却是相同的,因此可以做到“无缝漫游”。
从某种意义上来说,漫游其实是终端的主动行为。当终端感受到Old AP无法保证它的通信质量后,就会寻找一个更好的New AP去连接以保证通信质量,这个过程就是漫游。我们的设备主要是配合终端完成这一过程。不同终端漫游的算法不同,就会导致漫游过程不同。
虽然各个厂家终端的漫游算法依据不同,但大部分都是依据如下参数:RSSI,SNR,数据重传等。下面主要从RSSI角度对漫游进行研究。基于RSSI的一般算法是:当终端发现当前连接的AP的信号强度已经小于某个门限值,就会找一个信号最好的AP且New AP的信号强度要大于一个门限值去连接。
各个终端的接收信号的能力是不一样的,笔记本电脑在同等条件下接收信号的能力比较强,平板电脑稍次之,接收信号最弱的为手机,各种终端的接受敏感度也是各不相同,也就是终端扫描信号的周期有长有短,其中笔记本是可设的,其他的终端都是默认的,但是要是安装其他的软件就不同了,就会随着软件的扫描周期而扫描。一般来说终端在距AP 20米之内时其信号衰减比较快也比较明显,在超过20米的时候,其衰减的比较慢,信号的波动比较小,对于大多数的终端来说,超过70米,就能达到其漫游对RSSI的要求。如图3所示,是实测的一些终端信号变化的规律。
图3 终端信号和距离的关系
终端的信号主动扫描周期大致上是一样的,在测试的6款设备上,只有便携机为60s, Pad A为6s,其余的5款设备都为10s,在信号相对比较强的条件下,他们的主导扫描周期都为10s。当增大距离使终端接收到的信号变弱时,有些设备就会缩短其扫描的周期。如图4所示,是测试的终端的扫描规律。
图4 终端扫描规律
当信号变弱的时候,上述几款终端就会缩短扫描周期,来增大扫描的力度,但是变化后的扫描周期大多数都是有规律的,一般的都是将原来的10s的扫描周期,拆成2个更小的扫描周期,有的是拆成固定的两个扫描周期,有的是拆成2个随机的但是总和为10s的扫描周期。
如图5所示,是终端扫描周期的变化规律。
设备型号 | 原扫描间隔 | 变化时距离 | 变化时RSSI | 现扫描间隔 |
PAD A | 10s | 40 | -65dBm | 6s/10s |
PAD B | 10s | 50 | -70 dBm | 7s-3s-7s…… |
PAD C | 10s | 45 | -68 dBm | 9s后连续发包1s |
Phone A | 10s | 40 | -65 dBm | 8s-2s/7s-3s |
图5 扫描周期变化
从上述测试结果可以看出终端在漫游前的一些关系变化,当终端不断远离AP时,信号将逐渐变弱,此时终端会通过自动调整扫描周期以便其能更快的接入强信号;但是由于终端在漫游算法上的细微差异也会导致不同终端的漫游效果存在差异。
漫游技术的不断推陈出新为用户带来全新的网络体验,本文深入剖析当前WiFi网络中主流的漫游技术,从传统的漫游方式到FT漫游方式再到近期状态火热的零漫游方式,对不同漫游技术多方面进行分析归纳,为WiFi的推广应用提供了技术保障。
(0)
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作