您好,欢迎访问三七文档
移动IP工作原理概述(高)原理,概述随着信息技术的飞速发展,在固定的场所通过固定的线路进行网络通信的方式已经不能满足人们的需要了,人们希望有朝一日能够象使用手机那样,在移动中实现对网络的不间断访问、在移动中享受网络提供给我们的各种服务,毕竟手机提供给我们的服务还是太少了。本文所要讲到的移动IP技术正是为了实现这一目的而设计的。一、移动IP的基本含义简单的说,移动IP是一种计算机网络通信协议,它能够保证计算机在移动过程中在不改变现有网络IP地址、不中断正在进行的网络通信及不中断正在执行的网络应用的情况下实现对网络的不间断访问。移动IP的这一特性特别适用于无线通信网络,因为只有无线网络中的通信设备能够实现真正意义上的移动。很难想象在有线网络中计算机怎样才能在既不改变自身IP地址又不影响正在执行的网络应用的情况下从一个网络链路移动到另外一个网络链路。可以说,无线网络技术与移动IP技术是密切联系、相辅相成的。一方面,无线网络为移动IP的实现提供了适合的环境;另一方面,移动IP技术的应用能够实现无线网络中的漫游功能。从字面上看,很容易混淆移动IP与动态IP这两个完全不同的概念,通过上面的介绍,大家应该对移动IP有了一个初步的认识。而动态IP指的是局域网中的计算机可以通过网络中的DHCP服务器动态地获得一个IP地址,而不需要用户在计算机的网络设置中指定IP地址,这一点相信大家也比较熟悉,因为动态IP和DHCP经常会应用在我们的实际工作环境中。另外,移动IP的目的在于实现移动过程中的不间断网络访问,而不单纯是可移动设备对网络的访问。例如,您可以将一台轻便小巧的笔记本电脑带在身边,在需要上网的时候,将它连接在单位的局域网上(如果您在单位的话)或通过笔记本的PCMCIAMODEM卡及电话线(如果您在家中或出差在外的话)进行上网。在此,除了可以比较方便地把笔记本拿到其他地方上网以外,这两种上网的方式与固定设备(如台式机)的上网方式没有什么不同。而移动IP所要解决的是如何让这台笔记本电脑在移动的过程中(例如,当您在行驶的汽车或火车上时)对网络进行访问,而且当您跨越不同的网络覆盖区域时,您会毫无察觉,因为这种移动对上层的网络应用来说是透明的,它丝毫不会影响您正在进行的网络通信。二、移动IP涉及的几个主要概念为了方便下面的介绍,有必要先将移动IP实现过程中涉及到的几个主要概念描述一下,这几个概念包括移动节点(MobileNode)、本地链路(HomeLink)、移动节点的本地IP地址(HomeAddress)、本地代理(HomeAgent)、外部链路(ForeignLink)、移动节点的转交地址(care-ofaddress)、外部代理(ForeignAgent)、隧道(tunnel)。1、移动节点(MobileNode)移动节点指的是处于移动中的计算机通信设备,该设备一般安装有无线网卡或无线收发器,因此具备无线通信功能。关于无线网络及无线网络设备的有关内容不是本文讨论的重点,在此不做专门介绍。2、本地链路(HomeLink)本地链路指的是与移动节点具有相同IP网络前缀(networkprefix)和网络掩码的网络链路。例如,移动节点的IP地址为100.100.100.10,网络掩码为255.255.255.0,那么本地链路指的就是IP网络前缀为100.100.100.0的网络链路。可以这么说,本地链路是移动节点原来所处的链路,在该链路上移动节点可以象其他设备那样进行正常的工作,而不需要移动IP的支持(当移动节点从外部链路移回到本地链路时除外,这种情况下面将有专门的介绍)。3、移动节点的本地IP地址(HomeAddress)移动节点的本地IP地址指的是移动节点在本地链路上时所指定的IP地址。如前面例子中提到的100.100.100.10。4、本地代理(HomeAgent)本地代理指的是位于本地链路上的具有下述代理功能的路由器:(1)能够在本地链路上广播发送代理广告(AgentAdvertisement),以便移动节点判别自己所处的位置;(2)能够响应移动节点的注册请求(RegistrationRequest),将移动节点在外部链路上获得的转交地址(care-ofaddress)与移动节点本地IP地址的对应关系添加在一张映射表中;(3)能够响应移动节点的取消注册请求(DeregistrationRequest),将移动节点在外部链路上获得的转交地址(care-ofaddress)与移动节点本地IP地址的对应关系从映射表中删除;(4)能够中途截取目标地址为移动节点本地IP地址的IP数据包,并通过隧道(tunnel)将它们转发给位于外部链路上的移动节点。5、外部链路(ForeignLink)外部链路是相对于本地链路而言的,指IP网络前缀不同于本地链路的其他链路。例如,在前面所举的例子中,本地链路为100.100.100.0,那么网络前缀为200.200.200.0的网络链路相对于这个本地链路来说就是外部链路了。6、转交地址(Care-ofaddress)转交地址是指移动节点移动到外部链路上时获得的IP地址。转交地址具有与外部链路相同的网络前缀。如本地地址为100.100.100.10的移动节点移动到网络前缀为200.200.200.0的外部链路上时,它所获得的转交地址可能会是200.200.200.25,其网络前缀为200.200.200.0。本地代理通过隧道将中途截取的IP数据包转发给移动节点时,使用转交地址作为转发数据包的目标IP地址。转交地址又可分为外部代理转交地址(foreignagentcare-ofaddress)和配置转交地址(collocatedcare-ofaddress)。7、外部代理(ForeignAgent)外部代理是位于外部链路上的具有以下代理功能的路由器:(1)能够在外部链路上广播发送代理广告(AgentAdvertisement),以便移动节点判别自己所处的位置;(2)能够协助移动节点将注册请求/取消注册请求发送给移动节点的本地代理;(3)能够为移动节点提供可用的转交地址;(4)能够将本地代理通过隧道发送给移动节点的IP数据包进行解包,然后再发送给移动节点。8、隧道(tunnel)隧道指的是当移动节点位于外部链路上时,本地代理将中途截取到的目标地址为移动节点本地IP地址的IP数据包(以下称为源数据包)再进行网络层的封装,再次封装后的IP数据包的目标IP地址为移动节点的转交地址、有效载荷(payload)为截取到的源数据包。通过隧道发送给移动节点的IP数据包将由外部代理或移动节点进行解包,然后再由移动节点对解包后所得到的源数据包进行处理。以上是几个与移动IP密切相关的概念,在下面的讲述中,您将会对它们有更深的了解。三、移动IP的工作原理在介绍移动IP的工作原理之前,先看一下为什么要为外部链路上的移动节点分配一个转交地址?为什么要使用隧道进行IP数据包的再次封装?原因很简单,因为经过再封装后的IP数据包的目标IP地址为外部链路上的IP地址,因此有利于该数据包通过正常的路由途径从本地代理传递给位于外部链路上的移动节点,这样就不需要对本地代理与外部代理之间的路由器做改动了。移动IP的工作原理大体可以分为以下三个步骤:*代理发现(AgentDiscovery)*转交地址注册/取消注册(Registration/Deregistration)*数据的收发(一)代理发现概括地讲,移动节点通过代理发现可以完成以下三个方面的工作:*判断移动节点现在所处的位置是本地链路,还是外部链路;*检测移动节点是否从一个链路移动到了另外一个链路;*当移动节点确定它位于外部链路上时,获取一个转交地址。1、首先,让我们来看一下移动节点怎样来判断它所处的位置。前面我们已经对本地代理和外部代理做了简单的介绍,它们是移动IP实现中的重要组成部分。本地代理和外部代理会通过广播或多播的方式周期性地在它们各自的链路上发送名为代理广告(AgentAdvertisement)的IP数据包。如果移动节点收到这类数据包,它就可以断定在它现在所处的链路上存在代理,移动节点从代理广告数据包中可以得知发送该声明的代理的IP地址(即数据包中的源IP地址),如果该IP地址与移动节点的本地IP地址具有相同的网络前缀,那么移动节点就可以断定它位于本地链路上,否则移动节点则认为它位于某个外部链路上。值得一提的是,对于那些没有耐心等待下一次代理广告的移动节点来说,它可以主动地发送代理请求(AgentSolicitation)数据包,其目的在于促使该链路上的代理立刻发送代理广告,而不要等待下一个发送周期的到来,代理请求(AgentSolicitation)比较适用于移动节点在链路间移动较快或代理广告发送周期较长的情况。上面所讲的是移动节点在收到了代理广告后,怎样进行位置的判定。如果移动节点没有收到代理广告的话,它又将如何进行位置的判定呢?在这种情况下,移动节点会通过下面的步骤来完成这项工作:(1)移动节点先假设它位于本地链路上,并认为本地代理发生了故障(否则的话,移动节点没有理由收不到代理广告),然后移动节点就给本地链路上的缺省路由器发送一条ICMPEchoRequest信息,如果缺省路由器有响应的话,那么移动节点则会认定它位于本地链路上。(2)如果移动节点没有收到缺省路由器的响应,则移动节点会认为它位于某个外部链路上,而该链路上的外部代理发生了问题,无法正常发送代理广告。在这种情况下,移动节点会试着从该链路上的DHCP服务器上获得一个IP地址,如果成功的话,移动节点将把该地址作为转交地址;否则,需要手工为移动节点配置一个转交地址。2、移动检测移动检测的目的在于确定移动节点是否从一个链路移动到了另外一个链路。(1)如果移动节点能够收到代理广告的话,它可以通过下述的两种方法进行检测:*使用代理广告中的Lifetime字段进行检测,Lifetime字段指出了代理广告发送的周期。如果移动节点已经从某个外部代理那儿获得了转交地址,并且向本地代理进行了注册,那么当它在预定的时间周期内收不到源自该外部代理的代理广告的话,移动节点会认为它移动到了另外一个链路上,或者认为该外部代理出现了故障。*使用网络前缀进行移动检测。前面我们讲过,代理广告数据包中的源地址(SourceAddress)字段就是该代理(本地或外部)的IP地址,因此当移动节点收到代理广告后,它可以获知并记录下代理的IP地址。当它下一次收到代理广告时,可以将该代理广告中的源地址与上一次收到的代理广告的源地址进行比较,如果两个地址具有相同的网络前缀,那么移动节点认为它没有移动到新的链路上,否则就认为移动到了一个新的链路上。值得一提的是,在同一条链路上有可能存在多个代理,但是它们的网络前缀却不同(譬如在同一个以太网链路上可以存在几个不同的IP网段),在这种情况下,就不能单纯依靠源地址进行判断了,怎么办呢?作为一项可选内容,代理广告中可以包含同一条链路上多个不同代理的网络前缀信息。移动节点可以将最近收到的代理广告中的各网络前缀与上一次收到的代理广告中的各网络前缀进行比较,如果相同则认为没有移动到新的链路上,否则就认为移动到了新的链路上。(2)如果移动节点收不到代理广告的话,它通过以下两种方法进行移动检测:*检查一下现有的TCP连接是否有进展,如果在一段时间内没有进展的话,则可以认为已经移动到了一个新的链路上;*移动节点可以将自己的网卡驱动配置为“混合模式”,在这种模式下,移动节点将检查链路上的所有数据包。如果移动节点已经身处某一外部链路,并且获得了一个转交地址,那么当它在一段时间内发现该链路上的所有数据包的目标IP地址的网络前缀均不同于转交地址的网络前缀时,它会认为它移动到了一个新的链路上。3、获取转交地址前面我们介绍了移动节点的位置判断和移动检测,下面介绍一下转交地址的获取方法。当移动节点从本地链路移动到外部链路或从一个外部链路移动到另一个外部链路上时,它会设法获得一个新外部链路上的转交地址。获取转交地址的方法主要有三种:(1)当外部链路上有
本文标题:6移动ip
链接地址:https://www.777doc.com/doc-5116925 .html