摘要:无线传感器网络节点的资源非常有限,如果能够对IPv6报头进行压缩可以在较大程度上减小数据传输量,提高IPv6传感器网络的整体性能。通过对6LoWPAN报头压缩方案的研究,并结合无线传感器网络的特点和实际需求,在已有无线传感器网络底层协议和基本IPv6协议栈基础上,设计并实现了一种支持对跳教限制压缩的IPv6报头压缩方法。实验结果表明,报头压缩可以有效节省网络能耗,降低丢包率,减小数据传输时延。
关键词:无线传感器网络;IPv6;报头压缩;6LoWPAN
引言
无线传感器网络是由大量按需随机分布的集成有传感器、数据处理单元和通信模块的微型节点以自组织方式构成的无线网络。传感器网络具有成本低、能耗代、灵活性高等优点,可以应用于国防军事、环境监测、交通管理、医疗卫生、反恐抗灾等领域,具有重要的研究价值和应用前景。无线传感器网络节点的资源非常有限,因此需要一个轻量级的无线通信规范。IEEE 802.15.4标准定义了一个短距离、低复杂度、低功耗、低数据速率的介质访问控制层(MAC)和物理层(PHY)规范,该标准的技术特点决定了它特别适合传感器网络、智能家庭网络、工业控制网络等节点众多、数据率较低的应用环境。IPv6作为下一代网络协议,具有地址资源丰富、地址自动配置、安全性高、移动性好等优点,可以满足无线传感器网络在地址、安全、移动及与现有网络融合等方面的需求。因此,IPv6与IEEE 802.15.4在传感器网络上的结合有着无可比拟的应用前景。
2004年11月IETF成立了6LoWPAN(IPv6 overLow power WPAN)工作组,研究IPv6在IEEE 802.15.4网络上的应用方案。6LoWPAN工作小组对适配层技术、报头压缩技术、路由技术、IPv6技术等提出了相应的解决办法。IPv6要求支持1 280 B的MTU,而IEEE802.15.4标准规定的物理层最大帧为127 B,除去物理层25 B的帧负载,在无安全机制的情况下MAC层最大帧长度为102 B,因此需要在网络层之下引入适配层来协调二者的关系。由于IPv6标准报头是40 B,为了在IEEE 802.15.4上更加有效的传输IPv6数据包,提高净荷的传输效率,报头压缩是一个很好的解决办法。
本文以北京交通大学下一代互联网互联设备国家工程实验室自主开发和研制的微型传感路由器所构建的IPv6无线传感器网络为基础,设计并实现了一种更为高效的IPv6报头压缩方法,并对压缩性能进行了分析。
1 平台简介
本文基于IPv6无线传感器网络平台的拓扑结构及协议层次如图1所示。IPv6无线传感器网络节点设备可以自组织形成多跳Mesh网络,将采集到的温度、湿度、光强等环境信息发送给网关设备。网关设备通过以太网直连的方式与服务器进行通信,并把收到的来自传感器节点的数据提交给服务器,服务器端完成对整个IPv6传感器网络的控制和环境信息的人性化显示。
传感器节点采用ATmega128作为处理器、使用CC2420作为射频芯片,能量供应模块可以使用9 V直流稳压电源或使用9 V干电池直接供电,同时配备温湿度传感器和光强传感器对环境信息进行采集。节点通信协议分为5层,物理层采用IEEE 802.15.4通信规范,使用OQPSK方式进行调制,发送频段使用2.4 GHz,传输速率可达250 Kb/s。适配层实现数据包的分片和重组、报头压缩以及Mesh路由等功能。网络层运行精简的微型IPv6协议栈,该协议栈代码量小、简易轻型并且可以与使用完整的IPv6协议栈的对等节点进行通信。应用层主要运行传感器网络应用级程序,比如数据采集、环境监控等。节点的层次协议设计完全遵守RFC4919和RFC4944中定义的规范。
2 IPv6报头压缩
2.1 现有方案分析
到目前为止,6LoWPAN报头压缩方案主要有两种。其中一种是RFC4944中定义的方案。该方案在最理想的情况下可以将IPv6完整的40 B压缩到2 B(HC1字节和跳数限制字节),同时支持UDP,TCP,ICMP下一个报头的压缩,HC1字节编码IPv6报头中各字段的压缩方式,IPv6报头中未经压缩的内容按顺序存放在未压缩字段中。
如图2所示,版本、传输类型和流标签(全部为零)、净荷长度(可以从IEEE 802.15.4 MAC头中净荷长度字段推断出来)均可以压缩掉,下一个报头字段携带在HC1字节中,跳数限制字段不压缩,存放在未压缩字段中。标准中规定IPv6地址采用无状态的配置式,地址由64位前缀和64位接口标识符(Interface ID,IID)生成。IEEE 802.15.4定义了两种寻址模式:IEEE 64位扩展地址和16位短地址。每一个IEEE802. 15.4设备都有一个分配的EUI-64标识符,该标识符用作64位扩展地址进行寻址,具有全球惟一性,并且通过该EUI-64标识符可以生成一个IPv6接口标识符,实现IPv6地址的自动配置。16位短地址是在节点成功加入网络后,由节点所在PAN内的协调者动态分配,只能保证在该PAN内的惟一性,不能用作实现IPv6地址的自动配置。因此如果IPv6地址为本地链路地址(前缀为fe80::/64),并且IEEE 802.15.4寻址模式为64位扩展地址,就可以将IPv6地址压缩掉,否则就要将其在未压缩字段中携带。
图3为HC1字节具体编码格式。
另一种是现有报头压缩草案中定义的方案。该方案提出了对本地链路地址、全球单播地址、多播地址等IPv6地址的压缩方法,同时解决了源压缩方案不具有协议层次性的弊端。而且该压缩方案支持IPv6扩展报头的压缩和流标签、服务类型的区分。但是这种压缩方案过于复杂,对于处理能力有限、能量受限、硬件资源匮乏并且以环境监测为主要应用的传感器节点来说并不实用。因此本文提出一种基于RFC4944的IPv6报头压缩改进方案。