(计算机系统结构专业论文)移动ip的研究与实现.pdf_第1页
(计算机系统结构专业论文)移动ip的研究与实现.pdf_第2页
(计算机系统结构专业论文)移动ip的研究与实现.pdf_第3页
(计算机系统结构专业论文)移动ip的研究与实现.pdf_第4页
(计算机系统结构专业论文)移动ip的研究与实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 y 9 3 2 6 7 ,飞 v f 本论文的研究方向是移动i p 协议规范及其实现。7 在论文的开始部分,论文简要介绍了t c p i p 的一些最基本的知识,以及 i p 在整个互联网协议框架中的重要地位,指出了传统i p 面临的挑战以及不能支 持移动性的原因,然后分析了移动i p 的设计背景和设计目标,同时介绍了移动 i p 的设计中所用到的相关技术。 后面一部分详细剖析了移动i p 的协议标准的主要部分。按照结点移动过 程中三个实体动作发生的顺序,讲述了代理发现,移动注册,以及成功注册后的 通信过程,然后用状态图显示了各个实体的在移动过程中的行为。 接下来一部分展示了一个移动i p 在l i n u x 全用户空间的实现过程。整个 实现包扩代理通告模块,移动代理的注册模块,移动结点的注册模块。论文详缅 - _ ,一 介绍了每个模块并列出了最关键的实现代码和部分重要函数。介绍完之后列出了 实现中的一些有待改进的地方。本部分的结束部分介绍了移动i p 标准正在解决 中或悬而未决的一些问题。 最后一部分介绍了i p v 6 对移动性的一些支持,移动i p v 6 的工作原理以及 和移动i p v 4 的区别。 a b s t r a c t t h i sp a p e rf o c u s e so nt h er e s e a r c ha n di m p l e m e n t a t i o no fp r o t o c o ls t a n d a r do f m o b i l ei p i ti n t r o d u c e st h ef u n d a m e n t a lk n o w l e d g eo ft c p i pa n dt h ei m p o r t a n tp o s i t i o n o fi pi nt h ew h o l ei n t e m e tp r o t o c o la r c h i t e c t u r ei nt h eb e g i n n i n g t h e ni tp o i n t so u t t h ec h a l l e n g et h et r a d i t i o n a li pb e i n gc o n f r o n t e dw i t ha n dw h y i tc a n ts u p p o r tt h e m o b i l i t y , a n a l y s i st h eb a c k g r o u n da n dg o a lo f t h ed e s i g no fm o b i l ei pa n di n t r o d u c e s t h er e l a t e dt e c h n o l o g yo f m o b i l ei p t h e ni ta n a l y s i st h em a i nc o m p o n e n t sp r o t o c o ls t a n d a r do f m o b i l ei pd e t a i l e d l y i t a n a l y s i st h em a i np r o g r e s s e si n c l u d ea g e n td i s c o v e r y , m o b i l er e g i s t r a t i o na n d t h e c o m m u n i c a t i o na f t e rt h es u c c e s s f u lr e g i s t r a t i o nb yt h es e q u e n c eo fa c t i o n si nm o b i l e p r o g r e s s a f t e rt h i s ,i ti l l u s t r a t e s t h eb e h a v i o ro f e a c ht h r e ee n t i t i e sb ys t a t ed i a g r a m s i nt h en e x ts e c t i o n ,t h i sp a p e rg i v e sa ni m p l e m e n t a t i o no fm o b i l ei pi nt h eu s e r s p a c et o t a l l yo f l i n u x t h ew h o l ei m p l e m e n t a t i o ni n c l u d e sa g e n ta d v e r t i s em o d u l e , m o b i l ea g e n tr e g i s t r a t i o nm o d u l e ,m o b i l en o d er e g i s t r a t i o nm o d u l e i ti n t r o d u c e se a c h m o d u l ea n dl i s t st h em o s ti m p o r t a n tf u n c t i o n sa n dc o d e si nt h em o d u l e s a f t e rt h i s ,i t l i s t st h ei t e m sw h i c ht h i si m p l e m e n t a t i o ns h o u l db ei m p r o v e di nt h ef u t u r e i nt h ee n d o f t h i ss e c t i o n ,i ti n t r o d u c e st h ew o r ki np r o g r e s so ri np e n d i n go f m o b i l ei p t h el a s ts e c t i o ni n t r o d u c e st h es u p p o r tt om o b i l i t yi ni p v 6 ,t h e p r i n c i p a lo f h o w m o b i l ei p v 6w o r k s ,a n dt h ed e f e r e n c eb e t w e e nm o b i l ei p v 6a n dm o b i l ei p v 4 1 1 t c p i p 第一章序论 1 1 1t c p i p 的发展及技术内涵 t c p i p 即“传输控制协议网间协议的”的简称,实际上它是指整个一组 的相关协议。近几年,i n t e r n e t 在全世界范围内发展迅猛,作为i n t e r n e t 的核 心技术t c p i p 也越来越被大家所接受,基于t c p i p 的w w w 浏览、f t p 、e - m a i 1 、 v o i p 和t e l n e t 等技术在各个领域得到较广泛的应用,各种基于t c p i p 技术的 计算机网络技术也不断涌现,且具有很好的应用前景。 t c p i p 的全称是传输控制协议互连网协议( t r a n s m i s s i o nc o n t r o l p r o t o c o l i n t e r n e tp r o t o c 0 1 ) ,它是7 0 年代中期美国国防部为其a r p a n e t 广域 网开发的网络体系结构和协议标准,它提供了面向数据包的虚电路服务,即保证 数据的可靠传输,具有差错控制( 检测任何数据丢失、错序或重复的信息) 、流 控制( 发送方、接收方同步处理数据) 、连接控制( 端到端的连接建立,终止和 中断) 等功能。由于t c p i p 技术一开始只应用在教育和科研领域,其开发部门 采取开放策略,以低价出售t c p i p 使用权,鼓励大家开发t c p i p 产品,o t c p i p 与流行的网络操作系统u n i x 的成功结合,使得t c p i p 技术取得了巨大的成功。 t c p i p 技术是为包容物理网络技术的多样性而设计的,通过i p 数据包和 i p 地址将各种网络技术的帧格式、地址格式统一起来,达到屏蔽低层细节,提 供一致性的目的。 1 1 2t c p i p 的层次结构和i p 协议的地位 图1 1 展示了t c p i p 协议族主要协议间的层次关系 从图1 1 我们可以看到,与其他协议不同,i p 协议横跨了整个网络层协议, 也就是说如果没有i p 协议,整个协议族就会出现断层,上下层协议间就失去了 联系。所有底层协议都把传来的信息交付给i p ,同时所有高层协议必须通过i p 才 可能与其他主机上的对等协议交互。这就是著名的互联网协议的沙漏模型,i p 位于沙漏的中心,所有得应用程序都依赖i p , i p 运行于所有网络上,i p 是唯一能 够被所有应用程序所共有的协议。i p 技术发展迅速,原因正是j p 的这种核心地 位决定了i p 技术的重要性。移动i p 正是为满足对移动性需求而发展起来的一门 技术。 4 1 2 传统i p 面临的两大挑战 1 2 1 地址空间资源的枯竭 i n t e m e t 的发展促进了t c p i p 协议本身的发展,同时向沿用了二十多年的 t c p i p 协议提出了巨大的挑战。i n t e m e t 指数级的需求增长使3 2 位的i p v 4 地址 空间资源已近枯竭,据预测现有的地址空间将在2 0 0 6 - 2 0 1 0 年分配完毕,尽管很 多代理技术和外部网络资源共享技术能够缓解这个问题,但不能从根本上解决。 i p 协议面临一场革命:从i p v 4 到i p v 6 ,i p v 61 2 8 位的地址空间将彻底解决这个 问题。此外 p v 6 的设计还吸取了i p v 4 多年来的实践经验,将一些因i p v 4 初始设 计时的不足而发展起来的补救技术设计进去,并保留了极高的可扩展性,能够更 加灵活的面对未来互联网的发展需求。 1 2 2 对移动性的支持不足 便携式电脑数量的激增和无线通讯技术的发展是促成了移动性需求的目 益增长。传统的i p 的设计目标是固定主机。每台主机在其子网内,由连在子网 内的路由器与外部建立连接。由于当时的设计目标没有考虑到对移动性的支持, 发展到现在,网络结构已经无比庞大和复杂,和其他很多网络技术一样,移动i p 技术也是在不改变现有的网络结构的基础上采取的一种实现方式 癌朋 操作幕蜿 设箭驱动和 硬件 图1 1 互联网t c p i p 参考模型 闱卢接日 段朋挑挝 传翰协投 嘲络悔城 健路协挝 1 3 移动i p 技术解决什么问题? i p 地址与外部通信,外部相应的节点在移动节点离开本地网络后仍旧能够照常发送 数据报到移动节点,而不用关心移动节点现在的位置。作为移动节点,7 在离开本地 网络后,能够将自己的位置通知本地网络上的移动代理,告诉自己的所在位置以 及一个可达地址,申请其为自己进行转交数据报的服务。这就涉及到一系列问题: 移动结点如何识别自己在本地网络还是已经离开,如何发送服务请求,所在的外 地如何处理,网络本地移动如何响应,申请成功后的通信过程是怎样的,以及因 为i p 层的这种行这里所说的移动性是指在网络节点离开本地网络后,仍旧能够 利用本地网络上分配的为的改变会给上层协议带来怎样的影响,如何在外地网络 间的链路切换时保持传输层会话的不中断? 移动i p 的安全性问题如何解决? 等 等 移动i p 的目的就是为了解决上述诸多问题 1 4 本论文探讨的内容以及组织结构 本论文主要是分析移动i p 的协议规范以及实际中的一些问题,给出了一 个全用户空间的实现,并介绍了移动i p v 6 的一些最新发展。 第一章绪论,主要是移动i p 的背景。 本文第二章简单介绍了移动i p 工作过程中涉及的一些相关技术和知识,主 要包括地址和路由问题,i c m p 差错与控制数据报,组播与广播,隧道技术, 以及移动i p 的设计目标,设计的假设条件,这些都是研究移动i p 技术的必 备知识。 第三章详细分析移动i p 的协议规范,分析移动i p 是如何工作的,包括移动 i p 涉及的几个实体及各自状态转换图,代理发现过程,注册过程,隧道封装, 三角路由,以及这些过程中各实体的行为和重要的数据结构,相关几个配套 协议。 第四章探讨移动i p 的实现,反向隧道的原理,展示了一个完全用户空间实 现的实例。已有的其他实现基本都是要修改内核的。 第五章介绍移动i p v 6 的优点以及对移动i p 的固有支持特性。包括邻居发现, 地址的自动配置,路由头部选项等,最新的m o b i l ei p v 6 的d r a f t 第六章结论:应用展望,本论文总结。 致谢。 6 2 1 地址与路由 第二章相关技术 2 1 1 i p 地址与硬件地址 i p 地址的实质是一种虚拟地址( 相对于机器的硬件地址) 。它将异构的各种 网络以一种统一的地址表达方式连接在一起,并定义了统一的数据格式和寻址方 法,只要连接i n t e m e t 的各种网络遵从这种统一的定义和地址分配方式,就能实 现异构网络的互联互通。 一条链路上的主机如果想要和同一链路内的机器通信无需通过路由器,直 接在链路上以链路地址发送但要和其他链路上的机器通信时,由于不能直接存 取该主机的链路地址,就需要用对方主机的i p 地址,i p 地址的四个八位组分别 依次用十进制表示,例如2 0 1 3 2 1 0 1 ,也就是1 6 进制的c 9 :2 0 :0 a :0 1 。每台主机 的3 2 位i p 地址包含两部分信息,网络号和主机号,而由地址掩码确定其网络号 位,其余的就是网络内的主机号位。例如前面所说2 0 1 3 2 1 0 1 的地址,如果它的 掩码是2 5 5 2 5 5 2 5 5 0 ,即f f :f f :f f :0 ,则它的网络号是2 0 1 3 2 1 0 ,主机号是1 。 2 1 2 地址解析 在同一链路上的机器之间发送数据报时,开始通常只知道对方的i p 地址, 这种虚拟地址还不能直接进行数据报传送需要知道与对方i p 地址相对应的链路 层地址。决定与某一个i p 地址对应的数据链路层地址的过程称为地址解析。在因 特网中,最通用的地址解析方法称为地址解析协议a r p ( a d d r e s sr e s o l u t i o n p r o t o c 0 1 ) 。a r p 中定义了发送者( s e n d e r ) 和目标( t a r g e t ) 。发送者发出询问, 查找目标的数据链路层地址。工作过程如下: 1 ) 发送者向一条链路广播a r p 请求消息,这条消息中的目标i p 地址域给出 了想要找的是与哪个i p 地址对应的数据链路层地址。 2 ) 每个收至u a r p 请求消息的节点都将其中的目标i p 地址与自己的i p 地址 相比较。如果目标ip 地址与某个节点的i p 地址相等,这个节点就向发出请求的 节点发送a r p 应答( a r pr e p l y ) 消息,其中注明自己的数据链路层地址。各节点 会在称为a r p 缓存中存放一些i p 地址数据链路层地址的对应关系。而不必为每一 个包都重复上面所说的a r p 过程。但是,过了一段时间后,缓存中的对应关系就 会被删去,从a r p 缓存中删去旧的条目的过程称为“老化( a g i n g ) ”a r p 缓存。 节点在收至g a r p 请求询问它的数据链路层地址时是如何发送arp 应答的。 然而,有时需要设定一些节点,替那些暂时或根本无法发出a r p 应答的节点进行 应答。例如,当台移动计算机转到一条新的链路上时,就不可能接收其他节点 从原来的链路上发送的arp 请求。由别的节点代为发送的a r p 应答就称为代理a r p ( p r 6 x ya r p ) 。该节点就称为其他节点的arp 代理。 类似地,有时节点也需要在根本没有收到arp 请求的情况下主动发送a r p 应答。例如,当主机安装了一块新的以太网网卡时,新网卡的以太网( 数据链路 层) 地址与i e l 网卡不同,这样,主机在开机前就会发出几次a r p 应答,以通知链 路上的其他节点,根据新的数据链路层地址更改a r p 缓存中的地址对应关系,这 种未经请求的a r p 应答就称为免费( g r a t u i t o u s ) a r p 。 代理a r p 和免费a r p 对于移动i p 至关重要。 2 1 3 路由寻址 和不同链路上得主机通信除了知道对方的i p 以外,还需要一个或多个中 介而这个中介就是路由器。路由器用来为网内主机寻址并转发把数据报,路由 器一般有两个以上的链路地址以实现网间互联。路由器如何将数据报发送到目的 主机? 这就是路由寻址要解决的问题路由寻址主要是基于网络的,也就是说对 于一个地址,如何决定转发主要取决于该地址的网络前缀。每台机器在自己的内 存空间建立一张路由表。每个表项至少由目的地址t a r g e t ,前缀长度p r e f i x 1 e n g t h ( 用来确定掩码位数,表示为地址掩码) ,下一跳地址n e x th o p ,接e 1 i n t e r f a c e 组成。 当节点需要转发一个i p 包时,它就在路由表中查找目的地址、前缀长度这两列与 i p 报头中的目的ip 地址域相匹配的那一项。如果发现确实存在匹配的项,就将 数据包从路由表中该项所指示的端口转发到下一跳节点。所谓路由表的表项与i p 包相匹配是指,将该表项中的目的地址与数据包中的i p 目的地址从左向右逐个比 特地比较,相同比特的数目大于或等于前缀长度所指示的值。 这种依赖网络前缀的路由选路简化了选路,降低了资源需求。在固定主机 的前提下是一种非常好的办法,然而当用于移动主机的时候却遇到了问题。当移 动结点离开本地网络时,当有机器和这个移动结点通信时,根据移动结点i p 地址 的网络前缀为数据报选路,结果数据报到达了移动结点的本地网络,尽管移动结 点可能在线并且可能等待与之通信,但它却无法收到对方发送的数据报文。 为什么不采用特定于每台主机地址的路由呢? 特定主机路由是可以实现 的,但不能应用于互连网的一般情况。原因是路由信息的爆炸性增长,路由器的 负担太重以至于实现特定主机的路由根本就不现实。可扩展性是采用基于网络前 缀的路由。 移动i p 就是要在当前的路由选路策略下使数据报准确到达移动结点,无论 移动结点当前在不在本地网络上。 2 2 差错与控制数据报i c l i p i c m p ( i n t e r n e tc o n t r o lm e s s a g ep r o t o c 0 1 ) 网际控制数据报协议定义 了一套差错数据报和控制数据报,用来表示数据包传输过程中发生了错误,另外 还有一些 c m p 数据报为节点提供诊断信息。实现i p 的节点必须实现i c m p ,以保证 于因特网标准兼容。图1 1 中它是i p 协议不可分割的一部分,通常所说i p 协议实 际上包含了i c m p i c m p 传送的信息包含回送应答,目的地不可达,源站抑制,路由重定向, 回送请求,路由器恳求,路由器通告,数据报超时,地址掩码请求与应答,时间 戳请求与应答,数据报参数错等信息。移动i p i 作过程中的一些重要信息就是由 i c m p 数据报所携带的。 2 3 广播与组播 广播交付意味着网络向每个目的站交付一个数据报分组的副本,在大多数 硬件技术中,计算机通过把数据报分组发送给一个特殊的称为广播地址 ( b r o a d c a s ta d d r e s s ) 的保留目的地址,来指定广播交付。例如在以太网中,硬件 地址为4 8 比特标识码构成,其中的全1 地址表示广播地址。各机器上的硬件识 别本机地址和广播地址,对目的地址为这两者之的传入数据报分组都进行接 收。 组播允许每个系统选择是否参与组播,一般硬件技术保留了较大树木的用 于组播的地址,当一组机器要进行组播通信时,它们选定一个特定的的组播地址 ( m u l t i c a s ta d d r e s s ) 用于通信,在配置好网络接口硬件后,就能识别该组播地址, 而组中所有机器就能收到传给该组播地址的数据报分组副本。 i p 组播是对硬件组播的互联网抽象,它允许一系列计算机子集的传输,允 许该自己跨越互联网上的任意物理网络。在的地址分配方案中的d 类地址保留用 于组播。其范围是2 2 4 0 0 0 至u 2 3 9 2 5 5 2 5 5 2 5 5 例如2 2 4 0 0 1 :子网上的所有系 统,2 2 4 0 0 2 :子网上的所有路由器。除了这些永久分配的地址,还有一部分留 作可临时使用。任何节点可以向组播组发送数据包,只是简单地组装一个目的i p 地址为该组的组播地址的i p 包即可。发送者不必是组播组的成员。一个节点可以 通过发送一条特殊的消息给组播路由器来参加一个组播组( 即成为该组的成员) , 从而成为送往该组的数据包的接收者。组播路由器是有能力对组播数据包提供路 由的路由器。 2 4 移动i p 简介 2 4 i 移动i p 的实质 特定主机路由和改变节点的i p 地址,但这些方法不适于在全球因特网上 提供节点的移动功能。特定主机路由技术存在严重的可扩展性、可靠性和安全隐 9 患,而节点在移动时改变ip 地址又使得链路切换时无法保持现有通信。移动i p 是一种在全球因特网上提供移动功能的方案,它具有可扩展性、可靠性和安全性, 并使节点在切换链路时仍可保持正在进行的通信。值得特别注意的是,移动i p 提供了一种i p 路由机制,使移动节点可以以一个永久的ip 地址连接到任何链路 上。 2 4 。2 移动i p 的设计要求 设计移动ip 时有以下几个要求: 1 ) 移动节点在改变数据链路层的接入点后应仍能与因特网上的其他节点 通信。 2 ) 无论移动节点连接哪个数据链路层接入点,它应仍能用原来的ip 地址 进行通信。 3 ) 移动节点应能与不具备移动ip 功能的计算机通信。 4 ) 移动节点不应比因特网上的其他节点面l 临新的或更多的安全威胁。 因特网中采用的网络前缀路由机制只能向连在家乡链路上的节点传送数 据,而移动ip 是专门用来使节点可以在任何链路上通信的,上面的第一条要求 只是从另一个角度重申了这一点。 在节点移动时,改变节点的ip 地址也是一种保证数据传送的方法,为什 么这种方法使得节点在移动时必须中断所有正在旧链路上进行的通信,并在新链 路上重起这些连接。要想和一个经常切换链路的节点建立连接是多么困难。因此, 上面第二条要求排除了那些在节点移动时改变ip 地址的方案。在许多情况下保 持节点的ip 地址不变还有其他原因,一些网络服务是以ip 地址为基础的,比 如软件注册和接入优先级控制。还有其他的一些原因要求节点的ip 地址与它所 处的位置无关。 第三条要求,即移动ip 并不要求改变现有的固定主机和路由器上的协议, 这一点充分说明了通过升级现有的基于i p v 4 的主机和路由器来提供移动功能是 不现实的。因此,要求移动ip 只需在移动节点和少数提供特殊功能的节点上实 现。 最后一条要求说明了移动计算意味着新的安全威胁,而这些威胁必须由移 动ip 来解决。移动ip 特别设计了防止拒绝服务攻击。如果移动节点在报告它 的当前位置时对消息没有任何认证机制,那么拒绝服务攻击就可能出现。 2 4 3 移动i p 的设计目标 移动计算和无线通信天生就是一对。笔记本电脑使计算不仅限于台式机, 但有线的网络连接限制了它们的使用场合。一些无线网络使计算机在任何时间、 任何地方都可以进行通信,但许多这种网络要么太贵,要么太慢,或者是又贵又 慢。包括移动i p 在内,路由协议都要求在网络的各种节点间传送路由更新信息。 l o 为使移动i p 能在多种无线链路上工作,使这些更新信息的数量和频率尽量减少是 设计目标之一。另一个设计目标是尽量简化移动节点软件,这可以增加使用移动 ip 的节点数目,特别是那些内存和处理能力受到限制的寻呼机、智能蜂窝电话、 个人记事本以及笔记本电脑。而且i p v 4 地址的短缺问题早已经被认识到了,因此, 移动ip 的另一个目标是,尽量避免要求移动节点使用多个地址,或要求为移动 节点准备一个大的地址空间。 2 4 4 移动i p 的两个假设 移动i p 的一个基本假设是:点到点通信的数据包在选路时与源i p 地址无 关。也就是说,移动i p 假设点到点通信只依据目的i p 地址来选取路由,实际上是 只用目的地址的网络前缀部分。这种假设的动机是,移动结点依靠代理转交实现 数据报接收,而发送却是和正常数据报一样。然而不幸的是这种假设却是不正确 的,以后的反向隧道协议弥补了这个假设错误。 移动i p 的另一个假设是:假设已经存在互联网( 或一个内部网) ,并且 该网络能在任意两个节点间传送数据包。移动i p 关心的不是因特网中采用哪个动 态路由协议、因特网的路由结构如何扩展到足以支持几百万台主机和路由器,而 只是认为因特网用了这些协议,而且它可以扩展到这样的网络规模。这个假设是 正确的,事实上,这是传统i p 的主要功能。 第三章移动i p 协议标准 移动i p 于1 9 9 6 年6 月由因特网工程指导组i e s g ( i n t e r n e te n g i n e e r i n g s t e e r i n gg r o u p ) 通过,并于1 9 9 6 年1 1 月公布为建议标准( p r o p o s e ds t a n d a r d ) 。 建议标准是一个协议从因特网草案发展成因特网标准的第一个重要步骤。移动i p 由i e t f 的移动i p 2 1 2 作组( i pr o u t i n gf o rw i r e l e s s m o b i l eh o s t s ) 于1 9 9 2 年6 月制定, 包括下面的r f c 文件: r f c2 0 0 2 定义了移动i p 协议。 。r f c2 0 0 3 、r f c 2 0 0 4 和r f c l 7 0 1 定义了移动i p 中用到的隧道技术, r f c2 0 0 5 叙述了移动i p 的应用。 r f c2 0 0 6 定义了移动i p 的管理信息库m 1 8 ( m a n a g e m e n ti n f o r m a t i o n b a s e ) 。移动i p 的m i b 库是实现移动i p 的节点的变量集合,管理平台可以通过简 单网络管理协议s n m p v 2 ( s i m p l en e t w o r km a n a g e m e n tp r o t o c 0 1 ) r f c1 9 0 5 对这些变量进行检查和配置。 此后移动i p 的基本协议做了一些修改,分别对以前移动i p 实践中的一些问 题做了修正,即r f c 3 2 2 0 ( 2 0 0 2 年1 月) ,r f c 3 3 4 4 ( 2 0 0 2 年8 月) ,一年之中两易其稿, 从中我们可以看出移动i p 技术还并没有走向完美,在实践中问题还是比较多的, 需要不断完善本章的讨论主要还是以r f c 2 0 0 2 为基础,因为移动i p 的基本框架并 没有改变。下章将介绍和分析这些实际问题,以及后两个r f c 协议标准在哪些 方面作了改善。 当初设计移动i p 的时候的假设是路由独立于源地址的,但事实上许多路由 器要检查源地址,以防止i p 哄骗( i ps p o o f i n g ) ,即所谓的入口过滤。因此有了 以后的反向隧道协议r f c 2 3 4 4 ( 1 9 9 8 年5 月) ,这个协议又经修订形成r f c 3 0 2 4 ( 2 0 0 1 年1 月) 。反向隧道将会在第五章实现中详细介绍。 另外还有几个单独的r f c 定义了一些扩展项。 3 1 移动i p 概貌 3 1 1 移动i p 的参与实体 移动i p 由三个实体组成: 移动结点 移动节点可以将接入网络的位置从一条链路切换到另一条链路上,而仍然 保持所有正在进行的通信,并且只使用它的家乡地址( h o m ea d d r e s s ) 的那些 节点。 家乡代理 家乡代理( h o m ea g e n t ) 有一个端口与移动节点家乡链路相连的路由器。 当移动节点切换链时,家乡代理一直通知移动节点它的当前位置,这个信息由 移动节点保存在它的转交地址( c a r eo fa d d r e s s ) 中。 有时,家乡代理广播对移动节点家乡地址的网络前缀的可达性,从而吸引那些 送往移动节点的家乡地址的i p 包。 解析送往移动节点的家乡地址的包,并将这些包通过隧道技术传送到移动节点 的转交地址上。 外地代理 外地代理( f o r e i g na g e n t ) 在移动节点的外地链路上的路由器。 帮助移动节点通知它的家乡代理它的转交地址。 有时,提供移动节点的转交地址,并为已被家乡代理设置了隧道的移动节点发 送拆封后的包。 作为连接在外地链路上的移动节点的缺省路由器。 3 1 2 移动i p 的主要过程 代理发现( a g e n td i s c o v e r y ) ,主要是:判定它当前连在家乡链路上还是外 地链路上。检测它是否切换了链路。当连在外地链路上时,得到一个转交地 址。 注册( r e g e s t r a t i o n ) ,主要是:移动结点根据当前所在的位置,如果它现 在外地,它要得到外地代理的路由服务,并将转交地址通知家乡代理,可以 使一个要过期的注册重新生效。当它回到家乡链路时要进行注销。 移动时的通信。当移动结点完成注册以后,就可以利用自己的家乡地址在外 地链路上通信了,这种通信对移动结点和与之通信的对方主机来说是透明 的,发往移动结点的数据报经由家乡代理用隧道方式发送到移动结点的转 交地址。由移动结点发出的数据报则直接经由外地链路的路由发送出去,形 成所谓的三角路由。如图3 1 : 3 2 代理发现 图3 1 三角路由 代理发现是移动节点用来判断当前自己是连接到家乡网络还是外地网络 的方法,代理发现还是移动节点用来检测自己是否已经从一个网络移动到另一个 网络。在连接到外地网络时,代理发现的过程还使得移动节点能够确定每一个外 地代理所提供的“外地代理转交地址”。 移动节点和预期的或者当前的外地代理必须能够不依赖标准i p 路由机制 而交换数据报:也就是说,决定转发的机制是根据i p 头部目的地址的网络前缀。 如果外地代理和来访移动节点在同一条链路上有一个接口,该条件可满足。在这 种情况下,在互相发送数据报时,移动节点和外地代理简单地“旁路”( b y p a s s ) 它们正常的i p 路由机制,把其下的链路层数据包的目的地址分别设为它们各自的 链路层地址。 代理发现包含两条消息:代理通告和代理恳求。移动i p 把i c m p 路由发现 ( r o u t e rd i s c o v e r y ) 扩展为其代理发现的基本机制。代理广告通过在i c m p 路 由通告( r o u t e ra d v e r t i s e m e n t ) 消息中包含一个“移动代理广告扩展” ( m o b i l i t va g e n ta d v e r t i s e m e n te x t e n s i o n ) 而得到。代理恳求消息与i c m p 路由恳求消息相同,但其i p 头部t t 域必须设置为1 ( 见2 2 ) 。代理广告和代理 请求消息不需要任何认证。 3 2 1 代理通告消息 代理广告由移动代理在链路上发送以广告其服务。i c m p 的数据报在由i p 传送,i c m p 消息在i p 头部内部。代理通告是已被扩展的i c m p 路由广告,扩展 后携带一个移动代理广告扩展( m o b i l i t ya g e n ta d v e r t i s e m e n te x t e n s i o n ) , 一个可选的p r e f i x l e n g t h s 扩展,一个o n e b y t ep a d d i n g 扩展,或将来定义 的其他扩展。 代理( 家乡的、外地的) 利用这个消息向移动节点宣布它们的功能。当一 个节点在一条链路上被配置成家乡代理或外地代理,或同时被配置成这两者时, 它就在这条链路上广播或组播代理广播消息,这使得连到这条链路上的移动节点 可以判定该链路上是否有代理存在。如果有,则判定那么它们的标识( i p 地址) 和功能是什么 表3 1 表示了一个完整的代理通告消息的数据报格式。 1 一部分为i p 头部,其中的协议域为i c m p ,源地址为发送代理通告的系统,目 的地址为全系统组播2 2 4 0 0 1 或有限广播2 5 5 2 5 5 2 5 5 2 5 5 。 2 第二部分为i c m p 的路由通告部分 i c m p 路由通告消息的t y p e 域为9 , 用作代理通告时,c o d e 域按如下解释: 0 :移动代理控制普通流量也就是说,它作为( 不一定与移动节点有 关的) i p 数据报的路由器。 1 6 :移动代理不路由普通流量。但是所有的外地代理必须( 最低限度地) 把从已注册移动节点收到的数据报转发至一个缺省路由器。 c h e c k s u m 用于校验。 n u ma d d r s 中广告的r o u t e ra d d r e s s e s 的个数。在代理广告中,i c m p 路由 广告部分指定的路由器地址数可为0 。与a d d rs i z e ( 3 2 比特位) 一起可以 确定扩展部分的位置。 l i f e t i m e :广告在不发送更多广告时保持有效的最长时间。这个域主要用来 为移动结点判断它是否离开当前网络提供一种依据,与移动代理通告扩展中 的注册生存时间没有关系。 路由器列表及其优先权:代理广告的i c m p 路由器广告部分可以包含一个或 多个路由器地址。这样,代理可以在广告中包含一个它自己的地址。外地代 理可以通过把优先级设置为一个较低的值,并且在广告中包含另一个路由器 o81 63 l v e r = 4 1i h lt o st o t a ll e n g t h i d e n t i f i e r f 1 a glf r a g m e n to f f s e t t t lp r o t o c o l = i c m pc h e c k s u m s o u r c ea d d r e s so fa g e n t d e s t i n a t i o na d d r e s s :2 2 4 0 0 1o r2 5 5 2 5 5 2 5 5 2 5 5 t y p e = 9c o d e = 0 或1 6 c h e c k s u m n u ma d d r sa d d rs i z el i f e t i m e a d d r e s s l p r i o r i t v l a d d r e s s 2 p r i o r i t y 2 t y p e = 1 6l e n g t hs e q u e n c en u m b e r r e g i s t r a t i o nl i f e t i m e rbhfm g i vr e s e r v e d c a r e - o fa d d r e s sl c a r e o fa d d r e s s2 t y p e = 1 9l e n g t h p r e f i xl e n g t h 表3 1 个完整的代理通告数据报 地址( 带个相对更高的优先级) ,从而阻止把该地址作为缺省路由器。不过,外 地代理必须为接收到的来自注册移动节点的数据报提供路由。 3 第三部分是i c m p 的代理通告扩展,的起始地址由i c m p 部分的路由列表大小 确定,计算公式为 i c m p 起始地址+ 8 + n u ma d d r s * a d d rs i z e * 8 t y p e 域1 6 ,l e n g t h 域则给出了扩展数据部分的字节数,不包括类型域和长 度域本身。 s e q u e n c en u m b e r 域代理被初始化以来发送的代理广告消息的数量。 代理广告中的序列号范围从o 到0 x f f f f 。在系统引导后,代理必须使用0 作为 其第一个广告的序列号。随后每个广告序列号必须依次增1 ,但序列号0 x f f f f 后必须跟序列号2 5 6 。使用这种方法,移动节点能区分由于重起而导致的序列号 的减小,以及在序列号达到o x f f f f 后翻转所导致的序列号的减小。 r e g i s t r a t i o nl i f e t i m e 域代理愿意接受r e g i s t r a t i o nr e q u e s t 的最长时间 ( 以秒为单位) 。o x f f f f 意味着无穷大。该域与代理广告中的i c m p 路由广告部 分的“l i f e t i m e ”域无关。 以下是f l a g 域的标志位的含义,它们包含了进行代理的一些要求和提供的 服务: r要求注册。要求向外地代理( 或该链路上的另一个外地代理) 注 册而不使用配置转交地址。 b忙。外地代理将不接受其他移动节点的注册。 h家乡代理。该代理作为发送该代理广告消息的链路的家乡代理而 提供服务。 f外地代理。该代理作为发送该代理广告消息的链路的外地代理而 提供服务。 m最小封装。该代理接收通过隧道传送的使用最小封装的数据报。 gg r e 封装。该代理接收通过隧道传送的使用g r e 封装的数据报 vv a nj a c o b s o n 头部压缩。该代理支持该链路上已注册移动节点的 v a nj a c o b s o n 头部压缩。 r e s e r v e d 以0 发送:接收时被忽略 c a r e - o fa d d r e s s e s 该外地代理提供的外地代理转交地址。a g e n ta d v e r t i s e m e n t 在 设置“f ”位时必须至少包含一个转交地址。出现的转交地址的 个数取决于扩展中的l e n g t h 域。 虚线部分是可选的,包括前缀长度扩展p r e f i x l e n g t h se x t e n s i o n 。可以跟在 代理通告扩展后面。它被用来表明代理广告i c m p 路由通告部分所列出的路 由器地址的网络前缀的比特数。给出的前缀长度不适用于m o b i l i t ya g e n t a d v e r t i s e m e n te x t e n s i o n 所列出的转交地址。 t y p e1 9 ( p r e f i x - l e n g t h se x t e n s i o n ) l e n g t hn ,代理广告中i c m p 路由通告部分n u m a d d r s 域的值。 p r e f i xl e n g t h ( 8 ) 前几个比特数,定义了该消息中i c m p r o u t e ra d v e r t i s e m e n t 部分 列出的相应路由器地址的网络号。每一个路由器地址的前缀长度编码为一个字 节,按消息中i c m pr o u t e ra d v e r t i s e m e n t 部分路由器地址排列的顺序。移动节 点可以利用前缀长度扩展来确定自己是否已经移动。 前缀长度扩展后面还有一个可选的一个字节全为0 的填充扩展,主要用来 将i c m p 整个长度扩展为偶数字节,没有任何其他意义。 6 3 2 2 代理恳求 移动接点可以根据一定的策略发送代理恳求。移动节点发送请求的速率必 须由移动节点加以限制。代理恳求消息与i c m p 路由请求相同,目地址为有限广 播2 5 5 2 5 5 2 5 5 2 5 5 或是全路由组播2 2 4 0 0 2 ,只是i pt t l 域置必须为1 。如 表3 2 v e ri h ls e r c i v e l e n g t h i d e n t i f i e r标志片偏移 t t l = ip r o t o c 0 1c h e c k s u n h o m ea d d r e s so fm o b 订en o d e 2 5 5 2 5 5 2 5 5 2 5 5o r2 2 4 0 0 2 t y p e = l o c o d e = 0c h e c k s u m r e s e r v e d 3 2 3 移动检测 表3 2 代理恳求消息 有两种机制用于检测移动节点已经从一个子网移动到另一个子网。也可以 使用其它的机制。当移动节点检测到自己已经移动( 到另一个子网) ,它应该向 外地网络注册其转交地址。但是,移动节点注册不允许频繁于平均每秒钟一次。 第一种方法基于代理广告中i c m p 路由广告部分的l i f e t i m e 域。移动结点 应该记录收到的所有代理广告的l i f e t i m e ,直到l i f e t i m e 到时。如果移动节点 在某个l i f e t i m e 内没有收到另一个广告,它应该假设已经失去了与那个代理的 联系。如果在l i f e t i m e 尚未到时就收到了另一个代理的代理广告,移动结点可 以立即尝试向该代理注册。否则移动结点应该尝试找到一个新的代理并向其注 册。 第二种方法使用网络前缀。在某些情况下移动节点可以使用 p r e f i x l e n g t h s 扩展来确定新收到的代理广告是否来自与节点当前的转交地址同 一个子网。如果前缀不同,移动结点可以假设它已经移动( 到另一个网络) 。如 果移动节点当前正在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论