- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IPv6协议栈在ARM平台的设计与移植
摘要:首先介绍了嵌入式IPv6协议的数据处理流程,接着重点阐述了IPv6的核心协议:IPv6协议,ICMPv6协议和邻居发现协议的设计,最后,介绍了嵌入式IPv6协议的移植方法。
关键词:IPv6;ICMPv6;邻居发现协议
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)16-21216-02
The Design and Transplantation of IPv6 Based on ARM
XIE Xi-feng
(Department of Power Engineering,Guangxi Hydraulic and Electric Polytechnic,Nanning 530023,China)
Abstract:In this paper the author firstly Introduced the data technological process of IPv6,and thendesigned the core Protocol of IPv6: IPv6, ICMPv6, Neighbor discovery,finallythe author illustrated the transplant of IPv6.
Key words:IPv6;ICMPv6;Neighbor discovery
随着网络的发展,在嵌入式操作系统中集成TCP/IP协议栈,与系统相应的硬件配合,为嵌入式系统提供联网功能,己经成为嵌入式系统发展的重要方向。IPv6协议的新特性可以更好地满足嵌入式系统对联网功能的需求,在嵌入式系统中实现IPv6协议有着良好的应用前景。因此,研究嵌入式IPv6协议栈的设计与实现,具有重要的现实意义。
1 数据处理流程
实现协议栈重要的一点是正确的处理数据流程。根据不同的条件进行协议栈状态的转换。图1显示了对收到IPv6数据包和发送IPv6数据包的处理流程。
接收数据时,网络接口层将从网卡接收到的数据存到缓冲区,根据以太帧报头的类型字段判断以太类型,若以太类型等于0x86DD,则为IPv6数据包,把IPv6数据包发送给协议栈输入处理模块。输入处理模块先做合法性检测(包括检查IP包的版本号是否为6,判断是否是本机的单播地址,是否是相应的组播地址,计算校验和是否为0,检查IPv6头部中的下一头部是否为ICMPv6或UDP),若不合法就抛弃,同时向源地址发送的差错报文,若合法的话,那么根据IPv6报文中下头部的值,调用不同的处理函数。
发送数据时,应用程序用UDP方式发送,按UDP报文格式封装数据包,然后把数据包传输到IP层,选择下一跳IP地址(下一个目的地址,在有路由的情况下,可能是路由的地址,本文不处理路由问题,所以下一跳IP地址即为目标IP地址),然后,调用IPv6输出函数发送数据包。
2 IPv6模块的设计
IPv6模块主要包括两部分的功能,一是负责从网络接口层收取IPv6数据包,对数据包进行一定的处理后将数据包发送给不同的处理模块(UDP或ICMPv6)。二是从上层接收数据,进行报文的选路,封装IPv6报头后将数据包发送给网络接口层。IPv6功能主要由三个函数完成:初始化函数、输入函数和输出函数。
2.1 初始化函数
初始化函数IPv6_init()的主要工作是初始化IPv6协议中各字段的参数,以及可能包含的协议的数目,例如:协议中的版本号、优先级、流标记、源IP地址、跳数限制等。该函数在应用初始化时被函数网络底层函数InitNic()调用。
2.2 接收函数
接收函数IPv6_input()通常要实现三个功能:对到达的分组进行验证;分组重装和向上层协议传递数据包。但是在本设计中只是实现了主要有两个功能:报文的合法性检测和向上层协议传递数据包。报文的合法性检测,包括检查版本号是否正确,收到的报文长度是否短于应有的长度,报文的目的地址是否本地地址等。向上层协议传递数据包,就是根据IPv6头部的下一头部字段,对报文进行分发, 若下一头部长段为17时,则是UDP数据包, 若下一头部长段为58时,则是ICMPv6数据包。如果是UDP数据包,则调用上层的UDP接收函数udp6_input():如果是ICMPv6报文,则调用ICMPv6协议实现中的接收处理函数ICMPv6_input()。
2.3 发送函数
在发送数据时,函数IPv6_output()通常要从两处接收传送报文:IP转发模块和IP层之上的协议。由于系统没有考虑实现IP路由转发模块,所以,IPv6_output()只实现了被ICMPv6,
您可能关注的文档
最近下载
- 内部控制岗位职责详解.pdf VIP
- (外研版2024新教材)英语三年级上册 Unit 1 作业练习设计.docx
- 黄芪多糖提取工艺优化及抗氧化活性的研究.doc
- YBT4001.1-2019 钢格栅板及配套件 第1部分:钢格栅板.pdf VIP
- 人教版小学四年级数学上册《第四单元 三位数乘两位数》大单元整体教学设计[2022课标].pdf
- 移动集团HCIP-云售前解决方案高级工程师培训认证题库.docx
- 印刷行业样品承认书.pdf VIP
- 标准图集-北京市房屋建筑抗震节能综合改造图集 柱、圈梁、钢拉杆加固分册.pdf VIP
- 采购项目质量保证措施.docx VIP
- 2021健康照护师复习题库【附答案】.docx
文档评论(0)