6LoWPAN接入(IPv4)Internet中数据包调度的研究与实现*
2013-06-20耿道渠代富江李小龙
耿道渠,代富江,李小龙,柴 俊
(重庆邮电大学工业物联网与网络化控制教育部重点实验室,重庆400065)
随着无线通信技术和互联网技术的高速发展,就无线传感器网络而言,它必须和一个外部网络连接在一起,使外部网络可以监测和控制无线传感器网络才具有更真实的意义[1]。在异构网络之间的数据通信中,数据包的正确调度和控制直接关系网络之间信息的可达性。WSN(Wireless Sensor Networks)接入Internet必须解决网络层的接入问题,为了实现异构网络的接入,在WSN和Internet之间部署协议转换网关[2]。在本文6LoWPAN和(IPv4)Internet的通信中,网关功能的设计和实现采用多空间处理方式,数据包的流向存在多个途径,数据流向没有得到控制,因此需要根据异构网络的通信场景设计新的调度方法。在现有的 IPv4与 IPv6[3](Internet Protocol Version 6)网络互通研究中,文献[4]应用 Netfilter[5]功能框架下 NAT-PT[6](Network Address Translation-Protocol Translation)转换实现网关的设计,即将NAT-PT模块分为NAT和PT模块挂载到内核空间中的Netfilter框架下,但将NAT-PT分为两部分容易产生功能上的错误,并且将所有功能在Netfilter框架下实现,设计和测试也将面临困难。在现有的传感网和互联网互通研究中,文献[7]提出一种IPv6无线传感器网络接入以太网的网关设计,在相关硬件支持的基础上采用精简IPv6协议栈与完整IPv6协议栈相结合的方法实现传感网和以太网的数据交互,但现今的以太网大多是IPv4版本的网络,IPv4到IPv6的过渡还需要一个较长的过程,该系统不能大范围应用于现实环境中,IPv6和IPv4的协议转换问题也没有得到有效地解决,IPv6传感网和IPv4互联网仍然无法直接通信。本文提出了基于NAT-PT机制的异构网络互通架构并实现IPv6传感网和IPv4网络的相互通信,采用多空间(内核空间和用户空间)共存的方法实现网络互通中数据包的调度。
本为在6LoWPAN接入(IPv4)Internet中研究数据包的调度问题。首先提出6LoWPAN接入(IPv4)Internet的设计方案,阐述方案中模型的构建方法和依据,然后分析网络通信中存在的数据包种类及特征,提出调度特定数据包的方法,最后通过实验测试验证数据包调度的有效性。
16 LoWPAN接入(IPv4)Internet的设计方案
结合6LoWPAN数据包的特性和Internet网络的通信特点,为了能够实现异构网络中主机端到端的相互通信,促进网络相互延伸和融合,设计出6LoWPAN和(IPv4)Internet互通的方案模型。
1.16 LoWPAN接入(IPv4)Internet的场景设计
图1展示了整个6LoWPAN接入Internet的场景结构,该结构主要包括3大部分:6LoWPAN、Gateway和Internet。网关在6LoWPAN和Internet之间搭起一座中介桥梁,传感网数据经过网关处理后可以通过 GPRS[8]、以太网、3 G/4 G 或 WIFI等方式传给Internet网络的PC端。使6LoWPAN节点和Internet(IPv4)主机可以进行直接通信。本方案以以太网为例,网关完成异构网络之间的协议翻译[9]和地址转换。远端IPv6网络与6LoWPAN通信网关还需要配置隧道功能。分析可知该网络中数据包类型如表1所示。
图1 网络互通场景图
1.2 网关内部功能设计
针对网关的应用场景,本设计将“6LoWPAN接入模块”与“ARM linux主控单元”一起作为网关的实体,其内部协议层次结构如图2所示。
(1)6LoWPAN接入模块 以传感网中边缘路由器的角色作为网关的一部分,它的一端通过无线射频模块连接6LoWPAN节点,另一端通过串口接入“ARM Linux主控单元”。其内部层次结构底层遵循 IEEE 802.15.4 标准[10],上层采用 IPv6 协议,中间加入6LoWPAN适配层[11]完成协议适配功能,MAC层添加SLIP模块以支持在串行线路上对IP数据包的封装和传输[12]。
表1 通信中数据包类型表
图2 网关协议层次结构图
(2)ARM Linux主控单元 为了实现地址转换和协议翻译的功能,在层次结构中加入NAT-PT模块。同时主控单元还支持QoS管理和隧道功能,但这两部分不作为本文的研究重点。
(3)数据流 数据包①的流向表示从Internet发往6LoWPAN的数据包。IPv4网络的PC端向6LoWPAN网络发送数据,由网口进入“ARM Linux主控单元”并进行数据解析,到网络层后,NAT-PT将该包翻译为IPv6格式,由系统加载的SLIP模块处理并直接从链路层向接入模块传输该数据包,6LoWPAN接入模块在串口端接收到该数据包后,将该数据包处理并封装下层的IEEE 802.15.4底层协议构成6LoWPAN数据包,最后通过无线射频发射模块发送数据到6LoWPAN网络。实现数据包在异构网络中的传输。数据包②的流向和处理过程与①相反,不再赘述。
2 数据包调度控制
主控单元中数据包调度控制主要是由内核空间的Netfilter功能框架和用户空间的NAT-PT功能框架共同协调完成。其结构如图3所示。
2.1 内核空间下的Netfilter功能框架
Netfilter功能框架提供一种数据的检测和处理机制,其具有类似于防火墙的结构功能。Netfilter框架中定义了5个点,分别是:NF-IP-PREROUTING、NF-IP-LOCAL-IN、NF-IP-FORWARD、NF-IP-POST-ROUTING、NF-IP-LOCAL-OUT,简 称Hook点。用户可以设计功能函数并注册在Netfilter框架中的Hook点上形成Hook函数,数据包在经过这些Hook点时,注册在 Hook点上的Hook函数将取得对数据包的控制权,然后按照Hook函数的功能进行处理,待Hook函数处理完以后交出对数据包的控制权,规定要求所有的Hook函数都将具有一个返回值以表明处理结果和下一步操作。返回值定义见参考文献[4]。
2.2 用户空间下的NAT-PT功能框架
NAT-PT存在于用户空间中,完成整个网关的地址转换和协议翻译功能,接收来自网口和串口的数据包,6LoWPAN的数据包要与IPv4中的数据包进行交互。由于异构网络所使用的通信协议不同,因此需要进行协议的翻译,即PT;由于两者使用的IP地址格式不同,IPv4使用32 bit地址,IPv6使用128 bit地址[13],所以需要进行地址格式的转换,即NAT。
2.3 内核空间和用户空间数据包的调度
在整个系统启动后,根据图3设计结构可知所有进入网关网口或串口的数据包都将同时进入内核空间和用户空间,但任何一类数据包仅需要由特定的一种空间进行处理。例如,需要翻译的数据包只需要进入用户空间由NAT-PT处理,而不需要进入内核空间,否则将引起系统错误回复和通信数据紊乱。因此,表2列出每一类数据包的调度方式。
图3 主控单元数据调度控制
表2 数据包调度表
2.3.1 内核空间数据包堵塞算法分析
6L→4与4→6L数据包需要进入用户空间进行协议翻译和地址转换等操作,内核空间将堵塞这两种数据包,将Hook函数注册在Netfilter框架下的第一个Hook点,Hook函数堵塞数据包算法如表3所示,其中数据包=Ppacket,目的 IPv4地址=dst_v4_add,目的 IPv6地址=dst_v6_add。
表3 内核空间堵塞算法
2.3.2 用户空间数据包堵塞算法分析
6L→4-6,4↔4和6-4→6L数据包进入主控单元由内核处理。6L→4-6数据包经过判断是发往远端IPv6网络,将使用隧道技术传输;4↔4数据包是将网关作为路由设备进行数据转发;6-4→6L数据包也使用隧道技术,IPv6数据包是穿越IPv4网络进行通信。用户空间中的NAT-PT将堵塞这3种数据包,其堵塞算法如表4所示。
表4 用户空间堵塞算法
3 系统验证
3.1 验证环境
网关功能模块由“CC2530接入模块”和“ARM9 S3C2440主控单元”组成,6LoWPAN节点和接入模块运行6LoWPAN协议栈,主控单元是基于2.6.24版本的Linux操作系统。其通信测试如图4所示。
图4 系统通信测试图
3.2 验证过程
3.2.1 连通性测试
在Linux下加载IPv6模块并完成隧道配置,将一串口设置成虚拟网口并加载SLIP模块,完成串行链路设置,PC端ping主控单元网口和虚拟网口,完成连通性测试。
Linux SLIP模块加载以及串口配置命令:
3.2.2 6LoWPAN 与 Internet数据通信测试
图5 无线传感网通信数据包
搭建测试平台后,6LoWPAN组网形成网络,图5为通过sniffer抓包软件获取的传感数据包,数据包的源地址:3FFE::0302:0304:0506:0709,目的地址:3FFE::AC16:8E17(3ffe::172.22.142.23)。数据包经网关用户空间NAT-PT转换处理后发送到 IPv4网络的 PC端,PC端接收并由Wireshark网络包分析软件截取,如图6所示。图5和图6中数据包的应用层传感数据均为40030301010101000103,得出在6LoWPAN接入 Internet网络的场景中,数据信息可以正确传输。相反,当IPv4网络的PC端向6LoWPAN节点传输数据时,数据包进入用户空间处理,内核空间没有返回ICMP报文信息,证明内核空间已经依照所设计的算法堵塞了该数据包的进入。PC端向6LoWPAN节点传输数据(图 7②)和远端 IPv6主机与6LoWPAN节点数据交互过程(图7③,7④)类似,不再赘述。
图6 IPv4网络PC端通信数据包
图7 多空间调度处理
4 结束语
本文的核心内容是实现6LoWPAN接入(IPv4)Internet中数据包的有效调度。目前国内外对IPv4网络与IPv6网络的过渡技术研究得比较深入[14],尚未提出关于传感网与Internet互通的数据调度方法。本文根据应用场景提出了一种新的网关内部架构,针对其数据通信过程,采用多空间协调处理的方式有效地解决了数据包的调度问题。测试结果表明,在网关接收数据包时,数据包能按照正确的处理流程进行处理,根据设计的调度算法实现其有效调度。
由于网关承载着异构网络的适配功能,其运行的稳定性是需要保证的;在异构网络数据通信安全性方面,需要引入新的安全机制;对于6LoWPAN中的节点,外部对其的管理控制也是网络能够正常运行的重要保证。因此,以上3方面是下一步研究的方向和重点。
[1] 王晓喃,钱焕延,唐振民.6LoWPAN网关的设计与实现[J].传感技术学报,2009,22(5):717-721.
[2] 孙纪敏,沈玉龙,孙玉,等.传感器网络接入Internet体系结构和服务提供方法[J].通信学报,2008,29(4):84-89.
[3] Jonathan W Hui,David E Culler.IPv6 in Low-Power Wireless Networks[J].Proceedings of the IEEE,2010,98(11):1865-1878.
[4] 刘武军.IPv4-IPv6基于 NAT-PT的过渡技术的研究[D].南京:南京邮电大学,2012.
[5] Liao M Y,Luo M Y,Yang C S,et al.Design and Evaluation of Deep Packet Inspection System:A Case Study[J].IET Networks,2012,1(1):2-9.
[6] Tsirtsis G,Srisuresh P.RFC 2766:Network Address Translation-Protocol Translation(NAT-PT)[S].IETF,2000.
[7] 霍宏伟,牛延超,郜帅.一种IPv6无线传感器网络以太网接入网关的设计[J].传感技术学报,2007,20(2):398-403.
[8] 匡兴红,邵惠鹤.无线传感器网络网关研究[J].计算机工程,2007,33(6):228-230.
[9] Xu Yang,Tan Ruochen,Wu Shuai,et al.Connect Internet with Sensors by 6LoWPAN[J].Journal of Networks,2013,8(7):1480-1487.
[10] IEEE Computer Society.IEEE Standard for Part15.4:Wireless Medium Access Control(MAC)and Physical Layer(PHY)Specifications for Low Rate Wireless Personal Area Networks(WPANs)[S].New York:IEEE,2006.
[11] Hui J,Culler D.Extending IP to Low-Power,Wireless Personal Area Networks[J].IEEE Internet Computing,2008,12(4):37-45.
[12] Richard W Stevens.TCP/IP 详解(卷1:协议)[M].范建华,胥光辉,张涛,译.北京:机械工业出版社,1999.
[13]杭州华三通信技术有限公司.IPv6技术[M]北京:清华大学出版社,2004.
[14] Bruno da Silva Campos,Joel J P C Rodrigues,Lucas D P Mendes.Design and Construction of Wireless Sensor Network Gateway with IPv4/IPv6 Support[J].Proceedings of IEEEInternational Con-ference on Communications,2011:1-5.