




已阅读5页,还剩76页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着联网设备特别是嵌入式联网设备数量的增加,能提供几乎无穷 尽i p 地址的i p v 6 协议的优势越来越显著。但目前应用于嵌入式设备的 i p v 6 协议栈很少,所以,在嵌入式设备中实现i p v 6 协议栈具有很大的现 实意义。 本文首先介绍了i p v 6 庞大的协议簇中,本课题拟实现的协议,包括 i p v 6 、i c m p v 6 ,邻居发现、无状态地址自动配置以及u d p 协议介绍中 包括了对各个协议的原理、报头结构以及相关参数等的说明。 然后,介绍了嵌入式系统、实时系统以及嵌入式i p v 6 的相关概念, 介绍了本课题协议栈基于的l w i p 协议栈的总体结构,还介绍了保证实时 性能以及u d p 包可靠传输的t c o n 协议。 接着,分析了协议栈的设计要点,提出了协议栈的总体设计方案, 探讨了协议栈的内存管理、进程模型、a p i 、模块通讯、平台无关性以及 实时性的设计。 接下去,分析了协议栈的裁减以及协议栈的数据处理流程,设计与 实现了i p v 6 、i c m p v 6 、邻居发现、地址自动配置以及t c o n 模块,修改了 原l w i p 的其他相关模块。 在文章的最后,基于a r m 7 微处理器、u c o s i i 操作系统以及 r t l 8 0 1 9 a s 网卡做了协议栈的功能性以及实时性测试,结果表明协议栈功 能正常,并满足较好的实时性。 本课题的创新点是:1 、根据嵌入式环境资源有限以及应用单一的特 点,实现了精简的嵌入式i p v 6 协议栈;2 、裁减了传输层为只保留速度 快的u d p 协议,设计了基于u d p 协议之上的t c o n 协议用于控制传输可靠 性以及提供实时性。 关键词:嵌入式,实时,i p v 6 ,i c m p v 6 ,邻居发现,地址自动配置 广东工业大学工学硕士学位论文 a b s t r a c t t h ep r e d o m i n a n c eo fi p v 6p r o t o c o lw h i c hc a np r o v i d ea l m os ti n f i n i t e n u m b e ro fi pa d d r e s s e si sm o r ea n dm o r eo b v i o u s ,a l o n gw i t ht h en u m b e ro f o n l i n ed e v i c e si n c r e a s i n g t h e r e f o r e ,i m p l e m e n ti p v 6s t a c ki ne m b e d d e d h a sg r e a tp r a x i sm e a n s f i r s t ,t h i sp a p e ri n t r o d u c ep r o t o c o l st h a tt h i st a s kw a n tt oi m p l e m e n t , i n c l u d i n g i p v 6 ,i c m p v 6 , n e i g h b o rd i s c o v e r y , a d d r e s sa u t o m a t i c c o n f i g u r a t i o na n du d pp r o t o c 0 1 t h ei n t r o d u c t i o ne x p l a i n st h et h e o r y , h e a d e rs t r u c t u r ea n dr e l a t i v ep a r a m e t e ro fe v e r yp r o t o c 0 1 t h e n ,a n a l y s e sa n da d v a n c e sd e s i g nk e yp o i n t sa n da r c h i t e c t u r eo f p r o t o c o ls t a c k ,p r o b e si n t od e s i g n a t i o no fm e m o r ym a n a g e ,p r o c e s sa n d c o m m u n i c a t i o nm o d e l ,a p ia n dp o r t a b i l i t yo ft h es t a c k a f t e r w a r d s ,a n a l y s e sr e d u c t i o na n dd a t ap r o c e s sf l o wo ft h es t a c k , d e s i g n sa n di m p l e m e n t so fi p v 6 ,i c m p v 6 ,n e i g h b o rd i s c o v e r y ,a d d r e s s a u t o m a t i cc o n f i g u r a t i o na n dt c o nm o d e l s ,m o d i f i e so t h e rr e l a t i v em o d e l s o f l w i p a tt h el a s to ft h i sp a p e r ,f u n c t i o nt e s ta n dr e a l - t i m ep e r f o r m a n c et e s ti s t o o k ,b a s i n g o na r m 7 p r o c e s s o r ,u c o s - i io p e r a t i n gs y s t e m ,a n d r t l 8 0l9 a sn e t w o r ki n t e r f a c ec a r d a n dt h er e s u l t si n d i c a t et h a tt h ei p v 6 s t a c ki sf u n c t i o no k ,a sw e l la sh a sg o o dr e a l t i m ep e r f o r m a n c e t h ei n n o v a t i o no ft h i s p a p e ri s ,f i r s t l y ,r e a l i z e s c o n d e n s e d a n d e m b e d d e di p v 6p r o t o c o ls t a c k s e c o n d l y ,r e d u c e st r a n s f o r ml a y e rt oo n l y r e s e r v et h ef a s tu d pp r o t o c o l ,a c c o r d i n gt or e s o u r c el i m i t e da n df u n c t i o n s i n g l eo fe m b e d d e de n v i r o n m e n t ,a n dd e s i g n st c o np r o t o c o lw h i c hb a s e s o nu d p p r o t o c o lt oc o n t r o lt r a n s f o r mr e l i a b i l i t ya n dp r o v i d eg o o dr e a l - t i m e p e r f o r m a n c e k e y w o r d s :e m b e d d e d ,r e a l t i m e ,i p v 6 ,i c m p v 6 ,n e i g h b o rd i s c o v e r y , a d d r e s sa u t o m a t i cc o n f i g u r a t i o n 独创性声明 独创性声明 秉承学校严谨的学风与优良的科学道德,本人声明所呈交的论文是 我个人在导师的指导下进行的研究工作及取得的研究成果。尽我所知, 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表 或撰写过的研究成果,不包含本人或其他用途使用过的成果。与我一同 工作的同志对本研究所做的任何贡献均己在论文中作了明确的说明,并 表示了谢意。 本学位论文成果是本人在广东工业大学读书期间在导师的指导下取 得的,论文成果归广东工业大学所有 申请学位论文与资料若有不实之处,本人承担一切相关责任,特此 声明。 艚溯料。删 论文作者签字:槊乘农 2 0 0 7 年,月彳日 第一章绪论 第一章绪论 1 1 本课题的学术背景及理论与现实意义 近年来,随着软硬件资源的成熟与完善,嵌入式系统的应用得到了 迅猛的发展,其应用领域涉及通讯、自动化、信息家电和军事等方面 据i d c 发布的统计表明,未来5 1 0 年问,信息家电市场将增长6 1 0 倍由此可见嵌入式应用开发的巨大潜力和商机。 另一方面,随着互联网技术的不断成熟与发展,学术界已意识到互 联网不能仅仅停留在信息管理的层面,而且要“把互联网带到人们的生 活中”,在工业控制方面则要“e 网到底”于是许多信息产品,如:w e b 个人数字助理,w e b 可视电话等嵌入式设备的网络化就成了目前网络发展 的一个重要方向,于是就应运而生出现了很热门的嵌入式t c p i p 技术 然而,在互联网技术不断发展的同时,基于i p v 4 的t c p i p 技术也 暴露出了致命的缺陷,即地址枯竭问题。 i p v 6 从根本上解决了i p v 4 地址枯竭问题,并且在地址分类、报头格 式、安全性、q o s 、移动性、路由算法与地址的自动配置等提供了协议的 优化和更新,使之更加适应未来网络运行发展的需要。 1 2 研究动态及现状 随着嵌入式i n t e r n e t 技术的蓬勃发展,国内外各大厂商都相继推出 了自己的嵌入式t c p i p 协议栈产品。其中既有针对3 2 位、6 4 位高档嵌 入式系统应用的协议栈,也有适合于中低档嵌入式应用的轻便型的 t c p i p 协议栈产品,它们都是基于i p v 4 的,其中比较有代表性的解决方 案有; 。 1 ,风河公司( w i n dr i v e r ) 的t c p i p 协议栈一:风河公司是著名的嵌 入式操作系统的开发商,以其v x w o r k s 嵌入式操作系统而为人们所熟悉。 该公司的t c p i p 协议栈是v x w o r k s 嵌入式操作系统的一个部分,适合于 广东工业大学下学硕士学位论文 军事,工业、通信等高端应用。其协议栈以b s d 的5 4 版本的t c p i p 协 议栈为基础,并为嵌入式环境的应用作了特殊的优化。在路由器、交换 机等数据通信领域和基站等无线通信领域,应用特别广泛。 2 、德州仪器公司( t i ) 的t c p i p 协议栈n ,:该公司的t c p i p 协议 栈是专门为该公司的t m s 3 2 0 c 6 0 0 0 系列d s p 的网络应用而设计的。该协 议栈基于公司的d s pb 1 0 s 编制,适合于1 6 位d s p 的应用,它使数字影 像和音频等嵌入式应用在各个网络之间的互联变得轻松方便,且成本低 廉另外,它还提供t c p i p 协议栈应用的开发包,方便用户的应用开发。 3 、u b i c o m 公司的t c p i p 协议栈:该协议栈是u b i c o i i 公司专门为 其s e n i x 单片机开发的,其特点是用汇编语言编写,对硬件环境有较大 的依赖性,不利于移植。 目前,国外已有不少面向嵌入式系统的i p v 6 协议栈产品,例如m a x i m 公司已开发出了自己的i p v 6 协议栈商业化产品。该产品实现了 i p v 4 i p v 6 双协议栈,并向应用层提供了一个j a v a 运行环境t i n i 接口 而i n t e r n i c h e 所实现的用于嵌入式设备的协议栈套件,不仅包括了基本 的i p v 4 i p v 6 协议,甚至包括i p s e c 协议及动态配置密钥的i k e 协议。m 在国内也有多家企业正致力于推动i p v 6 应用的发展。2 0 0 3 年6 月, b i i 公司( 天地互连技术有限公司) 建立了国内首家i p v 6 应用研究中心, 展现了i p v 6 应用的最新成果“,。该中心通过高速数据专线,连接美国、 日本、韩国和欧洲等国家的i p v 6 实验网。该中心将陆续引入各种支持 i p v 6 的嵌入式系统,例如:支持i p v 6 的工业探头感应器、支持i p v 6 的 电冰箱、电视机、微波炉、电灯、网络游戏机以及支持i p v 6 的家庭网络 智能控制系统。 尽管i p v 6 在各种嵌入式设备中已经有了多种应用,但这些解决方案 的共同特点是,产品价格比较高而且不开放源代码,实时性能不够好, 不利于t c p i p 协议栈的移植、裁减、优化以及应用。 1 3 本课题的主要研究内容及创新点 2 第一章绪论 1 3 1 选题的意义 i p v 6 被称作下一代互联网协议,与目前互联网正在使用的i p v 4 协议 相比,其最显著的特征是通过采用1 2 8 位的地址空间替代i p v 4 的3 2 位 地址空问,以提高下一代互联网的地址容量。w 这就从根本上解决了i p v 4 地址枯竭问题。 在i p v 4 中,主机i p 地址的自动配置需要d h c p 协议,而在i p v 6 中, 既可以在网络中有d h c p 服务器时使用有状态的地址自动配置,也可以在 网络中没有d h c p 服务器时实现主机的无状态地址配置。这个特性使得用 i p v 6 部署嵌入式网络应用非常方便。 i p v 6 对移动性、安全性、更高效的路由、更高效的i p 报头等特性的 支持与更新,也是i p v 6 在嵌入式网络中应用的推动力。在低端设备中, 可以把i p v 6 协议栈构建在实现了基本的软、硬件管理的操作系统之上, 而i p v 6 协议栈则完成最基本的i p v 6 协议、i c m p v 6 协议、n d 协议、u d p 协议等,大小可以在几十k 左右。 不难想象,随着网络技术的发展,嵌入式系统网络引入家庭、工业、 农业将成为必然趋势,而这些应用场合对传输的实时性可能会有较高的 要求经过分析,研究嵌入式i p v 6 网络以及它的实时性能,在理论和技 术实施上是可行的,因此满足较好实时性能的i p v 6 协议栈的研究具有重 大的理论以及现实意义。 1 3 2 主要研究内容 本课题是要在嵌入式软、硬件资源有限的环境中,研究、设计并实 现一个具有较好实时性能的i p v 6 协议栈。由于应用在嵌入式系统中,所 以该i p v 6 协议栈本着精简的原则,只实现i p v 6 通信的基本功能,如网 络驱动,i p v 6 协议,部分i c m p v 6 协议,n d 功能以及地址自动配置等。 考虑到本协议栈的应用环境具有较高的实时性需求,所以在传输层只实 现了u d p 协议u d p 是不可靠地传输层协议,所以本课题创新地在传输层 之上设计、实现了一个控制u d p 传输的协议,命名为t c o n 协议,为应用 程序提供类b s ds o c k e t 的接口其中,i p v 6 协议栈的编码是基于实现了 i p v 4 功能的l w i p 协议栈实现的 广东工业大学工学硕十学位论文 本课题所面临的问题主要是: 1 、i p v 6 协议在国内还比较陌生,所以其相关的中文资料还比较少, 需要查阅相关的英文资料,特别是i p v 6 的r f c 文档。 2 、需要在满足研究目的的前提下,尽可能精简协议栈,以节约系统 资源。 3 、要使协议栈具有可移植性。 4 、协议栈要满足较高的实时性。 针对设计中所遇到的问题,本课题主要做了以下几方面的工作: 1 、互联网协议的学习,包括i p v 6 与i p v 4 协议栈的学习与比较,找 出异同点,同时完成嵌入式i p v 6 协议栈的修改与裁减。 2 、设计协议栈的系统结构,包括内存管理,进程模型,各层协议间 的通信方式等。 3 、设计、编码以及调试i p v 6 协议栈的协议模块,包括i p v 6 ,i c m p v 6 , n d ,地址自动配置以及t c o n 。 4 、针对a r m 7 微处理器,u c o s i i i 实时操作系统以及r t l 8 0 1 9 a s 网 卡,给出了协议栈的应用实例及实验结果 1 3 3 本课题的创新点 i n t e r n e t 的i p v 6 协议目前还是一个比较新鲜的事物,i p v 6 在嵌入 式环境中的应用更是少之又少。本课题研究的嵌入式i p v 6 协议栈,应用 于系统软、硬件资源受限的嵌入式环境,并提供了较高的实时性能。 本课题的创新点是:1 、根据嵌入式环境资源有限以及应用单一的特 点,实现了精简的i p v 6 协议栈;2 、裁减了传输层为只保留速度快的u d p 协议,设计了基于o d p 协议之上的t c o n 协议用于控制传输可靠性以及提 供实时性。 4 第二章i p v 6 相关协议 第二章i p v 6 相关协议 由于i p v 6 协议簇十分庞大,要在嵌入式系统完全实现是不现实,也 是不必要的。本章介绍了本课题的i p v 6 协议栈实现了的i p v 6 协议,包 括i p v 6 、i c m p v 6 目的不可达报文、回应请求和回应应答报文、邻居发现、 地址自动配置以及u d p 协议 2 1i p v 6 协议介绍 2 1 1i p v 6 的报头 k f c 2 4 6 0 “,定义了i p v 6 数据包的报头结构,由一个基本报头和多个扩 展报头组成。 2 1 1 1l p v 6 的基本报头 i p v 6 基本报头格式如图2 - 1 所示,固定为4 0 字节长。源地址和目的 地址各占1 6 字节,剩下只有8 字节用来装报头信息,其中: 版本:占四位,标示协议的版本号:报头是i p v 6 版本时,该值为6 ; 报头是i p v 4 时,该值为4 。 流量类别:占1 字节,根据此项,发送节点和转发路由器可以识别 和分辨i p v 6 数据包的类别和优先级。 流标签:占2 0 位,发送节点可用此项来给数据报流贴上标签,以要 求i p v 6 路由器在转发时作特殊处理,比如实时处理或非默认处理等。 有效载荷长度:占1 6 位,为无符号整数,为i p v 6 的有效载荷长度, 即紧跟在当前i p v 6 报头后的所有数据( 不包括本i p v 6 报头的长度,但是 包括所有扩展报头和数据) 的长度。 下一个头标签:占8 位,为多选项,标示紧跟当前i p v 6 报头的报头 类型 跳数限制:占8 位,为无符号整数,流经每个转发数据包的节点时 都要减1 ,如果减到0 了,该数据包就被丢弃。 广东t 业大学下学硕士学位论文 源地址:占1 2 8 位,为数据包的原始发送者地址。 目的地址:占1 2 8 位,为数据包期望的接收者地址( 当带有路由扩展 报头时,期望的接收者不一定是最终接收者) 。 版本( 4 )溅爨类别( 8 )漉撅签( 2 0 ) 有效载衙长廑( 1 6 ) 下一个撤臻( 8 )跳磁勰( 8 ) 源脚6 熄墟0 2 8 ) 秘的i p v 6 壤琏( 1 2 8 ) 图2 1i p v 6 基本报头 f i g 2 - 1i p v 6b a s a lh e a d e r 2 1 1 2i p v 8 的扩展报头 i p v 6 用下一个报头字段和扩展报头取代了i p v 4 的协议域和选项域, 并使得基本报头简洁,路由器处理一般的报头更规范和有效率,添加新 的上层应用也更规范和灵活。 在i p v 6 报头和上层协议报头之间可以有一个或多个扩展报头,也可 以没有。每个扩展报头由前面报头的下一报头字段标识。除是逐跳选项 扩展头,非扩展报头只被i p v 6 报头的目的地址字段所标识的节点进行检 查或处理。 如果节点需要处理下一报头字段,但不能识别该字段的值,那么就 需要丢弃该数据包,并向数据包的发送源返回一条。i c m p v 6p a r a m e t e r p r o b l e m ”消息。 第二章n 6 相关协议 本课题实现的i p v 6 协议栈不支持扩展报头功能,因此不作具体介绍。 2 1 2i p v 6 的地址机制 2 1 2 1ip v 8 地址的表示方法 i p v 6 地址有1 2 8 位,由三个部分组成:全局路由前缀,子网i d 和接 口i d 全局路由前缀用来识别分配给一个站点的某个特殊地址( 比如多播) 或一个地址范围。予网i d 用来识别站点中的某个链路。接口i d 用来识 别链路上的某个接口,并且接口i d 在该链路上必须是唯一的。 l 、地址表示法 1 2 8 位的地址被分为8 个部分,每个部分是四个十六进制数,由冒号 分开例如; f e 8 0 :0 0 0 0 :0 0 0 0 :0 0 0 0 :0 2 0 2 :b 3 f f :f e i e :8 3 2 9 。 为了简单,有一些缩写规则:冒号分开的每部分开头的0 可以省略; 双冒号可以代替地址中连续的零,只不过只能出现一次例如上面的地 址可以分别表示成:f e 8 0 :0 :0 :0 :2 0 2 :b 3 f f :f e l e :8 3 2 9 ,或 f f 8 0 :2 0 2 :b 3 f f :f e l e :8 3 2 9 。 2 、前缀表示法 i p v 6 地址还可以使用前缀表示法,格式为:i p v 6 地址前缀长度。 格式前缀是一个i p 地址的高位,用来识别子网或某种特殊类型的地 址前缀长度规定了从左边开始有多少位是作为前缀的,这是表示子网 掩码的另一种方法。 已经分配的常用前缀有:本地链路单播地址f e 8 0 :1 0 ;多播地址 f f 0 0 :8 :全局单播地址0 0 1 ( 二进制前缀) 。这样单播地址和多播地址通 过前缀就可以区别了 2 2 2i p v 8 地址的类型 i p v 6 地址分为三类:单播、多播和任播。n m m ” 单播( u n ic a s t ) :单播地址可唯一确定某个i p v 6 节点的一个接口。 向一个单播地址发送的数据包将被发往由该地址确定的接口。 多播( m u l t i c a s t ) :一个多播地址确定一组i p v 6 接口。向一个多播 地址发送的数据包将被该多播组的所有成员处理,i p v 6 使用多播实现了 7 广东工业大学工学硕士学位论文 广播功能。 任播( a n y c a s t ) :一个任播地址被分配给多个接口,向一个任播地址 发送的数据包将只会发往这些接口中的一个接口,通常是距离最近的那 一个。本课题实现的i p v 6 协议栈不支持任播功能。 图2 2 显示了i p v 6 的地址分类结构。在单播地址、多播地址和任意 播地址中,每类地址都包含有一种或多种下一级类型的地址。单播有本 地链路、本地站点、可聚合全球、回环、未指定和i p v 4 兼容地址;多播 有指定地址和请求节点地址;任意播有可聚合全球、本地站点和本地链 路地址。 聚镰今球地缝2 0 0 l :1 6 。2 0 0 2 :1 6 螭点本魄地堆f o e 0 :1 0 链路本地地蛙f c s 0 :1 0 图2 - 2i p v 6 的地址类型 f i g 2 2a d d r e s st y p eo fi p v 6 2 2i c m p v 6 协议介绍 0 第二章i p v 6 相关协议 2 2 1i c m p v 6 介绍 2 2 t 1i c b p v 6 概述 i c m p v 6 是i p v 6 的i n t e r n e t 控制消息协议( i n t e r n e tc o n t r o l i e s s a g ep r o t o c o lv e r s i o n 6 i c m p v 6 ) ,由r f c 2 4 6 3 1 1 定义,其功能要 求每个i p v 6 节点上都要完全实现i c m p v 6 就像i c m p v 4 一样,能给出有 关网络健康的信息。i c m p v 6 还具有一些新功能,比如把管理组播组与i p v 4 关系的i n t e r n e t 组管理协议( i n t e r n e tg r o u pm a n a g e m e n tp r o t o c o li g m p ) 功能引入了i c m p v 6 ,即组播侦听者发现( m u l t i c a s tl is t e n e rd is c o v e r y , m l d ) ,再比如引入了邻居发现( n e i g h b o rd i s c o v e r y ,n d ) ,不但在i p 层 实现了原来i p v 4 中的第二层的a r p r a r p 功能,还能发现路由器、随时 跟踪哪些邻居是可连接的等。 i c m p v 6 消息可以封装,并作为i p v 6 数据包的有效负载发送,由于 i c m p v 6 消息携带在i p v 6 数据包中,因此不可靠。i c m p v 6 协议与在i p v 4 中定义的i c m p v 4 协议具有一样的策略和目的。只是其功能被修改,使之 更加适合i p v 6 。i c m p v 6 的报文分为两种类型:差错报文和信息消息。 表2 - i 给出了已定义的i c m p v 6 报文类型。 表2 - 1i c m p v 6 报文类型 t a b l e 2 it y p eo fi c m p v 6m e s s a g e 类型值 报文类垂 l 目的不可达( d e s t i n a t i o bu n r e a c h a b l e ) 差错报文 2 分组过大( p a c k e tt o ob i g ) 差错报文 3 超时( t i m ee x c e e d e d ) 差错报文 4 参数阃题( p a r a m e t e rp r o b l e r a ) 差错报文 1 2 8 回送请求( e c h or e q u e s t ) 报文 1 2 9回送应答( e c h or e p l y ) 报文 1 3 0 组成员查询( g r o u pm e m b e r s h i pq u e r y ) 1 3 l 组成员报告( g r o u pm e m b e r s h i pr e p o r t ) 1 3 2 组成员结束( g r o u pm e m b e r s h i pt e r m i n a t i o n ) 1 3 3 路由器请求( r o u t e rs 0 1 i c i t a t i o n ) 9 广东t 业大学t 学硕十学位论文 1 3 4 路由器公告( r o u t e ra d v e r t is e m e n t ) 1 3 5 邻居请求( n e i g h b o rs 0 1 i e i t a t i o n ) 1 3 6 邻居公告( n e i g h b o ra d v e r t i s e m e n t ) 1 3 7 重定向( r e d i r e c t ) 2 2 1 2l c m p v 8 报文的结构 i c m p v 6 报文要放入i p 包中发送。i c m p v 6 首部是通过它之前最近的 首部中的下一首部字段中对应的值为5 8 来识别的。i c m p v 6 报文格式如图 2 3 所示。 图2 - 3i c g p v 6 报文的结构 f i g 2 3s t r u c t u r eo fi c m p v 6m e s s a g e 类型:长度为8 位,表示i c m p v 6 报文的类型,在i c m p v 6 差错报文 中,此字段的最高位位0 :在i c m p v 6 信息报文中,此字段的最高位为1 0 代码:长度为8 位,区分某一给定类型报文中的多个不同报文,此 字段的长度为8 位对某一类型的第一个( 或只有一个) 报文,代码字段 的值为0 。 校验和:长度为1 6 位,存放i c m p v 6 报文的校验和。此字段的长度 为8 位。当计算校验和时,i p v 6 的伪包头被加到i c m p v 6 报文之前。 报文主体:包括i c m p v 6 报文专有( m e ss a g e - s p e c i f i c ) 的数据。 2 2 2i c m p v 6 差错报文 i c m p v 6 差错报文是路由器或目标节点发送的,用于报告在传送或转 发过程中出现的错误,包括表2 - l 中类型值为l 4 的4 种。 本课题的i p v 6 协议栈只实现类型值为l 的目的不可达报文,所以只 介绍这一种报文。 目标不可达报文由路由器或源主机在由于除业务流拥塞之外的原因 1 0 第二章i p v 6 相关协议 而无法转发一个包的时候产生,报文结构如图2 - 4 所示。 麓剽二代码f 8 i 。o 叫 控骏和( 1 6 ) 来甩宁段f 3 2 ) 数姑包梭爰旁部分l 币定) 图2 4 目的不可达报文的结构 f i g 2 - 4s t r u c t u r eo fd e s t i n a t i o nu n r e a c h a b l em e s s a g e 其中,这种错误报文的代码字段可以取五个值,包括: 0 :没有到达目的地的路由这个报文在路由器没有定义i p 包的目 的地路由时产生,路由器将用默认路由来发送无法利用路由器的路由表 进行转发的包。 1 :与目的地的通信被管理员禁止当被禁止的某类业务流欲到达防 火墙内部的一个主机时,包过滤防火墙将产生该报文。 2 :超出源站的地址范围目标节点地址不在源站地址的范围内。当 数据包被一个不在源地址范围内的网络接口转发时,路由器发送该类型 报文。 3 :地址不可达。这个代码指出在把高层地址解析到链路层( 网络) 地 址时遇到了一些问题,或者在目的地网络的链路层上去往其目的地时遇 到了问题 4 :端口不可达。这种情况发生在高层协议( 如u d p ) 没有侦听包的目 的端口的业务量,且传输层协议又没有其他办法把这个问题通知源节点 时 2 2 3i c m p v 6 信息报文 信息报文m 1 提供诊断功能和附加的主机功能,比如多播侦听发现 ( m l d ) 和邻接点发现( n d ) 在所有的i c m p v 6 信息报文中,8 位类型字 段中的最高为都为i 。因此对于i c m p v 6 信息报文的类型字段,其有效的 范围就是1 2 8 2 5 5 。 r f c 2 4 6 3 中定义的i c m p v 6 信息报文类型有很多种,可参见表2 一l 。 广东工业大学t 学硕十学位论文 其中,回送请求报文( e c h or e q u e s t ) 和回送应答报文( e c h or e p l y ) 提供了简单的诊断功能,来协助发现和处理故障。其他的i c m p v 6 报文信 息在邻接点发现和多播侦听发现中使用。 l 、回送请求报文 i c m p v 6 回送请求报文用于发送到目的节点,以请求目标节点立即发 送一个回送应答报文,该机之提供了一个简单的诊断工具来协助发现和 处理各种到达性问题和路由问题。回送请求报文如图2 5 所示。 剿1 刮0 2 3代码( 8 ) l 棱验和( 1 6 ) 喜i :派符( 1 6 ) 序残号( 1 6 ) 数据不定) 图2 - 5 回送请求报文格式n “ f i g 2 5s t r u c t u r eo fe c h or e q u e s tm e s s a g e 2 、回送应答报文 i c m p v 6 回送应答报文用于响应收到的i c m p v 6 请求报文。结构见图 2 6 所示。 剿i 爿 0 剪 代码( 8 ) l 梭验霜1 6 ) 拓 飒祷( 1 6 ) 序纠号( 1 6 ) 数攘 书定) 图2 - 6 回送应答报文格式“” f i g 2 - 6s t r u c t u r eo fe c h or e p l ym e s s a g e 2 3 邻居发现协议 第二章i p v 6 相关协议 2 3 1 邻居发现协议概述 邻居发现( n e i g h b o rd is c o v e r y ,n d ) 协议是i p v 6 基本协议栈中的核 心协议,利用邻居发现功能,系统可以找到该链路上的其它主机和路由 器。i e t f 最早的关于邻居发现协议的定义是在r f c l 9 7 0 中给出,后来又 在r f c 2 4 6 1 中进行了改进和完善。i p v 6 的邻居发现协议从某种意义上说, 是i p v 4 协议簇中某些协议综合起来的升级和改进,包括地址解析协议、 i c m p 中的路由器发现协议、i c m p 重定向消息等,它在i p 层进行地址解 析,所以可以与媒介相对独立,而且可能应用i p 的认证和安全机制。, 链路上的节点( 主机和路由器,h o s t sa n dr o u t e r s ) 通过邻居发现协 议确定邻居的链路层地址( s a c ) 并及时清除己经失效的地址;主机通过邻 居发现找到邻近的可以为它转发数据包的路由器;最后,节点通过此协 议及时跟踪哪些邻居可达,哪些不可达,检测变化的链路层地址。 邻居发现协议由5 个i c m p v 6 报文组成;一对邻居请求邻居宣告报 文、一对路由器请求路由器宣告报文、一个i c m p 重定向报文。本课题 的i p v 6 协议栈只实现了邻居请求邻居宣告报文 2 3 2 邻居请求和邻居宣告 2 3 2 t 邻居请求和邻居宣告概述 在i p v 4 中由地址解决协议( a r p ,r a r p ) 来处理链路层地址的解析, 以及邻居不可达性检测机制而i p v 6 中则是通过邻居请求和邻居宣告来 完成这两项功能:如果目的地址是一个多播地址,那么源地址正在解析 一个链路层地址;如果源地址正在检测一个邻居的可达性,那么目的地 址就是一个单播地址此外,该报文也可以用于重复i p 地址检测 邻居请求报文是链路中的一个网络节点主机通过多点传送向链路上 的相邻网络节点发出,用来要求特定的目的节点返回其链路层地址。而 邻居宣告报文则是作为对邻居请求报文的应答或者为了快速传播新的消 息而发出的,通过单播邻居宣告报文发送其链路层地址以响应请求主机。 邻居请求和邻居宣告报文的相互配合使用可以完全实现地址解析机制, 以及地址的重复检测。 广东工业大学丁学硕士学位论文 2 3 2 2 邻居请求报文 邻居请求( n e i g h b o rs o l i c i t a t io n ) 报文用来实现地址重复性探测, 请求目标节点的链路层地址,也将自己的链路层地址提供给目标。当节 点需要地址重复性探测和解析链路地址时,发送多播邻居节点请求报文。 邻居请求报文格式如图2 - 7 所示。 图2 7 邻居请求报文格式 f i g 2 - 7s t r u c t u r eo fn e i g h b o rs o l i c i t a t i o nm e s s a g e 在邻居请求报文中,类型取值为1 3 5 ,代码取值为0 ,目标地址为请 求目标的i p 地址。选项为发送者的链路层地址,当源i p 地址是未指明 的地址时,不应包括此选项 邻居请求报文是封装在i p v 6 报文中的,在i p 报头域中源地址或者 是分配给发送信息接口的地址,或者是未指定的地址( 全0 ) 目的地址或 者是目标地址对应的组播地址,或者是目标地址。跳数限制为2 5 5 ,下一 报头为5 8 ( i c m p v 6 的头) 。 2 3 2 3 邻居宣告报文 节点在收到邻居请求消息或者其链路层地址改变时,发送邻居宣告 ( n e i g h b o ra d v e r t i s e m e n t ) 消息告知自己的链路层地址。邻居宣告报文 格式如图2 - 8 所示。 邻居宣告的报文格式与邻居请求的报文格式相似,不同点在于从保 留域中分离出3 位( r ,s ,0 ) 作为标识,其中r 为路由标志,当设置时, 表明发送者是路由器;s 为请求标志,当设置时,表明发送了邻居请求的 回复;0 为强制标志,当设置时,宣告将强行更新已存在的高速缓存记录 1 4 第二章1 p v 6 相关协议 中的链路层地址。 图2 - 8 邻居宣告报文格式 f i g 2 gs t r u c t u r eo fn e i g h b o ra d v e r t i s e m e n tm e s s a g e 在邻居宣告报文中,类型取值为1 3 6 ,代码取值为1 3 6 。目标地址与 邻居请求报文中的值相同。选项表明了发送宣告节点的链路层地址。 邻居宣告的报文也是封装在i p v 6 报文中的,在i p v 6 报文头中目的 地址和源地址不同于邻居请求报文。目的地址为发送邻居请求报文源地 址,源地址为本机i p 地址。 2 3 2 4 选项格式 在邻居发现协议中一共定义了4 种选项:源目的链路地址、前缀、 重定向、m t u 。其中前缀和m t u 选项是在路由宣告报文中使用的,而重定 向选项出现在重定向报文中。源目的链路地址在邻居请求和邻居宣告时 使用 源目的链路地址选项域,用来存放链路层地址,选项报文中包括三 个域:类型( t y p e ) 、长度( l e n g t h ) 和链路地址。其中t y p e 若为l 表明为 源链路层地址,为2 则表明为目标链路层地址因此,在邻居请求报文 中t y p e 值为1 ,而在邻居宣告报文中t y p e 值为2 。l e n g t h 为选项的长度, 包括类型和长度域。在邻居请求和邻居宣告报文中的取值应该为8 b y t e 。 2 3 3 地址解析 i p v 6 节点的地址解析过程是通过邻节点请求报文和邻节点公告报文 广东工业大学工学硕士学位论文 的交互,来解析给定目标的链路上下一跳地址的链路层地址。发送主机 在适当的接口上发送多播邻节点请求报文。邻节点请求报文的多播地址 是从目标i p 地址得到的请求节点的多播地址。邻节点请求报文中包含了 在源链路层地址选项中的发送主机的链路层地址。当目标主机收到邻节 点请求报文后,会根据邻节点请求报文中的源地址和源链路层地址选项 中的链路层地址,来更新它t l 己的邻居缓存表。接着。目标节点向邻节 点请求报文的发送方发送一个单播邻节点公告报文。邻节点公告报文中 包含目标链路层地址选项n ”。 地址解析的工作原理如图2 - 9 所示,节点a 解析节点b 的m a c 地址 按照1 “4 的步骤进行。 节点al 本瓣蕊嚣淼恐。a 奉地淼黜i m i 节船奉地链路l p 两地墟lf e ( 强:l :o :o :i :bi 一 l c m p v 6 党璎1 3 5 ( 骺继请求) 灏地址:托c o :i :o :o :l :a i | 豹地址:盼眈:i :f f 0 l :bf 槛请求节点澎摇地城j 数姑:0 0 :5 0 :3 c :她4 c :o o ( 节点a 的链路聪蟪址) 滁链路按地址 o d :5 0 :3 e :0 4 :4 e :0 0 目的链辫堪媲域:3 3 :3 3 :f f :0 l :0 0 :o b i c m p v 6 类型1 3 6 ( 髑错通告) 滁媲垃lf 耻:l :o :o :i :b 曰豹地境# h i c o :l :o :o :i a 数姑l0 0 :5 0 :3 c :0 4 :4 1 r 0 1 ( 带点b 的链黯瑶地址) 源链潞屡地坻 :5 0 :3 c :科:4 b :o l 目的链黯屡地理:触:。4 m :0 0 2 3 4 不可达检测 图2 - 9 地址解析过程 f i g 2 - 9c o u r s eo fa d d r e s sr e s o l u t i o n 邻居不可达性检测又称为黑洞检测,目的是为了获得某些节点不可 到达的相关信息,从而必须要重新进行路由器和主机解析。邻居不可达 检测适用的路径,包括h o s t - t o - h o s t ,h o s t - t o - r o u t e r ,r o u t o r t o h o s t 。 邻居不可达检测是主机定期发送邻居请求消息以确定希望与之通信 的对端节点是否还存在,若对方发生硬件故障或更换物理地址,则对端 1 6 第二章i p v 6 相关协议 节点不发送邻居宣告消息,此时认为邻居不可达。 2 4 无状态地址自动配置 2 4 1 地址自动配置概述 地址自动配置被设计为确保在把主机连接到网络之前不需要进行手 动配置,从而使网络节点可以自动地获得i p 地址。网络节点i p 地址的 自动配置一般有两种形式:无状态和有状态 其中有状态的地址自动配置主要是指动态主机配置协议( d h c p ) ,对 于i p v 6 来说,就是d h c p v 6 协议其作用是用于向位于客户端的网络节 点主机提供服务器上存储的配置信息,这种信息以地址方面的信息为主, 也涉及一些参数。i p v 6 的无状态地址自动配置( s t a t e l e s sa d d r e s sa u t o c o n f i g u r a t i o n ) 由r f c 2 4 6 2 ( i p v 6 无状态地址自动配置) 给出,该r f c 的 修改是对原规范r f c l 9 7 1 的澄清或细化,例如对潜在的路由器否认服务 攻击的处理方法等。u m 2 4 2 地址重复检测 在使用自动配置的地址之前,节点必须先验证起始地址在本地链路 中的唯一性,即节点必须
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客户停送电管理制度
- 宣传部统一管理制度
- 家具送货单管理制度
- 个人学习远程培训总结-1
- 彩钢厂安全管理制度
- 循环水使用管理制度
- 心理检测科管理制度
- 快递员业务管理制度
- 总分包安全管理制度
- 总裁班培训管理制度
- 《2025年拍卖师职业资格考试核心考点预测》
- 2025年全国低压电工作业证(复审)考试练习题库(600题)附答案
- 混凝土预制构件项目可行性研究报告参考范文
- 2025漳浦县国企招聘考试题目及答案
- 知识产权相关的国际法的试题及答案
- 低压电工复审培训
- 钢结构墙板拆除施工方案
- 2025年养老护理员专业知识测试卷:养老护理员护理技能操作试题集
- 新能源汽车充电系统故障诊断与维修技术研究
- 护理典型案例分享
- VDA6.3-2023版培训教材课件
评论
0/150
提交评论