移动IP中的移动检测方法
发布时间:2006-10-14 4:13:11   收集提供:gaoqian
黄鹏 马艳峰
  摘 要 本文介绍了移动IP的基本概念和工作原理,并着重探讨了移动检测方法。按链路上有无代理广播消息,移动检测通常分为两种情况进行。移动节点收到代理广播消息后,可用生存时间域和网络前缀做移动检测;如果收不到代理广播消息,在本地链路上,移动节点设法按固定节点通信的方式进行通信尝试,在外地链路上移动节点将通过DHCP协议或手工配置进行通信,或对TCP进程进行监测并检查链路的数据包以确定自己在移动网络中的位置。

  关键词 移动IP 本地代理 外地代理 移动检测

  移动IP在互联网上为移动计算机提供了不中断通信的无缝漫游协议。它突破了计算机机房、信息插座和地域等限制,允许移动节点在移动时穿过不同或相似的传输媒介,使人们能够随时、随地、更加灵活地访问互联网。移动IP是一个对网络移动性的解决方案。移动IP中移动节点要完成通信,必须先确定自己的位置,判断自己是否在不同链路上进行切换。注册完成后才能进行通信。移动节点如何判断自己在网络中的当前位置是移动IP研究中的重大课题,也是研究的热点之一。本文拟从移动IP的基本概念、基本原理入手,探讨移动IP中的移动检测方法。

2 移动IP的基本概念

  为解决互联网的移动性问题,RFC 2002最先引入移动节点(Mobile Node)、本地代理(Home Agent)和外地代理(Foreign Agent)三种功能实体并提出移动IP的概念,从而为移动节点接入互联网提供了透明路由协议。

2.1 移动IP的功能实体

  移动节点是移动网络中的主机或路由器。它可以将接入互联网的位置从一条链路切换到另一条链路上,不用更改IP地址而仍然保持所有正在进行的通信。与移动节点紧密相关的两个地址是本地地址和转交地址。

  本地代理是与移动节点本地链路相连的主机或路由器。当移动节点切换链路时,本地代理通知移动节点它的当前位置或广播对移动节点本地地址网络前缀的可达性,从而吸引那些送往移动节点的本地地址的数据包。同时,本地代理解析送往移动节点本地地址的数据包,并将这些数据包通过隧道传送到移动节点的转交地址上。

  外地代理是连接在移动节点外地链路上的主机或路由器。外地代理为移动节点提供转交地址并将移动节点的转交地址通知移动节点的本地代理,同时外地代理还可以作为连接在外地链路上移动节点的缺省路由器。

2.2 本地地址和转交地址

  移动节点有两个非常重要的IP地址,即本地地址和转交地址。

  移动节点的本地地址是指“永久”地分配给该节点的地址,当移动节点切换链路时,本地地址并不改变。只有当整个网络需重新编址时才改变移动节点的本地地址。

  转交地址是连接本地代理和移动节点的隧道出口。转交地址与移动节点当前所在的外地链路相关。会交地址也随着移动节点的改换而改变。送往转交地址的数据包可以通过现有的因特网路由机制传送,而不需要移动IP中的隧道技术转发数据包。

  转交地址包括外地代理转交地址(Foreign Agent Care-of-Address)和配置转交地址(Collocated Care-of-Address)。外地代理转交地址是外地代理的任一个IP地址,外地代理只需有一个端口连接移动节点所在的外地链路上,因此,外地代理转交地址的网络前缀并不一定与外地链路的网络前缀相同,多个移动节点可以同时共用一个外地代理转交地址。配置转交地址是暂时分配给移动节点的某个端口的IP地址,其网络前缀必须与移动节点当前所连的外地链路的网络前缀相同。当外地链路上没有外地代理时,移动节点可以采用这种转交地址。配置转交地址是唯一的,只能被一个移动节点使用。

2.3 本地链路和外地链路

  本地链路是与移动节点本地地址具有相同网络前缀的链路。移动节点本地地址的网络前缀决定了它的本地链路。

  外地链路是移动节点外地代理所在的链路。

3 广播消息

  广播消息在移动检测中起着重要的作用。广播消息有两大类,一是广播代理消息(Agent Advertisement Message);二是代理请求消息(Agent Solicitation Message)。

3.1 广播代理消息

  本地代理或外地代理利用代理广播消息向移动节点宣布它们的功能。当一个节点在一条链路上被配置成本地代理或(和)外地代理,它就在这条链路上广播或组播代理广播消息,这使得连到这条链路上的移动节点可以判定该链路上是否有代理存在。

3.2 代理请求消息

  当移动节点等不到下一个周期发送的代理广播消息时,它可以发送代理请求消息。请求该链路上的所有代理立即发送一个代理广播消息,在移动节点快速地切换链路时,代理请求消息就非常有用了。

  移动IP不要求对这两种消息进行确认,移动IP利用了这两个消息的格式,并对它们进行了扩展以完成移动检测。

4 移动IP的工作机制

  移动节点通过发送代理请求消息或接收本地代理和外地代理发送的代理广播消息判断自己在网络中的位置。如果在本地链路上,移动节点就按固定节点的方式进行通信,而不需使用移动IP的功能。

  如果移动节点连在外地链路上,它就从外地代理广播的代理广播消息中找到外地代理的转交地址,同时向本地代理注册该转交地址。本地代理向移动节点回应接收或拒绝的注册应答消息。

  注册成功后,本地代理将发往移动节点的数据包再次封装通过隧道送到移动节点的转交地址。然后从隧道取出、解封装后送往移动节点。

  从移动节点发出的数据包将通过标准的路由通道直接发到目的节点,不需要使用隧道技术。

5 移动IP中的移动检测方法

  移动检测可按两类情况进行,一是有代理广播消息的情况;二是没有代理广播消息的情况。下面进行详细的探讨。

5.1 有代理广播消息的情况

  假设移动节点所连接的链路上至少有一个代理,则移动节点可以通过两种方法来确定自己是否切换到了新的链路上,一种方法是利用生存时间域作移动检测;另一种方法是利用网络前缀作移动检测。

5.1.1 用生存时间域作移动检测

  代理广播消息中ICMP路由器广播部分的生存时间域表示移动节点接收同一代理的广播消息的时间周期。本地代理和外地代理需要频繁地发送广播消息以免广播消息的丢失,特别是在较容易出错的无线链路上。

  当移动节点注册到外地代理上时,如果在生存时间域规定的时间内却没有收到来自该代理的广播消息,那么说明该移动节点已移动到另一链路上或者该外地代理已经不可用了。此时移动节点向下一个发来代理广播消息的外地代理注册,如果移动节点没有收到任何广播消息,它就发出一个代理请求消息去询问。

5.1.2 用网络前缀作移动检测

  假设移动节点向某条链路上的外地代理注册,记录了该代理广播消息后,移动节点又收到了来自另一个外地代理的代理广播消息。在这种情况下,移动节点将从两个广播消息中计算出网络前缀并加以比较来判定两个广播消息是否来自同一条链路,如果不同,则两个广播消息是从不同的链路上接收到的,否则就是从同一链路上接收到的。当移动节点将新收到的广播消息与它当前正注册的外地代理比较后,如果发现它已移动到新链路上了,就应向在新链路上的外地代理进行注册。否则,如果接收的广播消息只是来自同一条链路的另一个外地代理,移动节点并没有移动,这时,不必向新代理注册;除非它在广播消息中的生存时间(Lifetime)内没有收到当前注册的外地代理的广播消息,这意味着,移动节点仍然采用第一个移动检测方法(用生存时间)来看当前的外地代理是否还可用,如果不可用,移动节点就注册到一个新的外地代理上。

5.2 没有广播消息的情况

  移动节点接收不到广播消息,就无法判断自己是处在本地链路上还是外地链路上,此时移动节点必须用其他方法进行移动检测。主要有下述三种方法。

5.2.1 设法在本地链路上通信

  如果移动节点连到了一条链路上但却收不到任何代理广播消息,那么移动节点可以假设正连在它的本地链路上,并且其本地代理出现故障,无法广播代理消息6这时,移动节点只需简单地按它在本地链路上那样进行通信。例如,可以向它在本地链趾用的缺省路由器发送ICMP Echo Request消息,如果这台缺省路由器给出了应答,那么移动节点很可能正连在它的本地链路上,这样就可以继续通信了。

5.2.2 在外地链路上用DHCP和手工配置

  如果缺省路由器没有应答,那么移动节点可以认为它正连在一条外地链路上。这时,移动节点可以设法通过DHCP服务器得到一个地址,如果成功了,移动节点就可以将这个地址作为配置转交地址,并向它的本地代理注册。如果DHCP服务器没有应答,那么使用移动节点的人可以为它手工配置一个IP地址作为配置转交地址。如果还不行,那么这个移动节点就无法工作了。

5.2.3 监测TCP进程和链路上所有数据包

  假设移动节点可以得刻一个配置转交地址,那么可以通过两种方法来推断移动节点是否从一条没有代理的链路移动到了另一条链路上。

  第一种方法,在它已打开的TCP连接上检查最近有没有转发进行。如果没有,则说明移动节点在上一次注册后它已经移动过了。

  第二种方法,移动节点可以将它的网络接口驱动置于接收所有包的模式。在这种模式下,移动节点可以检查链路上的所有包,而不只是发给它的包。如果这些包中没有一个网络前缀与它的转交地址的网络前缀一样,它就可以推断它已从获得转交地址的那条链路移动到一条新链路上了。此时移动节点应得到一个新的转交地址并向它的本地代理注册。当然,移动节点必须知道各种链路的前缀长度才可判断它转交地址的网络前缀与当前链路的网络前缀是否相等。

6 总结

  本文讨论了移动IP的基本概念和工作原理及其移动检测方法。移动检测即移动节点判断它是连在本地链路还是外地链路上以及在不同链路上进行切换的过程。移动节点接收由本地代理和外地代理周期发送的代理广播消息,它也可以通过发送代理请求得到广播消息。

  根据两种链路上有无代理广播消息,移动检测可按两种情况进行。

  移动节点可以接收代理广播消息时,移动检测有两种方法。第一种方法是用生存时间域作检测,移动节点可以在任何情况下采用这种方法。第二种方法利用网络前缀作检测,这要求代理在它们的代理广播消息中加入前缀长度扩展部分。

  如果移动节点连接的链路上没有代理广播消息,那么移动节点可以利用传输层和数据链路层来判定它当前的位置,从而通过DHCP或手工配置得到一个转交地址并实现不中断的通信。

摘自《中国数据通信》2002.1
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50