IPv6微型协议栈设计方法

文档序号:7616950阅读:169来源:国知局
专利名称:IPv6微型协议栈设计方法
技术领域
本发明涉及ー种IPv6微型协议栈设计方法。
背景技术
IPv6协议(Internet Protocol Version6”的缩写,也被称作下一代互联网协议)作为下一代网络的核心协议,较好地解决了当前IPv4协议所面临的问题,适应了未来网络基础设施在数量和质量上的需求,体现出灵活性、高效性等优点。IPv6与IPv4 —祥,都遵循TCP/IP模型分层化的体系结构。一般来说,根据协议分层模型,可将TCP/IP參考模型分为4个层次网络接ロ层、网络层、传输层、应用层。应用层直接面向用户,并提供访问其它层服务的功能;传输层用于提供源主机和目的主机上的对等实体对话功能,网络接ロ层负责底层数据的接收和发送,该层技术细节通常与TCP/IP无关;网络层是整个TCP/IP体系结构的 关键部分,其主要功能是主机可以把分组发往任何网络,并使分组可以独立地传送到目的主机。IPv6基本协议栈位于网络层,是基于IPv6的网络层协议栈,通过运行该基本协议栈以完成网络层的主要功能,支持其正常运行。IPv6基本协议栈的主要内容包括IPv6协议、IcMPv6协议、邻居发现协议(ND)、地址自动配置协议、IPv4到IPv6的过渡协议等。其中,IPv6协议定义了 IPv6的基本规范,负责把数据包添加包头后交由底层发送,并把接收到的IPv6报文递交给上层的TCP或uDP处理;ICMPv6协议封装在IPv6包中,通过协议的控制报文进行错误报告和网络诊断等;邻居发现协议和地址自动配置协议处于IPv6网络层和网络接ロ层之间,主要功能是实现无状态地址的自动配置和对网络配置性能进行改善;考虑到IPv6协议是在IPv4协议的基础上发展而来的,在实际网络中,利用IPv4到IPv6的过渡协议来实现从IPv4向IPv6的演进。由于IPv6基本协议栈过于庞大,而传感器节点上各种资源是有限的,如CPU的处理速度、字长、RAM、ROM存储器的容量、接ロ的数量等和通用计算机相比有很大差距,所以“微型化”成为IPv6协议栈设计的关键问题。“微型化”思想主要体现在设计方案核心应着眼于设计体积小,但又不影响运行的协议栈,所以要对协议栈的裁剪方面进行深入研究,去掉不必要的组件、传统的复杂调度机制和额外的扩展功能。

发明内容
传统的TCP/IP协议栈实现需要太多的硬件和软件资源,无论是几百K字节的代码量还是几百千字节的数据存储区大小都无法满足传感器网络路由器低成本、低能耗的要求。为了将IPv6技术运用到无线传感器网络中,本发明的目的是设计一种精简的微型TCP/IPv6协议栈,以满足传感器网络路由器低成本、低能耗的要求。本发明采用的技术方案如下ー种IPv6微型协议栈设计方法,包括以下步骤I)精简IPv6协议栈;2)独立于操作系统进行协议栈调度;
3)采用最大容限控制的内存分配方案;4)采用基于事件和数据类型驱动的应用程序接ロ。进一步地在所述步骤I)中,对包括IPv6协议、ICMPv6协议、ND协议、TCP协议在内的各协议进行简化,去除其中无关和不必要的组件及扩展功能。在所述步骤2)中,通过划分中断处理程序,使中断处理程序缩短,减小执行任务时产生的冲突。在所述步骤3)中,采用两个全局变量inBuffer和outBuffer保存整个IPv6数据包,分别对TCP/IPv6协议栈各个字节进行处理。
步骤3)包括以下详细步骤当数据包接收后,首先解析IEEE802. 15. 4数据帧头部和适配层头部,将适配层数据帧的载荷存储在全局变量inBuffer中,同时将协议栈处理指针指向全局变量inBuffer的各个协议字段,调用TCP/IPv6协议处理函数进行解析,最后由应用程序接ロ进行应用数据的处理;对应用层产生的数据进行TCP/IPv6封装的过程跟上述过程相反;在应用层处理完数据后,首先将应用数据写入全局变量outBuffer,然后调用TCP/IPv6协议栈对数据包进行封装,填充适配层报头格式,最后递交到IEEE802. 15. 4介质接入控制层和物理层完成数据帧封装进行发送。在所述步骤4)中,所述事件驱动是指在TCP/IPv6协议栈中通过设置“轮循”、“接收数据”、“数据应答”和“重传”事件,通知应用程序接ロ调度相应的应用程序。在所述步骤4)中,所述数据类型驱动是指每个应用数据的头部都要填充传感数据类型,应用程序接ロ根据传感数据的类型,分别调度对应的应用程序,应用程序再进行数据采集或者数据处理,封装传感数据类型,递交到应用程序接ロ,由应用程序接ロ通知TCP/IPv6协议栈进行处理。本发明具有以下优点本发明的协议栈代码量小、简易轻型并且可以与使用完整的TCP/IPV6协议栈的对等节点进行通信。本发明的协议栈采用了ー种独立于操作系统的网络事件调用方案,采用了基于事件和数据类型驱动的应用程序接口和基于需求驱动的重传机制,通过最大容限控制的内存分配方案,使得最終的协议栈软件的数据存储区控制在20千字节以内。


图I为通用接ロ图。
具体实施例方式由于传感器节点上各种资源是有限的,如CPU的处理速度、字长、RAM、ROM存储器的容量、接ロ的数量等和通用计算机相比有很大差距,所以如何使协议栈做到精细、通讯可靠、功能相对完善,而且又能发挥单片机的特点成为IPv6微型协议栈设计的关键问题。IPv6微型协议栈从以下几个方面对IPv6协议栈进行了精简一 .精简IPv6协议栈,去掉不必要的组件及额外扩展功能
由于无线传感器网络通常是在特定环境下,完成ー种特定的功能或任务,因此对运行在其上的IPv6微型协议栈不必像通常IP协议栈那样,实现IP层的所有功能,只需考虑实现IPv6协议栈的基本协议和功能的实现。因此,我们可以对原协议栈进行必要的裁减,包括对IPv6协议、ICMPv6协议、ND协议、TCP协议等协议进行简化。ニ .独立于操作系统进行协议栈调度无线传感器网络IPv6微型协议栈,直接面对硬件,MCU中的程序结构一般是顺序执行和硬件中断相配合的方式,与高级操作系统中的多线程并发执行的方式截然不同。在高级操作系统中,对网卡的驱动采用中断方式,中断与软中断、消息机制等相结合,运行时以分时为基础,进行动态优先级调度。为了节约节点设备存储空间和处理能耗,我们设计的IPv6微型协议栈独立于操作系统,通过划分中断处理程序,使中断处理程序变短,减小执行任务时产生的冲突,从而达到嵌入式系统的需要。三.最大容限控制的内存分配方案我们设计的微型TCP/IPV6协议栈并不采用动态分配内存的方式,而是采用两个全局变量inBuffer和outBuffer保存整个IPv6数据包,分别对TCP/IPv6协议栈各个字节进行处理。两个全局变量大小都为102个字节,满足IEEE802. 15. 4规定(最大包长度127字节-最小数据帧头15字节)。当数据包接收后,进行解析IEEE802. 15. 4数据帧头部和适配层头部,然后将适配层数据帧的载荷存储在inBuffer中,用全局变量buf Ien表示载荷长度,同时将协议栈处理指针指向inBuffer各个协议字段,调用TCP/IPv6协议处理函数对数据帧进行解析,最后由应用程序接ロ进行应用数据的处理。同样,应用层产生的数据进行TCP/IPv6封装的过程跟上述过程相反。为了防止在数据包发送过程中,对下ー个接收的数据包进行覆盖,在应用层处理完数据后,将应用数据写入outBuffer,然后调用TCP/IPv6协议栈对数据包进行封装,填充适配层报头格式,然后递交到IEEE802. 15. 4介质接入控制层(MAC)和物理层(PHY)完成数据帧封装进行发送。四.基于事件和数据类型驱动的应用程序接ロ在大多数的操作系统中,TCP/IP协议栈的应用程序接ロ为Socket应用程序接ロ(SocketAPI)。由于SocketAPI使用的是ー种停止——等待的原语,需要多任务的操作系统的支持,并且任务管理的开销、上下文的切换以及任务空间的分配都对当前的传感器节点体系结构提出很高的要求,所以我们提出一种基于事件和数据类型驱动的应用程序接ロ。通用接ロ的设计使得系统具有很强的灵活性和扩展性。一方面,能实现应用层与下层无缝衔接,为新增应用功能而设计的应用程序可以方便载人系统,无需考虑下层结构实现细节;另一方面,通用接ロ为应用层的实现完全屏蔽了下层硬件平台环境,同一应用程序可以在某一特定应用领域的各类设备上实现通用,大大增加了系统的灵活性和移植性。通用接ロ设计如图I所示。在IPv6微型协议栈中设置“轮循”、“接收数掘”、“数据应答”和“重传”事件,协议栈处理函数根据事件类型,通知应用程序通过接收接ロ APP_process(),把应用数据传入应用层,在应用层中的各应用程序再由子接ロ接收属于自己的数据,完成相应的应用处理操作。处理后的应用数据,由子接ロ递交到应用程序通用发送接ロ SencL toserver (),通知IPv6微型协议栈进行下ー步的处理。
权利要求
1.ー种IPv6微型协议栈设计方法,其特征在于包括以下步骤 .1)精简IPv6协议栈; .2)独立于操作系统进行协议栈调度; .3)采用最大容限控制的内存分配方案; .4)采用基于事件和数据类型驱动的应用程序接ロ。
2.如权利要求I所述的IPv6微型协议栈设计方法,其特征在于 在所述步骤I)中,对包括IPv6协议、ICMPv6协议、ND协议、TCP协议在内的各协议进行简化,去除其中无关和不必要的组件及扩展功能。
3.如权利要求I所述的IPv6微型协议栈设计方法,其特征在于 在所述步骤2)中,通过划分中断处理程序,使中断处理程序缩短,减小执行任务时产生的冲突。
4.如权利要求I所述的IPv6微型协议栈设计方法,其特征在于 在所述步骤3)中,采用两个全局变量inBuffer和outBuffer保存整个IPv6数据包,分别对TCP/IPv6协议栈各个字节进行处理。
5.如权利要求4所述的IPv6微型协议栈设计方法,其特征在于 步骤3)包括以下详细步骤 当数据包接收后,首先解析IEEE802. 15. 4数据帧头部和适配层头部,将适配层数据帧的载荷存储在全局变量inBuffer中,同时将协议栈处理指针指向全局变量inBuffer的各个协议字段,调用TCP/IPv6协议处理函数进行解析,最后由应用程序接ロ进行应用数据的处理; 对应用层产生的数据进行TCP/IPv6封装的过程跟上述过程相反; 在应用层处理完数据后,首先将应用数据写入全局变量outBuffer,然后调用TCP/IPv6协议栈对数据包进行封装,填充适配层报头格式,最后递交到IEEE802. 15. 4介质接入控制层和物理层完成数据帧封装进行发送。
6.如权利要求I所述的IPv6微型协议栈设计方法,其特征在于 在所述步骤4)中,所述事件驱动是指在TCP/IPv6协议栈中通过设置“轮循”、“接收数掘”、“数据应答”和“重传”事件,通知应用程序接ロ调度相应的应用程序。
7.如权利要求I所述的IPv6微型协议栈设计方法,其特征在于 在所述步骤4)中,所述数据类型驱动是指每个应用数据的头部都要填充传感数据类型,应用程序接ロ根据传感数据的类型,分别调度对应的应用程序,应用程序再进行数据采集或者数据处理,封装传感数据类型,递交到应用程序接ロ,由应用程序接ロ通知TCP/IPv6协议栈进行处理。
全文摘要
本发明公开了一种IPv6微型协议栈设计方法,包括以下步骤1)精简IPv6协议栈;2)独立于操作系统进行协议栈调度;3)采用最大容限控制的内存分配方案;4)采用基于事件和数据类型驱动的应用程序接口。本发明摆脱了传统的TCP/IP协议栈实现需要太多的硬件和软件资源的限制,满足了传感器网络路由器低成本、低能耗的要求,具有体积小、能耗低、自适应性强、成本低、简单灵活等优点,符合IPv6协议栈的微型化趋势,推动了IPv6协议栈的微型化,在工农业生产、军事国防、医疗护理、环境监测、智能家居等领域有着广泛的应用前景。
文档编号H04L29/06GK102694774SQ201110070339
公开日2012年9月26日 申请日期2011年3月23日 优先权日2011年3月23日
发明者刘 东, 刘铭, 步日欣, 程远, 董伟, 谷晨 申请人:北京天地互连信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1