移动节点在越区切换时,首先需要无线链路的切换,如果新旧链路不在同一个IP子网内,还要进行IP子网切换。即使采用了路由优化技术,在无线链路切换和子网切换过程中的分组延时还是相当可观的,而延时的主要部分是由链路切换完成后的端到端的移动IP注册操作引起的。在切换过程中,发给移动节点的分组可能被丢失,因此快速切换方案将有利于改善分组数据的业务质量。链路切换常由第二层协议或硬切换完成,而跨越IP子网的切换需要第三层协议或软切换完成。
目前,研究移动IP快速切换的文献很多,其基本思路有3种组播、基于第二层移动触发的预先切换和分组缓存,本文主要讨论基于第二层移动触发的预先切换思想,即:移动节点在将要移往新的链路之前,先启动一个切换规程,预先获取新链路上的转交地址。切换规程通过在新老接入路由器之间以及接入路由器与移动节点之间交换新增的报文来实现。这种方法需要移动节点预先知道自己即将移动到新的网络,因此需要第二层的支持。我们知道,WLAN中AP是在进行L2切换前就从beacon或探询应答中知道是否要进行L3切换,并且移动IP注册非常耗时,因此要想办法在某一环节节省时间,从而更早的恢复通信。这个移动IPv6快速切换的主要思想是将链路层的信息用于L3切换,通过在新旧路由器间传递数据以提前获得IP连接。其应用的原理是:数据在接收方的传递过程是先链路层再网络层,因此链路层比网络层更早得到信息。
1. 系统建模
1.1快速切换步骤
首先详细叙述一下草案快速切换的步骤:
(1)MN从接收到的ESSID判定需要进行L3切换,于是向原AP发送代理路由请求其中包括新AP的链路层地址。
(2)原AR将新AP的链路层地址映射到新AP的IP地址,这就需要在原AR处保留一个映射表。
(3)原AR决定MN在新AP中使用被动的(stateful)还是主动的(stateless)地址。
如果是主动地址:原AR在新的子网上利用MN的接口标识得到一个新的COA(careofaddress),通常这个接口标识就是MN的48位MAC地址,在前面加上新子网的前缀就形成了COA,通过HI/HACK发给MN。同时要先确认该地址是否唯一,该“地址唯一确认请求”是与HI/HACK同时发出的,如果不是唯一的就采用被动地址。
如果是被动地址:原AR利用HI/HACK交换向新AR请求地址,这种情况下,新AR往往采用DHCP来分配地址。
(4)原AR向MN返回一个代理路由消息。该消息在stateless地址配置的情况下与HI/HACK同时发出,再stateful地址配置的情况下在HI/HACK之后发出。
(5)MN再向原AR发送一个快速绑定更新(F—BU),绑定到新的COA,注意,这属于L3信息,它于L2切换之前进行的。
(6)现在MN才开始进行L2切换,到L2切换进行到第5步结束时MN已移入新AP了。
(7)MN之后将收到F-BACK,表明原AR收到了他的F-BU,这时可以用新的COA通信了,该信息在新旧链路上同时发送(新链路,即原AR-新AR-新AP-MN;旧链路,即原AR-原AP-MN)。这样,此后从原AR来的包将根据FBU送到新的AR。
注意在L2切换的步骤15都是由硬件完成的,要使MN能发送IP层信息如F-BU就不能开始L2切换,也即接口硬件在没有MN的允许下不能开始切换。当整个切换完成,可以看到,这比采用移动IP注册更有效得节省了切换时间。
1.2算法的改进
从草案建议的切换算法可注意到,无论是L2切换还是L3切换,都是由MN控制的,因此为了保证MN能够正常的通信,必须在L2切换之前先得到新的COA,然后再等L2主要切换步骤完成再进行绑定更新等,这么一来,L2和L3切换能同时进行的步骤较少。但是,倘若让L3切换由网络来控制,情况就不同了:
(1)当切换条件达到时,MN发送一个探询请求,所有收到这个探询请求的AP响应一个探询应答。MN根据应答中的信息选择合适的新接入AP。
(2)MN同时向两个AP发送切换触发,宣告L2切换正式开始,考虑到此后MN在连接到新AP之前无法通信,且网络如果没有足够的信息就不能决定是否进行L3切换,所以该切换触发中应该含有新、旧两个AP的MAC地址,原AP收到切换触发,立即将此信息传递到原AR。新AP接到触发,启动前面所提到的L2切换,开始和MN通过信息交换达到同步。
(3)原AR收到L2切换触发,必须能够识别出另一个AP的子网,这就要求在AR处要保留一个各个子网所含的AP的MAC地址集,并且不同的子网AP的MAC地址是不同的。
(4)如果原AR通过查找发现两个AP分属不同的子网(两个AP与不同路由器相连),就向新AP所属的AR(即新AR)请求地址,新AR根据动态主机配置协议分配一个COA地址,返回给原AR,原AR把该地址从两个BSS内发送给MN以确保其能收到,这是考虑到:MN可能与新AP建立了连接(链路层切换完成),但也可能仍与原AP连接着。这一步同时进行的是链路层切换,这样MN一进入新的网络就有了COA地址了。这里需要注意的是原AR实际上是充当了家乡代理的角色。
(5)之后MN再向原AR(家乡代理)发送绑定更新,进行注册,再接收绑定应答,即注册成功。
必须注意的是,在这个切换方案里新AR并不是外地代理,因为如果是外地代理,在注册请求时,它要对注册请求进行一系列的有效性检查。如果其中有一项检查失败,外地代理就向移动节点发送一条注册应答消息拒绝这次注册请求。如果检查成功,外地代理就将包含注册请求消息的数据包的IP报头和UDP头完全剥去,再加上新的报头后才送给家乡代理。同样当外地代理接到来自家乡代理的注册应答后,将对消息进行一系列的有效性检查。外地代理一旦发现应答是无效的,将产生一个包含适当的Code域的注册应答,并发送给移动节点。而我们这里,新AR仅仅作为一个路由器使用。
从上面的步骤看到,一方面采用了由链路层信息发起切换(草案的思想),节省了一部分时间,另一方面由于COA地址的获得和L2切换同时进行,更是大大节省了时间,特别是对于WLAN,由于其所有控制信号和数据信号都共用一个信道,并且MAC层采用CSMA/CA的策略,如果同一BSS内有几个MN同时工作,L2切换所花的时间就很长。从仿真的结果看,同时有4个MN工作的时候,L2切换时间大约是2s,充分利用这2s的时间获取COA将大大减少切换时延。
#p#副标题#e#
2 系统仿真
下面是进行系统仿真和统计分析的内容,图1、2是网络架构和结果。
2.1系统仿真
系统仿真的主要内容有:
(1)协议标准采用的是802.11b,同时针对L3切换做了相应的改进。
(2)由AP发送的beacon每秒一次,MN可以同时接收两个AP的beacon并进行分析。
(3)每个AP的覆盖范围是半径为200m的圆。网络结构如图1,采用自由空间信道。
(4)假设每个BSS内只有一个站正在通信则不会产生拥塞和碰撞的情况;再比较每个BSS有多个站在通信,则有可能产生拥塞的情况。
(5)切换条件是:曲线2大于曲线1一定值后切换,即NAP的功率值大于OAP一定门限后切换。
(6)注意的问题:标准里规定的不同的ESS的站只接收某一特定ESSID的信号,这就带来的问题,AP在跨越ESS漫游时,当切换条件到达时不能很好的搜索到更适合的AP。所以要将这部分协议做修改,即假设它时可以接收其他ESS的信号的。实际中ESS与子网前缀有着特定的关系,便于该站判定是否进行L3切换。
(7)无线信道的一些参数:传输速率主要用2Mbps,采用DQPSK的调制方式;后面还会用到其他的速率,1、5.5、11Mbps,这些都是802.11协议建议的数值,1Mbps采用DBPSK调制,5.5和11Mbps都采用CCK调制。
(8)WLAN的数据速率虽然很高,但在小区边界,实际只达到此速率的10%~50%。原因是边界的邻小区干扰严重,所以错误率高要不断重传,降低了速率。
图2详细说明如下:站的移动时间是30min(横轴)。曲线3是OAP与移动站的距离,曲线1是移动站接收到的OAP信号功率值,从虚线处可以看出,距离最小时功率达到最大;曲线4是NAP与移动站的距离,曲线2是移动站接收到的NAP的信号功率值。在点划线处开始切换,之所以没有在曲线1和曲线2的交点处开始切换是为了防止乒乓效应。
#p#副标题#e#
2.2统计分析
切换时间结果:在单用户的情况下,速率为2Mbps时,L2切换0.396s;COA地址获得1.527s;L3切换完成1.908s,整个切换从16min21.7s开始切换,16min23.6s结束。
单用户是指每个BSS里只有一个用户占用无线资源,多用户指多个用户竞争接入。在单用户情况下,各个速率下的L2切换时延是一致的,都是0.396s;但是如果有更多用户竞争信道的话,L2切换时延随着数据速率的增加而增加,从1Mbps的1.7s到11Mbps的7.4s,这是因为数据帧和控制帧共用同一个信道,当用户多的时候,容易发生冲突,接入信道的时间将增加,同时速度增加,错误率增加如果超过某一限度势必引起重传,这就更增加了时延。从图中可见,在多用户情况下,速率越高,切换时延越长;L3切换时延基本上都是在L2切换时延的基础上加一个数值,这个数值为:获得转交地址的时延-L2切换时延+绑定更新所用的时间对不同的环境设置,这个数值是不同,但是在相同的环境设置下对不同WLAN数据传送速率,该数值是一致的。在单用户情况下,L3切换时延是1.908s,多用户情况下,L3切换时延从1Mbps的3.707s到11Mbps的7.939s不等。图4是通过探针得到的路由器的吞吐量,仿真中没有给路由器分配业务,唯一的业务来自切换带来的AP间及AR间的通信。从图中可看出,大约在16s多的时候,也就是切换开始后才有信号通过。
3 结束语
通过对快速切换进行改进,将第三层的切换决策权交给网络,实现第二层和第三层的切换并进,从而大大降低了切换时延,该切换算法在OPNET仿真环境下模拟实现。但我们尚未就这种新的路由算法是否会影响网络的吞吐量,原AR和新AR处新增的控制信令对网络性能的影响进行讨论,这些都有待进一步研究。