版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式IPv6协议栈的设计与实现论文导读:由于嵌入式系统的广泛使用和网络互联的需要,嵌入式Internet是当前研究的热点。IPv6属于IPng下一代网络协议技术,IPv6解决了IPv4耗竭的问题,与之相比还有扩展性好,平安性高,更好地支持QoS,支持移动性等优点。本文实现了一个裁剪于LwIP协议栈的可运行于嵌入式实时系统C/OS-上的嵌入式IPv6协议栈。关键词:嵌入式系统,IPv6,IPng,C/OS-0 引 言由于嵌入式系统的广泛使用和网络互联的需要,嵌入式Internet是当前研究的热点。采用嵌入式协议栈的直接连接方式是解决嵌入式Internet问题的一个比拟好的方案。IPv6属于IP
2、ng下一代网络协议技术,IPv6解决了IPv4耗竭的问题,与之相比还有扩展性好,平安性高,更好地支持QoS,支持移动性等优点。现在的Internet也处在由IPv4向IPv6过渡的时期。因此在嵌入式系统中实现IPv6功能具有重要的现实意义。虽然目前在商用系统和Linux操作系统中已经有了对IPv6功能的支持,但由于系统本钱或代码体积的原因,并不能满足所有嵌入式应用的要求。本文实现了一个裁剪于LwIP协议栈的可运行于嵌入式实时系统C/OS-上的嵌入式IPv6协议栈。1嵌入式协议栈的特点由于嵌入式系统的硬件和软件资源有限,因此需要对通用的TCP/IP协议栈进行必要的修改以满足嵌入式应用的特殊需求。
3、一般说来,嵌入式协议栈具有以下几个特点【1】:1.1可裁剪性由于嵌入式应用的要求不同,其对网络功能的要求也各不相同,而且嵌入式系统对产品的本钱、功耗等比拟敏感,因此嵌入式协议栈应该是可裁剪的,能根据嵌入式系统的功能要求选择所需的协议局部。1.2实时性传统的TCP/IP协议栈的层次特性非常明显,每个协议层都有相应的数据格式。在用户数据从本地主机传送至目标主机的过程中,需要不断地打包和拆包,增加了系统开销,降低了系统性能。在嵌入式TCP/IP网络系统中,普遍采用共享内存方式解决这个问题。这是指协议栈没有用于各层数据传递的缓冲区,各层间传递的都是数据指针。只有当数据最终要被驱动程序发送出去(最低层)
4、或是被应用程序取走时(最高层)时,才进行真正的数据传递移出。1.3可扩展性由于嵌入式系统的多样性,使得网络接口和应用多样化,这就要求嵌入式TCP/IP协议栈提供便于扩展有网络接口,方便不同驱动程序和网络应用的开发;并且根据实际的需要,可以添加新的协议模块到嵌入式TCP/IP协议栈中。1.4使用静态分配技术如果在网络发送或接收的过程中,某一次传送的数据超过了一个物理网络上能够传送的最大数据量(MTU),那么处理该数据的任务往往会阻塞,直到上层重新调整需要处理的数据量的大小,它才会继续执行。嵌入式TCP/IP协议栈通常采用静态分配技术,在网络初始化时就静态分配通信缓冲区,设置了专门的发送和接收缓冲
5、区,并硬性规定这个区的大小一般小于或等于物理网络上的MTU值,从而确保每次发送或接收时处理的数据不会超过MTU值,防止阻塞等待,提高网络效率。2嵌入式协议栈的裁剪相对于IPv4而言,IPv6协议栈最大的变化在网络层,网络层包括IPv6和ICMPv6两个协议。网络层协议的变化必然会影响到TCP/IP层次结构的其他层协议,因此在设计嵌入式IPv6协议栈时,不光要对网络层的协议重点研究,对其下层和上层协议的影响也不容无视。如图1所示【2】。图1 嵌入式IPv6协议与传统TCP/IP协议各层比拟对IPv6的要求和嵌入式系统的特点,对LwIP协议栈中各个协议进行源代码的修改,开发的精简的嵌入式IPv6协
6、议栈结构如图2所示。图2 嵌入式IPv6协议栈实现结构图嵌入式IPv6协议栈与IPv4协议栈最大的变化在IP层,由于IP报头的变化,影响到ICMP、ND、TCP、UDP等协议,都需要进行相应修改【4】。2.1 IP层协议栈实现了IP层的根本功能,对数据包的发送,接收和转发,不发送或接收分割的IP碎片,也不处理带IP选项的包。这是因为嵌入式系统中数据量比拟小,可以规定在网络中发送的数据包的大小,这样就可以尽量的减少IP碎片的产生,也不需要进行分片和重组。1IPv6报头IPv6报头的结构体定义如下:struct ipv6_hdru8_t v:4,tclass:4; /*版本号和流量类型*/u16_
7、t flow; /*流标签*/u16_t len;/*载荷长度*/u8_t nexthdr; /*下一报头*/u8_t hoplim; /*跳数限制*/struct ip_addr src, dest; /*源地址和目的地址*/;2IPv6包根据IPv6的协议标准,原本只支持IPv4的LwIP中的IP包也要做出相应修改,包括IP接收包、IP发送包和IP转发包。相对于IPv4,IPv6简化了包头结构,因此代码量大幅减少,在此不再一一赘述。2.2 ICMPv6协议ICMPv6协议,包括信息报文和错误报文等多种类型。根据嵌入式应用的特点和需求,协议栈实现了目的不可达、超时两个错误报文和简单的ECHO
8、信息报文。1ICMP数据处理首先由ip_input()将收到的ICMP包移交到icmp_input(),它解析ICMP报头并且进行以下处理。1) 解析ICMP报头时,用类型字段和代码字段的值代表不同的状况type =(u8_t*)p-payload);switch (type) case ICMP6_ECHO;LWIP_DEBUGF(ICMP_DEBUG,(icmp_input: ping ;);2)交换目标地址和目的地址,以便将ECHO信息送回:ip_addr_set(tmpaddr,(iphdr-src);ip_addr_set(iphdr-src),(iphdr-dest);ip_add
9、r_set(iphdr-dest),tmpaddr);3)重新计算校验和,进行性能优化:if iecho-chksum=htons(0 xffff- (ICMP6_ECHOiecho-chksum+=htons(ICMP6_ECHO else iecho-chksum +=htons(ICMP6_ECHO 4)将包交到IP层,等待传送ip_output_if ( p ,(ip_hdr-src), IP_HDRINCL, ip_hdr-hoplim,IP_PROTO_ICMP, inp);2错误报文当UDP中检索不到匹配的端口时,就发送一个目的不可达报文。对于多播地址,不发送ICMP错误报文。而
10、超时的判断主要是对IP报头中Hoplim域值的判断,所以直接在IP协议中实现更为妥当。转发包时,首先判断跳数限制的值:if -ip_hdr-hoplim=0 if (ip_hdr-nexthdr!=IP_PROTO_ICMP) icmp_time_exceeded ( p,ICMP_TE_TTL);pbuf free(p) ;return;对于其它传输过程中出现的问题,不发送ICMP信息,而是直接将包丢弃。2.3 UDP协议和TCP协议UDP协议和TCP协议属于传输层协议,在嵌入式IPv6协议栈中不需要更改协议模式,只需要基于LwIP提供的相应功能对数据格式如地址格式等进行适当修改即可。在此不
11、再详述。2.4 ND协议IPv4中用ARP协议完成MAC地址和IP地址的解析,在IPv6中使用NDNeighbor Discovery邻居发现协议实现这一功能,协议栈设计了邻居请求报文和邻居宣告报文的数据结构和函数,通过这两个报文对接口的MAC地址和IPv6地址进行绑定并且保存在对方的地址缓存区中。1)邻居请求报文IPv6通过邻居请求报文来获得链路层地址。当下一跳IP对应的MAC地址为NULL时,调用邻居请求模块,把数据包按照邻居请求报文格式封装,然后传送给IPv6输出模块in-out(),把数据包发送到网络上。if (netif-hwaddr=NULL)ndrequest(struct pb
12、fs p);当从IPv6输入模块ip_input()中接收到邻居宣告报文时,从数据包中取出IP地址和MAC物理地址存到邻居缓存表中。:tgaddr=p-ip6_addr;macaddr=netif-hwaddr;2)邻居宣告报文按照结构体定义设计完成即可。3移植和测试本课题采用博创公司的UP-NETARM2410-S开发平台。将移植工作完成后,建立与运行微软IPv6协议栈的PC机对等通信的实验环境进行测试。设置好相应的IPv6地址后,可以通过ping命令顺利地得到开发板的响应,如图3所示。图3 IPv6测试示意图4结语本文针对嵌入式系统的特点和要求,基于轻载协议栈LwIP3.0,设计并实现了一个嵌入式IPv6协议栈。利用三星S3C2410处理器(ARM9内核)和C/OS-操作系统搭建了一个嵌入式系统平台,将该协议栈加载在该系统中并进行了验证,并通过连通性测试说明该协议栈可以满
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广西防城港务集团有限公司幼儿园招聘3人考前冲刺密卷附完整答案详解(易错题)
- 2026财达证券股份有限公司河北分公司招聘6人考前冲刺试卷含答案详解(研优卷)
- 2026年安徽农业大学茶业学院管理助理招聘备考题库完整答案详解
- 艾滋病患者护理查房
- 2025-2026学年四川省南充市嘉陵区数学四下期末学业水平测试试题(含答案解析)
- 外科选择题库及参考答案
- 2025-2026学年嘉祥县数学四年级第二学期期末质量检测模拟试题(含解析)
- 2026中国钠离子电池产业化进度与储能市场布局战略报告
- 2025-2026学年哈尔滨市延寿县四年级数学下学期期末试题(含答案)
- 电气加工竞赛题目及答案解析
- 2026宁波高新区机关各部门、事业单位及街道编外招聘30人考试备考题库及答案详解
- 实验室生物安全手册
- 2026广西来宾市商务局招聘编外聘用人员10人备考题库及完整答案详解(必刷)
- 2026年上半年教师资格证考试《高中地理学科知识与教学能力》真题
- SYT 6620-2025《立式圆筒形钢制焊接储罐完整性评价技术规范》
- 《电化学储能电站建设项目文件收集与档案管理规范》
- 供应商来料质量报告(年度与月度)
- 消防作战训练安全总结
- 数字货币概论 课件 第5章 稳定币的原理与实现
- 选煤厂员工培训课件
- 利器收发记录
评论
0/150
提交评论