APP下载

无线传感网中数据传输延时优化的路由协议

2020-03-06任秀丽

计算机应用 2020年1期
关键词:数据包延时路由

任秀丽,陈 洋

(辽宁大学 信息学院,沈阳 110036)

0 引言

由于无线传感器网络(Wireless Sensor Network,WSN)的低成本性,因此被广泛应用在各种领域。它是由一组有限的移动或静态的节点组成,感知各种现象并将感知信息转发到目的地[1]。传感器网络具有很强的应用相关性,不同应用中的路由协议可能差别很大,没有一个通用的路由协议[2]。对于一些低延时事件,要解决由于网络流量大而造成的数据包端到端延时较高的问题,同时保证节点间数据传输的质量。

文献[3]中提出了基于簇的延时约束和能量高效的多跳(Delay-Constrained Energy Multi-hop,DCEM)路由协议,该协议提出能量成本函数和端到端延时函数用于簇间多跳路由算法,但是没有考虑到节点间通信链路的质量对于数据包端到端延时的影响。文献[4]中提出了无线传感网中事件驱动的延时和能量高效的主动路由协议(Delay and Energy Efficient Proactive routing protocol for event-driven WSNs,DEEP),该协议构造了一个基于能量和延时的最短路径树,在感知相同事件的节点之间进行聚簇,通过最短路径树将数据发送到基站,但是在网络流量大时可能产生较大的排队延时。文献[5]中提出了能量感知事件驱动的路由协议和动态传输方案(Energy Aware Event Driven Routing protocol and dynamic delivering scheme,EAEDR),该协议将低延时事件分割成两个数据包,通过两条路径传输;由于在Sink节点处需要进行数据包的合并,因此难以保证两个数据包会在延时容忍范围内同时到达。文献[6]中提出了基于链路质量和延时的复合负载均衡路由协议(link quality and delay based Composite Load Balancing routing protocol,ComLoB),该协议使用分组排队延时和预期传输计数来度量节点到基站的路径质量,通过随机选择下一跳节点公平地分配流量负载以避免拥塞;但路由表的更新以及队列的监控将产生更多的数据包在网络中发送并占用数据包队列,使得该协议的端到端延时更高。文献[7]中提出了拥塞避免多路径路由协议(Congestion Avoidance multipath routing protocol based on Routing Protocol for Low-power and lossy network,CA-RPL),该协议有效地结合了延时、链路可靠性和负载平衡因子,降低了平均延时和丢包率;但CA-RPL是在较低的数据流量情况下进行评估的,且随着数据流量的降低,丢包率较RPL(Routing Protocol for Low-power and lossy network)[8]具有上升的趋势。文献[9]中提出了一种基于期望传输时间的多径OLSR(MultiPath Optimized Link State Routing protocol based on Expected Transmission Time,SETT_MPOLSR),节点间的路由选择基于预期传输次数以及带宽值;但当节点的发包率增加后,网络的分组投递率下降较快。文献[10]中提出了高鲁棒性低延迟的路由协议(Robust Delay-aware Routing protocol,RDR),该协议通过路径探测寻找延时表现最优的路径和潜在的协助节点,在数据发送阶段使用多播动态选取路径;但是,多播的使用会增加网络中的数据包而造成数据包的碰撞和拥塞。

针对上述协议存在的数据传输延时较高以及丢包严重的问题,本文提出了一种数据传输延时优化路由协议(Routing Protocol Optimized for Data Transmission Delay,RPODTD)。RPODTD给出一个新的路由选择函数,综合考虑节点的有效探测占比与传输效率等因素进行路由选择,提高路由选择的精确度;同时提出一种延时优化策略,通过更改数据包传输的路径,有效地降低数据包的排队延时。

1 系统模型

1.1 能量消耗模型

本文采用与文献[11-12]相同的无线通信能耗模型。在该模型中,无线通信模块发送数据的能耗主要在发送电路和功率放大电路,接收数据的能量消耗主要在接收电路。在保证合理信噪比的条件下,节点发送数据能耗为:

(1)

其中:k表示发送的二进制位数;d表示发送距离;Eelec(nJ/bit)表示射频能耗系数;Efs(pJ/(bit·m2))和Emp(pJ/(bit·m4))表示不同信道传播模型下的功率放大电路能耗系数。

节点接收数据能耗为:

ERx(k)=kEelec

(2)

1.2 网络模型

本文假设无线传感器网络具有如下性质,与文献[13-14]类似:

1)节点具有唯一的ID编号且均匀分布在监测区域;

2)所有节点位置固定且能量有限;

3)基站位置固定且具有充足的能量;

4)所有节点具有相同的发送能力;

5)节点可根据接收信号的强度计算彼此之间的距离。

2 RPODTD

对于数据延时要求较高且网络流量较大的网络,数据包需要尽可能以较低的延时和丢包率发送到基站。本文采用的节点链路度量指标能够更精确地度量节点之间的传输质量,保证数据的传输效率;同时,提出的延时优化策略能够有效地解决网络流量大带来的数据包端到端延时较高的问题。

2.1 节点链路质量度量

数据传输过程中,节点间通信链路的质量直接影响数据包能否成功传输。当节点间传输数据时,节点成功发送数据包或者丢包之前要经过多次传输尝试,用于探测信道是否空闲。根据IEEE 802.15.4的载波侦听多路访问/冲突避免(Carrier Sense Multiple Access with Collision Avoidance,CSMA/CA)算法,当节点有数据传输时,允许节点进行至多4次的信道探测[15]。根据数据包是否被成功接收,将节点的探测情况分为有效探测与无效探测,以下给出相关定义。

定义1 有效探测。节点在进行c(c≤4)次的探测后,成功地发送了数据包且收到了确认包,则称节点进行了c次有效探测。

定义2 无效探测。节点在进行c(c≤4)次的探测后,放弃传输或者没有收到确认包,则称节点进行了c次无效探测。

图1所示为节点的传输示意图。图1(a)为节点成功发送数据包的示意图。当节点A进行c次探测后,信道空闲,则节点A发送数据包,A收到ACK表示数据被成功接收。图1(b)为节点确认失败的示意图。节点A在c次探测后发送数据包,但没有收到ACK,表明数据包在传输过程中丢失。图1(c)为数据包发送失败的示意图。节点A进行4次探测后信道仍然繁忙,因此,放弃此次传输。

图1 传输示意图Fig. 1 Schematic diagram of transmission

2.1.1 节点有效探测占比度量

节点在信道探测后能否成功地发送数据包直接反映了节点间链路的质量。在一定时间内,节点有效探测的次数占总的探测次数的比例越大,表示节点间传输数据的质量越好。对于任意节点Nx,用Rxk表示节点Nk转发节点Nx的数据包的有效探测占比,由式(3)给出:

(3)

其中:s表示成功发送数据包的个数;u表示数据包传输失败的次数;ci表示第i次数据传输时探测信道的次数。

2.1.2 节点传输效率度量

本文将节点的传输效率作为评价节点之间通信能力的另一指标。节点的传输效率越高,表示节点间通信能力越好。用Exk表示节点Nk转发节点Nx的数据包的传输效率度量,由式(4)给出:

(4)

2.1.3 节点的路由选择函数

路由选择函数是数据发送节点进行路由选择的依据,包括节点的有效探测占比度量以及传输效率度量,是两者的复合计算。为了消除量纲的影响,对其进行标准化处理,处理后的结果由式(5)和式(6)给出:

(5)

其中:maxRx和minRx分别表示节点Nx的候选路由节点的有效探测占比度量的最大值和最小值;rxk表示节点Nk的有效探测占比度量的标准化数值。

(6)

其中:maxEx和minEx分别表示节点Nx的候选路由节点的传输效率度量的最大值和最小值;exk表示节点Nk的传输效率度量的标准化数值。

对于节点Nx,其路由选择函数由式(7)给出:

selectx(Nk)=αrxk+βexk

(7)

其中:selectx(Nk)是节点Nk在节点Nx路由表中的路由选择函数的值;α,β为各度量指标的权重系数,且α+β=1。所有指标的数据值都是越大越好,因此节点选择select值最大的候选路由节点作为下一跳。设置α=0.6,β=0.4,将在3.2节给出权重系数取值的实验分析。

2.2 路径建立与数据传输

网络初始化阶段,Sink节点广播初始化消息。节点间发送数据探测包,计算路由选择函数的值,节点选择靠近基站方向的邻节点作为候选路由节点,保存到路由表。节点保存多个候选路由节点,使得数据传输不易受到节点失效的影响。

候选路由节点按照select值由大到小分配优先级(1,2,…,n)。如果在一段时间内节点Nx的候选路由节点参与数据包传输,则根据已传输的数据包计算路由选择函数的值;否则,邻节点间周期性地发送数据探测包更新路由表。

Sink节点一跳范围以内的节点直接向Sink发送数据,Sink节点一跳范围以外的节点采用多跳的方式向Sink发送数据。每次传输数据时,数据发送节点在候选路由节点中选择优先级最高的作为下一跳节点。当节点的剩余能量不足以进行数据传输时,则从路由表中删除该节点。

2.3 延时优化策略

当监测区域产生突发事件且流量较大时,数据需要尽可能以较低的延时发送到基站。由于网络中的数据流量较大,网络的拥塞和碰撞现象会造成数据包的丢失或延迟转发,使得数据包在节点处产生较大的排队延时。在本节中,提出一种延时优化策略,可以有效地降低数据包的排队延时,从而使数据包尽可能以较低的延时传输到基站。该策略是通过改变数据包传输路径,以解决排队延时增加的问题。给定最大和最小两个排队延时阈值用于划分排队延时区间,数据接收节点根据数据包的排队延时所属的区间决定是否通知数据发送节点更改传输路径。以下分为5部分叙述该延时优化策略:阈值的取值分析、排队延时的计算、路径更改的判断、路径选择及其实现。

2.3.1 阈值的取值分析

最小排队延阈值Min和最大排队延时阈值Max的最佳设置在传感器节点的高效利用以及较低的平均端到端延时之间进行权衡。同时阈值的最佳设置也取决于节点缓冲区的大小。当阈值取值较小,在网络流量较大时,数据发送节点会频繁地更换路径,降低传感器节点的利用率;同时也意味着节点对于数据包传输过程中存在的突发状况,例如数据包碰撞、丢包等原因造成的数据包延迟转发,具有较低的容忍度。当阈值的取值较大时,对于节点之间的链路较差的情况,会延长无效链路持续的时间,增加数据包的端到端延时。

2.3.2 排队延时的计算

RPODTD中的排队延时表示即将进入队列的数据包从进入队列到发送成功所需要的等待时间,即为当前缓冲区数据包全部发送完所需的时间。由于数据包传输过程中的拥塞和碰撞会导致数据包被延迟转发,因此数据包实际的传输时间会大于理论上的传输时间,本文通过数据包的实际延时以及理论延时的差值估算数据包的排队延时,排队延时Tque由式(8)给出:

(8)

(9)

t=tsend+2ttrans

(10)

如图2所示为节点间传输数据包的示意图。由节点A计算数据包p进入队列到开始发送所需要的排队时间。

图2 数据包传输示意图Fig. 2 Schematic diagram of data packet transmission

2.3.3 路径更改的判断

由2.3.2节计算得到数据包的排队延时Tque,节点根据排队延时所属的区间判断是否可以继续接收数据。根据排队延时所属区间的判断存在以下3种情况。

1)当Tque≤Min时,节点可以继续接收数据,数据发送节点不需要切换路径;

2)当Tque≥Max时,节点不能继续接收数据,数据发送节点需要切换路径;

3)当Min

针对情况3),本文采用如下两种信息作为节点Nx判断是否继续接收数据的依据:

(11)

其中:n表示节点Nx候选路由节点的个数;selectxi表示节点Nx第i个候选路由节点的路由选择函数的值。

(12)

(13)

当Dec值为1时,表明节点Nx不适合继续接收数据,当Dec值为0时,表明节点适合继续接收数据。设置一个flag标志位,如果节点不可以继续接收数据,则将flag置为1;否则,将flag置为0。

2.3.4 路径选择

节点在持续接收一段时间数据后,不再满足接收数据的条件,则通过ACK消息向数据发送节点返回flag=1的消息,通知其更改路径。节点每次更改路径时,依次选择路由表中优先级较高的节点发送数据,判断是否可以传输数据。当节点收到数据包且满足flag=0时,则仅返回ACK消息;否则,通过ACK消息携带flag=1的信息。当数据发送节点收到flag=1的消息或者在最大重传等待时间后没有收到ACK消息,则重新选择节点;否则,选择当前节点作为下一跳节点继续传输数据。当路由表中节点的flag值均为1时,为了防止更多的数据包在网络中传输,加重网络负担,同时保证发送的数据包可以被接收,数据发送节点降低数据的发送速率,选择优先级较高的节点发送数据且只有在最大重传等待时间后未收到ACK包时才会重新选择路由节点。

2.3.5 延时优化策略实现

以下给出延时优化策略执行的步骤。

步骤1 计算排队延时。数据接收节点根据2.3.2节所描述的方法计算排队延时。

步骤2 路径更改判断。节点根据2.3.3节所描述的方法判断是否可以继续接收数据,满足继续接收数据的条件,则flag=0;否则,flag=1,并将flag返回给数据发送节点。

步骤3 路径更改。数据发送节点根据flag的值判断是否更改路径,若更改路径,则执行步骤4;否则,执行步骤5。

步骤4 节点选择。路径更改时,节点根据2.3.4节所描述的方法在路由表中选择合适的节点作为下一跳节点。

步骤5 数据传输。数据发送节点向选择好的下一跳节点发送数据。

3 仿真结果与分析

为了评价本文提出的路由协议的性能,使用OMNeT++仿真环境对RPODTD的性能进行验证。整个仿真实验包括3部分:

1)验证式(7)中α,β的取值对于数据包平均端到端延时的影响;

2)对排队延时阈值Min以及Max的取值进行分析;

3)将RPODTD与ComLoB、CA-RPL在网络时效性、网络可靠性、网络能效性等方面进行比较。

3.1 实验参数设置

使用OMNet++对网络协议进行仿真。将100个节点随机分布在100 m×100 m的区域内,节点初始能量为0.5 J,数据包大小为500 B,节点初始通信半径R0=20 m。

3.2 权重系数的选取

为了验证式(7)中有效探测占比度量以及传输效率度量这两个指标的权重系数对于端到端延时的影响,在相同的网络环境下,取9种情况(Q1,Q2,…,Q9)下的权重系数值进行仿真,如表1所示。通过对比不同取值下的平均端到端延时情况判断最佳的权重系数值。

表1 权重系数取值 Tab. 1 Values of weight coefficients

图3是权重系数取值与平均端到端延时关系的比较,由图3可知,当α=0.6,β=0.4(Q6)时,RPODTD可以获得较好的性能。

图3 权重系数取值与平均端到端延时关系Fig. 3 Relationship between weight coefficient value and average end-to-end delay

3.3 阈值的取值

为了验证Min与Max的取值对数据包端到端延时的影响,在相同网络环境下,取不同的阈值数值进行仿真。实验中,首先在一跳邻节点间发送数据包,计算单跳传输延时,经过多次实验得出单跳传输延时的平均值为0.03 s,最小值为0.02 s。阈值的取值范围根据缓冲区的大小估算,区间为(T,T·buf),其中,T为一个数据包的传输延时,值取0.03;buf为缓冲区大小,值取15,因此,在本节实验中,Min的取值从0.03开始以0.02的步长升序选取,Max的取值从0.45开始以0.02的步长降序选取,本节仅展示9种阈值取值的情况(Q1,Q2,…,Q9),如表2所示。图4是阈值取值与平均端到端延时比较。由图4可知,当阈值取值过小或者过大,均会增加数据包的端到端延时。当Min=0.15,Max=0.33(Q7)时,网络性能较好,因此,本文中相关实验的阈值取值为:Min=0.15,Max=0.33。

表2 阈值取值 Tab. 2 Values of thresholds

图4 阈值取值与平均端到端延时关系Fig. 4 Relationship between threshold value and average end-to-end delay

3.4 协议性能分析

3.4.1 网络时效性

分析单跳节点间数据包的传输延时,通过更换路由节点使得网络流量分布在不同的链路上,有效地减小了每一个节点处数据包队列的排队延时。数据包的传输延时主要取决于节点处的排队延时,虽然更换路由节点需要一定的处理时间,但与排队延时相比可以忽略。

本文采用数据包的平均端到端延时来评估网络的时效性。数据包的端到端延时是实时性数据重要的评价参数之一,表示为数据包从数据产生节点发送到基站所需要的时间。图5是不同数据包发送速率下,数据包平均端到端延时的变化情况。由图5可以看出,随着节点发送数据包速率的增加,ComLoB和CA-RPL的数据包端到端延时呈快速上升的趋势,而RPODTD的上升趋势较缓慢。与ComLoB和CA-RPL相比,RPODTD的平均端到端延时分别降低了78.87%和51.81%。

图5 3种协议的数据包平均端到端延时对比Fig. 5 Average end-to-end delay comparison of data packets of three protocols

3.4.2 网络可靠性

数据包之间的碰撞会导致数据包的丢失,当网络流量升高时,节点的丢包率会随之上升。通过对节点间链路质量的度量,可以有效地保证节点间通信的质量;同时,多路径的使用可以提高链路的可靠性,减少无效链路的使用时间,降低数据包因链路无效而丢失的概率。

本文采用节点的丢包率评价网络的可靠性。节点的丢包率表示为数据传输过程中丢失的数据包数量与总的发送数据包数量的比值。图6是不同数据包发送速率下,节点丢包率的变化情况。由图6可以看出,与ComLoB和CA-RPL相比,RPODTD的丢包率分别降低了40.71%和68.43%,因此RPODTD能够有效地降低节点的丢包率。

图6 3种协议的节点丢包率对比Fig. 6 Node packet loss rate comparison of three protocols

3.4.3 网络能效性

与持续监测节点的队列流量并在到达临界值时便发送警戒消息的ComLoB相比,RPODTD只有在节点间有数据传输时才会发送flag消息,有效地减少了网络中控制包的传输数量,降低了能量开销。

本文采用节点的死亡率评价网络的能效性。图7是随着网络运行时间的递增,节点的死亡率变化情况。由图7可以明显看出,ComLoB和CA-RPL的节点死亡率高于RPODTD。与ComLoB和CA-RPL相比,RPODTD节点的死亡率分别降低了25.42%和44.62%。

图7 3种协议的节点死亡率对比Fig. 7 Node mortality rate comparison of three protocols

4 结语

针对无线传感器网络中对数据实时性以及可靠性要求较高的应用,本文提出了一种数据传输延时优化的路由协议(RPODTD)。该协议给出一个新的路由选择函数,考虑信道探测次数以及信道探测时间对于节点间数据传输质量的反映,引入节点有效探测占比以及传输效率对节点进行评估,有效地提高了节点间数据传输的质量和效率;同时,本文还提出了延时优化策略,根据数据包的实际延时以及理论延时的差值估算数据包的排队延时;分析并确定最大和最小排队延时阈值,根据数据包排队延时所属的阈值区间,对是否更换路由节点进行决策。仿真结果表明,RPODTD能够有效地减少数据包的端到端延时,降低丢包率。

RPODTD能够很好地应用于高可靠低延时的环境;但是该协议在能耗方面仍存在不足之处,后续研究将进一步考虑节点能耗方面的优化,减少网络中无关数据包的探测和转发,以降低网络的能量开销。

猜你喜欢

数据包延时路由
课后延时服务
二维隐蔽时间信道构建的研究*
课后延时中如何优化不同年级学生活动效果
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
数据通信中路由策略的匹配模式
OSPF外部路由引起的环路问题
路由重分发时需要考虑的问题
C#串口高效可靠的接收方案设计
一种“死时间”少和自动校准容易的Wave Union TDC
宋湘延时答妙对