···························································· 第5 章 chapter5 移动IP 5.1 移动IP 概述 5.1.1 移动IP 的出现背景 因特网的飞速发展和移动设备(笔记本计算机、PDA)的大量涌现,推动了人们对移 动设备接入网络的研究,人们不再满足于单一的、固定的因特网接入方式,而是希望能够 提供灵活的上网方式,移动设备用户希望能够和桌面固定用户一样接入同样的网络, 共享网络资源和服务。无线互联网的发展,要求IP网络能够提供对移动性的良好 支持。 根据IP地址结构和寻址模式的特点,每个IP地址都归属一个网络,当把一台台式计 算机从一个网络移动到另一个网络时,首先要从原网络上断开,再连接到新的网络上,并 且还要重新配置IP地址。这样的方式对于一个需要频繁移动的移动设备来说,显然不 能适用。 在IP网络中,路由决策是由目标IP地址的网络前缀部分决定,这就意味着拥有同一 条链路接口的所有网络节点的IP地址必须拥有相同的网络前缀。移动节点对于通信有 这样一个要求,即它可以将自己的接入点从一条链路转向另一条链路,但同时必须保持 已有通信不中断,并且在新的链路上使用与原来相同的IP地址。根据现有的IP技术,当 一个节点改变链路时,其IP地址的网络前缀必然要发生改变,这就意味着基于网络前缀 的路由算法无法将数据包传送到节点的当前位置。移动IP提供了一种机制,使得一个 移动节点可以连接到任意链路,但同时可以不必改变其永久IP地址。 移动IP是因特网针对节点的移动特性在网络层提出的一种解决方案。事实上,可 以将移动IP看作一种路由协议,它在特定节点建立路由表,以保证IP数据包可以被传送 到那些未连接在家乡链路上的节点处。 5.1.2 移动IP 设计目标及设计要求 移动IP作为节点移动性带来的若干问题的一种解决方案,其设计应当满足以下5点 基本要求。 5 4 ◆移动互联网导论(第4 版) (1)一个移动节点在改变其链路层的接入点之后应当仍然能够与其他节点进行通 信,这意味着基于网络前缀的路由算法不能继续使用。 (2)一个移动节点通信时,应当只需要使用其家乡(永久)IP地址,无论其当前的接 入点在哪里,都意味着那些需要改变IP地址的解决方案是不可行的。 (3)一个移动节点应当能够与那些没有移动IP功能的固定设备进行通信,而不需要 修改协议。 (4)考虑到移动节点通常是使用无线方式接入,涉及无线信道带宽、误码率与电池供 电等因素,应尽量简化协议,减少协议开销,提高协议效率。 (5)移动节点不应比因特网上的其他节点面临新的或更多的安全威胁。 基于以上5点要求,移动IP的设计目标如下。 (1)包括移动IP在内的所有协议都需要传送网络中各种节点的路由更新。因此,移 动IP的一个设计目标就是使得这些更新的规模和频率尽量小。 (2)移动设备的内存和处理器的处理能力通常都是有限的,因此,移动IP的设计应 当尽量简洁,以保证这些设备上的相关软件的实现较为简易。 (3)由于IPv4地址空间的有限性,移动IP的设计应当尽量避免出现一个节点同时 拥有多个地址的情况。如果使用的是IPv6地址,则不需要考虑这一点,因为IPv6的地址 空间要远大于IPv4。 5.1.3 移动IP 的发展历史 移动IP 的研究始于1992年。1992年,因特网工程任务组(InternetEngineering TaskForce,IETF)成立移动IP工作组,并开始制定移动IPv4的标准草案。研究IPv4 的主要文档包括RFC2002(定义了移动IPv4),RFC1701、RFC2003与RFC2004(定义 了移动IPv4中的3种隧道技术),RFC2005(定义了移动IPv4的应用)及RFC2006(定 义了移动IPv4 的MIB①)。1996 年6 月,因特网工程指导组(InternetEngineering SteeringGroup,IESG)通过了移动IP标准草案,同年11月公布建议标准。 移动IP不是移动通信技术和因特网技术的简单叠加,也不是无线话音和无线数据 的简单叠加,它是移动通信和IP的深层融合,也是对现有移动通信方式的深刻变革。它 将真正实现话音和数据的业务融合,移动IP的目标是将无线话音和无线数据综合到一 个技术平台上传输,这一平台就是IP协议。未来的移动网络将实现全包交换,包括话音 和数据都由IP包来承载,话音和数据的隔阂将消失。在IMT-2000中已明确规定,第三 代移动通信系统必须支持移动IP分组业务。而IETF也正在扩展因特网协议,开发一套 用于移动IP的技术规范,目前已制定完成了RFC2002(IP移动性支持)、RFC2003(IP内 的IP封装)、RFC2004(IP内的最小封装)、RFC2290(用于PPPIPCP的移动IPv4配置选 项),其他协议正在制定中。移动通信的IP化进程将分为3个阶段:首先是移动业务的 IP化;其次是移动网络的分组化演进;最后是在第三代移动通信系统中实现全IP化。 ① MIB全称为ManagementInformationBase,意为管理信息库。 第◆5 章 移动IP 5 5 5.2 移动IP 算法 下面具体介绍移动IP及其算法,首先给出移动IP中的两点假设。 (1)假设单播数据包(即只有一个接收者的那些数据包)的路由不需要使用其源IP 地址。也就是说,移动IP假设所有的单播数据包的路由基于目标IP地址,而通常使用到 的其实只是目标IP地址的网络前缀部分。 (2)假设因特网一直存在,并且可以在任何时候、任何一对节点之间传播数据。 5.2.1 基本术语 以下是移动IP算法中常用的基本术语。 移动节点(MobileNode,MN):位置经常发生变化,即经常从一个链路切换到另一 个链路的节点(主机)。 家乡地址(HomeAddress):移动节点所拥有的永久IP地址。一般不会改变,除非 其家乡网络的编址发生变化。对于和移动节点通信的主机来说,它会一直与移动节点的 家乡地址进行通信。 家乡链路(HomeLink):一个移动节点的家乡子网掩码所定义的链路。标准的IP 路由机制会将目标地址为某一节点的IP地址的数据包发送到其家乡链路。 家乡代理(HomeAgent,HA):移动节点家乡链路上的一台路由器,主要用于保持 移动节点的位置信息,当移动节点外出时,负责把发给移动节点的数据包转发给移动 节点。关 照地址(Care-ofAddress,CoA):连接到外部链路的移动节点暂时使用的IP地 址。它在移动IPv4中是外部代理的IPv4地址,在移动IPv6中则是移动主机在外部链路 上的IPv6地址。 通信节点(CorrespondentNode,CN):一个移动节点的通信对象。 外部代理(ForeignAgent,FA):移动节点所在外部链路上的一台路由器,当移动节 点的关照地址由它提供时,用于向移动节点的家乡代理通报关照地址,作为移动节点的 默认路由器,对家乡代理转发来的隧道包进行解封装,并交付给通信节点。 隧道(Tunnel):一种数据包封装技术,广义上讲,就是把一个数据包封装在另一个数 据包的数据净荷中进行传输。在移动IP中,当家乡代理截获发给移动节点的数据时,就 要把原始数据封装在隧道包内,隧道包目的地址是关照地址。当外部代理(或移动节点) 收到这个隧道包后,解封装该包,把里面的净荷提交给移动节点(或上层)。 5.2.2 移动IP 的基本操作原理 每个移动节点都拥有两个IP地址:一个唯一的家乡地址和一个用于路由的关照地 址。关照地址可以是静态分配的,也可以是动态分配的。 移动IP采用了代理的概念。家乡代理截取给移动节点的数据包,将其打包并转交 5 6 ◆移动互联网导论(第4 版) 给移动节点所注册的关照地址。外部代理是与移动节点建立连接的路由器,因此移动节 点通过外部代理与家乡代理通信,更新自己的位置信息。 5.2.3 移动IP 的工作过程 移动IP有3个基本的工作过程:代理发现、注册,以及隧道封装与分组路由。移动 IP的基本操作流程如图5-1所示。 图5-1 移动IP的基本操作流程 1.代理发现 代理发现指的是一个移动节点通过代理通告(AgentAdvertisement)发现新的接入 点及获得关照地址的过程。在这个过程中,移动节点确定了自己应该连接哪条链路,以 及自己是否改变了网络的接入点。如果节点成功接入外部链路中,那么其会获得关照地 址,并且会被允许向代理发送代理请求(AgentSolicitation)。代理发现是通过互联网控 制报文协议(InternetControlMessageProtocol,ICMP)数据包实现的。代理发现的过程 如图5-2所示。 代理发现过程定义了代理通告和代理请求两个消息。 在所连接的网络上,家乡代理和外部代理定期广播代理通告消息,以宣告自己的存 在。代理通告消息是ICMP路由器布告消息的扩展,它包含路由器IP地址和代理通告 扩展信息。移动节点时刻监听代理通告消息,以判断自己是否漫游出家乡网络。若移动 节点从自己的家乡代理接收到一条代理通告消息,它就能推断已返回家乡,并直接向家 乡代理注册,否则移动节点将选择是保留当前的注册,还是向新的外部代理进行注册。 代理通告的信息格式如图5-3所示。 外部代理周期性地发送代理通告消息,若移动节点需要获得代理信息,它可发送一 条ICMP代理请求消息。任何代理收到代理请求消息后,应立即发送回信。代理请求与 ◆ 第 5 章 移动IP57 图5- 2 代理发现的过程示意图 图5- 3 代理通告的信息格式 ICMP 路由器请求消息格式相同,只是它要求将IP 的存活时间(TimeToLive,TTL)域 置为1。代理请求的信息格式如图5-4所示。 图5- 4 代理请求的信息格式 为了配合代理发现机制,移动节点应当满足以下4个条件。 (1)在没有收到代理通告以及没有通过其他方式获得关照地址时,移动节点应当能 够发送代理请求信息,并且节点必须能够限制发送代理请求信息的速度(按照二进制指 数后退算法)。 ◆ 58 移动互联网导论(第 4 版) (2)移动节点应当能够处理到达的代理通告,区分出代理通告消息和ICMP 路由器 的通告消息。如果通告消息多于一个,则取第一个地址开始注册。移动节点收到代理通 告后,即使已经获得可配置的关照地址,也必须向外部代理注册。 (3)如果移动节点在存活时间内没有收到来自同一个代理的代理通告,则可假设自 己已经失去和这个代理的连接。如果移动节点收到另一个代理的通告,则应当立即尝试 与该代理进行连接。 (4)当移动节点收到家乡代理的通告时可确信自己已返回家乡,应当向家乡代理进 行注销 。 代理发现过程的流程图如图5-5所示 。 图5- 5 代理发现过程的流程图 2. 注册 注册过程示意图如图5-6所示。移动节点发现自己的网络接入点从一条链路切换到 另一链路时,就要进行注册。另外,由于注册信息有一定的存活时间,所以移动节点在没 有发生移动时也要注册。移动IP 的注册功能:移动节点可得到外部链路上外部代理的 路由服务;可将其关照地址通知家乡代理;可使要过期的注册重新生效。另外,移动节点 在回到家乡链路时,需要进行注销。 图5- 6 注册过程示意图 ◆ 第 5 章 移动IP59 注册的其他功能:可同时注册多个关照地址,此时归属代理通过隧道技术,将发往移 动节点归属地址的数据包发往移动节点的每个关照地址;可在注销一个关照地址的同时 保留其他关照地址;在不知道归属外部代理的情况下,移动节点可通过注册,动态获得外 部代理地址。 移动IP 的注册过程一般在代理发现机制完成之后进行。当移动节点发现已返回家 乡链路时,就向家乡代理注册,并开始像固定节点或路由器那样通信,当移动节点位于外 部链路时,能得到一个关照地址,并通过外部代理向归属代理注册这个地址。 移动IP 的注册操作使用用户数据报协议(UserDatagramProtocol,UDP), 包括注册请 求和注册应答两种消息。移动节点通过这两种注册消息,向家乡网络注册新的转发地址。 注册过程中,外部代理为移动节点生成关照地址并通知其家乡代理,其工作原理如 图5-7所示。 图5- 7 外部代理的工作原理 注册请求过程:如果移动节点不知道家乡代理地址,它就向家乡网络广播注册(直接 广播)。之后每个有效的家乡代理给予响应,移动节点采用某个有效家乡代理的地址进 行注册请求。一次有效的注册完成之后,家乡代理会为移动节点创建一个条目,其中包 含移动节点的关照地址、表示字段和此次注册的生存期。每个外部代理会维护一个访问 列表,其中包含移动节点的链路层地址、移动节点的家乡地址、UDP 注册源端口,家乡代 理的IP 地址、标识字段、注册生存期、当前或未处理注册的剩余生存期。注册过程中信 息传递的流程如图5-8所示。 图5- 8 注册过程中信息传递的流程 ◆ 60 移动互联网导论(第 4 版) 移动节点可以通过两种方式向家乡代理发送注册请求,即通过外部代理发送注册请 求和直接发送注册请求。两种方式的过程分别如图5-9和图5-10所示。 图5- 9 通过外部代理发送注册请求示意图 图5-10 直接发送注册请求示意图 发送注册请求成功之后,家乡代理会为移动节点创建一个移动绑定,同时将移动节 点的家乡地址与当前的关照地址绑定在一起,并设置生存期。移动节点在此绑定信息超 时之前必须延长绑定,否则该绑定将会失效,移动节点需要重新注册。家乡代理会发送 注册回复信息,指出注册请求是否成功。如果移动节点是通过外部代理注册的,那么注 册应答消息应当由外部代理转发。注册请求可以被拒绝,而拒绝的来源既可以是家乡代 理,也可以是外部代理。注册请求和注册应答消息通过UDP报文传输,这是因为UDP的 开销小,并且在无线环境下的性能优于传输控制协议(TransmisionControlProtocol,TCP )。 如果移动节点回到了家乡网络,则必须在家乡链路上进行注册(注销其移动绑定信 息),其过程如图5-11所示。 对于移动节点来说,注册及注销过程有以下5点要求。 (1)移动节点能够进行网络掩码的配置。 (2)只要检测到连接网络发生变化就发起注册。 (3)移动节点必须能够发送注册请求, IP目的 其IP源地址为关照地址或家乡地址, ◆ 第 5 章 移动IP61 图5-11 注销过程示意图 地址为外部代理的地址或家乡代理地址。 (4)移动节点必须能够处理注册回复,判断自己发出的注册是否成功。 (5)注册请求发送失败时移动节点必须进行重传。 外部代理位于移动节点和家乡代理之间,是注册请求的中继,如果其为移动节点提 供关照地址,则还有为移动节点拆封数据分组的任务。外部代理中有配置表和注册表, 为移动节点保存相关信息。另外,外部代理还需要处理注册请求,包括对消息的有效性 检查和将请求转发到家乡代理。在接收注册回复时,外部代理需要检查信息的格式是否 正确,并将应答转发到相应的移动节点。 在注册过程中,家乡代理从移动节点接收注册请求,更新自己关于该节点的绑定记 录,并为每个请求启动一个应答作为响应。 注册过程中的分组格式如图5-12 所示。 图5-12 注册过程中的分组格式 3. 隧道封装与分组路由 隧道实际上是路由器把一种网络层协议封装到另一个协议中以跨过网络传送到另 一个路由器的处理过程。发送路由器将被传送的协议包进行封装,经过网络传送,接收 路由器解开收到的包,取出原始协议;在传输过程中的中间路由器并不在意封装的协议 ◆ 62 移动互联网导论(第 4 版) 是什么。这里的封装协议,称为传输协议,是跨过网络传输被封装协议的一种协议。隧 道技术是一种点对点的连接,必须在连接的两端配置隧道协议。 隧道技术是一种数据包封装技术,它是将原始IP 数据包(其包头中包含原始发送者 和最终目的地)封装在另一个数据包(称为封装的IP 数据包)的数据净荷中进行传输。 在移动IP 中,隧道包目的地址就是关照地址,当外部代理(或移动节点)收到这个隧道包 后,解封装该包,把里面的净荷提交给移动节点。 在家乡网络中,移动主机的操作与标准的固定主机相同;当移动主机移动到外部网 络,且完成移动IP 的注册过程后,可以在外部网络上继续通信。在外部网络上的通信需 要采用隧道技术。封装是隧道技术的核心,是指把一个完整的IP 分组当作数据,放在另 一个IP 分组内,原IP 分组的IP 地址称为内部地址,新的IP 分组的IP 地址称为外部地 址。IP 封装如图5-13 所示。 隧道技术就是在隧道的起点将IP 分组封装,并将外部地址设置为隧道终点的IP 地 址。封装的IP 分组经标准的IP 路由算法传递到隧道的终点。在隧道的终点,将封装的 IP 分组进行拆分。 当移动节点在外区网上时,家乡代理需要将原始IP 数据包转发给已登记的外部代 理。这时,家乡代理使用IP 隧道技术,将原始IP 数据包封装在转发的IP 数据包中,从而 使原始IP 数据包原封不动地转发到处于隧道终点的关照地址处。在关照地址处解除隧 道,取出原始IP 数据包,并将原始数据IP 包发送到移动节点。隧道转发过程如图5-14 和图5-15 所示。 图5-13 IP 封装示意图图5-14 隧道转发过程示意图(一) 隧道转发过程如下。 (1)通信节点发送给移动节点的报文被家乡代理截获,包括目的地是移动节点的报 文被家乡代理截获和家乡代理截获在家乡网络上的数据包。 (2)家乡代理对数据包进行封装并通过隧道传输给移动节点的关照地址。 (3)在隧道的终点(外部代理或移动节点本身), 数据包被拆封,然后递交给移动节点。 (4)对于移动节点发送的数据包采用的是标准的IP 路由。 移动IPv4主要有3种隧道技术,分别是IPinIP 、最小封装以及通用路由封装。家乡 代理和外部代理必须能够使用IPinIP 封装来支持分组的隧道传输。最小封装和通用路 由封装是移动IP 提供的另外两种可选的封装方式。