APP下载

基于链路质量的无线传感网络路由

2019-09-21

传感技术学报 2019年8期
关键词:队列数据包路由

林 勇

(重庆电子工程职业学院通信工程学院,重庆 401331)

目前,无线传感网络WSNs(Wireless Sensor Networks)在各领域广泛使用[1]。WSNs内传感节点实时地感测数据,然后,将数据传输至基站,再由基站将数据传输至控制中心,进而实现对数据的监测。因此,数据收集成为WSNs的关键。在WSNs的所有应用场景中,数据流量服从汇聚格局,即所有节点均向基站传输数据[2]。

网络内的节点扮演了两个角色:①向基站传输感测数据;②协助其他节点,向基站转发数据。因此,在基站邻近区域就很容易形成流量瓶颈现象。即基站附近的节点,相比于其他节点,承担了更多的转发数据任务(高负载)[3]。然而,由于传感节点能量、存储容量有限,在高负载流量环境下,形成流量拥塞问题,传感节点的队列存储区不能满足增长的流量要求,这就容易形成队列溢出,最终导致数据包丢失。

通常,采用负载平衡路由协议处理流量拥塞问题。这些协议常采用链路质量、接入时延等动态路由指标,并利用这些路由指标平衡网络流量。为此,本文提出基于链路质量和队列时延的混合路由QDLQR。QDLQR路由引用动态的路由指标平衡网络流量。

1 QDLQR路由

本节利用数据包队列时延和期望传输次数建立混合路由指标,再依据此指标构建通往基站的路由。

1.1 数据包队列时延

对于每个出队列的数据包,节点就计算它的停留时间。为了能够实时地统计数据包队列时延[5],节点统计最近10个数据包的停留时间,并将其的平均值作为数据包队列时延PQD(Packet Queueing Delay),如式(1)所示。

(1)

式中:Di表示节点Si的数据包队列时延PQD。而m表示最近出队列的数据包数,且m≤10。当节点在出队的数据包少于10时,m<10,如图1所示[6]。队列缓冲区具有10个单元,且最多可容纳10个数据包。当信道空闲时,数据包就出列,传输至信道上。

图1 数据包队列示意图

1.2 链路质量

由于无线媒介的共享特性,无线链路存在不可靠性,这也就导致数据包传输的碰撞和干扰。因此,在大多数情况下,节点需要多次重传传输才能完成数据包的传输。传输次数越多,表明链路质量越差。通常,引用期望传输次数ETX(Expected Transmission Count)估计链路质量。

作为路由指标,ETX等于节点成功传输一个数据包所需的重传次数。依据IEEE 802.15.4的无碰撞的多载波监听CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)协议,每个数据包允许重传的最大次数为4。一旦超过4次,仍未成功传输,则直接将数据包丢弃。

QDLQR协议也引用ETX指标估计链路质量。每条链路的ETX等于每传输一个数据包所需的传输次数[7]。由于传输方向是双向的,每条路由的ETX等于每条链路(正、反向链路)的ETX总和。例如,若一个由2跳构成的路由,如果它的数据包传输成功率为100%,则其ETX值为3。若它的数据包传输成功率降低至50%,则其ETX值为6。

因此,可将链路的ETX定义为:

(2)

式中:df表示数据发送传输成功率,dr表示数据接收率。如图2所示,节点A、B构成一条链路linkA,B。其中df表示从节点A传输至节点B的传输成功率,相应地,dr表示节点A接收来自节点B的成功率。

图2 节点A与节点B间的链路

为了计算df和dr,节点周期地广播探测包。每个探测包内嵌入了自己和邻居节点所所接收的探测包数。依据所发送的探测包数以及邻居节点所成功接收的探测包数,便可计算单向数据传输成功率r(t):

(3)

式中:x表示邻居节点实际接收的数据包数,而count(A)表示节点A传输的数据包数。

接下来,以图2为例分析节点A如何计算df和dr。假定A在一段时间内发送的探测包数为count(A)。节点B周期地广播探测包,其包含它从各邻居节点所接收的探测包Packetprobe。当节点接收了来自节点B广播的Packetprobe,则就知道节点B接收几个由自己发送的探测包,即x值。最后,就可依据式(3)计算df。类似地,由于各节点都是周期地广播探测包,节点A也能够知道在一定时间内应从节点B所接收的探测包数。再依据从节点B实际接收的探测包数,便可计算dr。最终,可依据式(2)计算链路linkA,B的ETX。

1.3 混合路由指标

为了更好地选择下一跳转发节点,QDLQR路由将队列时延和链路质量进行融合,构成新的路由指标。队列时延反映了节点自身的流量负载问题。队列时延越大,表明节点负载越严重。而ETX反映了链路质量。ETX越大,链路质量越差。为此,引用混合路由指标Com_rout,其定义如式(4)所示:

Com_rout=αD+βETX

(4)

式中:α、β分别表示队列时延、ETX的权重系数。从式(4)可知,对于任意一个节点,它的混合路由指标越大,由它构建的链路质量就越差。

1.4 下一跳转发节点的选择

当节点(假定节点i)需要传输数据包时,它就计算一跳邻居节点内每个节点的混合路由指标。假定节点i的一跳邻居节点集为Ni。节点i从Ni中选择具有最小的Com_rout、且大于1的节点作为下一跳转发节点,如式(5)所示:

(5)

式中:Com_rout(i)表示节点i的混合路由指标。而|Ni|表示邻居节点集Ni的节点数。通过式(5)选择具有最小的混合路由指标的节点(假定为节点k)作为下一跳转发节点。

1.5 路由方案

每个数据包源节点依据式(5)选择下一跳转发节点,进而构成数据传输路由。如图3所示,各节点先周期地交互探测包,就能得到每个节点的混合路由指标,例如节点B的Com_rout(B)=3,而节点C的混合路由指标为4。

图3 数据传输示意图

如图3所示,数据包携带节点A只有一个邻居节点,因此,只能选择节点B作为下一跳转发节点,然后,节点B从它的邻居集NB={C,D}中选择具有最低混合路由指标的节点作为下一数据包转发节点,因此,节点C成为下一跳。以此类推,最终便形成{A,B,C,E,F}路由。

2 性能分析

为了更好地分析QDLQR协议,利用Cooja仿真器[8]建立仿真平台[9]。引用IEEE 802.15.4协议作为物理层协议,并依据CSMA/CA策略接入媒介[10-11]。

选择引用ETX指标的RPL协议和基于最小跳数[12]的HopCount路由作为参照,并分析它们的数据包传递率、队列溢出和端到端传输时延性能。同时考查式(4)的α、β值对QDLQR性能的影响,考虑三种情况:①α=0.75,β=0.25;②α=0.5,β=0.5;③α=0.25,β=0.75。这三种情况分别标记为QDLQR_0.75、QDLQR_0.5、QDLQR_0.25。每次实验独立重复20次,取平均值作为最终的实验数据。

2.1 数据包传递率

数据包传递率是指由基站所接收的数据包数与网络内总体产生的数据包数之比。本次实验分析QDLQR、RPL和HopCount协议的数据包传递率,同时考虑低流量、高流量两类场景。前者为每个节点每秒产生1个数据包(1 packet/second/node),后者指每个节点每秒产生10个数据包(10 packet/second/node)。

图4显示了各协议在低流量、高流量场景下的数据包传递率,且节点数从10、20、40和60变化。从图4(a)可知,在低流量环境下,所有协议的数据包传递率相近,而QDLQR协议的数据包传递率并不明显。原因在于:在低流量环境下,无线媒介的多数时间是空闲的,负载平衡路由对数据包传递率的影响甚少。

图4 数据包传递率

然而,当流量增加后,相比于RPL和HopCount协议,QDLQR协议的数据包传递率得到有效地提升。而RPL协议的数据包传递率优于HopCount协议,原因在于HopCount协议采用静态的路由指标,这就无法平衡节点间负载,使得部分节点遭遇拥塞、队列溢出,最终降低了数据包丢失。而RPL协议引用动态的路由指标,但它也不足以平衡负载,难以避免因队列溢出而丢失数据包的现象。

此外,相比QDLQR_0.5和QDLQR_0.25,QDLQR_0.75协议获取最高的数据包传递率。原因在于:当α=0.75,意味着队列时延在混合路由指标中的比重更大,这有利于避免拥塞路径,提高了数据传输的有效性。

2.2 队列溢出

网络拥塞的一个负面影响就是队列溢出,这增加大了数据包丢失率。为此,分析QDLQR协议在队列溢出方面的性能。由于只可能在高流量环境下,才可能出现队列溢出的现象。

因此,本次实现分析了每个节点每秒产生10个数据包(10 packet/second/node)、每个节点每秒产生5个数据包(5 packet/second/node)两种高流量的环境,因队列溢出导致数据包丢失的比例(以下简称溢出-丢失率),实验数据如图5所示。

图5 队列溢出对数据包丢失的影响

从图5可知,相比于其他协议,QDLQR协议的溢出-丢失率很小。在最糟糕的情况,QDLQR协议的溢出-丢失率也只有1%。原因在于:QDLQR协议能够有效地平衡各跳路由间的流量负载,避免部分节点承担高负载的情况。而HopCount协议的溢出-丢失率很高,这主要是因为它采用了静态路由指标。

2.3 端到端传输时延

最后分析QDLQR协议的端到端传输时延,其等于数据包从源节点传输至基站的时间。为此,本次实验环境的参数如下:节点数为40,流量分别为1 packet/second/node和10 packet/second/node,实验数据如图6所示。

图6 端到端传输时延

从图6可知,各协议的时延在不同跳数环境下的相近,HopCount协议的时延略低于其他协议。相比于,RPL和HopCount协议的时延低于QDLQR协议,原因在于:RPL和HopCount协议因队列溢出而丢失了较多数据包,这就降低了那些未丢失数据包的传输时延。

3 总结

针对无线传感网络的数据收集问题,提出基于队列时延和链路质量的WSNs路由QDLQR。QDLQR协议充分考虑了数据包队列时延,并依据ETX评估链路质量,再通过融合队列时延和链路质量,构建新的路由指标。最后,通过此路由指标构建路由。仿真数据表明,提出的QDLQR路由有效地降低数据包丢失率。

猜你喜欢

队列数据包路由
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
队列里的小秘密
基于多队列切换的SDN拥塞控制*
铁路数据网路由汇聚引发的路由迭代问题研究
一种基于虚拟分扇的簇间多跳路由算法
在队列里
SmartSniff
探究路由与环路的问题
丰田加速驶入自动驾驶队列