IPv6协议栈在ARM平台的设计与移植.docVIP

IPv6协议栈在ARM平台的设计与移植.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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,

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档