(计算机应用技术专业论文)嵌入式精简ipv6协议栈的设计与实现.pdf_第1页
(计算机应用技术专业论文)嵌入式精简ipv6协议栈的设计与实现.pdf_第2页
(计算机应用技术专业论文)嵌入式精简ipv6协议栈的设计与实现.pdf_第3页
(计算机应用技术专业论文)嵌入式精简ipv6协议栈的设计与实现.pdf_第4页
(计算机应用技术专业论文)嵌入式精简ipv6协议栈的设计与实现.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(计算机应用技术专业论文)嵌入式精简ipv6协议栈的设计与实现.pdf.pdf 免费下载

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

文档简介

大连理1 :大学硬士学位论文 摘要 随着计算机技术的发展,价格低廉、体积小巧的各种嵌入式设备得到广泛应用,这 些应用对网络连接的需求也日益增长。大量嵌入式设备接入网络使得口v 4 地址不足的 问题愈加突出。脚6 协议不但很好的解决了地址短缺问题,而且具备无状态地址自动配 最、服务质量、安全性等多方面的优点,成为嵌入式设备进行网络互连的首选。 i p v 6 与嵌入式结合将使每一个嵌入式设备成为接入互联网的独立实体,不再受地址 短缺的限制,可以方便的提供多种服务,但遗憾的是目前开源主流的嵌入式t c p i p 协 议栈都不支持i p v 6 协议。 论文描述了一个嵌入式i p v 6 协议栈的实现,包括i p v 6 、i c m p v 6 、邻居发现协议模 块以及扩展了的t c p 、u d p 模块、应用接口和网络接口模块。该协议栈具备代码尺寸 小、运行时占用内存空间小等适合嵌入式系统的优点,同时具备很好的移植性和扩展 性,为在嵌入式设备上使用i p v 6 提供了一种通用的解决方案。在该嵌入式i p v 6 协议栈 的基础上,根据大连理工大学校园网的实际需要,开发了校园网络监控系统,包括网络 性能及网络设备间状态的监控,成为校园网智能化管理的重要组成部分。 整个系统借鉴了其他协议栈的设计思想,采用模块化、分层次的设计,在现有开源 i p v 4 协议栈基础上开发。协议栈及基于该协议栈的网络监控系统功能模块已经实现,并 己稳定试运行两个月。 关键词 嵌入式系统;ip v 6 ;l 翎p v 6 ;邻居发现;网络监控 一一坠壅塑塑l 旦! 塑坚垡塑堡生量壅婴 t h e d e s i g n a n d i m p l e m e n t a t i o n o fe m b e d d e di p v 6s t a c k a b s t r a c t w i 也t h e 叫c k d e v e l o p m e n t o f c o m p u t e r t e c h n o l o g y ,t h e i n e x p e n s i v e a n d s m a l le m b e d d e d d e v i c e sa r ep o p u l a r i z e d t h e s ed e v i c e sg a ee a g e rt oa c c e s si n t e m e t h o w e v e r , t h el a c ko fi p v 4 a d d r e s sp r e v e n t s l a r g e n u m b e r so fe m b e d d e dd e v i c e sf r o mc o n n e c t i n gt oi n t e m e t n e x t g e n e r a t i o nn e t w o r kp r o t o c o l - i p v 6n o to n l yh a sa l m o s tl i m i t l e s sa d d r e s sn u m b e rb u ta l s oh a s m a n ya d v a n t a g e s ,s u c ha sm o r es t r o n gs e c u r i t y ,h i g h e rs e r v i c eq u a l i t y ,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 nf u n c t i o na n d s oo n w i t l lt h e s e a d v a n t a g e s , 1 p v 6b e c o m e s t h e p r e f e r r e d s e l e c t i o n f o re m b e d d e dd e v i c e st ob e c o m eam e m b e ro f i n t e m e t i p v 6w i l lm a k ee m b e d d e dd e v i c e sb e c o m ei n d e p e n d e n te n t i t i e so fi n t e m e t , w i t h o u t a d d r e s sl i m i t a t i o na n dc a no f f e rm o r es e r v i c e st h a ni p v 4 h o w e v e r t h ee m b e d d e dt c p 口 s t a c k sw h i c hi so p e n s o 愀p r o j e c t d o n ts u p p o r t 疋v 6t ot h i sd a y 1 1 1 i sp a p e rd e s c r i b e st h ed e s i g na n d i m p l e m e n t a t i o no f a n e m b e d d e d 蹦s t a c k i ti n c l u d e s 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 ym o d u l e sa n de x t e n d st c p 、a p i 、n e t w o r ki n t e r f a c e s n i es t a c kh a ss m a l lc o d es i z ea n ds m a l lr u n t i m em e m o r y u s a g e s ot h a ti tc a nr u nw i t h i nl i m i t e d r e s o u r c e s i tc a r lb ep o r t e da n de x t e n d e de a s i l y n l es y s t e mp r o v i d e sac o m m o ns o l u t i o nf o r e m b e d d e dd e v i c e si n t e r a c tc o n n e c t i o nv i ai p v 6 b a s e do r lt h i si p v 6s t a e lw e d e v e l o p e dd u t n e t w o r km o n i t o rs y s t e mw h i c hi st h ei m p o r t a n tp a r to ft h ec a m p u sn e t w o r k s i n t e l l i g e n t m a n a g e m e n t t h en e t w o r km o n i t o rs y s t e mi n c l u d e st w op a r t s :t h en e t w o r kp e r f o r m a n c e ;t h e d e v i c e r o o m s s t a t e s t h i ss y s t e mi sb a s e do nt h eo p e ns o u r c ep r o j e c ta b o u ti p v 4s t a c ka n dr e f e r st oo t h e r t c p i ps t a c k i ti sl a y e r e da n dm o d u l a r i z e d t t i es y s t e mh a sb e e nn l m l i l l gf o rt w 0m o n t h s s t a b l y k e y w o r d s :e m b e d d e d s y s t e m ;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 ; n e t w o r km o n i t o r 1 i 一 独创性说明 作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究 工作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得 大连理工大学或其他单位的学位或证书所使用过的材料。与我一同工作 的同志对本研究所做的贡献均已在论文中做了明确的说明并表示了谢 意。 作者签名:苤纽日期:盈笪:墨:2 大连理工大学硕士学- 9 - 论文 引言 随着计算机技术的不断发展,价格低廉、体积小巧的各种嵌入式设备得到广泛应 用,这些应用对网络连接的需求也同益增长,如信息家电的远程控制,移动电话、p d a 上网等。 目前嵌入式设备接入网络的两种解决方案都有一定的不足:使用自身带有协议栈的 操作系统,如著名的商用v x w o r k s 系统,开源的u c l i n u x 等,这种类型的协议栈与操作 系统紧密结合,不能方便的移植到其他操作系统上,也不能根据应用的需要最身定做; 为嵌入式系统设计的与操作系统相分离的t c p i p 协议栈,如u c l p ,u l p ,i m p 等具有很好 的移植性,但是这些协议栈只支持i p v 4 ,而大量嵌入式设备接入网络又使i p v 4 地址紧 缺的问题愈加突出。 i p v 6 协议不但很好的解决嵌入式设备接入网络的地址不足问题,而且具备无状态地 址自动配置,服务质量,安全性等多方面的优点,成为嵌入式设备进行网络互连的首 选。 i p v 6 与嵌入式结合将使每一个嵌入式设备成为接入互联网的独立实体,不再受地址 短缺的限制,可以方便的提供多种服务。i p v 6 与嵌入式设备结合已经有很多成功的应 用。n e c 在摄像机中安装了i p v 6 协议栈,将其设簧的图片传送到远程的客户端,此设 备可以用于监管( 商店等) ,看护( 医院等) 等:松下曾在2 0 0 3 年7 月份展示了采用 i p v 6 协议栈的空调和微波炉,这些数字家电配有i p v 6 协议栈的w e b 服务器,通过采用 同样协议的电脑或手机,可以直接连接w e b 服务器,发出控制指令;n o k i a 推出带有 i p v 6 协议栈支持的可摄像的手机。可以预见i p v 6 与嵌入式的结合代表着互联网络发展 的未来。 本文描述了一个嵌入式i p v 6 协议栈的实现:针对嵌入式系统的特点进行了合理设 计,具备很好的移植性和扩展性,为嵌入式设备上使用i p v 6 提供了一种通用的解决方 案,弥补了目前嵌入式t c p 】p 协议栈的不足。同时在该嵌入式p v 6 协议栈的基础上, 根据大连理工大学校园网的实际需要,开发了校园网络监控系统,包括网络性能及网络 设备间状态的监控,成为校园网智能化管理的重要组成部分。 本文组织结构如下:第1 章介绍嵌入式系统的发展趋势及嵌入式协议栈的现状,引 出嵌入式口v 6 协议栈;第2 章介绍了i p v 6 协议的基本知识;第3 章分析了实现嵌入式 t c p i p 协议栈使用的技术;第4 章阐述了i p v 6 协议协议栈的实现,包括协议栈各部分 嵌入式精简1 p v 6 协议栈的设计与实现 的功能以及系统定义的数据结构;第5 章为协议栈的应用网络监控系统,在i p v 6 协议栈基础上实现对网络性能,设备间状态的监控,长期检测协议栈的正确性。 2 - 大连理工大学硕士学位论文 l 嵌入式i p v 6 协议栈的提出 随着网络技术的迅速发展和嵌入式设备的广泛应用,嵌入式设备接入互联网络的要 求日益增强,而i p v 4 的地址空间不能满足数量庞大的嵌入式设备接入网络的需求,因 此提出了本文所讨论的题目。下面将从嵌入式系统的发展趋势及目前嵌入式协议栈的倍 况说明实现嵌入式i p v 6 协议栈的必要性。 1 1 嵌入式系统的广泛应用 嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬 件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用 计算机系统。在某些应用领域,嵌入式设备在价格、体积及实时性等方面,有着通 用计算机无法比拟的优点,因此,嵌入式系统具有广泛的应用 1 】,几乎包括了生活中 的所有电器设备,如掌上p d a 、移动计算设备、手机、数字电视、多媒体、数字相机、 家庭自动化系统、电梯、空调、自动售货机、工业自动化仪表与医疗仪器等。而这些设 备正在逐渐地网络化,以便更好的通信与共享网络资源。 随着网络技术的迅速发展,嵌入式系统接入网络将使其发挥更大的作用。例如基于 网络的远程数据采集、远程控制、自动报警、上传下载数据文件、自动发送e m a i l 等 功能。网络专家预测,将来在i n t e m e t 上传输的信息中,有7 0 来自小型嵌入式系 统,嵌入式i n t e r n e t 将会产生比p c 机时代多成百上千倍的瘦服务器和超级嵌入式瘦服 务器。 1 2 嵌入式操作系统 随着嵌入式设备的广泛使用,需要各种嵌入式软件。而嵌入式软件的开发需要操作 系统的支持。嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式 系统( 包括硬、软件系统) 极为重要的组成部分。 一般情况下,嵌入式操作系统可以分为两类,一类是面向控制、通信等领域的实时 操作系统,如w i n d r i v e r 公司的v x w o r k s 、i s i 的p s o s 、q n x 系统软件公司的q n x 、 a t i 的n u c l e u s 等;另一类是面向消费电子产品的非实时操作系统,这类产品包括个人 数字助理( p d a ) 、移动电话、w e b p h o n e 等。其中,嵌入式实时操作系统在目前的嵌入 式应用中用得越来越广泛,尤其在功能复杂、系统庞大的应用中显得愈来愈重要。 目前,国外商品化的嵌入式实时操作系统,已进入我国市场的有v x w o r k s 、 w i n d o w sc e 、q n x 和n u c l e a r 等产品。我国自主开发的嵌入式系统软件产品有科银 - 3 嵌入式精简1 p v 6 协议栈的设计与实现 ( c o r e t e k ) 公司的嵌入式软件开发平台d d t a s y s t e ,中科院的h o p e n 嵌入式操作系统 等。 上面介绍的这些操作系统都是商用的,价格昂贵,下面介绍几种免费开源的嵌入式 操作系统。 ( 1 ) 嵌入式l i n u x 嵌入式l i n u x 由于代码开放性以及强大的网络功能,在中低端的嵌入式网络设备中 得到非常广泛的应用。它有很多版本,例如面向没有m m u 处理器的u c l m u x ,具有实 时扩展功能的r 几m u x 等等。 u c l i n u x 是专门为嵌入式应用设计的,它在l m u x 基础上作了简化,修改了虚拟内 存管理等等,适用于嵌入式应用类c p u 。u c l i n u x 具有对多种文件系统的支持能力、内 嵌了t c p i p 协议,并且可以借鉴l i n u x 丰富的设备支持。对一些复杂的应用,u c l i n u x 具有相当优势。例如e i s e o 公司的2 5 0 0 3 0 0 0 4 0 0 0 路由器就是基于u c l i n u x 操作系统开 发的。 r t l i n u x 是由美国新墨西哥理工学院开发的基于标准l i n u x 的嵌入式操作系统,已 成功地应用于航天飞机的空间数据采集、科学仪器测控、电影特技图像处理等领域。 r t l i n u x 提供了一个精巧的实时内核,并把标准的l i n u x 核心作为实时核心的一个进程 同用户的实时进程一起调度,这样做的好处是l i n u ) 【的改动量最小,充分利用了l i n u x 平台下现有的丰富的软件资源。 ( 2 ) u c o s ii 嵌入式操作系统u c 0 s - i i 是一个公开源代码的抢占式多任务的微内核r t o s ,其性 能和安全性可以与商业产品竞争。u c o s i i 的特点可以概括为咀下几个方面:公开源代 码,代码结构清晰、明了,注释详尽,组织有条理,可移植性好;可裁剪,可固化。内 核属于抢占式,最多可以管理6 0 个任务。u c 0 s i i 自1 9 9 2 年的第一版( u c 0 s ) 以来 已经有好几百个应用,是一个经实践证明好用且稳定可靠的内核。目前国内对u c o s i i 的研究和应用都很多。 u c 0 s - i i 近年来发展迅速,但它只是一个实时的任务调度及通信内核,缺少对外围 设备和接口的支持,如没有文件系统、网络协议、图形界面。它目前的一些第三方 t c p i p 支持都是完全商业化的,用户需要付费才能获得,很少给出源代码,这影响了 u c o s - 的研究和推广。 4 大连理r 人学硕士学位论文 1 3 嵌入式t c p i p 协议栈 随着嵌入式系统与网络的日益结合,在嵌入式实时操作系统中引入t c p i p 协议 栈,以支持嵌入式设备接入网络,成为嵌入式领域重要的研究方向。目前已经有很多嵌 入式t c p i p 协议栈的实现。 l - 3 1 实现嵌入式t c p i p 协议栈常用方法 嵌入式t c 咖协议栈的主要特点就是代码尺寸小,占用的内存空间小。满足这个要 求常用的方法 2 】为: ( 1 ) 通过对通讯环境的假设,精简t c p i p 协议栈的模型,通常的假设是嵌入式系统 总是和一个运行在完全模式( 具有标准的t c p i p 协议栈) 的系统通讯。当这个系统和另 外同种类的嵌入式系统通讯时就会出现问题。例如通常根据一个指定的应用来裁减 t c p i p 协议栈。这种情况下只需要实现t c p i p 协议栈跟指定应用有关的部分就行了。 i p i cm a t c h - h e a ds i z e ds e r v e r 和j e r e m yb e n t h a m sp i c m i c r os t a c k 3 只需要几十b y t e 的 r a m 就可以实现简单的w e b 服务。这样的应用中不需要实现t c p 模型中的重传技术。 a l m e l 。t c p i p 4 1 协议栈通过简化必要的t c p 机制来节省代码空间,例如去除t c p 的拥塞 控制机制。t i n y t c p 5 和m s p 4 3 0t c p i p 协议栈【6 一个时刻只能处理一个t c p 连接, 这样虽然缩减了代码,但限制了t c p i p 的使用。 ( 2 ) 忽视接收端准备处理的最大的数据段大小。这种方法会发送1 5 0 0b y t e 大小的 段。这个长度适合于以太网的帧,并且许多的主机能够接受这个长度或更大长度的包。 但是如果接受端系统内存资源有限,则不能处理这么大的包。 ( 3 ) 删除对m 包碎片重组的支持。虽然很少出现分片的i p 包,如果在某种情况 下,i p 包分段,那么接收端就不能正确的重新组装它们。 1 3 2 几种主流的开源嵌入式t c p i p 协议栈 1 3 2 11 w i p l w i v 4 1 是瑞士计算机科学院( s w e d i s h i n s t i t u t eo f c o m p u t e rs c i e n c e ) 的a d a m d u n k e l s 等开发的一套用于嵌入式系统的丁r 放源代码i p v 4 协议栈。1 w 口的含义是l i g h t w e i g h t ( 轻型) 琅协议。1 w p 可以移植到操作系统上,也可以在无操作系统的情况下独立 运行。1 w pt c p f i p 实现的重点是在保持t c p 协议主要功能的基础上减少对r a m 的占 用,一般它只需要几十k 的r a m 和4 0 k 左右的r o m 就可以运行,这使1 w i p 协议栈适 合在低端嵌入式系统中使用。1 w i p 的特性如下: ( 1 ) 支持多网络接口下的i p 转发。 - 5 - 嵌入式精简l p v 6 协议栈的设计与实现 ( 2 ) 支持i c m p 协议,只实现了i c m p 的r e p l y 消息 ( 3 ) 包括实验性扩展的的u d p ( 用户数据报协议) ( 4 ) 包括阻塞控制,i 盯t 估算和快速恢复和快速转发的t c p ( 传输控制协议) ( 5 ) 提供专门的内部回调接口( r a w a p i ) 用于提高应用程序性能 ( 6 ) 可选择的b e r k e l e y 接口a p i 1 3 2 2u l p u i p 7 t c p i p 协议栈是专门为嵌入式系统设计的。代码大小只有不到1 0 k b i t ,r a m 可以配置成几百b y t e 。为了减少代码尺寸和所需要的内存空削,u 球精简了t c p 的实现 机制,删除了应用和栈间的某些接口机制,例如软件错误汇报机制和t c p 连接的动态配 置服务类型位等。u i p 的特性如下; ( 1 ) 仅支持一个网络接口。 ( 2 ) 主要实现了口v 4 ,i c m t 4 和t c p 协议。 ( 3 ) 没有实现u d p 。 ( 4 ) t c p 的实现不支持滑动窗口和阻塞控制。 1 4 嵌入式i p v 6 协议栈的提出 嵌入式设备接入网络使i p v 4 地址不足的问题愈加突出,而i p v 6 将使每一个嵌入式 设备成为接入互联网的独立实体,不再受地址短缺的限制,可以方便的提供多种服务, 成为嵌入式设备进行网络互连的首选。 目前有很多嵌入式操作系统支持i p v 6 协议栈,如前面介绍的v x w o r k s ,l i n u x 等。 这些与操作系统紧密结合的协议栈不具有移植性,用户不能根据自己的需要进行裁减。 而为嵌入式系统设计的协议栈如1 w i p , u l p 等虽然具有很好的移植性,但是都不支持 i p v 6 协议。因此提出了本文讨论的题目,具体实现的目标如下: ( 1 ) 代码尺寸小,占用内存少,代码尺寸不超过1 0 0 kb y t e ,满足嵌入式系统要求。 ( 2 ) 提供方便的用户接口,使用户方便的使用协议栈。 ( 3 ) 可移植性,可以方便的移植到不同的操作系统中。 ( 4 ) 可扩展性,可以方便的扩展协议功能,加入其他协议。 1 5 嵌入式i p v 6 协议栈的应用 目前,手用i p v 6 实现嵌入式设备上网已经有很多成功的应用。n e e 在摄像机中安装 了i p v 6 协议栈,将其拍摄的图片传送到远程的客户端,此设备可以用于监管( 商店 等) ,看护( 医院等) 等;松下曾在2 0 0 3 年7 月份展示了采用i p v 6 协议栈的空调和微 6 大连理j r 大学硕士学位论文 波炉,这些数字家电配有i p v 6 协议栈的w e b 服务器,通过采用同样协议的电脑或手 机,可以直接连接w e b 服务器,发出控制指令。 嵌入式i p v 6 技术在校园网中也将有广泛的应用。大连理工大学在2 0 0 0 年就已经加 入了c e r n e t 的i p v 6 学生试验床,目前c e r n e t 2i p v 6 节点也已接入,具有一个良好的 i p v 6 应用和研究环境。本文提出的嵌入式的网络监控系统就是基于i p v 6 协议栈的一个 应用,实现了网络性能监控及网络设备间状态的监控,成为校园网络智能化管理的重要 组成部分。 7 嵌入式精简i p v 6 协议栈的设计与实现 2 i p v 6 协议介绍 i p v 6 _ b t 锄就p r o t o c o lv e r s i o n6 是r r f 制定的下一代网络协议,提供了为所有 电子设备和电器设备统一编址和联网的可能性,得到越来越多公众的认同。本章介绍了 i p v 6 的发展趋势,相对i p v 4 的改进,并对系统设计实现所需i p v 6 的基本知识作了简单 介绍。 2 1i p v 6 的发展 1 9 9 4 年,i e t f 的i p n g 项目管理者们提出了创建i p v 6 的建议,并于1 9 9 6 年建立了 全球范围的试验床( t e s t b e d ) ,称作6 b o n e 。6 b o n e 是一个虚拟的网络,以隧道( t u n n e l ) 的 方式通过基于m v 4 的互联网实现互联。现在,6 b o n e 已经扩展到垒球5 0 多个国家和地 区,成为i p v 6 研究者、开发者和实践者的主要平台。1 9 9 8 年底,面向实用的全球性 i p v 6 研究和教育网( 6 r e n ) 开始启动,建立了物理的以a t m 为中心的i p v 6 洲际网络。 各个国家也积极的参与i p v 6 的研究。其中,日本是进行i p v 6 研究较早的国家,拥 有目前世界上最大的i p v 6 商用网络,n r r 通信公司开始逐步向全球推出商用i p v 6 业 务。欧洲在i p v 6 方面也显得非常积极,目前已经建立了e u r 0 6 i x 和6 n e t 等i p v 6 试验 网络,进行有关i p v 6 的推广和部署准备。p 地址充足的美国也开始了i p v 6 的研究,以 军事为先导发展i p v 6 ,其中d r e ni p v 6 网络是国防研究和工程网络所提供的服务之 一o 在我国,c e l u q e ti p v 6 示范网于1 9 9 8 年6 月加入6 b o n e ,并于同年1 2 月成为其骨 干成员。1 9 9 9 年9 月,有关i p v 6 的8 6 3 课题研究启动,很多高校相继组建i p v 6 示范 网,并通过c e r n e ti p v 6 示范网与6 b o n e 实现相连。1 9 9 9 年1 1 月,国家自然科学基 会委启动了“中国高速互连研究试验网络n s f c n e i ”重大联合研究项目,采用i p v 6 作为 网络层协议,建成了我国下一代高速示范网络。近年来,我国加快了和国外技术研究和 交流的步伐,2 0 0 2 年4 月,我国和日本政府合作,启动了“中日i p v 6 合作研究开发项 目”,拟定共同开展i p v 6 技术的研究开发、示范网络的建立与运营,推动了国际i p v 6 相关标准的确立。2 0 0 4 年1 2 月2 4 日,中国第一个下一代互联网中国下一代互联 网示范工程核心网( c d 斟e t 2 ) 正式开通,这是世界上规模最大的纯i p v 6 互联网,标 志着我国下一代互联网建设全面拉开序幕。 8 大连理工大学硕士学位论文 2 2i p v 6 相对于i p v 4 的变化 i p v 6 考虑了i p v 4 中存在的问题,针对p v 4 中的缺点提出了改进措施。与i p v 4 的 区别主要体现在如下几个方面: ( 1 ) 扩展了缡蜓功能和自动配置机制。 i p v 6 的地址长度由i p v 4 的3 2 b i t 扩展到1 2 8 b r ,支持更加结构化的路由层次,地址 的自动配置更加简单。地址空间的扩大将保证未来的所有设备都可获得自己唯一的地 址。拥有了足够的地址就不再需要网络地址转换( n a t ) 、临时性地址租赁和其它用于保 存严格限量分配的i p v 4 地址的机制了。 ( 2 ) 报头格式简化了。 i p v 6 删除了i p v 4 报头中报头长度( h e a dl e n g t h ) ,标识( i d e n t i f i c a t i o n ) ,标志 ( f l a g s ) ,段偏移量( f r a g m e n to f f s e t ) 和报头校验和( h e a d e rc h e c k s u m ) 五个字段。 报头的简化减少了包处理过程中额外的开销,同时限制了i p v 6 报头需要的带宽的价 值。i p v 6 增加了对扩展项和可选项的支持,对选项的长度限制的不是那么严格,具有更 大的灵活性。 ( 3 ) 增加了流标签。 这个新的功能是使带有标签的包属于一个特殊的流,发送者可以要求对这个流进行 特殊处理。例如实时服务等。 ( 4 ) 认证和加密能力。 报头中的扩展项支持认证,数据完整性,数据机密性。 2 3i p v 6 协议的结构 在r f c 2 4 6 0 中定义了i p v 6 数据包的报头结构【8 】。该报头固定为4 0 字节长,源和 目的地址各占1 6 字节,因此只有8 个字节用于普通报头信息。基本的报头格式如图 2 1 所示。 v e r s i o n 为4 位长的字段,值为6 ;t r a f f i cc l a s s 代替了i p v 4 中的t y p e o f s e r v i c e , 可以用来识别和分辨数据包的类别和优先级:f l o w l a b e l 用来区分需要相同处理的数据 包;p a y l o a dl e n g t h 是在l p 报头后携带的数据长度,包括扩展报头和数据;n e x t h e a d e r 地段相当于i p v 4 中的p r o t o c o lt y p e ,指明了下一个报头的类型,在本系统中是用到的 n e x t h e a d e r 字段值有6 ( t c p ) 、1 7 ( u d p ) 、5 8 ( 1 c m p v 6 ) ;h o t l i m i t 和i p v 4 中的 t t l 字段类似,每经过一个路由器将其值减一。 9 嵌入式精简i p v 6 协议栈的设计与实现 芝譬i 篓辇羹囊篓i 罐檬纵辩蛳妇蝴 酗啉i c 删m 耐融a 酾酬 ”“” 唧 、 一p 唯擞弧l 磅阐澈敝 罐墩蝴麟睁删咧,姆嘲螂 f t - l e x t 卜渤u 嘲辩 憾灏地址$ o 嘲敞斑虹蛔缡) , 信惦蛾艟、( 酝诧瀚睡l i o l _ i a a d r e 辅) 图2 1i p v 6 基本报头格式 f i g 2 1i p v 6h e a d e r f o r m a t i p v 6 规范还定义了6 个扩展报头:h o p - b y h o p 报头,m u t i n g 报头,f r a g m e n t 报头, d e s t i n a t i o n 报头,m 】:t h e n t i c a t i o n 报头,e 1 1 c r y p t e ds e c u r i t yp a y l o a d 报头。本系统不支持扩 展报头功能。因此不作具体介绍。 2 4 i p v 6 编址 2 4 1i p v 6 地址分类 i p v 6 地址分为三类 9 】:单播、多播和任播。 单播( u n i e a s t ) :单播地址可唯一确定某个i p v 6 节点的一个接口。向一个单播地 址发送的数据包将被发往由该地址确定的接口。 多播( m u l t i c a s t ) :一个多播地址确定一组i p v 6 接口,向一个多播地址发送的数据包 将被该多播组的所有成员处理,i p v 6 使用多播实现了广播功能。 任播( a n y c a s t ) :一个任播地址被分配给多个接口,向一个傣播地址发送的数据包将 只会发往这些接口中的个接口,通常是距离最近的那一个。本系统不支持任播功能。 2 4 ,2i p v 6 地址表示法 i p v 6 地址有1 2 8 位,由三个部分组成全局路由前缀,子网i d 和接口i d 。全局 路由前缀用来识别分配给一个站点的某个特殊地址( 比如多播) 或一个地址范围。子网 i d 用来识别站点中的某个链路。接口i d 用来识别链路上的某个接口,并且接口i d 在 该链路上必须是唯一的。 2 4 2 i 地址表示法 1 2 8 位的地蛆k 9 1 被分为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 le :8 3 2 9 1 0 大连理工大学硕士学位论文 为了简单,有些缩写规则:冒号分丌的每部分开头的0 ;i 以省略;双冒号可以代 瞥地址中连续的零,= :1 :过只能出现次。例如j :面的地址可以分别表示成: f e 8 0 :0 :0 :0 :2 0 2 :b 3 f f :f e l e :8 3 2 9 或f e 8 0 :2 0 2 :b 3 f f :f e l e :8 3 2 9 2 4 2 2 前缀表示法 i p v 6 地址还可以使用前缀表示法,格式为: i p v 6 地址,前缀长度 格式前缀是一个地址的高位,用来识别子网或某种特殊类型的地址。前缀长度规 定了从左边开始有多少位是作为前缀的,这是表示予网掩码的另一种方法。例如: 东北地区m v 6 学生试验的地址范围为3 恐:3 2 1 8 :3 2 辽宁省大连区学生试验中心使用3 恐:3 2 l 8 :6 0 0 :4 0 已经分配的常用前缀有:本地链路单播地址f e 8 0 :1 0 ;多播地址f f 0 0 :8 ;全局 单播地址0 0 1 ( 二进制前缀) 。 这样单播地址和多播地址通过前缀就可以区别了。 2 4 3 几个特殊的地址 ( 1 ) 本地链路单播地址( l f f & 1 0 c a l ) 本地链路单播地址只能在本地链路上进行通信。由前缀f e 8 0 :6 4 和一个6 4 位的接 口标识符组成 1 0 】【1 1 。 ( 2 ) 所有节点组播地址( a l l - n o d e sm u l f i e a s ta d d r e s s ) 所有节点组播地址为:f f 0 2 :i ,用来到达同一链路的所有节点。 ( 3 ) 所有路由组播地址( a l l t o u t e r sm u r i c a s ta d d r e s s ) 所有路由组播地址为:f f 0 2 :2 ,用来到达同一链路的所有路由器。 ( 4 ) 请求节点组播地址( s o l i c i t e d n o d em u l t i c a s ta d d r e s s ) 请求节点组播地址是根据节点单播或任播地址计算出来的链路范围内的组播地址, 格式为f f 0 2 :o :o :0 :o :l :f f ) 。( :) 。( ,其中后2 4 位为单播或任播地址的后2 4 位,前缀 为f f 0 2 :0 :0 :0 :0 :1 :f f 0 0 :1 0 4 1 9 。 ( 5 ) 不确定地址( u n s p e c i f i e d a d d r e s s ) 不确定地址0 :0 :0 :0 :0 :0 :0 :0 ,表示一个接口的地址是未确定,不能作为目的地址,但 可以作为源地址。例如系统初启时进行地址重复探测就使用此地址。 ( 6 ) 环回地址 环回地址相当于i p v 4 中的1 2 7 0 0 1 ,值为:1 。 嵌入式精简i p v 6 协议栈的设计与实现 3 协议栈的设计 本系统实现的是一个能够运行在嵌入式设备上的i p v 6 协议栈,具有代码尺寸小, 运行时占用内存空间小等适合嵌入式应用的特点。在设计中尽量将协议栈与操作系统分 离开来,降低其对操作系统的依赖性,使其具有较高的可移植性。为了使协议栈能够容 易扩展,设计时考虑了各个协议间的模块化。下面具体介绍设计时使用的一些技术。 3 1 分层设计 t c w i p 协议族被设计成分层次【1 2 】的,每一层单独的解决了通讯问题中的一部分。 每个协议可以单独的实现。严格的分层会增加层间的额外的通讯开销,降低整体性能。 因此层之间要共享一些重要信息。例如当t c p 计算校验和、为一段选择路由时,t c p 模块知道源和目的p 地址。t c p 模块知道i p 头结构,可以自己提取地址信息,而不是 使用函数调用。 本系统在设计时分成了三个层次:应用程序接口,t c p i p 协议栈,网络接口。在 t c p f l p 协议栈中各协议层问没有严格的划分。这三个层次之间通过消息进行通讯。消 息结构中包含消息类型和消息体两部分。系统定义了两种类型的消息:应用程序与协议 栈间传递的消息( t c p i pm s ga p i ) ;网络接口层和协议栈间传递的消息 ( t c p i pm s gi 肼丌) 。根据消息类型的不同,消息体也不同。t c p i pm s ga p i 类 型的消息消息体比较复杂,包括类型( 表明需要进行的操作) ,用于操作的数据( 不同 的类型数据格式不同,使用u n i o n 实现统一的定义) 。t c p i p类型的消息消 息体包括指向数据缓冲区的指针和网络接口指针。 _ m s oa p i 消息结构如下: l消息类型i消息体l t c p i pm s ga p i 类型的消息消息体格式如下: i 消息类型( 包括b i n d ,l i s t e n ,r e a d ,w r i t e 等) l 消息体( 操作数据) l t c p i pm s gi n p u t 类型的消息消息体格式如f : * d a m ( 指向数据缓冲区的指针) l * n e t i f ( 指向网络接口的指针) i 3 1 1 应用程序接口 由于大多数程序员对b s ds o c k e ta p i 非常熟悉,因此系统提供与b e r k e l e y 形式相 同的接口。从应用程序角度看,在b s ds o c k e ta p i 中,数据在连续的内存区域中处理。 但是协议栈内部对数据的处理可能是分割成更小的内存块,因此数据在被传递给应用层 。1 2 人连理一人学硕十学位论文 前需要将数据拷贝到一块连续的内存中,系统提供了一个函数将分片的缓冲区中的数据 拷贝到连续的内存中。 当发送数据时,对于t c p 连接,协议栈会将数据分割成适当大小的包,对其进行 排队传输。 3 1 2t c p i p 协议栈 系统使用一个线程循环监听从应用层发送来的请求及网络接口层传递过来的数据 包。 w h i l e ( 1 ) 接收消息 根据消息的不同类型做不同的处理 ) 3 1 3 网络接口层 网络接口层负责向底层发送数据;从底层接收数据,并对以太网帧进行处理。网络 接口层对硬件接口的表示与b s d 的相似,设计的结构中包括如下数据域:n e x t 用来形 成链表,表示多个网络接口:n a m e 用来区分不同类型的网络接口。例如无线网络接口 用州表示;n u m 用来表示网络接口编号,与n a m e 结合对网络接口进行唯一标识,例如 e t h 0 ;i p 地址、子网掩码、网关是手工配置绘网络接口的地址信息:i n p u t 和o u t p u t 函数 指针分别指向网络驱动程序的接收函数和发送函数,根据不同的硬件,实现方法也不 同;状态域用来表式网络接口所处的状态,包括可用和不可用两种状态。 3 2 进程模型的选择 实现t c p i p 协议栈时常见的进程模型有两种。 ( 1 ) 每个协议作为一个单独的进程,这个模型,要求一个严格的分层。优点是代码 易于理解。易于调试。缺点是需要上下文切换,例如对于到来的t c p 报文需要三次上 f 文切换:网络驱动到i p ,i p 到t c p ,t c p 到应用层。通常,操作系统中进程上下文 切换的费用非常高,因此这种模型不适合嵌入式系统。 ( 2 ) 让t c p i p 进程驻留在操作系统内核中,应用程序通过系统调用与协议栈通信。 各协议问没有被严格的区分,可以使用交叉协议层。这种方法使t c p p 协议栈与用户 程序分离,保证了安全性。但这种模型不满足我们的设计目标操作系统无关性。 本系统采用的进程模型为所有的协议驻留在一个简单的进程中,与操作系统内核分 离,应用程序可以驻留在协议栈进程中,也可以是一个分离的进程。当应用程序和协议 栈共享一个进程时,可以通过函数调用通信。这种方法是协议栈运行在用户空间,与操 i 3 - 嵌入式糖简l p v 6 协议栈的设计与实现 作系统相分离,满足操作系统无关性要求。它的缺点一是在协议栈运行前需要等待调 度,嵌入式系统中运行的进程较少,因此等待时间不会很长:二是缺少安全性,一般的 嵌入式操作系统很少对内核空间和用户空间作严格的区分,对安全性的要求较低,因此 可以采用这种方法。 3 3 平台无关性的解决 考虑到将来的移植问题,把所有与硬件、o s 、编译器相关的部分独立出来,放在特 定的目录下。操作系统相关的函数调用和数据结构没有直接用在代码中,而是使用统一 的接口函数。这些统一的接口函数在操作系统模拟层中实现,当将协议栈移植到不同的 操作系统时,只需要修改这些接口函数的具体实现就可以了。操作系统模拟层中包括时 钟,进程同步,消息传递等的实现。 3 3 1 与c p u 或编译器相关的定义 与c p u 或编译器相关的定义包括数据长度,字的高低位顺序等。一般情况下c 语 言的结构体s t r u e t 是4 字节对齐的,但是在处理数据包的时候,协汶栈使用的是通过结 构体中不同数据的长度来读取相应的数据的,所以,一定要在定义s t r u c t 的时候使用 p a c k e d 关键字,让编译器放弃s t r u c t 的字节对齐。 3 3 2o s 相关的一些结构和函数 o s 相关的一些结构和函数,主要可以分为四个部分。 ( 1 ) 信号量( s y s g e mt ) 协议栈中需要使用信号量进行通信,操作系统模拟层中需要实现下面与信号量相关 的函数:创建一个信号量结构;释放一个信号量结构:发送信号量;请求信号量。 ( 2 ) 消息( s y st)mbox 协议栈使用消息队列来缓冲、传递数据报文,因此要实现消息队列结构以及相应的 操作函数:创建一个消息队列;释放一个消息队列:向消息队列发送消息;从消息队列 中获取消

温馨提示

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

评论

0/150

提交评论