李慧芹,高仲合,胡广昌
(曲阜师范大学 计算机科学学院,山东 日照 276826)
移动IPv6(MIPv6)是未来网络进行移动性操作的关键技术。在移动IP网络中,实现对移动性的支持变得越来越重要,每一个移动节点都是由唯一的家乡地址标识的,当移动节点离开家乡的时候,就能获得一个转交地址来标示移动节点的当前位置。为了能够保持通信双方正常的通信,每次移动后,移动节点都要向家乡代理和通信对端进行注册。当移动节点从一个网络移动到另一个网络的时候,就要发生切换。在一般的切换过程中,在未建立通信对端与移动节点之间新的通信连接之前,通信对端发给移动节点的数据包往往被家乡代理截获,然后通过通信隧道发给移动节点。这种切换机制往往切换延时比较大,有大量的数据分组丢失。因此,IETF提出了快速切换技术[1](FMIPv6),目的是为了减少切换过程中的切换时延和数据分组丢失。本文对快速切换技术中的预先式快速切换技术进行性能分析,根据分析结果提出改进方案,并对改进的预先式快速切换协议进行仿真。
FMIPv6协议的主要思想是移动节点(MN)利用扫描到的链路层信息预测可能发生的切换,在链路层切换进行之前,提前为将要发生的IP切换作好必要的准备,包括生成新的转交地址(NCoA)等。在链路层切换开始之前,MN的前接入路由器(PAR)与新接入路由器(NAR)通过原通信子网进行通信,进行一系列消息交换。MN在NAR中检测NCoA是否冲突并注册建立双向隧道,在链路层切换之前把进行IP切换所需相关工作完成,确保在最短时间内完成整个切换过程。在链路层切换完成后,使MN能迅速恢复正常的通信。保持数据包在切换过程中不丢失,在切换完成后可以使通信性能在最短的时间内恢复到正常状态。
移动IPv6快速切换技术[2]是对IPv6协议的改进,可以加快IPv6移动节点的切换过程,减少已有通信连接的中断时间,保证数据的实时传输。预先式快速切换是快速切换技术的一种。预先式快速切换是指当移动节点仍然和现在的路由器保持第2层连接时,就发起第3层的切换。预先式切换过程[3]如下:
(1)当MN检测到子网将要进行切换时,就向PAR发送路由器请求代理消息RtSolPr。RtSolPr消息通知PAR,MN将要进行切换,并且请求进行切换所需要的信息。
(2)PAR收到RtSolPr后,根据新的接入点来判断MN将要接入的NAR,并给MN回送一个代理路由器通告消息PrRtAdv。PrRtAdv消息中应该包含NAR的链路层地址、IP地址和子网前缀等信息。
(3)MN收到PrRtAdv消息后,根据其中包含的NAR的信息来配置MN的NCoA。随后,MN向PAR发送快速绑定更新消息FBU。
(4)PAR收到FBU后,对NCoA和PCoA进行绑定,然后PAR向NAR发送一个切换发起消息HI。HI消息中包括MN的原转交地址、链路层地址、新转交地址以及请求和NAR建立隧道的信息。
(5)在NAR收到HI后,对NCoA进行重复地址检测,检验是否可用。如果新转交地址可用,则返回切换确认消息HACK:否则产生一个可用的新转交地址,并返回HACK消息。
(6)PAR收到HACK后将分析此消息,如果不包含NAR给移动节点配置的新转交地址,PAR会向MN发送一个快速绑定更新消息 FBACK,告知 MN,PAR将开始为MN转发数据分组到新的转交地址,并且建立一个PAR和NAR之间的双向隧道。如果HACK消息中含有NAR给MN配置的NCoA,PAR会重新绑定新旧转交地址,并将配置给MN的新转交地址包含在FBACK消息中发给MN。
(7)FBACK消息发出之后,PAR便开始为MN将数据分组转发到NAR,NAR利用代理地址缓存收到的转发的数据分组。MN连接到NAR之后,立即向NAR发送快速邻居通告消息FNA,告知NAR已连接到该网络中。
(8)NAR收到FNA消息后,立即向MN发送为MN缓存的数据分组,并且删除代理邻居缓存表项,为MN转发数据分组重新建立邻居缓存表项。MN切换到NAR之后,在完成对家乡代理和通信对端的绑定更新之前,可以利用PAR和NAR之间的双向隧道接收和发送数据分组。
(1)当MN移入一个新的子网后,随时可能离开这个子网,为保证切换过程随时可能出现的需要,MN生成NCoA的时间应该尽可能地早。在快速切换协议中,请求生成NCoA要在通过链路层扫描得到结果之后才发送给 PAR。[AP-ID,AR-Info]元组[4]是 MN生成NCoA和进行切换所必需的,但在快速切换协议中,该元组的获得是在MN发送请求后,造成了通信资源和时间的浪费。
在通信网络的实际覆盖范围内,从扫描到网络中存在某个可用的AP信号到当前已经不可用的AP信号MN必须马上切换,留给MN的时间可能会很短暂。在这样的情况下,要等到找到可用的AP信息才能发送RtSolPr消息,并要等到PrRtAdv消息后才生成NCoA,可能会不能很好地完成无缝切换的准备工作,导致无缝切换不能顺利进行,并且在切换中产生数据丢包。
(2)在MN切换过程开始后,可以互不干扰并行进行MN和AR间的切换操作。并行进行可以保证在更短时间内完成切换,但是在快速切换协议中由于所有步骤都是顺序执行的,所以增加了延迟时间。
改进的算法是综合利用链路层触发器(LT)和快速路由器通告来获得接入路由器的IP地址信息,并且还利用IP地址与MAC地址映射来加快获取AR的IP地址,进一步加快了移动IPv6的预先式切换过程。
在本文提出的新的预先式快速切换方法中,MN与新的链路连接之后,马上就会由LT产生触发信号来触发IP模块,然后向当前接入路由器发送路由器请求代理消息。此时,要求接入路由器能立即发送应答路由器通告,因此这种路由器通告被称为快速路由器通告。在LT中提供了MN当前连接的AP的链路地址信息,通过快速路由器通告消息,可以将AP的链路层地址映射成与它连接的接入路由器的IP信息。在移动节点中缓存这种映射关系,并且设置相应的有效期,当MN再次切换到此AP的覆盖范围内时,如果缓存中仍然存在此AP对应的接入路由器的IP信息,并且在有效期内,则就能直接使用,而不用再通过路由器通告消息来得到连接的接入路由器的IP信息。因此,通过缓存能够加快快速切换过程,并且由于减少了路由器请求的发送而节省了无线带宽,这对于在某些小区之间来回切换大量的MN特别有用。
在链路层切换之前,在MN的缓存中没有当前连接的AP所对应的接入路由器的IP信息,MN的IP模块通过NAR的IP地址和其中的AP的MAC地址的映射关系收到链路层的LT触发信号后,首先向PAR发送Rt-SolPr,RtSolPr通知PAR移动节点将要进行切换,并且请求进行切换所需要的信息。因为路由器支持快速路由器通告功能,所以PAR立即向MN回送PrRtAdv。MN收到PrRtAdv后,等待。PAR收到RtSolPr之后,发送 HI到将要切换到的NAR,并请求在这2个路由器之间建立双向隧道。NAR收到HI后,根据初始化信息中的信息建立双向隧道,并且检验MN产生的转交地址是否可用,如果可用返回HACK消息,否则产生一个新的转交地址返回HACK消息,PAR向MN再发送一个路由器通告消息,其中包括新的转交地址。PAR收到NAR发送回来的HACK消息后,就可以使用此隧道向MN转发数据包了。MN收到NAR发送的路由广播后,发送相应的FBU消息,进行家乡注册和通信对端的注册。PAR收到FBU之后,向MN和NAR发送快速绑定更新应答消息。MN收到快速绑定应答消息,表示快速切换过程完成,MN可以开始配置新的转交地址,开始基本的移动IPv6切换过程。由于转交地址可以一直有效,所以通信不会中断。MN到达新的网络、并与NAR建立第二层连接后,MN发出1条FNA,NAR就可以直接向MN转发数据分组了。
本文采用 ns-allinone-2.31为仿真平台[5],在 2.31版本中,通过移植Robert Hsieh在NS-2低版本中加载的移动IPv6模块,然后修改配置脚本和源代码来完成预先切换的仿真测试。CN(HA)至AR的链路配置是:分组的传输延迟为10 ms,带宽为10 Mb/s;无线链路采用802.11协议,链路带宽为 2 Mb/s,延迟为 64 μs。 预先式切换协议的网络拓扑结构如图1所示。
图1 快速切换协议的网络拓扑结构
在数据包丢失方面,改进的预先式切换协议消除了在移动检测和绑定注册过程的数据丢失,减少了MN请求PAR转发数据和原网络与新网络间建立双向隧道过程的数据丢失,省去了在隧道建立的过程中MN的处理过程,减少了隧道建立时对MN的依赖。改进的预先式切换过程中,隧道建立的过程提前了,这样可以使MN在切换过程中的移动速度进一步提高,也使数据分组的丢失减少,如图2所示。随着MN的移动速度的增加,数据分组的丢失率逐渐减少。由于提前建立了双向隧道,因此丢包率随着MN移动速度变化不大。
图2 仿真结果
在切换延迟方面,通过链路层触发机制将一般移动IPv6协议中的移动检测延迟消除了,切换延迟[6]为:T=TL2+TCoa+TBU。其中TL2是指MN从发送路由器请求消息到收到路由器通告消息的延迟,如果MN利用路由器缓存机制,则TL2为0。TCoa是指MN通过接入路由器的IP地址和其中的AP的MAC地址之间转换所用的时间,如果缓存机制起作用,则TCoa也可为0。TBU表示快速绑定延迟,它包括FBU到达MN第1次获得转交地址而连接的路由器的延迟加上该路由器和切换之后而连接的路由器之间建立连接的延迟。由计算式可以得出,切换延迟与路由器通告无关。由于移动节点不需要立刻生成新的转交地址,不会由于地址重复检测而造成通信中断。
在改进的预先式切换协议中,随着路由器通告间隔的增大,平均切换延迟基本保持不变,主要原因是在接入路由器上实现了回送快速路由器通告的功能,使接入路由器对路由器请求的响应时间变得很小。预先式切换协议的平均时延如图3所示。
图3 改进的预先切换协议中不同路由器通告间隔的移动检测和地址重复检测的平均时延
针对当前移动IPv6的快速切换算法存在的移动节点切换时延过长和数据分组丢失的问题,本文提出了一种改进的移动IPv6预先式快速切换方法,并对该方法进行了仿真和分析。与其他的切换方法相比,本文提出的方法具有如下特点:可以提前建立PAR和NAR之间的双向隧道,达到进一步减少数据分组丢失的可能性,并且通过综合使用链路层触发器、快速路由器通告和缓存的IP地址与MAC地址的映射等机制,实现将移动节点所连接的无线接入点链路地址快速映射成其连接的接入路由器的IP信息,并且降低了移动节点在子网间的切换延迟,起到了节省无线带宽资源的作用。由于链路层触发机制的影响,使减少数据分组的丢失并不明显,在今后的研究中,将进一步研究在切换时延减少的基础上减少数据分组的丢失。
[1]DOMMETY G.Fast handover for mobile IPv6[S].2002.
[2]李栋,赵珑,张有志.移动IPv6快速切换的性能分析及优化[J].计算机应用,2006,26(6):224-225.
[3]孙利民,阚志刚,郑建平.移动 IP技术[M].北京:电子工业出版社,2003.
[4]吕晓吾,蒋祥刚,栾新.一种应用于 Mobile IPv6中切换算法的分析与改进[J].计算机工程,2005,21(11):107-109.
[5]秦冀,姜雪松.移动IP技术与 NS-2模拟[M].北京:机械工业出版社,2006.
[6]胡斌,刘辉.一种新的基于移动IPv6的快速切换方案[J].信息技术与信息化,2007,2:20-22.