论文部分内容阅读
当前,移动通信和Internet技术迅速发展并且相互渗透,各种功能强大的便携式终端不断涌现,越来越多的移动用户希望能在任何地方以更灵活的方式接入Internet,分享Internet提供的丰富多彩的服务。基于传统IP技术的主机通过固定的IP地址与 TCP端口互相通信,在通信期间,IP地址和 TCP端口号必须保持不变,否则将无法继续主机间的通信,因此传统的IP技术不再适用于移动节点。为了解决这个问题,1996年IETF出台了移动IPv4。然而,MIPv4无法提供很好的移动性,因此,IETF移动工作组开始研发移动IPv6。MIPv6充分利用了IPv6的特点和对移动性的支持,用 128位地址代替MIPv4的 32位地址,能为近乎数量无限的连网系统分配独立的IP地址,并能保证移动用户在网络间移动时保持与Internet连接。移动IPv6已经很好地解决了移动用户在网络中无缝漫游的问题。但是,在移动IPv6中,每当移动节点的接入位置发生改变,为了保证通信不中断及进行路由优化,移动节点都需要向家乡代理和通信对端节点发送绑定更新消息。如果移动节点的接入位置经常需要更换,并且与移动节点通信的节点非常多的情况下,网络上将存在许多绑定更新报文,占据宝贵带宽,甚至造成网络冲突。特别是当移动节点远离家乡网络时,会造成较大的切换延时,从而引起严重的数据包丢失和通信吞吐量的下降。研究证明,大多数情况下移动节点都是在一定的范围内移动,因此,IETF提出了分级移动IPv6管理方案。这种管理方案可以减少绑定更新报文的数量,又可以隐藏移动节点的确切位置。因此,从提高移动IP的服务质量角度考虑,对分级移动IPv6进行研究有着十分重要的理论意义和现实意义。本文在了解移动IPv6原理的基础上,依据IETF制定的“Hierarchical Mobile IPv6 mobility management (HMIPv6)” 第8稿深入分析了分级移动IPv6协议。分级移动IPv6中除了家乡代理、移动节点和通信对端节点外,引入了一个新的实体——移动锚点(MAP)。MAP可以是网络中的任何一个路由器,其作用相当于本地家乡代理,它一般位于网络的边界,其下面可以有多个接入路由器。可以利用现有的网络层次,或者根据需要将网络划分为区域,每个区域由一个或多个MAP管理。如果有多个MAP,那么它们之间可以有层<WP=80>次关系。每一个MAP管辖的网络范围称为一个MAP域。这样,移动节点的移动被分为MAP域内的移动和MAP域之间的移动。分级移动IPv6中的“分级”主要表现在这里。分级移动IPv6使得移动节点在MAP域内的移动由MAP管理,而对家乡代理和通信对端节点透明,从而减少了绑定更新报文的数量。由于移动节点一般距离MAP比较近,因此移动节点在MAP域内移动后,更新MAP绑定缓存的时间少于移动IPv6中更新家乡代理和通信对端节点绑定缓存的时间,降低了由于切换造成的数据包的延时和丢失。移动节点首次接入网络时会获得一个基于家乡链路网络前缀的IP地址——家乡地址。处于家乡链路时,移动节点跟固定节点一样,按照正常的方式与其他节点进行通信。当移动节点通过邻居发现机制发现自己发生了移动,它会在当前访问的网络中获得两个转交地址——区域转交地址(RCoA)和链路转交地址(LCoA)。移动节点利用IPv6中提供的无状态地址配置方法,根据获得的其所在MAP域的MAP的前缀信息形成区域转交地址,根据接入路由器的前缀信息形成链路转交地址。当移动节点在MAP域内移动时,它会收到代表同一个MAP的MAP通告消息,此时,移动节点的区域转交地址不需要改变。由于接入路由器发生了改变,因此移动节点的链路转交地址需要重新配置。在这种情况下,移动节点只需要向MAP发送绑定更新报文,用此时的区域转交地址和链路地址之间的对应关系更新MAP绑定缓存中移动节点的绑定信息。当移动节点根据收到的MAP通告消息的内容发现不是原来的MAP,即移动节点从一个MAP域移动到了另一个MAP域,这时移动节点的区域转交地址和链路转交地址都需要重新配置。配置完成后,移动节点需要首先向新的MAP发送绑定更新报文,注册区域转交地址和链路转交地址之间的绑定关系,然后向家乡代理和所有的通信对端节点发送绑定更新报文,用家乡地址和新的区域转交地址之间的绑定关系更新它们的绑定缓存。分级移动IPv6中,家乡代理和通信对端节点的操作与移动IPv6相似。通信对端节点发送数据包时首先检查其绑定缓存,如果存在关于移动节点的绑定信息,就用绑定信息中移动节点的转交地址作为目的地址,将数据包发送给移动节点;否则就用移动节点的家乡地址作为数据包的目的地址,这样的数据包都会路由到移动节点的家乡链路,家乡代理截获这些数据包,再用隧道发送到移动节点的区域转交地址。 <WP=81>分级移动IPv6中MAP的作用类似于本地家乡代理,它截获所有发送到移动节点区域转交地址的数据包,再通过隧道发送给移动节点。在上述分析的基础上,本文以Linux操作系统作为平台主要实现了分级移动IPv6中移动节点的功能,包括移动检测,绑定更新报文的发送管理,数据包的隧道发送管理。移动节点移动检测的实现主要是利用路由器通告消息来判断移动节点是否发生了移动。当移动节点收到路由器通告消息后,对其内容进行分析,然后按?