(通信与信息系统专业论文)主机标识协议的api实现.pdf_第1页
(通信与信息系统专业论文)主机标识协议的api实现.pdf_第2页
(通信与信息系统专业论文)主机标识协议的api实现.pdf_第3页
(通信与信息系统专业论文)主机标识协议的api实现.pdf_第4页
(通信与信息系统专业论文)主机标识协议的api实现.pdf_第5页
已阅读5页,还剩74页未读 继续免费阅读

(通信与信息系统专业论文)主机标识协议的api实现.pdf.pdf 免费下载

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

文档简介

摘要 t c p f l p 网络协议最初是为可信网络和静态网络设计的,可是随着互联网 的迅速发展,一切都发生了巨大的变化,今天的互联网己不再是安全的网络,主 机的接入方式已不再是单一的静态接入了,通信的主机已不再是静止不动了。现 在的通信中,口地址既是通信主机的身份标识,也是通信主机的位置标识和到 本机路由的依据。这种机制的缺点是应用层和传送层通信的持续性依赖于网络层 球地址的一致性为了克服该局限性,提出了许多关于修改t c p i p 协议的建议, 其中n l v ( 主机标识协议) 便是针对t c p i p 协议这神缺点提出的改进建议。h i p 1 】 协议引入了一个新的加密的主机命名名字,引入新的名字标识符的一个主要目的 是:使主机的标识符与网络层的标识符分开,这就使得传送层和应用层的通信不 再绑定在网络层的i p 地址上,传送层和应用层的通信的持续性也不再依赖于网 络层的d 地址的一致性了。为此,草案引入了一个新的h i p 层口】,新的h i p 层 理论上位于网络层和传送层之间,主要是处理传送层标识符和网络层标识符之间 的映射转换,同时也处理端点主机的认证和主机位置的绑定更新。为了更好的发 挥h i p 协议的特点,让应用层更好的控制h i p 提供的功能,我们改写了原来的 a p i ,引入了h m a p i 。 本论文首先简单分析h i p 协议,结合l i n u x 操作系统的i p v 6a p i 提出引 入m p 接口的必要性;然后对h i p 接口进行了需求分析,提出了设计h i pa p i 非功能需求和功能需求;在设计分析中,我们在简单的分析了i p v 6a p i 的基础 上提出了本论文要实现的接口模型,并对设计过程中出现的问题和某些替代模式 进行分析:最后给出了重要功能函数的实现流程和测试结果,我们在第八章中总 结了这次设计的经验并提出了一种动态绑定的自适应接口模型。 关键词:主机标识协议、应用层接口、地址解析、映射绑定 a b s t r a c t t c p i pw a sd e s i g n e df o ra u t h e n t i cn e t w o r ka n ds t a t i cn e t w o r ka tt h eb e g i n n i n g , b u ta st h e r a p i dd e v e l o p m e n to f i n t e r a c t ,i ti sn o tt h ec a s e t o d a y , i n t e m e ti sn ol o n g e r s e c u r ea n dt h ea c c e s sm o d eo fh o s t si sn o tj u s ts t a t i ca c c e s sb e c a u s et h eh o s t st h a t p a r t i c i p a t e sc o m m u n i c a t i o na r en ol o n g e rs t a t i c i nm o d e mc o m m u n i c a t i o nm o d e s ,i p a d d r e s si sn o to n l ya n do fa h o s t ,b u ta l s oal o c a t i o ni d e n t i t ya n dt h ef o u n d a t i o no f r o u t e st ot h eh o s ti no r d e rt os o l v et h ep r o b l e mo fi t s l i m i t a t i o n ,m a n ys u g g e s t i o n s a b o u th o wt o m o d i f y t c p i ph a v e b e e n p r e s e n t e d ,a m o n g w h i c hi sh i p h i p i n t r o d u c e san e w e n t r y p t e dh o s tn a m e ,b yw h i c ht h ei d e n t i t yo f h o s ta n dt h ei d e n t i t y o fn e t w o r kl a y e rh a v eb e e nd i f f e r e n t i a t e d a n dt h e n ,t h ec o m m u n i c a t i o ni nt r a n s p o r t l a y e ra n dt h ec o m m u n i c a t i o ni na p p l i c a t i o nl a y e rc o u l dn ol o n g e rb eb o u n dt o i p w h a t sm o r e ,t h ec o n t i n u i t yo fc o m m u n i c a t i o ni nt t a n s p o nl a y e ra n d a p p l i c a t i o nl a y e r c o u l dn ol o n g e rb ed e p e n d e n to nn e t w o r kl a y e r f o rt h ep u r p o s e ,d r a f t si n t r o d u c ea n e wh i p l a y e r , t h e o r e t i c a l l y , t h en e w h i pl a y e ri sl o c a t e db e t w e e nn e t w o r kl a y e ra n d t r a n s p o r tl a y e ri nc h a r g eo f t h ep r o c e s so f m a p p i n g t r a n s f e ro f t r a n s p o r tl a y e ri d e n t i t y a n dn e t w o r kl a y e ri d e n t i t y , t h ea u t h e n t i c a t i o no fh o s t sa n dt h eb i n d i n gu p d a t eo f t e r m i n a lh o s tl o c a t i o n i no r d e rt om a k eh i pm o r ea v a i l a b l ea n d i m p r o v et h e p e r f o r m a n c eo fa p p l i c a t i o nl a y e rt oc o n t r o lo ff u n c t i o n ss u p p l i e db ymw e r e w r i t e e x i s t e da p i ,a n di n t r o d u c e dh i pa p i i nt h ep a p e r , h i p p r o t o c o li s a n a l y z e df i r s t ,t h en e c e s s i t yo f h i pi n t e r f a c ei s e x p l a i n e di nl i n u xc o m b i n e dw i t hi p v 6 a n dt h e n , r e q u i r e m e n to fh i pi n t e r f a c ei s a n a l y z e d ,a n dt h ef u n c t i o nr e q u i r e m e n ta n dn o n r e q u i r e m e n to f h i p a p ia r ep r e s e n t e d i nt h ed e s i g na n a l y s i s ,t h ei n t e r f a c em o d e lo nt h eb a s i so fi p v 6i sd e s i g n e da n ds o m e p r o b l e mi n t h ed e s i g np r o c e s sa n ds o m es u b s t i t u t em o d e sa r e a n a l y z e d a tl a s t , i m p o r t a n tf u n c t i o n sa n dt h e i ri m p l e m e n t a t i o nf l o wa r es t a t e d ,a n dt h et e s tr e s u l t sa r e l i s t e d i nt h ee i g h t hc h a p t e r , t h ee x p e r i e n c ew e g o tf r o m t h i sd e s i g ni ss u m m a r i z e da n d a l la u t o m a t i cb i n d i n gs e l f - a d a p t i o ni n t e r f a c em o d e li sp r e s e n t e d k e yw o r d s :h o s t i d e n t i t i f i e rp r o t o c o la p p l i c a t i o n p r o g r a m m i n g i n t e r f a c e a d d r e s sr e s o v e b i n d i n g i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得电子科技大学或其它教育机 构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献 已在论文中作了明确的说明并表示谢意。 签名: 产 日期:2 0 0 5 年z 月f 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文的规定,有 权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借 阅。本人授权电子科技大学可以将学位论文的全部或部分内容编入有关数据库进 行检索,可以采用影印、缩印或扫描等复印手段保存、汇编学位论文。 躲燃聊繇馐准益, i 7 缩略字表 h i ph o s t i d e n t i t yp r o t o c o l a p i a p p l i c a t i o np r o g r a m m i n g i n t e r f a c e h ih o s t i d e n t i t y i t i th o s ti d e n t i t yt a g e i d e n d p o i n ti d e n t i f i e rd e s c r i p t o r u d pu s e r d a t a g r a m p r o t o c o j t c p t r a n s p o r tc o n t r o lp r o t o c o i p o s i xp o r t a b l eo p e r a t i n gs y s t e mi n t e r f a c e s c t ps t r a mc o n t r o lt r a h s m i s s i o np r o t o c o l i e t fi n t e r n e te n g i n e e r i n gt a s kf o r c e i p s e ci n t e r n e tp r o t o c o ls e c u r i t y i p v 6i n t e r n e tp r o t o c o lv e r s i o n 6 d n sd o m a i nn a m e s y s t e m v i i i - 主机标识协议的a p i 实现 第一章引言 第一代因特网已经取得了巨大的成功,以因特网为代表的信息网络已经渗透 到社会的各个领域,成为现代信息社会最重要的基础设施之一。然而,随着网络 的飞速发展,第一代因特网也暴露出很多问题,网络的可扩展性、i p 地址空间、 安全、服务质量、移动性、多宿主机通信等诸方面都面i 涵着挑战,为此引入了第 二代因特网协议。第二代因特网协议改变了地址紧缺的问题,提供了一定的安全, 服务质量,增加了对移动支持,但并没有改变i p 地址作为主机标识符和位最标 识符的双重角色。h i p 协议正是为了解决身份标识符和位置标识符引入的改进建 议。 1 1 课题介绍 本文是“i p v 6 关键技术研究”课题的一部分。在研究的过程中,课题划分 为i p v 6 实验网组建、i p v 6 过渡技术、h i p 、i p v 6 安全性、i p v 6 路由算法、移动 i p v 6 和i p v 6q o s 等方面研究。 课题提出之后,本课题小组在对h p 协议进行深入分析的基础上,确定了协 议实现的功能框架,系统包括h 口协议基本交换报文处理、安全管理、配置管理、 多宿主机通信和移动管理以及应用程序编程接口5 个部分。 1 2 课题背景 当前的i n t e r n e t 体系结构不是很安全,许多网络通信并没有加密,这就 使得容易被窃取甚至篡改;由于t c p 1 p 协议最初是为静态网络环境设计的所 以它并不支持端主机的移动性和多宿主机:同样由于静态拓扑的假设,使得网络 层的地址可以重新用于传送层作为主机的标识,但是这种机制的缺点当主机使用 的地址变化后,传送层的通信依旧绑定在原来的i p 地址上,这将导致传送层的 通信无法继续进行。坤地址是i p 网络的核心概念之一,电是整个i p 网络重要的 基础,i p 地址作为网络定位符和网络接口标识符,是i p 网络路由机制的基础, 但是这种双重角色并不能很好的满足网络对于安全和移动的需要。在i p 网络中, 一个真正的i p 地址实际上具有两个功能:首先。i p 地址作为网络地址,毫无疑 问的充当了位置标识符的角色,也就是说,路由机制需要依靠i p 地址来决定报 文的转发路径;另外,由于上层协议( 包括i p s e c ) 使用了i p 地址作为端点标识 主机标识协议的a p i 实现 的一部分,也就决定了i p 地址的第二个角色主机标识符。如果网络中的主 机可以静态的配置地址,并且常时间不变的话,这样无疑是可行的,也正是这样 i p 技术才成为现在网络互连使用最普遍上的标准。但是,如果主机要在网络中 移动,也就是改变网络位置时,必然要改变自己的网络定位符i p 地址;这 样,由于上层协议也把i p 地址作为端标识符的一部分,就必然造成了上层端地 址的改变,也就使得原来端到端的通信中断。另外,由于对网络安全的要求不断 提高,除了应用需要自我标识外,网络对于端系统也需要有一个的标识符,以实 现对端系统的认证和端到端的通信安全。现在,已经有多种技术可以帮助i p 协 议解决这个问题,每种技术都有自己适用范圉和特点,比如移动i p 技术,s c t p 协议、h i p 协议等等。在这些技术中,h i p 协议提出了一个新的名字空间主 机身份标识,h i p 通过引入主机标识符使得网络层和传送层进一步分离从而克服 上述缺点,从更本上还原了i p 地址网络定位符的本来角色,并且通过使用一个 具有安全意义的公钥作为端系统标识符,为端系统的认证和通信过程的安全提供 了重要的基础。h i p 协议的研究对于满足网络移动和安全的需要有重要的意义。 1 3 论文章节 由于h i p 协议是一个较新的协议草案,它引入了个新的主机标识和一个新 的协议层,所以在第二章进行了协议的概要分析;第三章列出了两种可选的实现 方案,并给出了我们的选择实现方案;第四章对h i p a p i 进行了需求分析;第五 章我们对h i p 接口设计进行了详细的分析;第六章对h i p 接口实现进行了描述; 第七章对h i p 接口实现进行的j 贝9 试和实验;第八章结合h i p 协议和本次开发的 经验提出了一种自适应接口。 - 2 - 主机标识协议的a p i 实现 第二章h i p 协议概要 随着网络的飞速发展,互联网协议也在不断的更新和完善,从 p v 4 到i p v 6 , 已经对通信的可扩展性、安全性、支持移动和多宿主机通信方面做出了很大的改 进,但是其基本的体系结构一直没有发生本质的改变,其中包括i p 地址作为主 机身份标识符和主机位黄标识符双重角色的体系,i p 地址本应属于i p 层的网路 位置标识,但在t c p i p 协议中,口地址不得不出现在传送层,甚至应用层,这 种机制的缺点是应用层和传送层通信的持续性依赖于网络层i p 地址的一致性, 为了克服该局限性,提出了许多关于修改t c p i p 协议的建议。其中h i p ( 主机标 识协议) 便是针对t c p i p 协议这种缺点提出的改进建议。下面对h i p 协议的基本 概念、体系结构、通信模式以及引入h i p 协议需要进行的工作进行分析。 2 】h i p 协议提出的背景和研究现状 t c p i p 协议的设计是基于静态网络的,因为当时的网络通信根本没有考虑 到主机的移动和多宿主机通信,而随着网络技术的高速发展,移动通信的要求日 益增长,但是由于t c p i p 协议中使用口地址作为主机身份的标识和位置的标识, 这样给移动通信和多宿主机通信以及网络安全带来了很多问题【l 。i p 地址的双 重角色首先导致主机移动时不能保持上层通信的状态。一方面,i p 地址代表了 一个节点在网络中的位置,网络交付报文需要依靠i p 地址来进行路由;另一方 面,由于上层协议甚至是i p s e c 协议都和采用了和i p 地址绑定的方式,来标识对 端主机。这样,当主机需要移动的时候,就面临一个困境:作为主机身份标识符 当然不应该改变,但是作为主机位置标识符,又不得不改变。所以,为了解决移 动性,在移动i p 中不得不引入了一个转交地址。在移动i p 中,除了为节点提供 一个固定的家乡地址,当漫游的外网时,还要提供一个所在网络的地址作为转交 地址。这样,在家乡的时候,节点家乡地址就是作为一个普通的i p 地址在使用, 既表示主机,也代表其嘲络位置。而当主机漫游时,家乡地址显然不能正确的表 示其当前位置,而只能作为一个标识符使用了,它的当前位置也就要靠转交地址 就来描述了。有以上分析可见,无论是理论上还是实践中,只有分离了名称和位 置的标识,才能实现主机的移动,这种分离是必要的,至于实现方案却可能是多 种多样的。主机多宿是指一个主机拥有多个网络物理接口,或者一个网络物理接 口拥有多个逻辑接口,或者两种情况同时存在的情况。其实,从通信端点,比如 一个进程的角度来看,多宿和移动在很多情况下是等价的。比如一个拥有多个网 3 主机标识协议的a p i 实现 络接口的主机,在某个正在通信的接口出现故障时,应该能够使用其他正常的端 口继续保持上层的通信。这种情况和主机发生移动时的网络地址改变没有什么区 别,所以,i p 地址的双重角色肯定会给多宿主机的接口管理带来问题。而且, 对于多宿主机来讲,除了地址的切换,可能还需要对多个网络接口进行并用,或 者实现网络接口的负载均衡,显然,这些问题在现在的t c p s p 体系中都是需要 绕道解决的。最后一个问题时安全问题。个主机可能需要在进行身份认证的同 时,隐匿自己的网络位置。这在采用i p 地址作为身份标识的场合显然是不可能 的。从上世纪9 0 年代初开始,通信技术和计算机技术的进步已经使得通信设备 和计算机设备体积越来越小,而性能不断提高而价格越来越低,使得普通人具有 了拥有网络设备的能力。另外,万维网技术以及以此为基础的各种应用的出现, 使得互联网对人们的吸引力越来越大。网络用户的急剧增加不仅扩大了网络的规 模,也改变了网络用户之间信任关系的基本模型。互联网设计之初,网络的使用 者自己对自己的行为负责,相互信任;而这一切对现在的互联网来说,也许只是 个梦想了。在一个不信任的网络中,现在电子商务、电子政务等应用显然需要 相应的认证和保密技术来保证交易和事务处理的安全。针对这些问题,i e t f 已 经制订了一系列的安全标准,但是事实证明,要这些安全标准和支持移动的标准 起工作却并不是一个简单的任务。 h i p 的历史离不开i e t f ,最早是在1 9 9 9 年有了最初的想法。到了2 0 0 1 年 的时候,开始筹备成立一个工作组,但是并没有达到目标。研究由l e g g e r t 、 r m o s k o w i t z 等人分别进行,并提出了一些协议的草案。直到2 0 0 3 年他们提出 了比较完善的协议的基本描述,并提供了移动和多宿管理的扩展。在2 0 0 3 年正t f 维也纳会议中h i p 协议的地位开始改变:i a b ( 互联网体系结构委员会) 开始讨论 引入一个新的主机名字空间的必要性。到2 0 0 3 年底,也成立了i e t f 的h i p 工 作组,1 r t f 也开始了相关的研究。也有人开始了协议实现的相关工作。到2 0 0 4 年夏天,i e t f 就提出了协议基本描述、移动和多宿扩展、r v s 扩展等相关草案, 也有了f r e e b s d “l 平台的的协议基本实现和l i n u x 平台的部分功能模块实现 2 2 主机标识符 h i p 协议引入了个新的名字空间:h o s ti d e n t i t y ( h i ) 。前面已经指出,h i p 协议最初的目的是分离主机身份标识和主机位置标识。现在的互联网中全局的名 字空间有两个,一个是i p 地址,另一个就是域名。域名是一个方便记忆的名字, 它代表了一定的组织或个人提供的代某种服务,或者代表了互联网的某些资源。 4 - 主机标识协议的a p i 实现 在需要访问域名所在这两者之间现在有域名解析系统可以实现双向的查找。所 以,如果采用域名作为主机的名字,而i p 地址做为地址标识,可以实现主机名 称和地址的分离。但是,由于域名并不是作为主机标识提出来的,所以,并不适 合作为主机标识。原因在于,主机身份常常需要认证,通信的数据源也需要进行 认证,而域名并不适合用来认证,还需要主机提供其他的标识用以实现对自己拥 有域名做出证明。h i p 协议引入主机标识( h i ) 作为主机身份的标识,考虑到身 份标识应具有身份认证的功能,所以取h i 是公钥一私钥体制中定义的公钥,在 h i p 网络中直接代表某台主机。,这样主机标识不但改变了i p 地址的双重角色, 同时也引入了主机认证功能。但是现行的公钥体制太多,而且每一种体制所使用 的密钥长度也不相同。因此如果在传输的过程中真接采用公钥( h i ) 来标识主机 身份,则这种长度各异的标识会给传输过程带来不可预计的困难,而且如果把其 作为查表的索引,这也会给查表过程制造很多麻烦。为了解决这个问题,必须引 入一个定长变量作为网络中主机的标识和查表的入口。因此h o s ti d e n t i t yt a g 阻i t ) 应运而生。h i t 是珊进行h a s h 运算的结果,是网络中主机的标识。现在 h i t 被暂时定义为1 2 8 位。 h i 是非对称密码算法中的公钥,h i 自身也就对应了个私钥。现在比较流 行的非对称密码算法有r s a 和d s a ,这两种算法都可以用来产生h 1 。m 的h a s h 值h i t 可以应用于多种协议中,来标识网络中的主机。h i t 的长度是1 2 8 位,其 优点有: 固定长度有利于数据的处理、检查,h i t 的1 2 8 位长度恰好和i p v 6 地址的长 度相同,可以直接填在a p i 和i p v 6 的地址域中。 h i t 自身具有较强的安全性。根据h a s h 算法的原理:给定一个数,可以根 据h a s h 算法很方便地计算出其对应的h a s h 值:但是给定一个值的h a s h 值,则 很难根据其值反向推出其原来对应的数值。因此给定一个h i 可以很方便地计算 出其对应的h i t :但是给定一个h i t ,则很难反推出其对应的瑚。 由于h i t 的长度是1 2 8 位,则两台主机使用一个h i t 的可能性很小,这样 h i t 几乎不可能出现碰撞,即使发生了碰撞,可以利用本机映射绑定表中查到 h i 。 现在的草案提出了- - e e 兼容i p v 4 的3 2 位标识符l s i ,但在实现中发现可以 直接用1 2 8 位的h i t 来进行i p v 4 地址的映射,因为主机标识符只应该标识主机, 而不应该去区分网际协议。 5 主机标识协议的a p i 实现 第一版草案定义了两种h i t :类型】是把h l 进行s h a 1h a s h 运算的结果中的 1 2 8 位作为h i t ,类型2 是把h i t 把h i t 的前6 4 位用于域名解析,后6 4 位从 h i 进行s h a - 1h a s h 运算的结果中获锝。本论文中支持的是前一种算法。最新的 草案取消了h i t 两种类型,提出h i t 只是主机标识符,它不应该用前两位来区 分i p v 6 地址,而应靠自身的实现来区分h i p 通信。 引入主机标识h i h i t 后主机身份、h i 、h i t 、l s i 的关系 图2 1 主机身份、h i 、h i t 和l s i 的关系 引入主机标识符后主机标识和位置标识的示意图: 图2 2 主机标识和位置标识绑定 如上图所示,左边画出了传统的主机标识和位置标识的绑定关系,一旦通信 建立,主机标识和位置标识都绑定在i p 地址上;而引入h i p 协议后,主机的标 识绑定在h i 上,主机位置的标识由i p 地址指示,并且允许h i 动态的绑定i p 地 6 主机标识协议的a p i 实现 址。 2 3h i p 体系 h i p 协议引入了新的名字空间,使i p 地址的主机标识角色得以解放,但是 由谁来完成h i h i t 创建、绑定、管理以及通信工作,由此h i p 协议引入了新的 网络层次概念- - h i p 层【2 】: 、。 f 服务应用) 应用层 传送层 网络层 链路层 物理层 进程号 i p ,p o r t ) 对 i p 地址) 链路层地址 应用层 传送层 q 叵 网络层 链路层 物理层 进程号j h i ,p o r t ) 对 ( h i j i p 地址 链路层地址 图2 3h i p 体系结构 图2 3 画出了传统i p 通信和h i p 协议通信的网络层次图,h i p 协议通过引 入主机标识符,在分离d 地址双重角色的同时,事实上也消除了上层协议和网 络层之间的耦合。 2 4 h i p 通信模式 由于h i p 协议引入了新的h i p 层,网络通信的模式将有相应的变化,这里 简要分析一下h i p 协议的通信模式【2 0 。 7 主机标识协议的a p i 实现 、 f 应用程序1 、 ,、 传送层) 图2 4h i p 通信模式 图2 - 4 中只厕出了h i p 协议通信发送报文时的简要过程,为什么在图中有两 条通信线路和两种通信报文格式,其实h i p 层处理h i p 协议的相关工作与t c p 处理连接工作相似,t c p 通信连接时的三次握手也是由t c p 协议模块创建、发 送、处理,这些报文由应用程序连接请求触发;同样,h i p 的连接请求也是由应 用程序的发送要求触发,也需要由h i p 模块自己完成连接过程。所不同的是h i p 协议的连接需要额外的主机标识和用来进行主机身份认证的相关信息数据,这样 就需要h i p 协议报文头,双方根据h i p 报文中的信息进行主机身份认证和安全 连接参数协商与建立;另一方面,当h i p 通信连接已经建立后,有关主机身份信 息和通信的安全信息都存储在各自的主机中,不需要再在通信报文中出现,所以 这时的通信报文中不再需要h i p 报文头,可以减少网络的开销和主机的处理。下 面分别画出h i p 基本通信报文( 我们把进行h i p 连接和控制管理通信简称为基 本通信) 和常规h i p 通信报文f 4 】( 我们把已经建立了h i p 连接后的h i p 通信简称 - 8 一 l 建 衰一r 。,僵。 主机标识协议的a p i 实现 为常规h i p 通信) 图2 5h i p 通信撒文 结合上面h i p 通信模式图可知,有关h i p 的连接、协商、控制等通信是通 过h i p 模块用原始套接字通信完成的,下个头协议号是5 9 ;当h i p 连接完成后, 有关通信主机身份信息和安全连接信息都存储在本机中,所以h i p 常规通信是不 用h i p 报文头的,只需要根据连接通信中协商好的信息来进行h i p 处理。 2 5h i p 局限性 引入h i p 协议使i p 地址的双重身份得以解放,可以对主机身份进行认证, 可以解决传统的移动通信和多宿主机通信中的一些问题,但是同时也引入了一些 缺陷。从前面h i p 通信模式的分析知道,h i p 通信要进行类似于t c p 通信三次 握手连接的连接过程,在进行数据传输之前需要进行连接通信,对于t c p 来讲 这部分开销是可以容忍的,特别是对于有大量数据需要发送的应用:但对于u d p 来讲,四个连接报文的交互这种开销有的时候是比较大的,特别是对于只进行一 个u d p 报文的传递的应用。 9 主机标识协议的a p 实现 3 1i p v 6 的通信模式 第三章实现方案选择 由于引入h i p 协议在口层之上,对i p 层之下的协议和实现没有任何影响 所以只画出了从应用层到i p 层1 2 1 1 ( 基于l i n u x 内核) 的示意图: 1 一一划啦一 i 瓶t 4 插口层 i h 计6 插口屡 毒 一 - 零 网络层 童 图3 1 传统i p v 6 通信 如图3 1 所示,在l i n u x 操作系统中把整个空间分为用户空间和内核空间, 网络通信的应用程序和解析函数处于用户空间,而网络的协议栈处理和实现在内 核空间;所以整个通信模块为应用程序提供了两个接口,一个是处于用户空间用 于域名查询的接口即解析器函数,它为用户提供本机和对端主机的地址信息;当 用户得到基本的通信信息后,调用第二个接口即b s d 插口向内核发起通信。用 户的应用程序由此陷入l i n u x 的内核( 系统调用) 进行相关的通信操作。由于 b s d 插口层是通用的套接字插口,它屏蔽了网际协议的具体操作,内核会根据 1 0 用户空闻一 内接空闻 主机标识挤议的a p ! 实现 挂接在b s d 上的具体协议的操作来解释应用程序请求。i p v 6 主要是由于i p v 4 的 地址空间不足和移动性,安全性方面考虑不全面等缺点而进行的升级,所以i p v 6 和i p v 4 在协议层次上是相同的,在l i n u x 实现中提供给用户的接口也是相似的。 虽然在 p v 6 中针对i p v 4 的不足相应的增加了安全处理,移动模快及地址的扩展, 但它并没有从根源上解决i p 地址的双重身份的缺陷。 3 2 用守护进程解决h i p 通信 由于h i p 协议在理论上是介于i p 层和传送层之闻较独立的模块处理,所以 可以考虑把这部分处理放到用户空间来完成,这就产生了用户进程的解决方案 3 】,如图3 2 : 图3 2 用户进程进行h i p 通信 这种方案的大体流程是,用户在进行域名解析的过程中由本机的解析函数向 h i p 守护进程请求h i t h i 到i p 地址的映射绑定:应用程序用返回的h i t 进行网 络通信,由于h i t 是1 2 8 位的,应用程序的调用接口不需要进行变化,通信到 了传送层时,也认为1 2 8 位的h i t 是i p v 6 地址,直到到了需要进行h p 处理的 模块入口检测时,才会根据目前h i t 的定义与i p v 6 地址的区别进行筛选,把需 要进行h i p 通信的报文送往用户的守护进程。这种实现方式的优点:实现简单, 主机标识协议的a p i 实现 因为很多的功能都是在用户空间完成,与内核进行交互的函数很少,软件电容易 控制;对内核的改动较少,对原来的协议栈不需要太大的修改。缺陷:应用程序 不能控制h i p 协议,因为它对h i p 协议的存在是透明的;协议的层次不清楚, 把处于传送层下的处理放到应用层去处理,这在协议的体系层次上是不清晰的; 效率问题,l i n u x 中用户空间的进程在运行时是可以被抢占的,这样对h i p 的处 理会带来一些时延。鉴于这些问题,我们引入了用改进的接口在内核进行h i p 通信处理的方案。 3 3 用改进的a p i 进行h i p 通信 虽然可以用户用守护进程来完成简单h i p 通信,但在用户空间实现通信协议 栈无论在效率还是在层次上都不是理想的,而且对于引入h i p 协议目的是让用户 明确的知道自己在用主机标识,让它充分的发挥其功能,这也是使用用户守护进 程无法体现的。所以我们提出更改a p i 解决h i p 通信的模式如图3 - 3 : 用 户 空 间 内 梧 空 间 图3 - 3 改进a p i 进行h i p 通信框架 1 2 主机标识协议的a p i 实现 如图3 3 所示,该方案是把h i p 协议的处理放在内核中让h i p 模块来处理, h i p 协议在理论上象楔子一样夹在传送层和网络层之间,这种形象的表示是来源 于h i p 协议的具体工作方式,在h i p 层的通信可以分为三种类型:第一,通信 的连接的的建立;第二,通信的进行;第三,通信连接的维护。通信连接的建立 和维护由h i p 模块来处理,需要用原始套接字发送h i p 类型的报文:而对已经 建立起连接的通信来讲,需要传输的报文中是没有h i p 类型报文头的,而且在 h i p 层的处理已是很少的,所以看上去象楔子一样在两层之间。h i p 通信的关键 是主机的h i t 和对应的i p v 6 地址的映射和l i p 协议本身的处理,为此我们增加 了h i p 应用程序接口和h i p 协议的处理模块。h i p 协议处理模块进一步的划分成: h i p 基本通信处理部分、 玎,连接控制处理部分、h i p 安全处理部分、h i p 移动 和多宿主机通信处理部分、配置管理处理部分。下面对这几个部分进行简单的描 述: h i p 应用程序接口 h i p 通信的关键是主机的h i t 和对应的i p v 6 地址的映射和h i p 协议本身的处理。 h i p 应用程序接口的引入和可以解决:第一,应用程序知道h i p 协议的存在( 通 过调用颓的接口和设置标志项) ;第二,提供主机标识的查询接口:第三,提供 h i t 到i p v 6 地址的映射绑定接口;第四,为控制程序提供控制管理入口。 h i p 基本通信处理部分 从前面分析h i p 协议的通信模式可知h i p 通信主要有两条通信线路,其中一条 是进行基本的h i p 连接、控制、协商的通信过程,这就由h i p 基本通信处理部 分完成,它负责通信双方的主机身份认证、安全参数协商、安全连接建立、地址 更新通告的处理。 h i p 基本通信处理部分 这部分负责h i p 适接已经建立后的h i p 通信,主要的工作是完成h i t 和i p v 6 地 址的相互查找和替换以及根据h i p 连接时协商的参数进行相关操作。 h i p 安全处理部分 由于h i p 引入了可以进行身份认证的标识,并且通信的安全参数协商和交换也在 h i p 基本通信处理部分完成,但h i p 的安全实涟最终要靠i p s e c 支持完成,所以 h i p 的安全部分是包括h i p 协议中身份认证和安全协商以及利用i p s e c 提供的安 全设施。 1 3 主机标识协议的a p i 实现 h i p 移动和多宿主机通信处理部分 h i p 协议支持主机地址和h i t 的动态绑定,能够在多宿主机中实现自己的地址策 略;h i p 协议提供了r v s 机制支持移动通信,允许其它主机发起向移动主机的 通信。 配置管理处理部分 这部分主要完成有关h i p 协议提供的功能选择,通信模式选择等管理工作。 1 4 主机标识协议的a p i 实现 4 1h i p a p i 的引入 第四章h i p a p i 需求分析 h i p 协议处于传送层和网络层之间,它对网络层以下的处理并没有任何影 响,如果只考虑简单功能的实现,也可以用传统的i p v 6 的a p i 来完成,所谓用 传统的i p v 6 16 j 接口完成h i p 协议通信是指提供给应用程序开发者的界面和调用 函数可以不变,但解析库函数和内核的s o c k e t 选项还是要修改( 必须在内核中进 行h i t 到i p v 6 地址的绑定) ,即使是这样也存在着一些问题:第一,引入h i p 协议就是要让应用程序知道主机标识符的存在,而用传统的a p l 时应用程序收到 h i t 标识符,由于它是1 2 8 位的,所以应用程序认为h i t 是i p v 6 的地址。从而 应用程序会认为通信是i p v 6 的通信,这样违背了引入h i p 协议的初衷;第二, 由于应用程序不知道h i p 协议的存在,所以它无法灵活地配置和管理有关h i p 协议控制和选项,特别是对于以后地发展;第三,主机标识符h i t 是1 2 8 位, 恰好和i p v 6 的地址长度相同,如考虑到以后的发展h i t 标识可能发生变化,这 样原来开发的应用程序就无法运行;第四,用传统的a p i 进行h i p 通信的前提 是h i t 和i p v 6 的地址能相互区分,在目前i p v 6 地址的分配情况下还行,但随着 i p v 6 地址的进一步分配和使用,那么通信会产生混乱,考虑到第二版草案中提 出的不分类型的h i t ,传统的a p i 是不能工作的i 第五,结合h i p 协议和新的 a p i 我们可以提供一个动态绑定网络协议操作集的接口,但由于我们是仅基于 1 p v 6 的h i p 协议实现,所以并没有动态绑定网络协议,这部分我在第八章描述。 基于上面几个原因,该方案引入了新的a p i ,包括用户空间的库函数接口( 解析 器) 和内核提供的s o c k e t 接口。 4 2h i p a p i 需求分析 在4 1 中分析了为h i p 的通信重新设计a p l 的必要性,在这一节中主要分析 设计h i p a p i 的需求和条件,大体上可分为功能设计考虑和非功能需求的考虑。 功能设计的考虑包括标识符的分配,管理:位置信息的查询,管理;接口的管理。 非功能上的需求包括可用性、兼容性的考虑。 4 2 1 设计原则 由于设计和开发在l i n u x 环境中进行,我们提供给用户的界面应该尽量保持 1 5 主机标识协议的a p ! 实现 原来的风格和习惯,以使应用程序的开发者使用方便和容易接受:我们的开发是 基于i p v 6 网际协议的,而l i n u x 内核已经很好的实现了i p v 6 网络协议栈代码, 所以我们在代码上尽量的复用已有的代码资源。 4 2 。2 非功能需求 非功能上的需求考虑对接口的设计提出了更高的要求,在此主要考虑实用性 和兼容性方面的需求。 4 2 2 1 实用性 h i p 设计对网络协议栈进行了两个重要的改进,一个是引入了可作为公钥的 名字标识符,另一个是加入了个新的协议层。为此我们设计新的a p i 以适应新 的改进,但是我们要考虑两个问题:第一:名字标识符的管理和名字标识符与位 置标识符之间的绑定管理,这是进行h i p 通信必须要解决的事情;第二:我们设 计的a p i 是在l i n u x 系统下进行的,所以我们的设计必须要尽可能的接近l i n u x 原来的a p i 习惯和风格,而且要尽可能的重用原来的a p i ,只有在不能重用时才 进行扩展和改写,这样对于已经非常熟悉l i n u x 或u n i x 网络套接口编程的开发 者来讲能够很快的掌握和使用新的a p i 。 4 2 2 2 兼容性 我们新设计的接口应该考虑兼容性,包括向后兼容和向前兼容。向后的兼容 是指h i p 接口应该支持传统i p v 6 的通信,在应用程序调用新的h i p 接口进行通 信时,如对端主机或应用不支持h i p 通信,我们可以利用该接口进行传统i p v 6 通信;向前兼容主要是因为h i p 协议的草案还在不但更新和完善,而且现在h i p 协议并没有在大规模的范围内使用,所以我们要对将来的发展进行充分的考虑, 例如标识符的长度是适合,标识符的格式,类型是否改变等等,因此我们不应该 把h i t 标识符暴露在典型的应用中,这样将来即使在h i t 标识符重新定义后, 我们己开发的应用程序还是能运行,为此我们引入了应用层标识符e i d 的概念, 我们在后面的设计部分作出了具体的考虑和详细的分析。 4 2 _ 3 功能需求 功能需求比非功能需求要具体一些,我们为h i p 协议引入新的a p i 主要是 为通信的主机创建应用层标识符e i d 并把主机标识符显示的传给应用程序,并 在适当的地方将标识符和h i t 进行绑定映射,同时为主机移动性和多宿主机, 安全性等方面提供管理配置接口。 1 6 主机标识协议的a p l 实现 4 2 - 3 1 端点标识符 我们知道,传统的t c p i p 通信中的端点标识符是对端的i p 地址或本机的网 络接口,而本机的接口和对端主

温馨提示

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

评论

0/150

提交评论