关键字
移动IPv6 数据结构 算法
一 引言
移动IPv6是构建在IPv6技术体系基础上的,并且通过IPv6的特性来实现通信主机移动性功能的技术。为了使节点通信期间具备移动IP功能,保证节点移动对传输层协议和应用程序的透明性,移动IPv6在IPv6的通用数据结构和算法的基础上,建立了特定的数据结构,并采用扩展的数据收发算法,来实现移动IPv6技术框架内的移动主机间通信。
其中主要涉及到归属代理(Home Agent,HA)、移动节点(Mobile Node,MN)和通信节点(Correspondent Node,CN)三种主机实体,以及相应的归属代理地址(Home Agent Address,HAA)、MN的归属地址(Home Address,HoA)和转交地址(Care-of Address,CoA)、通信节点地址(Correspondent Node Address,CNA)等信息。
二 数据结构
移动主机作为IPv6网络的节点,为支持和实现各协议功能,首先需要通信主机在存储器缓存中保持和维护实现相关基本协议功能的数据信息。邻居发现(Neighbor Discovery)给出了这类数据信息构成的数据结构,主要包括:
邻居缓存(Neighbor Cache):本地主机维持的与接口相关的相邻邻居的数据信息的表项。各条目以单播地址为索引,包括链路层地址、邻居类别标志、指向等待地址解析的数据包队列的指针、邻居可达状态、邻居检测信息等。
目的地缓存(Destination Cache):主机维持的关于数据的目的节点信息的表项,以实现目的IP地址和下一跳邻居的IP地址的映射。数据包括“on-link”和“off-link”状态的目的主机信息,并提供简单的间接寻址。
前缀列表(Prefix List):以对应“on-link”主机的地址前缀为条目,路由器通告消息接收主机在各通告相应失效期内,按照通告内容相关信息维护的列表。
缺省路由器列表(Default Router List):为有效确定数据包路由为目的,包含指向邻居缓存中相应条目的指针和已知可达的有效路由器地址等信息的列表。
同时,移动性节点数据交换过程还涉及到移动IPv6相关的绑定缓存、绑定更新列表和归属代理列表等特定的数据结构,以便于各个节点有效维持和处理相关主机在注册和通信期间有关地址和状态等信息数据。
1绑定缓存
绑定缓存(Binding Cache)是通信节点和移动节点的归属代理各自维持的包含移动节点当前绑定信息的表项。表项各条目根据移动节点发送的绑定更新(Binding Update,BU)消息而生成,内容主要包括:
MN的HoA和CoA;
有效时间——通过各BU消息寿命刷新计算的对应缓存条目的有效时间;
请求时间——最近一次发送绑定更新请求(Binding Refresh Request,BRR)消息的时间;
归属注册标记——(归属代理维持的绑定缓存条目中)指示当前条目是否为归属注册条目的标记;
上一次BU消息的序列号等其他相关信息。
通信节点在本地还存有与迂回路由进程(Return Routability procedure,RRp)进程相关,并且仅用于收发绑定消息的信息:Home Test Init(HoTI)和Home Test(HoT)以及Care-of Test Init(CoTI)和Care-of Test(CoT)消息的收发时间、RRp消息重发状态、HoTI和CoTI的Cookie信息、HoT和CoT的加密令牌等。
通信节点绑定缓存相关条目在RRp完成后建立,而归属代理绑定缓存条目通常在移动节点向其发送BU消息进行通信注册(correspondent registration)时建立。
绑定缓存的实现方式并不唯一,可以使用独立的缓存结构,也可以对目的地缓存扩展形成具备绑定缓存逻辑功能的综合数据结构。无论采用那种方式,当发送数据包时,绑定缓存中信息的执行优先于邻居发现维持的目的地缓存和邻居缓存的信息。
2绑定更新列表
移动节点通过绑定更新列表(Binding Update list)记录向归属代理和通信节点发送BU消息的内容。除与绑定缓存一致的HoA、CoA和有效时间等字段外,还包括:
节点地址——接收BU消息的节点的地址;
消息寿命——前一次BU消息的寿命时间;
发送时间——最近一次发送BU消息的时间;
重发状态——当BU消息中表示需对方应答的A标记置位时,未收到绑定确认(Binding Acknowledgement,BA)消息期间,等待重发BU消息的状态;
后续标记——移动节点发送RRp测试消息或BU消息后,收到ICMPv6下一头类型参数错误或无法识别(Type 4 Code 1)的应答消息,判断是否需发送后续BU消息的指示标记。
移动节点同时也存有与绑定缓存中RRp相关内容相同的数据信息,并和通信节点一样通过HoT和CoT消息里的加密令牌,检验绑定相关的消息。
在RRp进程完成的同时,绑定更新列表中生成相应的条目,记录向所有归属代理和通信节点发送绑定更新消息的信息。移动节点以BU消息响应BRR时,不论该目的地址的绑定内容是否发生变化,系统均更新对应条目,保证通过消息序列或其他信息检索到与最近的BU消息一致的信息.
3归属代理列表
归属代理列表(Home Agents list)是由归属代理维护,记录可用归属代理信息的列表。各代理条目内容包括:
本地链路地址——HA在移动节点归属链路上的本地地址;
全球地址——通过路由器通告消息中前缀信息选项的路由器地址(R)标记置位,指示的HA全球地址;
有效时间——从通告消息中获得的HA有效时间;
优先级——通告路由器作为HA的优先级。
每个活动的HA在本地链路上发送路由器通告时,都将其中的归属代理(H)标记置位,表示发出通告的路由器可以担任移动节点的HA。链路上的其他HA都会检查收到通告消息中的H标记,并根据相应通告的信息创建或更新本地的归属代理列表相关条目。
归属代理列表条目按照通告消息中归属代理优先级高低顺序排列。如路由器通告中未携带归属代理信息选项,则其优先级为0(0为中等优先级,可为负值)。当移动节点通过归属代理地址发现机制请求并收到归属代理列表后,将选择高优先级路由器作为其归属代理。
由于归属代理列表在数据结构和生成更新方式上,均与缺省路由器列表一致,因此除了独立列表的构建形式外,还可以使用建立公共的路由器列表数据缓存或分布式数据指针等多种形式实现。
三 主机算法
1数据发送算法
主机数据发送算法如图所示:
尽管基于IPv6的邻居发现中规定了相关IPv6主机发送数据包的算法,但其中并未涵盖移动IPv6的功能。通常,普通IPv6节点通过目的地缓存、缺省路由器列表确定合适的下一跳地址,再根据邻居缓存确定邻居链路层地址,将数据包发送往目的地。
支持移动IPv6的发送主机,在移动IP通信模型中既是移动节点又是通信节点,因此在数据发送算法中,有三处特定的判断和处理流程。
接收主机位置检查
通信主机通过检查目的地缓存匹配条目中是否存在指向绑定缓存相应条目的指针,来进行对端目的主机位置的判断。
如果该指针存在,则表明目的节点是离开归属地的移动节点,随后按照绑定缓存条目信息,将IPv6数据包目的地址设为目的节点CoA,并插入写有其HoA的2类路由扩展头,同时以该条目中指向目的节点CoA相关目的地缓存条目的指针,最终从目的地缓存获得下一跳地址和转交地址接口;如果指向绑定缓存相应条目的该指针不存在,则可判断目的节点位于归属地,发送主机将直接从目的地缓存条目中获得下一跳地址和接口。
发送主机位置检查
当数据包不需通过隧道发往归属代理时,发送主机需进行本地主机位置的判断。通常能够检索到绑定更新列表相关条目,即可确认发送主机当前处于外地链路,主机按照列表条目,将数据包IPv6头的源地址设为本地主机CoA,并插入带有其HoA的目的选项扩展头。
通信注册状态检查
在本地主机位置检查中,未能在绑定更新列表中检索到与目的地匹配的条目时,发送主机须检查当前通信注册状态。通过检查RRp及通信注册状态等信息,并判断对端主机对移动IPv6支持情况,发送主机最终确定是否重新发起通信注册,同时选择暂时以间接通信方式通过HA转发数据包。
2数据接收算法
支持移动IPv6的通信主机接收数据包时,也同样需要经过双方主机位置判定和对端主机移动IPv6协议支持情况确认,完成路由扩展头和目的选项扩展头处理的过程。
主机接收算法流程如图:
接收主机位置检查
接收主机的位置检查实际就是本地主机对2类路由扩展头的检查过程。如接收主机离开归属地,则接收到的数据包中将带有2类路由扩展头,接收主机进行扩展头处理,把IPv6数据包的目的地址合理的替换成该路由头中的HoA。
通信注册状态检查
对于从HA隧道接收,但不属于RRp归属测试(Home Test)消息的数据包,接收主机处理数据包外层接收主机HAA到CoA的IPv6隧道头的同时,对发送主机通信注册状态例行检查。无法从绑定更新列表信息中确定对端主机的移动IPv6支持情况,以及通信注册状态时,接收主机将重新发起通信注册。
发送主机位置检查
数据包路由头或外层隧道封装头处理完毕后,接收主机检查是否有携带归属地址选项的目的选项扩展头,进行对端主机位置的判断。当数据包携带有归属地址选项时,可以确认发送主机当前离开归属地,则对选项头进行处理,将IPv6数据包源地址合理的替换为对方主机的HoA。
四 结束语
移动IPv6节点通信的实现模式中,实际还涉及到漫游、切换等一系列的复杂过程和众多不同的功能机制,并且在技术体系完善的同时,还面临着一系列QoS、安全等方面的协议改进工作。
从主机数据结构和算法的角度来看,如何有效的处理与之相关联的各类数据信息,和有效的管理多样的数据结构,以低开销实现各功能机制,还需要进行更广泛深入的研究,这是一个具有重要意义的研究课题。
文章评论(0条评论)
登录后参与讨论