APP下载

代理移动IPv6下子网移动方案的实现与分析

2013-12-14刘腾飞秦雅娟王利利

关键词:子网信令时延

刘腾飞,秦雅娟,王利利

(北京交通大学电子信息工程学院,下一代互联网互联设备国家工程实验室,北京100044)

0 引言

随着信息网络技术的快速发展,信息的获取方式更趋多样化。人们不再满足使用固定终端或单个移动终端连接到网络,而是希望能将某个属性范围内的终端组合起来,形成一个相对稳定的集合,IETF(internet engineering task force)将运动属性相同的实体上的多个终端的集合称为一个移动子网(network mobility,NEMO)[1]。这种移动子网可以是个人使用的个域网(personal area network,PAN)[2],也可以是部署在飞机、轮船、火车、公交车、私家车等车辆上的移动子网或传感器网络。移动IPv6下的子网移动方案是一个基于主机的移动性管理方案[3-4],需要终端参与移动性管理,并由此带来带宽资源和信令开销的浪费以及终端复杂度的增加,尤其是子网在路由器之间切换时,终端需要改变网络地址,从而造成通信中断。针对上述问题,本文首先介绍了基于网络的移动性管理协议—代理移动IPv6,然后分析了3种代理移动IPv6下的子网移动方案,最后通过对3种方案的实现和实验结果的验证分析,比较了3种方案的性能[5]。

1 代理移动IPv6的基本原理

代理移动 IPv6(RFC5213[6])是对移动 IPv6 协议(RFC6275 )的扩展。移动IPv6是一种基于主机的移动性管理方案,它需要移动终端参与相关的信令交互,并且当移动终端切换到外地代理时,需要使用外地转交地址进行通信,因而存在改变网络地址造成通信中断和三角路由等问题。代理移动IPv6是一种基于网络的移动性管理方案,它不需要移动终端参与任何移动信令交互,这样首先降低了对终端的要求,其次终端在一个本地域内移动的过程中不改变网络地址,从而在切换的过程中可以保持通信的连续性。代理移动IPv6为研究基于网络的子网移动提供了网络基础。

代理移动IPv6的核心实体有2个:本地移动锚点(local mobility anchor,LMA)和移动接入网关(mobile access gateway,MAG)。MAG主要负责检测MN的接入和离开,代理移动节点(mobile node,MN)进行代理绑定更新(proxy binding update,PBU)消息的发送和代理绑定应答(proxy binding acknowledgement,PBA)消息的接收,为MN建立和删除MAG到 LMA之间的隧道[8]、绑定更新列表(binding update list entry,BULE)和路由。LMA负责接收PBU消息和发送PBA消息,给MN分配家乡网络前缀(home network prefix,HNP),为MN建立和删除MAG到LMA之间的隧道、绑定缓存(binding cache entry,BCE)和路由。完成代理注册后,MAG向MN发送包含HNP的路由通告消息(router advertisement,RA)。MN收到 RA后,通过获取其中的HNP,配置相应的IPv6地址,进而可以与通信对端进行正常通信。当MN从MAG1切换到MAG2时,MAG2会代理MN进行注册,当LMA检测到MN之前已经注册,会给MN分配相同的HNP,并更新隧道以及相应的路由。在MN接入MAG2的同时,MAG1也会检测到MN的离开,并为MN进行解注册。

2 代理移动IPv6子网移动

与代理移动IPv6相比,代理移动IPv6子网移动引入了一个新的实体—移动路由器(mobile router,MR),通过MR来统一管理子网内的移动网络节点(mobile network node,MNN)。这样做有以下优点:①节省信令资源,大量减少每个终端都要进行切换的信令开销;②减少切换操作,子网整体移动时,子网内所有移动终端在MAG之间的切换可以通过单一移动路由器在MAG之间的切换来完成。在IETF公布的关于NEMO的RFC4885[9]中,根据MNN的活动范围,将MNN分为本地固定节点(local fixed node,LFN)和访问移动节点(visiting mobile node,VMN),LFN只在子网内部移动,而VMN则可以在子网之间或子网与固定无线路由器之间移动。目前,子网移动有3种实现方案:普通子网移动(C-NEMO)[10]、基于PMIPv6的网络移动(N-PMIPv6)[11]和基于网络的网络移动(N-NEMO)[12]。

2.1 普通子网移动(C-NEMO)

C-NEMO是一种简单的子网移动方案,其主要思想是MR携带的子网内的所有终端获得相同的子网前缀。MAG在代理MR向LMA注册HNP的同时,也向LMA进行移动子网前缀(mobile network prefix,MNP)的注册,并为MNP在LMA和MAG之间建立隧道和路由。之后,在MAG发送给MR的RA消息中不仅包含有MR本身的HNP,还有MR所携带子网的MNP,MR收到RA后,内核自动使用HNP配置自己的网络地址[13],并提取出MNP发送给MNN。MNN接收MNP,自动配置完成自己的网络地址后即可进行通信。

普通子网移动方案的信令流程如图1所示。首先,MR接入MAG,MAG通过MR的MAC地址查找MR对应的mn_id(移动路由器的标识符)。MAG为MR建立BULE,然后代理MR向LMA发送包含有mn_id的PBU进行注册。LMA收到PBU后,查找mn_id所对应的 HNP和MNP,为 MR建立一个BCE;然后,将HNP和MNP添加到PBA发给MAG,并为HNP和MNP建立隧道和路由。MAG收到LMA返回的PBA后,提取MNP和HNP添加到RA消息中发送给MR,并为HNP和MNP建立BULE、隧道和路由;然后,MNN接入到MR,MR发现MNN接入后会检测MNN是否为合法用户,检测成功以后给MNN发送包含MNP的RA消息包,MNN收到RA后使用MNP配置完成本身的网络地址即可进行通信。这样所有发往LFN的消息包都会通过这个隧道发送至MR,然后由MR转交给MNN。

可见,本方案实现简单,通信数据包的头部开销比较小,在通信过程中只需在LMA和MAG之间建立一层隧道,而不需要在MR上建立隧道。MR在MAG间切换时,由于只进行一次注册,并且隧道只建立在MAG和LMA之间,所以MNN和CN之间进行数据通信的切换时延损耗[14]较小。C-NEMO中,由于MAG为MR向LMA进行注册时,已经为其子网里的所有MNN的MNP进行了注册。在同一个MR下所有MNN共用同一个HNP(即MNP),而当MNN在MR与MR之间或者是MR与MAG之间切换时,则会接收到带有不同HNP的RA消息,这将导致网络地址变化,造成上层应用的中断,因此,本方案只支持LFN类型的MNN。

图1 C-NEMO信令流程Fig.1 Communication call-flow in C-NEMO

2.2 嵌套隧道的子网移动(N-PMIPv6)

代理移动IPv6下隧道嵌套子网移动的核心思想是将MR当作一个MAG来使用,MR上运行类似于MAG的软件。与C-NEMO相比,N-PMIPv6取消了MNP,将子网内每一个MNN都视为VMN节点类型,信令流程如图2所示。首先,MR接入MAG1,MAG1向LMA进行绑定更新请求,然后,LMA为MR分配HNP并将其添加到PBA中发送给MAG1,发送成功后为HNP建立LMA到MAG1的隧道和路由。MAG1收到PBA后提取其中的HNP填入到向MR发送的RA中。这样MR收到RA后,配置完成自己的IPv6地址。然后,VMN接入MR,MR会直接向LMA进行注册,整个流程和MAG为MR进行注册时一样,建立的隧道为LMA到MR;然后为VMN分配一个HNP,所有发往这个HNP的数据包都会通过隧道直接从LMA发到MR,再由MR转交给VMN;数据包在LMA和MAG1之间传输时网络层头部为双层隧道,即LMA为MR建立的隧道和LMA为VMN建立的隧道,MAG1到MR之间为单层隧道。

本方案的优点是支持单点移动性,即对MR下的每个VMN都分配相同的HNP。当VMN在MR之间或者在MR和MAG之间进行切换时,网络地址始终不变,也就是对于上层应用来说,通信不会中断。从流程图2可以看到,对于子网下每个VMN都存在嵌套隧道,即在LMA和MR接入的MAG之间存在双层隧道,尤其在嵌套子网的情况下,将带来很大的网络层头部开销,进而浪费带宽资源。另外,本方案只支持VMN节点类型,不支持LFN。

图2 N-PMIPv6信令流程Fig.2 Communication call-flow in N-PMIPv6

2.3 基于N-PMIPv6的子网移动(N-NEMO)

2.3.1 N-NEMO 概述

在N-PMIPv6的基础上,采用隧道分离和分层注册思想,文献[12]提出了 N-NEMO,以支持 LFN和VMN 2种节点类型。在N-NEMO中,LFN接入MR时,直接为其分配HNP。VMN接入MR时,需要进行本地和全局2次注册。MR和LMA之间的隧道也分为本地隧道和全局隧道2部分,以解决NPMIPv6存在的隧道嵌套问题,降低网络层数据包的头部开销。

N-NEMO中,LFN接入流程与C-NEMO相同,这里不再赘述。VMN接入的信令流程如图3所示。

当一个移动节点接入MAG时,MAG对移动节点的类型进行识别。当移动节点为一个MN,MAG则执行正常的代理移动IPv6的流程;如果移动节点为MR,MAG则向LMA发送代理绑定更新消息,并在其中添加MNP选项。LMA对MNP进行注册,并为HNP和MNP建立隧道和路由。其中,MNP用来针对性管理MR下面所携带LFN的移动性。

MR分2种情况处理移动节点的接入。

1)如果检测到移动节点为LFN,则MR直接提取其向MAG注册时分配的MNP,放入RA(路由通告)消息中传递给LFN;LFN接收到RA后配置自己的地址,即可以与核心网(core network,CN)开始通信。

图3 N-NEMO中VMN接入流程Fig.3 Communication call-flow for VMN in N-NEMO

2)如果检测到移动节点为 VMN,则 MR为VMN建立LBULE(local BULE),并向上一级MAG发送LPBU(local PBU)消息进行本地注册;MAG接收到 LPBU消息包后,为 VMN建立 LBCE(local BCE)和BULE,向LMA发送GPBU进行全局注册。LMA收到 GPBU后,为 VMN分配 HNP,并建立BCE、LMA和MAG之间的隧道和路由,向MAG发送包含HNP的GPBA。MAG收到GPBA后,提取其中的HNP,更新 VMN的 BULE,为 VMN的 HNP建立MAG到LMA之间的隧道和路由,并向MR发送包含 HNP的 LPBA。然后,MAG更新 VMN的LBCE,并为HNP添加MAG到MR之间的隧道和路由。MR收到MAG发送的 LPBA后,提取其中的HNP,并更新自己的LBULE,然后为 HNP添加MR到MAG之间的隧道(隧道的两端为MR和MAG)和路由。MR将LBULE中的HNP填充到RA消息中发送给VMN,VMN收到RA配置完成网络地址即可通信。

切换情况分以下2种。

1)VMN从MR切换到MAG。当VMN从MR切换到MAG时,MAG会为VMN建立一个绑定更新列表,并向 LMA进行注册,发送 GPBU。LMA收到GPBU后,提取其中的mn_id,查找是否存在和其对应的BCE。若存在对应的BCE,直接提取其中的HNP放入GPBA发给MAG,然后更新自己的BCE,将隧道的对端从原来MR所接入的MAG调整到新的MAG,如果不存在对应的BCE,则为mn_id进行重新注册。在MN切换到新的MAG的同时,MR检测到 MN的离开,向 MAG发送解注册 LPBU(lifetime=0)。MAG收到解LPBU后,向LMA发送解注册GPBU(lifetime=0)。LMA收到解注册GPBU后,向MAG发送解注册GPBA(lifetime=0)。MAG收到GPBA后,删除原来为MN建立的隧道和路由,发送解注册LPBA(lifetime=0),以删除原来为MN建立的本地隧道和路由。MR收到解注册LPBA后,删除之前为MN添加的隧道和路由以及对应的LBULE,完成切换过程。

2)MR在2个MAG之间切换。当MR从MAG1切换到MAG2时,MR通过接收到的RA消息包中MAG地址的改变确认切换的发生。MR会为其子网内的VMN向 MAG2重新进行注册,具体流程和VMN接入流程相同。MAG1检测到MR的离开后,为MR以及MR下的VMN进行解注册,并删除之前为它们建立的隧道和路由。

可见,与前2种方案相比,N-NEMO有以下2个优点:N-NEMO同时支持LFN和VMN;MMN和CN通信时采用了级联隧道的方法,可以有效避免NPMIPv6中嵌套隧道带来的网络层头部开销过大的问题,节约了网络资源。但N-NEMO信令交互比较复杂,当MR进行切换时,VMN的切换时延较大,其原因有2个方面:MR切换时,需要为MN重新注册;MN与CN通信需要经过2段隧道。另外,LMA需要管理的前缀数量较多,增加了LMA处理信令的负担。

2.3.2 软件实现

与代理移动IP相比,为了保证级联隧道的成功建立,支持子网移动的代理移动IP软件加入了实体MR,增加了本地代理绑定更新LPBU和本地代理绑定应答LPBA 2个信令。MR为了支持这2个信令,为VMN建立LBULE,并代理VMN发送LPBU以及接收LPBA来进行本地注册,同时为VMN建立隧道和路由模块。MAG加入了对子网移动中的移动节点支持的LBCE,为VMN进行LPBU的接收和LPBA的发送,程序模块之间的流程图如图4所示(虚线模块为新添加部分)。

实体类型的判断是通过配置文件来实现的,如果判断本实体为MR,则要进行MR的初始化工作,包括任务队列的初始化、移动头套接口的初始化、路由通告接收原始套接字的初始化、隧道控制初始化、本地绑定更新列表初始化、路由规则初始化以及MR路由通告初始化等。MR上软件结构分接入检测程序和代理移动IPv6下主程序2个部分,两者之间的消息交互通过消息队列来实现,分别如图5和图6所示。

图4 N-NEMO程序框架Fig.4 Program modules for N-NEMO

图5 MNN接入侦听模块流程图Fig.5 Flow diagram for MNN connection sense

图6 MR软件结构图Fig.6 Software architecture for MR

接入侦听程序通过对AP(access point)发来syslog消息来判断MNN的接入和离开,并提取MNN的MAC地址,然后对MNN的类型进行判断。我们定义18代表节点类型为VMN,19代表节点类型为LFN,20表示节点类型为MR。然后通过消息队列将MNN的信息发送给MR主程序。

MR的主程序中分3个大的线程:①移动头部的接收;通过对接收消息包的判断,来触发信令的交互;②消息队列触发线程:通过接受接入检测程序所发送的消息队列的值,来检测MN的切换;③RA消息的接受:通过接受RA消息包,并对其中的MAG地址进行判断,不变将继续监听,改变则为MNN向新的MAG进行注册。

对于实体MAG,MAG首先要进行和MR类似的初始化,由于MAG的程序主要分为:移动头部的接受以及消息队列触发线程,功能和MR中的2个线程功能类似,代码结构如图7所示。

图7 MAG软件结构图Fig.7 Software architecture for MAG

3 代理移动IPv6子网移动切换时延分析

3.1 子网移动实验环境

为了分析代理移动IPv6下3种子网移动方案的性能,本文搭建了实验平台。实验平台中包括LMA,MAG,MR,MN,CN 5 个实体,如图8 所示。下面将就移动子网在2个MAG之间切换以及MN在MAG和MR之间切换2种场景进行时延分析比较。

3.2 MR在MAG之间的切换时延

下面分别采用上述3种子网移动方案测试MR在MAG之间切换的时延。MR在MAG1和MAG2之间共进行150次切换,通过ICMPv6 ping和ICMPv6 reply数据包测试MN与CN之间的通信切换时延的最小值、最大值和平均值,并与代理移动IP中MN在MAG之间的切换进行对比,如图9所示。其中,平均时延:PMIPv6为1.246 775 s,C-NEMO为1.275 94 s,N-PMIPv6为1.291 202 3 s,N-NEMO为 1.300 398 s。由图9可见,PMIPv6平均时延最小,N-NEMO平均时延最大。实验结果与前面的分析吻合。

图8 PMIPv6子网移动的实验拓扑图Fig.8 Mobility scenario in PMIPv6

图9 MR在MAG1和MAG2之间切换时延性能Fig.9 Handoff delay cost for MR handover between MAG1 and MAG2

3.3 MN在MR和MAG之间的切换时延

具体的切换场景为:首先MR接入到MAG1,MN接入在MR下面的子网,然后MN和CN进行通信的过程中在MR和MAG2之间进行150次切换。由于C-NEMO不支持单点的移动性,所以这个场景的实现里面没有对其时延进行分析。我们将后2种方案的切换时延进行测试分析,图10中分别显示了对2种移动切换实验的最小值、平均值和最大值(其中平均值:N-PMIPv6为1.498 742 s,N-NEMO为1.504 89 s);N-PMIPv6的性能稍优于 N-NEMO,不过两者的时延相差仅为0.006 148 s,与其所带来的头部开销降低的优势相比是可以接受的。

图10 MN在MR和MAG之间切换时延性能Fig.10 Handoff delay cost for MN handover between MR and MAG

4 子网移动方案性能分析

通过3种子网移动实现方案的协议分析,以及两个场景下3种方案的时延测试,可以看出,在信令开销方面,由于N-NEMO采用了分层注册,每次MR切换时都要为其下的移动节点进行一次注册,因此,N-NEMO信令开销最大,C-NEMO信令开销最小。在网络层头部开销方面,N-PMIPv6的开销最大,CNEMO和N-NEMO的开销较小。从支持的节点类型上看,C-NEMO只能支持LFN节点,N-PMIPv6只能支持VMN节点,而N-NEMO可以同时支持LFN和VMN 2种节点类型。从切换时延上看,MR在MAG间切换时,C-NEMO的切换时延相对最小,NNEMO的切换时延抖动较大;而MN在MR和MAG间切换时,N-PMIPv6和N-NEMO的切换时延几乎相等。综上所述,N-NEMO相对其他2种方案虽然信令开销和切换时延相对较大,但可以支持各种节点类型,以及网络层头部开销较小的优势,如表1所示。

表1 3种子网移动实现方案对比Tab.1 Comparison in three NEMO mechanisms

5 结束语

本文介绍了代理移动IPv6下的3种子网移动信令流程和实现方案,详细分析了N-NEMO方案的信令流程和程序的模块实现,软件实现了3种子网移动方案,实验测试了各种方案的切换时延。NNEMO采用隧道分离技术,在MR和MAG之间以及MAG和LMA之间,为VMN建立隧道,有效地减小了数据包在MAG和LMA之间传输时的头部开销;同时,N-NEMO全面支持2种类型移动节点,可满足移动子网中移动节点不同应用场景的需求。但由于N-NEMO切换时延抖动相对较大,因此,N-NEMO适用于对切换时延和时延抖动不是很敏感的应用。在后续的研究工作中,将对N-NEMO子网内部多个MN的块注册[15]进行相关的实现。

[1]DEVARPALLI D,WAKIKAWA D,PETRESCU A.RFC 3963:Network Mobility(NEMO)Basic Support Protocol[S].[s.l.]:Network Working Group,2005:2-25.

[2]ZHAO Fei,VIEHLAND D.Key Applications for Success of Personal Area Networks,Mobile Business[C]//Proceeding ICMB'09 Proceedings of the 2009 Eighth International Conference on Mobile Business.Washington,DC,USA:IEEE Computer Society,2009:227-232.

[3]李雪霞,郜帅,王利利,等.一种基于标示分离映射网络的子网移动性管理方案[J].重庆邮电大学学报:自然科学版,2012,24(1):83-89.LI Xuexia,GAO Shuai,WANG Lili,et al.A network mobility management scheme based on the locator/ID separating network[J].Journal of Chongqing University of Posts and Telecommunications:Natural Science Edition,2012,24(1):83-89.

[4]张家波.基于IPV6的快速切换改进方案[J].数字通信,2009,37(3):20-24.ZHANG Jia.An improved fast handoff scheme based on mibile IPV6[J].Digital lommunication,2009,37(3):20-24.

[5]QU Zhaowei,LU Tingjie.QoS Management Structure for Mobile IPv6[J].THE Journal of China Universities of Post and Telecommunications,2005,12(4):6-10.

[6]GUNDAVELLI S,LEUNG K,DEVARAPALLI V,et al.RFC5213:Proxy Mobile IPv6[S].[s.l.]:Network Working Group,2008:3-24.

[7]PERKINS C,JOHNSON D,ARKKO J.RFC6275:Mobility Support in IPv6[S].[s.l.]:Network Working Group,2011:8-19.

[8]SIMPSON W.RFC1853:IP in IP Tunneling[S].[s.l.]:Network Working Group,1995:3-10.

[9]ERNST T,LACH H-Y.RFC 4885:Network Mobility Support Terminology[S].[s.l.]:Network Working Group,2007:1-20.

[10]李雪霞.代理移动IPv6中子网移动的研究与实现[D].北京:北京交通大学,2011:26-40.LI Xuexia.Research and Implementation on Network Mobility in PMIPv6[D].Beijing:Beijing Jiaotong University,2011:26-40.

[11]SOTO I,BERNARDOS C J,CALDERON M,et al.NEMO-Enabled Localized Mobility Support for Internet Access in Automotive Scenarios[J].IEEE Communications Magazine,2009,47(5):152-159.

[12]YAN Z W,ZHOU H C,YOU I.N-NEMO:A Comprehensive Network Mobility Solution in Proxy Mobile IPv6 Network[J].Journal of Wireless Mobile Networks,Ubiquitous Computing and Dependable Applications(JoWUA),2010:52-70.

[13]RICHARD S W.TCP/IP Illustrated[M].Beijing:China Machine Press,1999:50-60.

[14]ERNST T.RFC4886:Network Mobility Support Goals and Requirements[S].[s.l.]:Network Working Group,20075-15.

[15]ABINADER F,GUNDAVELLI S,LEUNG K,et al.RFC6602:Bulk Binding Update Support for Proxy Mobile IPv6[S].[s.l.]:Network Working Group,2012:1-30.

猜你喜欢

子网信令时延
一种简单子网划分方法及教学案例*
SLS字段在七号信令中的运用
子网划分问题研究及应用
移动信令在交通大数据分析中的应用探索
基于GCC-nearest时延估计的室内声源定位
基于改进二次相关算法的TDOA时延估计
基于信令分析的TD-LTE无线网络应用研究
子网划分的简易方法
FRFT在水声信道时延频移联合估计中的应用
LTE网络信令采集数据的分析及探讨