陈晶晶,李晓记,郑 霖
(1.桂林电子科技大学,广西 桂林 541004;2.通信网信息传输与分发技术重点实验室,河北 石家庄 050081)
6LoWPAN的Enhanced Route-over的分片和重组机制
陈晶晶1,2,李晓记1,郑 霖1,2
(1.桂林电子科技大学,广西 桂林 541004;2.通信网信息传输与分发技术重点实验室,河北 石家庄 050081)
针对Route-over路由在6LoWPAN中存在需要在每一跳节点进行分片和重组的问题,提出了一种Enhanced Route-over机制,该机制通过在Route-over转发过程中增加映射表和构建虚拟IP帧,改善了Route-over路由在数据报端到端传输时延方面的性能,并采用Cooja仿真器和无线传感器网络硬件平台进行了验证。仿真结果显示,在保证节点能量消耗不增加的情况下,当节点数量分别为4、10和18时,所提出的优化算法的数据报端到端传输时延方面分别减少了14.23%、20.89%和21.68%。此外,还适用于实际场景。
6LoWPAN;Route-over;分片;重组;时延
当前无线传感器网络存在体制多样,协议不同,互联互通存在困难的特点。传感网IEEE 802.15.4[1]仅对物理层和介质访问控制(MAC)层给出了规范,Zigbee协议[2]提供了网络层及以上的通信协议,但仍无法实现到IP网络的无缝联接。此外,IPv6协议要求传输链路的MTU(最大传输单元)至少为1 280 bytes,而IEEE 802.15.4链路的MTU仅为127 bytes,使得数据报难以在6LowPAN(低功耗无线个域网)中传输。为解决此问题,IETF(国际互联网工程任务组)定义了6LoWPAN(基于IPv6的无线个域网)协议,通过6LowPAN适配层直接承载IPv6网络层,提供报头压缩[3],分片重组,达到与IP网络在WSN中节点的直接通信。
为降低6LoWPAN网络中数据报的传输时延,本文提供一种Enhanced Route-over机制。该算法的关键在于:通过在数据报传输过程中构建一个虚拟IP数据报文及转发映射,减少转发中的缓冲和延迟。
根据路由协议所作用的协议栈位置的不同,6LoWPAN网络路由协议可分为2类[4]:①Mesh-under路由,路由决策在6LoWPAN适配层,采用链路层地址,根据mesh头部实现二层转发。主要路由协议有AODV协议[5]、LOAD协议和HiLow协议等。②Route-over路由,在IPv6网络层实现WSN路由,采用IP地址,根据网络层头部实现路由转发。目前,Route-over路由协议并不多,主要有IETF RoLL工作组研究制定的RPL(IPv6 Routing Protocol for LLNs)协议[6]。文献[7]对2类协议进行了对比,并评估了其数据报传输的端到端时延,结果显示对比Route-over,Mesh-under协议有着更低的时延,且Route-over需要在每个中间节点进行数据报的重组及分片。针对Route-over路由协议存在的缺陷,文献[8]在Contiki上实现了新的RPL标准,通过引入灵活的跨层设计,以增强节点的链路质量评估能力及对邻居信息有效管理,从而提高RPL协议的数据报递送率。此外,文献还通过实验验证了异步工作循环会增加网络信道竞争及业务冲突,一定程度上会降低数据报递送率。文献[9]分别对基于Mesh-under路由及Route-over路由的分片重组算法进行评估,结果显示Route-over在数据报传输时可靠性更好,有着更高的数据报接收率。考虑到数据报分片传输过程中,可能会出现由于分片丢失,数据报重组出错,超时等需要重传而导致数据报分片乱序到达的情况。文献[10]提出了多重组缓存管理系统(Multi-Reassemblies Buffer Management System)。该机制支持重组缓存动态建立及多数据报同时处理,提高了数据报的递送率。传统的Mesh-under路由中,如果数据报分片在传输过程中丢失,接收到部分分片的节点须将其全部丢弃,等待源节点重传所有的分片,导致了网络中存在大量无用分片,因此文献[11]提出了Controlled mesh-under机制,该机制有效利用通信信道,并通过对分片的转发进行监控,从而降低了网络的整体消耗,避免了大量无用数据报分片的传播。
现有Route-over的缺陷在于其在传输数据报的过程中每一跳都要进行分片和重组,这大大增加了数据报传输的端到端延时。为此,本文提出了Enhanced Route-over机制,该机制在Route-over转发过程中增加了一个映射表,避免分片在转发过程的每一跳都进行分片及重组。所提出的算法的关键在于,中间节点的6LoWPAN适配层在转发过程中构建虚拟IP帧和转发映射,分片的重组只需要在所有分片到达目的节点时进行。主要包括3个过程:分片过程、转发过程和重组过程都是由适配层执行。
2.1 分片过程
EnhancedRoute-over算法的IPv6数据报分片具体流程如下:
①初始化。初始化压缩之前的头部长度uncomp_hdr_len及已处理的6lowpan头部总长度rime_hdr_len(包括分片首部,IPHC,IPv6首部未压缩字段,NHC,UDP首部未压缩字段)为0。
②首部压缩。调用IP首部压缩功能完成IPv6头部压缩,并将压缩后的头部存入缓存中,无需头部压缩的则直接跳过。更新rime_hdr_len及uncomp_ hdr_len。
③判断是否需要分片。若uip_len-uncomp_ hdr_len>MAC_MAX_PAYLOAD-framer_hdrlenrime_hdr_len,即IP数据报的长度大于链路层的MTU,需要进行分片。其中,uip_len等于数据报的总长度,MAX_PAYLOAD为链路层MTU(102 bytes),framer_hdrlen为MAC层帧头。若不需要分片,直接将载荷装入数据缓存区(packet_buf)的数据部分。
④生成分片1(FRAG1)。生成FRAG1头部:dispatch,分片前的报文长度datagram_size、分片标识符datagram_tag。更新rime_hdr_len,即6lowpan头部长度加上分片头长度。更新packet_buf的载荷长度rime_payload_len,即rime_payload_len=(MAC_ MAX_PAYLOAD-framer_hdrlen-rime_hdr_len)&0xf8。再将rime_payload_len长的IPv6载荷填入packet_buf后续缓存中。最后将FRAG1发送到MAC层,发送至下一跳,并更新processed_ip_out_ len,表示已经处理的分片长度。
⑤生成后续分片(FRAGN)。与FRAG1相同,只是头部信息多了一项datagram_offset,表示分片在报文中的位置,此外,FRAGN不需要保留首部压缩生成的6lowpan头部。
⑥判断是否分片完毕。若uip_len-processed_ ip_out_len<rime_payload_len,则分片完毕,datagram_ tag加1,全局变量清0,释放packet_buf。否则,重复步骤⑤。
分片过程如图1所示。
图1 分片过程
2.2 转发过程
算法的IPv6数据报分片转发具体流程如下:
①初始化。初始化uncomp_hdr_len及rime_ hdr_len为0,将数据缓存区packet_buf的指针rime_ ptr初始化为缓存的开头处,并给映射表分配内存。
②获取头部信息。适配层接收到来自MAC层的数据报,对packet_buf中的第一首部进行判断,如果为分片头部,则提取分片信息:分片前的报文长度datagram_size、分片标识符datagram_tag、分片在报文中的位置datagram_offset,更新rime_hdr_len为分片头部长度,后移rime_ptr至rime_ptr+rime_hdr_len。若为分片1,设置相应标志位first_fragment为1,若为最后一个分片,设置相应标志位last_fragment为1。
③首部解压缩。如果是分片1,调用IP首部解压缩功能对数据报头部进行解压缩,获取源目的IP地址,并将恢复的IPv6头部填入适配层缓存区6lowpan_buf;如果是后续分片N,跳过首部解压缩,转至步骤⑦;如果是没有压缩过的头部,则直接将头部信息复制到6lowpan_buf中。
④构建虚拟IP帧。将IPv6头从6lowpan_buf复制到uip缓存中,数据部分用“0”补齐。
⑤确定下一跳路由。查找RPL路由表,获取下一跳路由的IP地址,进而得到下一跳路由的MAC地址。
⑥构建映射表。将转发映射项表示为一个映射表MapNode{curTag,nextTag,nextMacAddr,parent-MacAddr,totalOfFrag,countOfFrag,MapNodenext},其中curTag表示当前的TAG标识符,nextTag表示新的标识,同一IP数据包所有分片在每个中间跳都要更新TAG标识符,nextMacAddr表示下一跳节点的MAC地址,parentMacAddr表示源节点的MAC地址,totalOfFrag是分片前报文总长度,countOfFrag表示已经处理的分片长度,指针next用于同一个节点构建不同数据报的映射表。当中间节点收到某个数据报的第1个分片时,根据上述信息建立转发映射,将虚拟IP帧送回适配层,首部压缩并提取首分片,转发出去。
⑦转发后续分片。适配层收到后续分片,查找映射表,若查找成功,则根据转发映射表将分片转发至下一跳节点,更新countOfFrag;若查找失败,则直接丢弃该分片。此外,若countOfFrag=totalOfFrag,表示该数据报的分片全部接收。
⑧数据载荷重组。目的节点每收到一个数据报的分片,适配层都会将其放入重组缓存区,待所有的分片接收完毕,适配层对数据报进行重组恢复出完整的IPv6数据报文,然后将其送至网络层。此外,目的节点的适配层收到第一个分片时,会启动一个定时器Tfrag,如果定时器到期分片仍未到齐,节点会将先前接收到的所有分片丢弃,等待新数据报的到来。
转发过程如图2所示。
图2 转发过程
2.3 重组过程
所提出算法中数据报重组只会在目的节点进行,中间节点不需要对数据报分片进行重组,IPv6数据报分片具体流程如下:
①获取首部信息。提取分片首部信息(datagram_size,datagram_tag,datagram_offset)。
②重组初始化。首先判断6lowpan_buf中是否有数据,即是否有数据报正在进行重组,若有数据报正在进行重组且新收到的分片或数据报与正在重组的分片不属于同一个数据报文,则丢弃该分片,返回。若没有数据报正在重组且收到的是分片,则进行重组初始化,设置重组标志reas_tag=datagram_ tag,重组缓存长度6lowpan_len=datagram_size,启动重组定时器。
③首部解压缩。与上述转发过程的步骤相同。
④数据报载荷重组。将MAC层缓存中的数据载荷复制到6lowpan_buf中。对于非分片数据报,更新6lowpan_len,而对于分片数据报,则更新processed_ip_in_len,表示已经重组的数据长度。
⑤判断是否得到完整数据报。对于分片报文,若processed_ip_in_len=6lowpan_len,则表示重组完成,得到了原始的IPv6报文。对于非分片报文,pro-cessed_ip_in_len=0。将数据报从6lowpan_buf复制到uip_buf中,上传至网络层。将6lowpan_len和processed_ip_in_len重置为0。
重组过程如图3所示。
图3 重组过程
算法使用Cooja进行仿真验证。Cooja是一款基于Contiki操作系统的仿真软件,对底层硬件无任何依赖性,可借助Contiki操作系统独立运行。Cooja的功能非常强大,几乎能仿真所有的无线传感器网络节点如sky、telosb和maiz等。它可以模拟节点的行为和属性,也可以组建网络模拟网络状态和各项参数。本文所构建的网络拓扑结构如图4所示,3个网络中节点的数目分别为4、10和18,通过增加网络中的节点数目来分析网络的性能。仿真参数设计如表1所示。
图4 网络拓扑结构
表1 仿真参数设计
3.1 端到端时延
如图5、图6和图7所示,与现有Route-over算法比较,Enhanced Route-over在节点数量分别为4、10和18时,端到端时延分别减少了14.23%、20.89%和21.68%。
图6 10节点网络的端到端时延
图7 18节点网络的端到端时延
3.2 能量消耗
分析算法的能量消耗情况如图8和图9所示,选择根节点附近的节点3和节点4进行分析。结果显示,虽然本文算法复杂度有了一定的提高,但是与传统的算法相比,节点能耗几乎没有变化。而随着节点数目的增加,网络业务量提高,节点的平均能耗也会增加。
图8 节点3的能耗
图9 节点4的能耗
WSN硬件开发套件基于目前应用较广泛的STM32为基础,Atmel的射频芯片AT86RF231作为6lowpan组网的基础,采用开源的操作系统Contiki作为软件平台。在平台硬件基础上,利用MySniffer154 WiresharkServer+wireshark,可以实时抓取空间数据包。
4.1 硬件测试平台搭建
WSN开发平台所搭建的RPL多跳网络包含3个节点,其中节点1为发送端,用于生成及发送数据报分片;节点2为中转节点,负责转发所有来自节点1的数据报分片或者不用分片的数据报文;节点0为接收端,它的工作是重组接收到的数据报分片,并充当整个网络的根节点;节点为Wireshark的抓包节点,用于捕获节点0所收到的数据报文。系统中,节点1和节点2间的距离是1.5 m,而节点2及节点0的距离为5.67 m。节点的参数配置由表2所示。
表2 节点的参数列表
4.2 测试结果
节点0的适配层将接收到的分片报文重组完毕后传递给上层。Wireshark捕获到的来自节点1的分片数据报如图10所示,数据净荷为80 bytes,数据报被分为2个分片,第1个分片长度为104 bytes,第2个分片长度为24 bytes。源目的地址分别为00:01:13:01:00:00:00:01(node1)及00:01:13:01:00:00:00:00(node0)。
图10 来自节点1的分片数据报
以上是本文在硬件平台上对所提出的RPL分片重组算法的验证。由于条件限制,网络只使用了3个节点,构建了一个简单的2跳网络结构,其中节点1和节点2同为发送节点,而节点0为接收节点。结果显示,节点2能成功转发由节点1到节点0的数据报,因此,所提出的旨在支持6LoWPAN多跳网络分片重组的算法与理论与仿真都一致。
提出了一种Enhaced Route-over路由IPv6分片重组算法,解决了现有RPL分片重组过程中数据报逐跳重组分片再转发的问题,从而降低端到端时延,提高存储空间利用率,改善了IPv6数据报分片重组传输的性能。此外,还利用COOJA仿真及WSN硬件平台对所提出的RPL分片重组算法进行测试验证,证明了该算法适合应用于实际场景中。虽然算法复杂度增加,但是其能量消耗并没有明显的变化。
[1]HIGUERA J E,POLO Jose.IEEE 1451 Standard in 6lowpan Sensor Networks Using a Compact Physical-layer Transducer Electronic Data Sheet[J].IEEE Trans Instrum Meas,2011,60(8):2 751-2 758.
[2]LEVIN M S.ZigBee Communication Protocol[M].Modular System Design and Evaluation Decision Engineering,Springer,2015:401-413.
[3]HUI J,THUBERTP.CompressionformatforIPv6 datagrams over IEEE 802.15.4-based networks[P].IET-FRFC6282,2011.
[4]ZACH S,BORMANN C.6LoWPAN:The Wireless Embed-ded Internet[M].John Wiley&Sons,2011.
[5]LIN J,LI F.An Improvement of AODV Protocol Based on Reliable Delivery in Mobile Ad Hoc Networks[C]∥Fifth International Conference on Information Assurance and Security,2009:507-510.
[6]WINTER T.RPL:IPv6 Routing Protocol for Low-Power and Lossy Networks[P].IETF RFC6550,2012.
[7]LUDOVICI A,CALVERAS A.Implementation and Evalua-tion of Multi-Hop Routing in 6LoWPAN[C]∥In Pro-ceedings of the 9th Conference of Telematic Engineering,Valladolid,Spain,2010:67-74.
[8]ANCILLOTTI E,BRUNO R,CONTI M.Reliable Data De-livery With the IETF Routing Protocol for Low-Power and Lossy Networks[J].Industrial Informatics,IEEE Transac-tions on,2014,10(3):1 864-1 877.
[9]CHOWDHURY A H,IKRAM M,CHAETAL H S.Route-over vs Mesh-under Routing in 6LoWPAN[C]∥In Pro-ceedings of the ACM International Wireless Communica-tions and Mobile Computing Conference(IWCMC’09),2009:1 208-1 212.
[10]LUDOVICI A,CALVERAS A,CASADEMONT J.Forwarding Techniques for IP Fragmented Packets in a Real 6LoWPAN Network.Sensors,2011,11(1):992-1 008.
[11]KAMGUEU P O,NATAF E,NDIE T D,et al.Energy-based Rou ting Metric for RPL[J],2013(2):893-896.
Fragment and Reassembly of Enhanced Route-over in 6LoWPAN
CHEN Jing-jing1,2,LI Xiao-ji1,ZHENG Lin1,2
(1.Guilin University of Electronic Technology,Guilin Guangxi 541004,China;2.Science and Technology on Information Transmission and Dissemination in Communication Networks Laboratory,Shijiazhuang Hebei 050081,China)
In order to solve the problem of hop-by-hop fragment and reassembly of Route-over in 6LoWPAN,an enhanced Route-over mechanism is put forward.By adding a mapping table and establishing a virtual frame during Route-over forwarding,the enhanced Route-over mechanism improves significantly reduces the end-to-end delay time.The algorithm is verified by using Cooja simulator and wireless sensor network hardware platform.The results show that when the number of nodes is 4,10 and 18,the data transmission delay of the proposed optimization algorithm is decreased by 14.23%,20.89%and 21.68%,and the node energy consumption is not increased. Besides,it is suitable for the actual scene.
6LoWPAN;Route-over;fragment;reassembly;delay
TP393
A
1003-3106(2015)10-0001-06
10.3969/j.issn.1003-3106.2015.10.01
陈晶晶,李晓记,郑 霖.6LoWPAN的Enhanced Route-over的分片和重组机制[J].无线电工程,2015,45(10):1-6.
陈晶晶女,(1990—),硕士研究生。主要研究方向:信息与通信工程、无线传感器网络。
2015-07-07
国家自然科学基金资助项目(61362006);省部共建教育部重点实验室认知无线电基金资助项目(2013ZR08);中电五十四所通信网信息传输与分发技术重点实验室项目(KX132600010/ITD-U13003);2014年度广西高校科学技术研究项目(YB2014137)。
李晓记女,(1967—),博士,副教授。主要研究方向:无线传感器网络。