




已阅读5页,还剩72页未读, 继续免费阅读
(计算机应用技术专业论文)移植ipv6至嵌入式系统的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南交通大学硕士研究生学位论文第l 页 摘要 随着2 4 小时在线网络变得越来越流行,不光是普通的个人电脑要和因特网 相连,各种嵌入式设备,比如传感器,家用设备、音视频设备等都要和因特网 相连。为了把无数的设备接入因特网,我们需要大量的p 地址,为此我们引入 了i p v 6 一新一代网络技术。嵌入式设备作为后p c 时代和后网络时代的新秀, 其专用于网络模块的硬件资源很有限,要在这些设备上实现i p v 6 规范所有的功 能是很困难的,并且设备五花八门,功能各异,因此为它们量身定制i p v 6 成为 很自然的要求。 本论文在分析了i p v 6 的基本特点后,在基于三星公司的删7s 3 c 4 5 l o b 型网络处理器和风河公司的嵌入式实时操作系统v x w o r k s 之上移植了开放源代 码的l 谢p 协议,并作了相应的测试。 论文首先介绍了i p v 6 协议,包括i p v 4 的缺点、i p v 4 升级到i p v 6 的进步性, i p v 6 报头和扩展报头以及地址体系结构、i c m p v 6 协议,邻居发现协议和嵌入 式设备上实现网络协议的草案;接着介绍了基于s 3 c 4 5 1 0 b 网络处理器的硬件 平台以及使用中的关键技术即特殊功能寄存器的配置和避免假写f l a s h 的方法; 然后介绍了v x w o r k s 的开发环境t o m a d o ,v x w j r k s 的启动过程并编写了移植 v x w o r k s 嵌入式操作系统所需的b s p 。论文的重点放在了协议的移植上。这 部分首先分析了v x w b r k s 的m u x 接口的特点和其n e t b u n i b 网络专用存储池的 使用方法,然后分析了l w i p 的操作系统接口、网络底层接口、存储和缓冲管理 机制,编写了操作系统接口和协议层驱动代码,并搭建了一个简单的i p v 6 网络 测试平台,对移植后的协议进行了相应的测试。 本论文最后总结了移植i p v 6 协议到嵌入式系统上所做的工作,并对未来的 研究作了展望。 关键词移植;1 p v 6 :l 诵p ;v x 聃r o r k s :a r m 7 西南交通大学硕士研究生学位论文第1 页 第1 章绪论 在日常生活中,人们随身携带手机、 公共场合,人们使用电梯、自动售货机、 车,飞机等;在家里,人们使用电磁炉, 有这些,都带有一个或多个嵌入式设备。 m p 3 、m p 4 、p d a 、数码相机等;在 自动取款机等;出行时,人们乘坐汽 冰箱,机顶盒,s o h o 路由器等。所 嵌入式设备其实很早就用在了工业控制领域中。它的使用范围很广,综合 起来主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软 件等部分组成,用于实现对其它设备的控制、监视和管理等功能。嵌入式系统 以应用为中心,以计算机技术为基础,软件硬件可剪裁,对功能、可靠性、成 本、体积、功耗有严格要求,属专用计算机系统。 嵌入式技术的发展大致经历了四个阶段,第一阶段是以单芯片为核心的可 编程控制器系统;第二阶段是以嵌入式c p u 为基础、以简单操作系统为核心的 嵌入式系统;第三阶段是以嵌入式操作系统为标志的嵌入式系统;第四阶段是 以i n t e m e t 为标志的嵌入式系统。嵌入式系统的核心部件是各种类型的嵌入式处 理器。嵌入式系统软件经历了两个发展阶段,一是主要以汇编语言编制成的软 件,二是嵌入式实时操作系统r t o s 。而以v x w 断k s 、n u c l e u s 、w i n d o w sc e 等 为代表的嵌入式实时操作系统现在已在嵌入式系统中占据了主流软件的地位。 继p c 产业之后,嵌入式系统领域成为另一波潮流,也由于网络与通信的快 速进步,带动了信息家电的潮流,嵌入式系统产品原本就无处不在,现在更直 指人心【lj ,成为不可或缺的生活必需品。针对嵌入式系统方面的研究和开发成 了个技术热点。 1 1 本论文的研究背景和国内外现状 1 1 1 研究背景 随着互联网技术成熟地应用于各领域,具有网络通信功能常常成了嵌入式 设备的一个卖点。网络“无处不在,无时不在”的口号总让人们浮想联翩。p c 的普及,已经改变了人们的工作方式。i n t e m e t 的推广和普及,已经改变了人们 的生活、教育、娱乐和通信等方式。但是这些和“无处不在,无时不在”还是 存在很大的差别。在后p c 时代,具有通信功能的嵌入式设备将可能实现人们的 这个愿望,并实现微软公司专家对二十一世纪的无缝计算的设想。 西南交通大学硕士研究生学位论文第3 页 中采用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 4 发展而来,它有许多新的特点,包括足够大的地址空间、 更高的安全性等。移动i p v 6 在协议中定义了移动节点、通信节点和本地代理三 种操作实体。当移动节点离开本地链路时,可利用i p v 6 的增强功能( 如地址自 动配置) 得到转交地址。转交地址是在移动节点访问外地链路时获得的i p 地址, 它的子网前缀就是所访问的外地链路的子网前缀。移动节点的本地代理得到转 交地址后,使用i p v 6 的“邻居发现”机制获得发往移动节点的数据包。它在本 地链路上广播邻居信息,接收到这个信息的其他节点就要修改自己的邻居缓存, 使移动节点的转交地址与本地代理的链路层地址相关联,发往移动节点的数据 包可直接被转移到移动节点上,不再发往移动节点的本地代理,因此,可以减 轻网络的负担,也解决了i p v 4 协议中存在的路由迂回问题。 网络家电是将普通家用电器利用数字技术、网络技术以及智能控制技术设 计改进的新型家电产品。网络家电可以实现互联组成一个家庭内部网络,同时 这个家庭网络又可以与外部互联网相连接。 总之,针对i p v 6 的网络建设和应用开发等研究,还停留在基础阶段。 1 2 本论文的研究意义 本论文的研究工作是,在探讨i p v 6 技术原理之后,搭建由一款a r m 7 网络 处理器和v x w j r k s 嵌入式操作系统组成的软硬件开发平台,再在后者的m u x 层之上移植开源网络协议l 谢p 。研究这些的意义如下: 1 、研究i p v 6 技术原理并探讨在嵌入式设备上实现i p v 6 的基本要求:这是 针对把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 的实现也是弹性的,为此,针 对各种嵌入式设备的不同功能需求来实现相应的聊6 功能,同时保证可以和其 他支持i p v 6 的设备通信,成了嵌入式设备上实现i p v 6 的特点和主要研究点。 2 搭建a r m 7 硬件平台:本设计采用的s 3 c 4 5 1 0 b ,是三星公司的一款 3 2 位字长的a r m 7 t d m i 型网络处理器1 4 j 。目前,虽然8 位单片机在嵌入式领 域还有着极其广泛的应用,3 2 位、6 4 位的微处理器逐渐将成为嵌入式设备的核 心,在未来几年内必将获得很大的发展。3 2 位处理器的处理速度和对嵌入式操 作系统的支持等,适应了嵌入式系统技术发展的要求,为在嵌入式设备上实现 西南交通大学硕士研究生学位论文第6 页 第2 章i p v 6 技术原理 2 。1 从l p v 4 升级到i p v 6 当前的因特网以及所有公司网络和私有内部网络都是用i p v 4 。未来网络需 要一些新的特性,而i p v 4 没有提供这些特性。2 0 世纪9 0 年代初,因特网工程 任务组( i n t e m df n 矛n e 甜n gt 砒f o r c e ,1 e t f 【3 | ) 发起并开始研究了卜一代网络协 议( n e 州g e n e r a t i o n 工n 把m c tp r o t o c 0 1 ,l p “g 一即i p v 6 。 2 1 1i p v 6 的诞生背景 传统的互联网在i p v 4 协议的基础上经历了长时间的发展后,暴露了很多缺 点。i p v 4 也做了些修修补补,但是其本身的一些特性,髓着互联网应用的发展, 越来越成为其不足。这些不足主要有以下几个方面f 2 : 1 1 地址严重匮乏 i p v 4 协议中每一个网络接口由长度为3 2 位的i p 地址标识,这决定了i p v 4 的地址空间在理论上大约可以容纳4 3 亿台丰机,这地蛆l 卒间难以满足未来移 动设备和消费类电子设备对l p 地址的巨大需求。暂时的解决方法是采用无类型 编址和无类别域闻选路( c i d r ) 和网络地址转换( n a t ) 技术,但是给基于i p 的网 络增加了复杂性,并破坏了i p 协泌的端到端的核心特性,小能从根本上解决i p v 4 面临的困难。 2 ) 路由选择效率不高 i p v 4 的地址由网络号( n e t i d ) 和主机号( 1 l o s d ) 两部分组成,形成层次型的路 由结构。子网和c i d r 的引入提高了路由层次结构的灵活性。实际发展中,i p v 4 地址的层次结构缺乏统一的分配和管理,并且多数i p 地址空阳j 的拓扑结构只有 两层或三层,这导致主干路由器中存在大量的路由表项。庞大的路由表大大增 加了路由查找和存储的扦销,成了目前影响提高互联网效率的一个瓶颈。同时, i p v 4 数据包的报头长度不固定,难于利用硬件来提取和分析路由信息,这不利 于进一步提高路由器的数据吞吐孝。 3 ) 缺乏服务质量( q o s ) 保证 i p v 4 遵循“尽力而为”( b e s te f r o r t ) 的原则,对互联网上的新业务类型缺乏 有效的支持,比如实时和多媒体的应用。这些应用要求有一定的服务质量作保 证,如带宽、延迟和抖动。 4 ) 安全性不成功 4 ) 安全性不成功 西南交通大学硕士研究生学位论文第7 页 早期人们都认为安全性不是网络层的任务,对数据的加密、数字签名、密 钥交换、认证等都放在了更高层中去实现。这样网络层数据报仍会泄露参与处 理的进程和系统的信息。为此出现了微软的点到点隧道协议( p p t p ) ,s s l 等, 但是因为没有统一的标准,在实际应用中并不成功o 5 ) 其他问题 如配置复杂,必须手动配置或用有状态的主机配置协议( d h c p ) ,对移动性 支持不好,很难开展端到端的业务等。 所有这些不足,已经成为了制约互联网发展的重要因数。i p v 6 的引入才能 彻底解决这些问题。 2 1 2i p v 6 的新特性 从i p v 4 到i p v 6 的主要变化概括如下1 6 】: 1 地址空间增大并更具层次性 i p v 6 的地址大小增加到1 2 8 位,可容纳2 的1 2 8 次方个网络接口。这解决 了i p v 4 地址空间有限的问题。i p v 6 支持更多级别的地址层次,并采用了层次化 的地址结构,有利于骨干路由器对数据包的快速转发。 2 即插即用的配置方式 i p v 6 在继承口v 4 的动态主机配置协议( d y n a n l i c h o s t c o n 矗g u r a t i o n p r o t o c o l , d h c p ) 的基础上,发展成全状态自动配置( s t a t e 向la u t o c o 蓝g u r a i i o n ) ,并新 加了无状态自动配置。无状态自动配置无须手动干预就能够改变网络中所有主 机的i p 地址,方便了网络管理、新用户接入和移动环境下的临时网络建设。 3 转发效率高和扩展灵活 i p v 6 的报头有一个基本报头和若干个扩展报头组成。基本报头固定为4 0 字节,由8 个域和两个1 6 字节的i p 地址组成,相对与i p v 4 的报头有1 5 个域 来讲,路由器处理i p v 6 报头更为轻松。i p v 6 支持多种扩展报头,能灵活地针对 种类繁多并不断变化的应用提供强有力的支持。 4 身份认证和私密性的扩展 i e t f 研制的保护i p 通信的i p 安全( i p s e c ) 协议,在i p v 4 中是一个可选 扩展协议,但是在i p v 6 中是一个必要组成部分。i p s e c 是一个网络层协议,主 要功能是在网络层对数据分组提供加密和鉴别等安全服务,它提供认证和加密 两种安全机制。 5 流标签功能 i p v 6 下,数据包如果属于同一传输流,且需要特别处理或需要服务质量, 可以由发送者进行标记。该特性的典型应用是实时服务。 此外,i p v 6 还引入了一种新的地址类型,叫做a n ”a s t ( 任播) 地址,可以 西南交通大学硕士研究生学位论文第8 页 向工作组中最近的单个成员发送消息。 2 2l p v 6 报头的结构 r f c 2 4 6 0 m 定义了i p v 6 数据包的报头结构,由一个基本报头和多个扩展报 头组成。 2 2 1 基本报头结构 i p v 6 基本报头格式如图2 1 所示,固定为4 0 字节长。源地址和目的地址各 占1 6 字节,剩下只有8 字节用来装报头信息,其中: o34 1 1 1 21 51 62 32 43 l 版本流量类别 流标签 有效载荷长度 下一报头 跳数限制 源地址( 1 6 字节) 目的地址( 1 6 字节) 图2 1 基本报头格式 版本:占四位,标示协议的版本号:报头是i p v 6 版本时,该值为6 ;报头 是i p v 4 时,该值为4 。 流量类别:占l 字节,根据此项,发送节点和转发路由器可以识别和分辨 i p v 6 数据包的类别和优先级。它取代了i p “的服务类型( t y p eo f s e r v i c e ) 。 流标签:占2 0 位,发送节点可用此项来给数据报流贴上标签,以要求1 p v 6 路由器在转发时作特殊处理,比如实时处理或非默认处理等。流是从某一数据 源发往某一目的地( 单一节点或组播的多节点) 的数据系列,所有路过的路由器都 被期望对该数据系列做特殊处理。 有效载荷长度:占1 6 位,为无符号整数,为i p v 6 的有效载荷长度,即紧 跟在当前i p v 6 报头后的所有数据( 不包括本口v 6 报头的长度,但是包括所有 扩展报头和数据) 的长度。它与i p v 4 的总长只有微小的差别,就是它不包括基 本报头的长度。 下一个头标:占8 位,为多选项,标示紧跟当前i p v 6 报头的报头类型。报 头类型的值和i p v 4 协议域【1 7 0 0 】规定的一致。它是f p v 4 报头中协议域和选 项域功能综合起来的改进。 西南交通大学硕士研究生学位论文第9 页 跳数限制:占8 位,为无符号整数,流经每个转发数据包的节点时都要减1 , 如果减到o 了,该数据包就被丢弃。它取代了i p v 4 下的生命期t t l ( t i m et o l i v e ) 。 源地址:占1 2 8 位,为数据包的原始发送者的地址。 目的地址:占1 2 8 位,为数据包期望的接收者的地址( 当带有路由扩展报头 时,期望的接收者不一定是最终接受者) 【6 j 。 i p v 6 去除了i p v 4 报头中的报头长度【6 j 、标识、标志、段偏移量和报头校验 和等五个字段。i p v 6 下,数据包在传输路径上不会进行分段。发送数据的主机 在发送开始发送数据到某一目的地时,会通过一个路径m t u 发现( p a mm t u d i s c o v e r y ) 的过程来了解路径最大传输单元( m a ) ( i m 啪t r a l l s m i s s i o n u n i t ,m t u ) 的大小。然后主机根据这些m t u 来发送包。如果主机实在要大于m t u 的数据 包并且必须分段的话,得采用扩展报头的方法。这就是为什么i p v 4 下与分段有 关的标识、标志和段偏移量都给去掉了。位于i p 层之上的传输层有一个校验和 字段,位于i p 层之下的链路层也有校验和的字段,所以i p v 6 在考虑到提高处 理速度上,去掉了i p 层的报头校验和,这样没检测到的错误或错误路由的数据 包所引起的风险最小。 同时,i p v 6 报头长度固定为4 0 字节,所以不需要报头长度一段;i p v 4 中 的报头长度因为一些可以有选项而递增,所以处理报头时需要知道报头的总长 度信息。i p v 6 下,选项都由扩展报头来实现。 2 2 2i p v 6 的扩展报头 i p v 6 用下一个报头和扩展报头取代了i p v 4 的协议域和选项域,并使得基本 报头简洁,路由器处理一般的报头更规范和有效率,添加新的上层应用也更规 范和灵活。 在口v 6 报头和上层协议报头之间可以有一个或多个扩展报头,也可以没有。 每个扩展报头由前面报头的下一报头字段标识。扩展报头只被i p v 6 报头的目的 地址字段所标识的节点进行检查或处理,除非扩展报头是逐跳选项扩展头。扩 展报头如果是逐跳选项扩展头,则其承载的信息必须被数据包经过路径上的每 个节点检查和处理。逐跳选项扩展头必须紧跟在i p v 6 报头之后,i p v 6 报头的下 报头字段用0 来表示这类报头。 如果节点需要处理下一报头字段,但不能识别该字段的值,那么就需要丢 弃该数据包,并向数据包的发送源返回一条“i c m p v 6 p 盯姗e t e r p r o b i e m ”消息。 r f c 2 4 6 0 定义了以下六个扩展报头: 逐挑选项扩展头:下一报头号= 0 :该扩展头携带着必须由数据包经过路径 上的每个节点进行检查的可选信息。它必须紧跟在i p v 6 报头后面。逐跳选择 西南交通大学硕士研究生学位论文第1 0 页 选项目前定义了两种一巨型有效载荷选项和路由器警报选项。路由器选项的作 用是让路由器提供特殊的处理,以减少检查上层协议所带来的开销;巨型有效 载荷选项的作用是当路径m t u 可以支持大于6 5 ,5 3 5 的有效载荷时,可以使用 此选项来传输最大不超过4 ,2 9 4 ,9 6 7 ,2 9 6 字节的巨报。 目的地选项报头:下一报头号= 6 0 ;该扩展头可以用来携带由目的地节点 处理的选项。 路由报头:下一报头号= 4 3 ;源节点用该扩展头来指定数据包从源地址到 目的地址之间将要访问的一个或多个中间节点;包括严格源指定路由和松散源 指定路由两种。 分段报头:下一报头号= 4 4 ;该扩展头包含标识、标志位和分段偏移字段, 用于数据包在源节点处分段和最终目的节点上重新组装。 认证报头:下一报头号= 5 1 ;该扩展头提供数据完整性、数据源身份验证 和某些可选的有限防重播服务。 封装安全载荷报头:下一报头号= 5 0 ;该扩展头提供机密性、数据源身份 验证、防重播和数据完整性等安全服务。 当一个数据包中同时使用两个以上的扩晨报头时,扩展报头之间的先后顺 序建议按如下排列: i p v 6 报头 逐跳选项报头 目的地选项报头( 注1 ) 路由报头 分段报头 认证报头 封装安全载荷报头 目的地选项报头( 注2 ) 上层报头 注1 由i p v 6 报头目的地址域中的第一个目的节点和路由报头中列出的目 的节点都处理的选项 注2 只由数据包最终目的节点处理的选项 i p v 6 中可以嵌套封装另一个i p v 6 报头,后者的扩展报头还是建议采用上面 的顺序排列。 r f c 2 4 6 0 中展示了i p v 6 的扩展报头的使用方式,如图2 2 所示。 i p v 6 基本报头和i p v 4 报头的比较可总结成图2 3 。 西南交通大学硕士研究生学位论文第11 页 i p v 6 报头下一t c p 报头 l 报头t c p = 6 和数据 i p v 6 报头下一路由扩展报头t c p 报头 f 报头路由= 4 3下一头t c p = 6和数据 i p v 6 报头下一路由扩展报头 分段片扩展报头t c p 报头 l 报头路由= 4 3下一头分段= 4 4下一头t c p = 6和数据 图2 2 扩展报头的使用 i p v 6 基本报头i p v 4 报头 版本字段= 6 版本字段= 4 流量类别字段,还有标识 服务类型字段 实时数据流的流标签字段 有效载荷长度字段 头部长度字段和总长度 字段 在分段扩展头中包含标分段重装用的标识、标志 识、标志位和分段偏移字段 位和分段偏移字段 跳数限制字段最大生存时间 无校验和字段校验和字段 源和目的地址各1 2 8 位 源和目的地址各3 2 位 不含选项,选项根据功能包含选项 和处理主体不同分别纳入到 逐跳选项、路由和目的地选项 等扩展头中 图2 3i p v 6 基本报头和i p v 4 报头对照 2 。3l p v 6 的寻址体系结构 r f c 2 3 7 3 8 1 定义了i p v 6 的寻址体系结构。i p v 6 采用1 2 8 位地址,并提供深 层次的编址层级,相对于i p v 4 的地址结构而言,提高了地址空间大小和路由转 发速度。 西南交通大学硕士研究生学位论文第1 3 页 2 3 3 地址表示方法 2 3 3 1 地址的文本表示 用文本串表示的i p 、r 6 地址有三种规范形式 6 】: ( 1 ) 优先选用的形式为x :x :x :x :x :x :x :x ,其中8 个x ,是8 个16 位 地址段的十六进制值。 例如: f e d c :b a 9 8 :7 6 5 4 :3 2 l o :f e d c :b a 9 8 :7 6 5 4 :3 2 1 0 2 0 8 0 :0 :0 :o :8 :8 0 0 :2 0 0 c :4 1 7 a 个别字段中前面的o 可以不写,但是每段必须至少有一位数字( ( 2 ) 中描述 的情形除外) 。 ( 2 ) 有时i p v6 地址包含长串0 位,为了简化包含0 位地址的书写,指定 了一个特殊的语法来压缩o 。使用“:”符号指示有多个0 值的1 6 位组。“:” 符号在一个地址中只能出现一次。 比如下面的例子: 208o :o :o :o :8 :800 :20o c f fol :o :o :0 :o :0 :o :lol 0 :o :o :0 :o :0 :o :1 o :o :0 :o :o :o :o :o 可用下面的压缩格式表示: 2o80 :8 :80o :20o c :417 a f f01 :1o1 :1 417 a 单播地址 组播地址 回返地址 未指定地址 单播地址 组播地址 回返地址 未指定地址 3 ) 当i p v 6 和i p v 4 节点同时存在时,i p v 6 地址可以采用另一种表示形式: x :x :x :x :x :x :d d d d ,其中x 是地址中6 个高阶1 6 位段的十六进制 值,d 是地址中4 个低价8 位段的十进制值( 标准i p v 4 表示) 。比如: 0 :o :0 :o :0 :o :1 9 2 1 6 8 0 1 8 可以写成压缩形式为:1 9 2 1 6 8 o 1 8( 当然也可以写成:c o a 8 :1 2 ) 2 3 3 2 地址前缀的文本表示 地址前缀用来识别子网或某种特殊类型的地址,常被路由器用于转发。 i p v 6 地址前缀的表示方式和i p v 4 地址前缀在c i d r 中的表示方式很相似。 个i p v 6 地址前缀可以表示为: 西南交通大学硕士研究生学位论文第1 4 页 i p v 6 地址前缀长度 其中,i p v 6 地址是前面表示的任何形式的i p v 6 地址。而前缀长度是组成前 缀的十进制值,说明地址最左边的连续的地址位的长度。 例如,6 0 位长的前缀l2a bo0oooo oogd3 ( 十六进制) 可用下面的合 法格式来表示: 1 2 a b :0 0 0 0 :o 0 0 0 :c d 3 0 :o o o o :o 0 0 0 :o o o o :o o o o ,6 0 也可以表示为 1 2 a b :c d 3 0 :o :0 :o :0 6 0 或1 2 a b :o :o :c d 3 0 :,6 0 当同时书写节点地址和它的子网前缀时,可以组合成如下表示: 节点地址:1 2 a b :0 :o :c d 3 0 :1 2 3 :4 5 6 7 :8 9 a i b :c d e f 和它的子网号:1 2 a b :o :o :c d 3 0 :6 0 可以缩写成为:1 2 a b :o :o :c d 3 0 :1 2 3 :4 5 6 7 :8 9 a b :c d e f 6 0 2 3 3 。3 地址类型表示 一个i p v 6 地址的具体类型是由地址的前面几位来指定的。包含这前面几位 的可变长度字段称为格式前缀( f p ) 。这些前缀的初始分配如表2 1 所示: 表2 1i p v 6 地址前缀的初始分配 分配 前缀( 二进制) 占地址空间的百分率 保留 0 0 0 0 0 0 0 0l 25 6 未分配o o o oo 0 0 1 l 256 为ns a p 地址保留 0 0 0 00 0 l1 128 来分配0 0 0 00 1 ll 12 8 未分配 o o o o1l 32 未分配 o 0 0 11 l6 可集聚全球单播地址 0 0 l1 8 未分配 0 1 0 ,0 1 1 1 0 0 ,1 0 1 1l o 各占l 8 未分配 1 1 1 0l l6 未分配 1 1 1 10l 32 未分配 l l l l1 0l 64 未分配 1 1 l l1 1 01 l28 未分配 1 1 1 1l l l ool 5 12 链路本地单播地址 1 1 1 l1 1 1 01 0l ,10 24 站点本地单播地址 1 1 1 l1 1 1 01 1 1 10 24 组播地址 1 1 1 11 1 1 ll 256 注:( 1 ) 未指定地址、回返地址,和嵌入i p v 4 地址的i p v 6 地址的分配在格 西南交通大学硕士研究生学位论文第1 5 页 式前缀空间0 0 0 0 0 0 0 0 以外。这几种地址在单播地址中作为特殊地址中再介绍。 ( 2 ) 除了组播地址( 1 1 1 11 1 1 1 ) 外,格式前缀空间0 0 1 到1 1 1 ,在嚣u i 一6 4 格式中都要求必须有6 4 位接口标识符。参见下一小节中的定义。 这样分配,可以支持可集聚地址、本地用地址和组播地址的直接分配,并 有保留给n s a p 地址的空间。其余的地址空间留给将来用。可用于已有使用的 扩展( 如附加可集聚地址等) 或者新的用途( 如将定位符和标识符分开) 。地址空间 的15 是初始分配的,其余8 5 的地址空间留作将来使用。单播地址和组播地 址是由地址的高阶字节值来区分的:值为ff ( 1 l l l1 1 1 1 ) 标识一个地址为组播 地址,其他值则标识一个地址为单播地址。任意点播地址取自单播地址空间, 和单播地址在语法上是无法区分的。如果把一个单播地址分配给了多个接口, 从而使其成为一个任播地址的话,那么就必须配置这个接口,让它知道这是一 个任播地址。通常的做法是每台主机在路由表中有一个单独的条目给任播地址。 2 3 3 4e u 卜一6 4 和地址隐私 针对i p v 6 采用自动配置等功能,为了保证某接口i p v 6 地址的唯一性,前 缀在0 0 1 到1 1 1 范围内的i p v 6 地址必须使用个符合e u i 一6 4 ( 扩展的唯一标 识符) 格式的6 4 位接口标识符( 除了前缀为1 1 1 11 1 1 1 的组播地址以外) 。根据 特定链路或节点的特性,有不少方法可以创建e u i 一6 4 接口标识符。下面只对 常见的以太网卡下如何创建一个e u i 6 4 标识符的方法作介绍【6 j ,其它的请参 考r f c 2 3 7 3 p 1 或其他的r f c 。 e u i 一64 】规定了从一个i e e e8 0 24 8 位m a c 标识符创建一个e u i 一6 4 标识符的方法,就是将以十六进制表示的两个字节0 xf f 和o x f e 插入到 48 位mac 地址中间( 公司标识符与厂商配给的标识符之间) ,并对全球范围的 全球本地位值取反( 原来是0 ,取反之后变成1 ) 。下面的例子是一个具有全球 范围的48 位m a c 地址。 j 01 5 1 1 6 + 一+ l c c c c c c o g c c c c c c c c c c c c c c c c m m m m m m m m l m m m m m m m m m m m m m m m m l + 一一+ 一一一+ 一一0 - 其中,c 位是分配给公司的标识符;o 是指示全球范围的全球本地位值:g 是个体,团体位;m 是生产厂选择的扩展标识符。这样,接口标识符便具有下面 的形式: 1 01 5 l t 63 1 1 3 24 7 4 86 3 1 + 一+ 一一一+ 一一+ - 一一+ l c c c c c c l g c c c c c c c c j c c c c c c c c l l l l l l l l f l l l l l l l o m m m m m m m m f m m m m m m m 唧m 咖m m m m l + 一- + 一一+ 一+ 一一一,- 西南交通大学硕士研究生学位论文第1 9 页 2 3 6 组播地址 2 3 6 1 组播地址的格式 i p 、r 6 组播地址是一组节点的标识符例。一个节点可以归属于任意藿矬犁垡 霉转。硪上瞪忻罐糯谰淄噼甍茎呲啡绉j 开发主机上需要i 划! 。l 犟澳鼎哩名鬯鱼 誊涨蒿囊j | 萼弛馘豁i 蒋随酬珀鲢魂鳇疆翻蟹= 黧燕连;孽盘磐il l i l i 嚣附始g 饕摊趣塑孤j 坚匡幕髫篙目。矗一蠢灌硒 映像的位置,在调试时,指定位置的v x w b 嫩s 映像将通过网络 加载到目标机中运行 。 3 2 3 板级支持包 在移植v x w b r k s 到某一个硬件平台时,需要针对具体的硬件平台开发一个 板级支持包b s p ( b o 盯ds u p p o np a c k a g e ) 川。b s p 是指针对具体的硬件平台,用 户所编写的启动代码和部分设各驱动程序的集合。在v x w b r k s 系统中,b s p 是 介于底层硬件环境和v x w o r k s 之间的一个软件接口,如图3 4 所示,它的主要 功能是系统加电后初始化强标机硬件、初始化操作系统以及提供部分硬件的驱 动程序,具体功能包括: ( 1 ) 初始化。所谓初始化是指从系统上电复位开始直到v x w d r k s 开始初始化 用户应用时( 即系统执行到u s r a p p i i t 函数处) 的一段时间内系统所执行的过程。 这个过程主要包括三个部分的工作。 c p u 初始化。初始化c p u 的内部寄存器f 如状态寄存器、控制寄存器等) 。 目标机初始化。初始化控制芯片的寄存器( 如d r a m 、f l a s h ) 、i o 设备寄存 器( 驱动各设备) ,为整个软件系统提供底层硬件环境的支持。 系统资源初始化。为操作系统及系统的正常运行做准备,进行资源初始化 ( 如操作系统初始化、空间分配等) 。 ( 2 ) 使v x w o r k s 能够访问硬件驱动程序。这主要是指b s p 包含部分必要的设 备驱动程序和相关设备的初始化操作。 ( 3 ) 设置好存储空间大小、映射好本地及总线存储空间。 参考t 0 m a d o 提供的b s p 实现文件模板t a r g e t c o n f i g w r s b c a r m 7 ,可针 对a r m 7 评估板,编写一个b s p 。具体的修改主要有: 选择加载v x l 】o r k s 内核的方式,可以从串口加载,也可以从以太网口加载。 本设计采用了以太网加载,并通过f t p 传送。 在c o n f i g h 中修改启动参数,配置目标机和主机的i p 地址,f t p 传送用的 用户名和密码,以及目标板的硬件资源( s d r a m 、f l a s h 等) 的配置和待屏蔽的资 源模块( w r s b c a r m 7 中的l c d 初始化模块,l e d 初始化模块等) 。 3 2 4 从生成b 0 0 t r o m 到v x w o r l s 下载的过程 西南交通大学硕士研究生学位论文第2 1 页 点必须加入的组播地址数。 2 3 7i p v 6 地址小结 i p v 6 地址种类较多,标准规定,主机需要识别下面的地址以辨识它自身: 它的每个接口的链路本地地址 分配的单播地址 环回地址 所有节点的组播地址。 每一个分配的单播和任播地址的请求节点组播地址。 主机所属的所有其他组的组播地址。 主机需要识别的所有地址。要求路由器都能识别,路由器还要能识别用来 识别其本身的下列地址: 配置路由器工作的接口所用的子网路由器任播地址。 完成路由器配置要用的所有其他任播地址。 所有路由器组播地址。 路由器归属于所有其他组的组播地址。 对主机和路由器,在实现中应该预定义的地址前缀包括:未指定地址、回 返地址、组播前缀( f f ) 、本地用前缀( 链路本地和站点本地) 、预定义的组播地址、 i p v 4 兼容的前缀。实现时除非专门配置( 如任播地址) ,应假设所有其他地址均 为单播地址。 2 4i c m p v 6 介绍 l c m p v 6 是i p v 6 的i n t e m e t 控制消息协议( i n t e m e tc o n 仃o lm e s s a g ep r o t o c o l v e r s i o n 6 ,i c m p v 6 ) ,由r f c 2 4 6 3 【i l j 定义,其功能要求每个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 m 就组管理协议( i i l t e m c t g r o u pm a n a g e m e n tp r o t o c o l ,i g m p ) 功能引入了i c m p v 6 一即组播侦听者发现 ( m u l t i c a s tl i s t e n e rd i s c o v e r y ,m l d ) ,再比如引入了邻居发现( n e i g h b o r d i s c o v e r y ,n d ) ,不但在i p 层实现了原来i p v 4 中的第二层的a r p 瓜a r p 功能, 还能发现路由器、随时跟踪哪些邻居是可连接的等。 i c m p v 6 消息可以封装,并作为i p v 6 数据包的有效负载发送,如下图所 示。i c m p v 6 消息的不同类型标识在i c m p v 6 报头中。由于i c m p v 6 消息携 带在i p v 6 。数据包中,因此不可靠。 诬南交通大学硕士研究生学位论文第2 2 页 2 4 1i c m p 、,6 一般消息 i c m p 报文的产生来源于一些错误情况1 6 】。例如,如果一个路由器由于某些 原因不能处理一个i p 包,它就可能会产生某种类型的i c m p 报文,并直接回送 到包的源节点,然后源节点将采取一些办法来纠正所报告的错误状态。 r f c 2 4 6 3 中定义了以下的一般i c m p 消息( 与m l d 或n d 不相关) : 2 4 1 1 目的地不可达 这个报文由路由器或源主机在由于除业务流拥塞之外的原因而无法转发一 个包的时候产生。这种错误报文有五个代码,包括: 0 :没有到达目的地的路由。这个报文在路由器没有定义i p 包的目的地路 由时产生,路由器将用默认路由来发送无法利用路由器的路由表进行转发的包。 l :与目的地的通信被管理员禁止。当被禁止的某类业务流欲到达防火墙内 部的一个主机时,包过滤防火墙将产生该报文。 2 :不是邻居。当使用i p v 6 选路扩展头并严格限定路由时,将使用这个代 码。当列表中的下一个目的地与当前正执行转发的节点不能共享一个网络链路 时,将会产生该报文。 3 :地址不可达。这个代码指出在把高层地址解析到链路层( 网络) 地址时遇 到了一些问题,或者在目的地网络的链路层上去往其目的地时遇到了问题。 4 :端口不可达。这种情况发生在高层协议( 如u d p ) 没有侦听包目的端口的 业务量,且传输层协议又没有其他办法把这个问题通知源节点时。 2 4 1 2 包太长 当接收某包的路由器由于包长度大于将要转发到的链路的姗,而无法对 其进行转发时,将会产生包太长报文。该i c m pv 6 错误报文中有一个字段指出 导致该问题的链路的m t u 值。在路径m t u 发现过程中这是个有用的错误报文。 西南交通大学硕士研究生学位论文 第2 3 页 2 4 1 3 超时 当路由器收到个跳极限为l 的包时,它必须在转发该包之前减小这个数 值。如果在路由器减小该数值后,跳极限字段的值变为0 ( 或者是路由器收到一 个跳限制字段为0 的包) ,那么路由器必须丢弃该包,并向源节点发送i c m p v 6 超时报文。源节点在收到该报文后,可以认为最初的跳限制设置得太小( 包的真 实路由比源节点想象的要长) ,也可以认为有一个选路循环导致包无法交付。在 “跟踪路由”功能中这个报文非常有用。这个功能使得一个节点可以标识个 包在从源节点到目的节点的路径上的所有路由器。它的工作方式如下:首先, 一个去往目的地的包的跳极限被设置为1 。它所到达的第一个路由器将跳减少极 限,并回送一个超时报文,这样一来源节点就标识了路径上的第一个路由器。 然后如果该包必须经过第二个路由器的话,源节点会再发送一个跳极限为2 的 包。该路由器将把跳极限减小到0 ,并产生另一个超时报文。这将持续到包最终 到达其目的地为止。同时源节点也获得了从每个中间路由器发来的超时报文。 2 4 1 4 参数问题 当i p v 6 头或扩展头中的某些部分有问题时,路由器由于无法处理该包而会 将其丢弃。路由器的实现中应该可以产生一个i c m p 参数错误报文来指出问题 的类型( 如错误的头字段、无法识别的下一个头类型或无法识别的i p v 6 选项) , 并通过一个指针值指出在第几个字节遇到这种错误情况。 2 4 1 5i c m p v 6 回声功能 i c m p v 6 中包含了一个与错误情况无关的功能。所有【p v 6 节点都需要支持 两种报文:回声请求和回声应答。回声请求报文可以向任何一个正确的i p v 6 地 址发送,并在其中包含一个回声请求标识符、一个顺序号和一些数据。尽管二 者都是可选项,但回声请求标识符和顺序号可以用来区分对应不同请求的响应。 回声请求的数据也是一个选项,并可用于诊断。当一个i p v 6 节点收到一个回声 请求报文后,它必须回送一个回声应答报文。在应答中包含相同的请求标识符、 顺序号和在最初的请求报文中携带的数据。i c m p 回声请求应答报文对是p i n g 功能的基础。p i n g 是个重要的诊断工具,它提供了一种方法来判断一台主机 与其他一些主机的连接状况。 2 4 2 组播侦听者发现( m l d ) 组播通讯被发送到单个地址,但是由多个主机处理。在特定组播地址上侦 听的一组主机叫做组播组( 又叫多播组) 。 西南交通大学硕士研究生学位论文第2 4 页 组播的特点有: 组成员是动态的,允许主机在任何时候加入或离开组。 加入多播组是通过组成员消息的发送执行的。在i p v 6 中,“多播侦听器 探索( m l d ) ”消息用于确定网络段上的组成员,也称为链接或子网。 组不受大小的限制,成员可以扩展到多个网络段( 如果连接路由器支持 多播通讯和组成员信息的转发) 。 主机可以向组地址发送通讯而无需属于相应的组。 i p v 6 组播地址的介绍在2 3 6 节有详细介绍。单个i p v 6 组播地址识别每 一个组播组。每个组的保留i p v 6 地址被该组的所有主机成员共享,这些主机 成员侦听和接收所有发送到组地址的i p v 6 消息。 m l d 用于在支持组播的i p v 6 路由器和网络段上的组播组成员之间交换成 员状态信息。组播组中的主机成员由单独的成员主机报告,成员状态出组播路 由器周期性地进行轮询。m l d 在i 疆c2 7 1 0 i 圳中定义。 m l d 消息作为i c m p v 6 消息发送,表2 3 描述了m l d 消息类型。 表2 3m l d 消息类型和描述 m l d 消息类型描述 组播侦听者查询由组播路由器发送以便轮询用于组成员的网络段。查询 b p e = 1 3 0 可以是常规查询( 用于决定哪个组播地址在链路上具有 侦听者,消息被发送到链路本地范围全节点组播地址 f f 0 2 :1 ) ,或者是特定查询( 用于决定链路上是否有针 对某个专门地址的侦听者,目的地址为该专门地址) 组播侦听者报告当主机加入组播组时发送,或者在响应m u ) 组播侦听 聊e = 1 3 l 器查询时由路由器发送 组播侦听者完成当主机离开主机组,并且可能是该组在网段上的最后一 聊e = 1 3 2 名成员时由主机发送,目的地址为链路本地范围所有路 由器f f 0 2 :2 2 4 3 邻居发现( n d ) i p v 6 邻居发现州西是一组确定邻居节点之间关系的消息和过程。n d 代替 了在i p v 4 中用的地址解析协议( a i 冲) 、i n t e m e t 控制消息协议( i c m p ) 、路由器 发现和i c m p 重定向,并提供了其他
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 轨道交通设施对城市景观的影响分析考核试卷
- 镁矿开采安全风险评估与防范措施考核试卷
- 航运物流与区块链技术考核试卷
- 航空器飞行器驾驶员培训与考核试卷
- 成人高考法律基础知识与案例分析考核试卷
- 铬矿在建筑材料领域的应用研究考核试卷
- 牙齿的常见疾病类型概述
- 体育课急救知识
- 口腔设备学X线洗片机
- 麻醉手术室基础认知与操作规范
- 昆明市用人单位人员就业(录用)登记表
- 公司职业病危害防治责任制度
- 第十八章:爬行纲课件
- 米亚罗-孟屯河谷风景名胜区旅游基础设施建设项目环评报告
- 滁州市第一人民医院医疗暂存间环保设施提升改造项目环境影响报告表
- 籍贯对照表完整版
- 警用无人机考试题库(全真题库)
- 中等职业学校英语课程标准(2020年版)(word精排版)
- 医保业务知识题库
- 等级医院评审中应注意的迎评礼仪
- 吉林省长春市东北师大附中明珠学校2023年物理八年级第二学期期末统考模拟试题含解析
评论
0/150
提交评论