6LoWPAN中分布式TCP缓存队列策略

2016-06-08 06:05吉福生周小龙
计算机应用与软件 2016年5期
关键词:链路层重传队列

吉福生 周小龙

(重庆邮电大学宽带泛在接入技术研究所 重庆 400065)



6LoWPAN中分布式TCP缓存队列策略

吉福生周小龙

(重庆邮电大学宽带泛在接入技术研究所重庆 400065)

摘要在多TCP连接的6LoWPAN(IPv6 over Low-Power Wireless Personal Area Networks)网络中,针对丢包严重时存在频繁的端到端重传问题,提出分布式TCP缓存队列策略。该策略能够使中间节点合理地缓存不同TCP连接在链路层传输中丢失的分段,从而保证每个TCP连接的性能,减少网络能耗。另外,采用ARQ机制进行链路层数据帧传输时,由于中间节点判断丢包的准确率较低,导致缓存队列中存在一些实际未丢失的分段。对这些分段的重传会消耗额外的能量,降低了缓存队列的利用率。因此缓存管理采用询问邻居节点的方式检查分段是否丢失,及时地删除无效的缓存分段。实验结果表明,采用分布式TCP缓存队列策略可以使得多个TCP连接的网络性能以及缓存队列利用率得到了很大提高。

关键词低功耗个人局域网传输控制协议自动重传请求缓存队列丢包恢复

0引言

国际标准化组织IEFT通过采用适配层和优化相关协议使IPv6技术可以运行在低功耗、低速率的无线嵌入式设备中。由这样的设备组成的网络就是基于IPv6的低功耗无线个域网6LoWPAN。6LoWPAN的传输层协议包括用户数据报协议(UDP)和传输控制协议(TCP)。其中6LoWPAN使用TCP来保证端到端数据可靠传输,然而TCP协议在无线网络中存在性能问题:由于无线链路丢包率较大,导致TCP分段在中间节点处频繁丢失,从而引起TCP频繁的端到端重传,这会增加网络延迟且消耗过多节点能量。在无线低功耗网络中,所有采用端到端错误恢复机制的可靠传输协议都面临该问题。解决这个问题的常用方法是通过中间节点缓存那些在链路层传输中丢失的数据包。当目的接收端发起错误恢复请求时,丢失的数据包可以直接从缓存该数据包的中间节点处重传。该方法的可行性已经被数学模型所验证[1]。目前,解决这一问题的经典机制分为两类:第一类是基于非IP无线低功耗网络的机制[2-8];第二类是在基于IP的无线低功耗网络中针对TCP协议的机制[9-11]。

第一类机制中,文献[5] 提出了一个无线传感器网络中全局簇协作机制(GCCS),GCCS使用缓存发现算法找出缓存了所查询数据项的节点。文献[6]提供了两个优化方案,即增强的基于NACK修复机制和优化的DTSN传输窗口,重新实现了一个增强DTSN协议。第一类机制并不是基于TCP协议的,所以无法使用在6LoWPAN网络中。在第二类机制中,文献[10]提出的DTC机制中,中间节点根据能否接收到下一跳节点的链路层确认来判断数据包是否丢失,并将判断丢失的数据包锁定在缓存中,设置重传定时器。DTC的中间节点需要计算到达TCP接收端的往返时间(RTT),并通过RTT配置重传定时器(RTO):RTO=1.5×RTT。在重传定时器溢出时,中间节点执行“锁存”TCP分段重传操作。在重传定时器未溢出前,如果中间节点接收到TCP接收端发送的确认消息TCP ACK(或SACK)的序列号与“锁存”TCP分段的序列号相同则执行重传,并且“终止”该TCP ACK继续向TCP发送端的转发。文献[11]中提出的EDTC机制是对DTC机制地改进。目前常用无线链路层协议基于CSMA-CA算法,因此该文献将基于TDMA网络的DTC机制改进为基于CSMA-CA网络的EDTC机制。与DTC机制不同,EDTC节点的MAC层采用ARQ机制来传输数据包,以保障链路层传输的可靠性。另外,EDTC还针对DTC的缓存放置、缓存管理以及重传超时定时器设计不足给出了新的解决方法。然而,不管是DTC还是EDTC机制,目前的研究都是基于链式拓扑结构的网络,并且只存在单个TCP连接。在多个TCP连接的非链式结构网络中,处于TCP传输路径上的中间节点无法同时合理地存储每个连接丢失的数据包,导致每个TCP连接的性能不均衡。另外,根据链路层确认来进行丢包检查准确率低,会导致有限缓存空间中存在并没有丢失的数据包,造成缓存资源浪费,且会在重传定时器超时后执行多余得本地重传增加节点能耗。

针对多TCP连接的非链式结构网络存在的上述问题,本文提出6LoWPAN中分布式TCP缓存队列策略。该策略不仅保证中间节点能够同时合理地存储每个TCP连接丢失的数据包,而且避免了中间节点由于丢包检查准确率低造成缓存空间浪费和能耗增加。

1分布式TCP缓存队列策略

本节描述的分布式TCP缓存队列策略由三个部分组成:缓存放置策略,在队列长度没达到规定门限前以链路层丢包为依据执行分段存储,当超过门限时需要以一定概率执行分段存储;缓存管理策略,对缓存队列的无效缓存进行清除,以提高缓存队列利用率,避免重传定时器超时后对无效缓存执行本地重传;主动重传策略,以缓存管理策略为基础,主动向TCP接收端发送已经确认有效的缓存分段,为缓存队列清理出存储空间。

1.1缓存放置

为了能够同时存储不同TCP连接在链路传输中丢失的分段,中间节点采用缓存队列策略。然而若与上述研究相同,只将链路层丢包作为缓存放置的依据,在网络丢包增多时缓存队列会很快被放置满。因此本文综合考虑链路层丢包、缓存队列长度和不同TCP连接发送速率以及跳数等因素重新设计缓存放置策略。

对6LoWPAN网络中的任意节点v,在协议规定的适配层上设置一个容量大小为Cv的缓存队列。经过节点v的TCP连接数为F。当中间节点向下一跳转发TCP分段时,MAC层从发送队列中取出一个分段放入其发送缓存,同时该TCP分段也会被复制到缓存队列中。当MAC发送失败,该分段将被锁定在缓存队列中,锁定的分段不能被下一个分段覆盖。每次锁定时,需要设置重传定时器RTO′=1.5×RTO,其中RTO的计算根据文献[12]给出的方法。如果缓存队列中TCP分段的重传定时器溢出时,中间节点将执行本地重传,将该分段发送给TCP接收端。当中间节点接收到TCP接收端发送给TCP发送端的ACK消息时,查看ACK序列号是否存在对应缓存分段,如有这样的缓存分段则执行本地重传,并终止该ACK消息继续向TCP发送端的转发。执行本地重传后的数据将从缓存队列中删除。

为避免缓存队列溢出,节点需要在缓存队列长度到达一定程度时主动降低入队速率。在实际队列长度到达给定门限时,通过预测缓存队列长度预先设置缓存放置概率来确保降低入队速率。本文采用指数平滑法预测缓存队列长度Qt+1,如式(1)所示:

Qt+1=αqt+(1-α)Qt

(1)

当实际队列长度qt到达门限qth时,则根据预测队列长度Qt+1、TCP发送速率以及跳数来确定缓存放置概率P,如式(2)所示:

P=εi×λ

(2)

(3)

式中的WSi和WSj表示TCP连接的窗口大小,该值在TCP连接建立初始阶段获得。hv,i表示TCP连接i在节点v的跳数,hi为TCP连接i的总跳数。预测所得剩余缓存的权重越小,需要更小缓存队列的入队速率,即锁定的TCP分段的缓存放置概率越小。TCP连接的发送速率越大,所传输的TCP分段就越多,则缓存放置概率应当越大。另外,中间节点需要缓存靠近接收端的TCP连接的TCP分段,因为可以在最快的时间执行重传。

1.2缓存管理

在6LoWPAN协议中,链路层技术采用了IEEE 802.15.4标准。IEEE 802.15.4标准使用ARQ机制来保证链路层传输可靠性。根据ARQ机制,节点MAC层向下一跳发送一帧数据后等待下一跳节点的ACK回复消息。当节点在确认等待时间内没有收到ACK回复消息,就会执行重传尝试。节点重传尝试的最大执行次数取决于最大重传尝试次数(默认为3,范围:0~7)[13]。当超过这个限度时,MAC层丢弃该数据包,并告知上一层数据发送失败。然而存在两种情况导致节点无法接收到下一跳节点的ACK回复消息:

(1) 节点向下一跳发送数据帧,在超过最大重传尝试次数之后,至少有一帧数据被下一跳节点正确接收,但是下一跳发送的ACK回复消息丢失。

(2) 节点向下一跳发送数据帧,在超过最大重传尝试次数之后,没有数据帧被下一跳节点正确接收,所以下一跳节点并没有发送ACK回复消息。

消息(1)中,节点没有接收到ACK回复消息因此判断为丢包,实际上这种判断是错误的。不准确地丢包判断会导致缓存队列中存在不少比例的无效缓存(非丢失数据包)。当重传定时器溢出后,无效缓存同样会被执行本地重传,这不仅增加了能量开销而且降低了缓存队列的利用率。因此,本文提出一种提高缓存队列利用率的缓存管理策略。

在给定周期T内,中间节点需要记录没有接收到的TCP分段序列号和锁定在缓存队列中的TCP分段序列号,分别构成集合R和S。在周期T到达时若S非空,节点向邻居节点广播询问消息,询问是否接收过集合S中的分段。当邻居节点接收到询问消息时,与对应T时刻产生的集合R进行对照。如果R′=R∩S且R′≠∅,将R′内容作为回复消息发送给询问节点,删除R中内容并重新开始记录。节点收集邻居节点的回复消息构成集合R″,通过S′=S-R″运算就可以得知无效缓存分段。节点清除缓存队列中包含S′的分段,以确保队列中所有缓存分段有效。

时间间隔T的取值满足T

(4)

其中,q是缓存队列长度。h是所有TCP连接中总跳数的最小值,hv是h对于TCP连接发送端到节点v的跳数,RTT是h对于TCP连接的往返时间估计。

1.3主动重传

当节点执行缓存管理操作之后,缓存队列已经确认缓存分段的有效性。如果节点可以在重传定时器超时之前,中间节点可以对那些已经确认有效的缓存分段进行合理的主动重传,保证缓存队列中拥有更多的存储空间。

如果节点正在进行频繁的数据转发,主动的发送缓存队列中的分段不仅增加了网络碰撞的概率而且影响了正常TCP分段的投递。当节点间转发数据频繁时,节点执行信道检查的成功率会受到影响。所以根据这一点,本文规定主动重传必须要在一段时刻内信道检查的成功率ω达到一定水平才能够被执行。时间间隔T内信道检查的成功率的计算公式为:

(5)

图1 主动重传判断流程

当前的链路状态会影响到数据传输的成功率,中间节点选择高质量、低延时的链路进行主动重传非常重要,这样的链路不仅可以提高数据传输成功率还会降低延时。本文通过链路质量级别LQL(Link Quality Level)来区分链路好坏。LQL是一个0至7之间的整数,其中0表示链路质量水平是未知,而1则表示最高链路质量水平[14]。标准草案 [RFC 6551]中没有给出具体的LQL计算方法,所以在本文中LQL的值由链路质量指示LQI(Link Quality Indication)求得,如式(6)所示:

(6)

如果节点信道检查的成功率ω大于阈值并且链路质量级别小于3,将对最新确认的缓存分段进行重传。具体的流程如图1所示。

2性能评价

为了评估本文所描述策略的性能,在OMNET++仿真软件中实现了所提出的策略。在仿真中使用一个由20个节点构成的非链式结构的网络实现了多个TCP连接通信,节点间的距离为50米。每个TCP发送端发送32KB的数据给它们的接收端。表1列出了仿真参数。

表1 仿真参数

2.1链路层丢包判断的准确率

本文所提缓存管理策略是为了避免链路层丢包判断不准确导致的缓存队列利用率低的问题。为了证明提出该缓存管理策略的必要性,下面采用数学方法来计算错误判断丢包的概率以及在总的丢包判断中所占的比例。最终的结果表明,中间节点采用ARQ机制传输数据包,链路层丢包判断的准确率较低。

假设链路传输中包λ(数据包或确认包)的错误概率为pλ,最大重传尝试为r,那么在节点错误判断链路层传输没有成功的概率为:

(7)

式(7)表示节点在r+1次数据链路层传输中,有m(r>m>1)次传输数据包已经成功到达了下一跳节点。但是,由于节点没有接收到下一跳确认,所以误认为数据包没有成功发送。

图2给出了在不同的最大重传尝试次数下的节点误判丢包的概率。可以看出误包率的增大会导致节点误判丢包的概率增大。而最大重传尝试次数越大,这种误判发生的概率会越小。这可能是由于总的丢包概率跟随最大重传尝试次数的增加而变小,为此需要给出误判丢包的概率在总丢包概率中所占的比例。图3为不同的最大重传尝试次数下误判丢包的概率在总丢包概率中所占的比例,结果表明在链路层丢包的误判总是存在,且所占比例较高。较大的最大重传尝试次数下链路层丢包的误判比例明显高于较大的最大重传尝试次数。表2中给出了数据包和确认包错误概率对应于误包率的取值。

图2 不同重传尝试下误包率对误判丢包的影响   图3 误判丢包在所有丢包中所占的比例

pλpDATApMACK0000.310.360.320.410.460.410.470.520.470.560.620.560.660.710.66

2.2缓存利用率

在本文提出的基于队列缓存机制中,中间节点为了确保在缓存队列中没有无效的缓存分段,向下一跳节点询问所缓存的包是否已接收,从而提高缓存利用率降低了网络能耗。缓存利用率的计算方式如下:

(8)

图4给出了包含询问机制与不包含询问机制的分布式TCP缓存队列利用率的比较。从仿真结果中可以看到,在不同的误包率条件下,包含询问机制的缓存队列利用率几乎达到了100%。但是由于在网络中可能存在询问包的丢失使得在较大的误包率条件下,缓存队列利用率反而会受到一定的影响。

图4 有/无询问策略时缓存队列利用率比较

2.3能量消耗与网络延时

为评估本文提出的分布式TCP缓存队列策略的性能,在仿真软件上实现了两种类似的机制DTC和EDTC。实验在不同TCP连接数(1-6)条件下对两种类似算法与本文所提机制的网络能耗与传输时间进行比较。实验中所使用的IEEE 802.15.4节点的能量参数如表3所示。

表3 节点的能量参数取值

根据表格所给出的参数在误包率为0.3条件下进行了实验,所得到的仿真结果见图5和图6所示。可以观察到,TCP连接数不断增加时,由于网络中要发送数据总数增加所以网络中能量开销增大。而本文提出的分布式TCP缓存队列机制在总数据发送量增大时,并没有增加端到端重传次数从而使得能量开销随TCP连接数线性递增,并且大部分重传由中间节点执行所以网络传输时间保持在一定水平。相比基于队列的缓存机制,DTC和EDTC机制在TCP连接数较大时,某些中间节点可能承担着多个连接的传输流,导致传输过程中丢失的分段不能有效地存储在中间节点,必须执行端到端的重传才能完成错误恢复。所以在仿真结果中发现TCP连接超过3的时候EDTC和DTC的能量消耗猛然增加。由于EDTC和DTC在TCP连接较大时存在较多的端到端重传,所以网络的传输时间就会增加。

图5 能量消耗比较     图6 传输时间比较

3结语

本文给出了6LoWPAN网络中一种基于缓存队列的分布式TCP分段丢包恢复策略,并分析出链路层确认机制的丢包判断方法会导致队列中存在无效缓存分段,所以缓存管理采用询问方式确认缓存是否有效。为缓解缓存队列存储空间的不足,根据公式权衡网络环境,最终确定是否主动发起本地重传。实验结果表明,本文提出的分布式TCP缓存队列策略能够有效地减少TCP端到端丢包恢复所带来的能量损耗。

参考文献

[1] Tiglao N M C,Grilo A M.An analytical model for transport layer caching in wireless sensor networks[J].Performance Evaluation,2012,69(5):227-245.

[2] Stann F,Heidemann J.RMST:Reliable Data Transport in Sensor Networks[C]//First International Workshop on Sensor Net Protocols and Applications,2003:102-112.

[3] Wan C Y,Campbell A T,Krishnamurthy L.PSFQ:a reliable transport protocol for wireless sensor networks[C]//Proceedings of the 1st ACM international workshop on Wireless sensor networks and applications,2002:1-11.

[4] Marchi B,Grilo A,Nunes M.DTSN:Distributed transport for sensor networks[C]//12th IEEE Symposium on Computers and Communications,2007:165-172.

[5] Chauhan N,Awasthi L,Chand N.Global cooperative caching for Wireless Sensor Networks[C]//Information and Communication Technologies (WICT),2011:235-239.

[6] Tiglao N M C,Grilo A M.On the optimization and comparative evaluation of a reliable and efficient caching-based WSN transport protocol[C]//Design of Reliable Communication Networks (DRCN),9th International Conference,2013:226-233.

[7] Tiglao N M C,Grilo A M.Cross-layer caching based optimization for wireless multimedia sensor networks[C]//Wireless and mobile computing,networking and communications (WiMob),IEEE 8th international conference,2012:697-704.

[8] Buttyán L,Grilo A M.A secure distributed transport protocol for wireless sensor networks[C]//Communications (ICC),2011 IEEE International Conference,2011:1-6.

[9] Braun T,Voigt T,Dunkels A.TCP support for sensor networks[C]//Wireless on Demand Network Systems and Services,Fourth Annual Conference,2007:162-169.

[10] Dunkels A,Alonso J,Voigt T,et al.Distributed TCP caching for wireless sensor networks[C]//3rd Annual Mediterranean Ad-Hoc Networks Workshop,2004.

[11] Ayadi A,Maille P,Ros D.Improving distributed TCP caching for wireless sensor networks[C]//Ad Hoc Networking Workshop (Med-Hoc-Net),The 9th IFIP Annual Mediterranean,2010:1-6.

[12] Paxson V,Allman M,Chu J,et al.Computing TCP’s Retransmission Timer[S].RFC6298,IETF,June 2011.

[13] IEEE Computer Society.IEEE Standard for Information technology-Local and metropolitan area networks-Specific requirements-Part 15.4: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low Rate Wireless Personal Area Networks (WPAN)[S].IEEE Std 802.15.4-2006,October 2006.

[14] Vasseur J,Kim M,Pister K,et al.Routing metrics used for path calculation in low power and lossy networks[S].RFC 6551,IEFT,March 2012.

DISTRIBUTED TCP CACHING QUEUE STRATEGY IN 6LOWPAN

Ji FushengZhou Xiaolong

(BroadbandUbiquitousNetworkResearchLaboratory,ChongqingUniversityofPostsandTelecommunications,Chongqing400065,China)

AbstractWe proposed a distributed TCP cache queue strategy for the problem of frequent end-to-end data retransmission when the packets’ missing is serious in 6LoWPAN with multiple TCP connections. This method can make the intermediate nodes reasonably cache the missing segments of different TCP connections when the link layer transmission is failure, so as to ensure the performance of each TCP connection and reduce the energy consumption of the network. In addition, when transmitting the data frames of link layer by adopting ARQ mechanism, there are some actually non-missing segments in cache queue due to the intermediate nodes having low accuracy in judging the packet missing, to retransmit these non-missing segments will cost extra energy and reduce the utilisation of cache queue. Therefore, the cache management checks whether or not the segment has lost by asking the neighbouring node and deletes the invalid cached segments timely. Experimental results showed that the performance of the network with multiple TCP connections and the utilisation of cache queue had been greatly improved by using distributed TCP cache queue strategy.

KeywordsIPv6 over Low-power Wireless Personal Area Networks (6LoWPAN)Transmission control protocol (TCP)Automatic repeat request (ARQ)Cache queuePacket recovery

收稿日期:2014-11-11。国家自然科学基金项目(61371097)。吉福生,工程师,主研领域:网络管理及无线网络核心技术。周小龙,硕士生。

中图分类号TP393

文献标识码A

DOI:10.3969/j.issn.1000-386x.2016.05.030

猜你喜欢
链路层重传队列
基于多空间内存共享的数据链路层网络包捕获方法
队列里的小秘密
基于多队列切换的SDN拥塞控制*
在队列里
面向异构网络的多路径数据重传研究∗
丰田加速驶入自动驾驶队列
基于FPGA全功能MVB网络从设备链路层IP核设计
数据链路层的选择重传协议的优化改进
IEEE 1394事务层接口的设计与实现
MPTCP中一种减缓缓存阻塞的重传策略