WSN中结合近源数据聚合和拥塞控制的低能耗路由协议

2019-12-17 09:22刘占伟郭育艳
重庆理工大学学报(自然科学) 2019年11期
关键词:报文数据包路由

李 华,刘占伟,郭育艳

(1.河南工程学院 a.计算机学院; b.理学院, 郑州 451191;2.河南财经政法大学 科研处, 郑州 450046)

无线传感器网络(wireless sensor network,WSN)是低成本、小型和能量有限的多功能微型传感器节点的集合[1],已被广泛应用于战场监测、医疗保健、环境监测、国土安全等领域[2-4]。当WSN中节点密集部署时,通常会产生冗余数据,将这些冗余数据传输到基站会增加网络中的能量消耗和拥塞。 此时可以用一个聚合节点将这些数据包收集起来,然后再转发给基站。将多个数据包转换为一个数据包的过程称为数据聚合[5]。目前,数据聚合的方法主要包括统计方法[6]、概率方法和人工智能[7]等。

现有的用于数据传输的数据聚合协议大致分为两类:基于结构[8]和无结构[9-10]的数据聚合协议。在基于结构的数据聚合中,传感器节点以不同的结构收集数据,通过创建链、树、聚类、树聚类或层次聚类将数据传输到基站。结构化数据聚合的性能取决于从下游节点接收到的中间节点数据的等待时间。一个小的等待期可能会导致较差的聚合,而长时间的等待可能会导致较高的延迟。文献[11]提出一种基于树的协议,在所有传感器节点中随机选择根节点,然后开始构建分层路径以形成树结构。文献[12]提出一种树状数据收集协议TCDGP,它是基于树和簇的混合。TCDGP根据传感器节点的位置和能量信息形成簇,在最小生成树中建立一条路径。接收器计算簇头之间的距离以形成树。 然而,这些基于结构的数据聚合协议在网络结构的构建过程中消耗了大量的能量。

在无结构的数据聚合方法中,具有相似数据的多个源选择相同的下游节点,使得冗余数据可以在该节点聚合,并且不需要构建结构而消耗能量。文献[13]中提出一种无结构数据聚合协议,不使用任何显式的结构进行数据聚合。该协议通过基于MAC层任意传播的方法实现了空间收敛,称为数据感知式传播(DAA)。文献[14]提出另一种无结构的数据聚合协议(RAG)处理冗余数据而不消耗构建结构所需的能量。RAG使用智能等待策略处理实时WSN中的时间和空间冗余。智能等待策略在中间节点处计算每个转发报文的等待时间,使得它可以在规定的时间范围内传送给基站。然而,由于节点向所有相邻节点广播控制消息,导致协议能量消耗增加。在接近汇聚节点处,报文可能经历更多的延迟,并且RAG增加报文传输的速度以满足期限约束,这增加了更多的能量消耗并且可能导致拥塞。文献[15]提出一种在多跳网络中运行的无结构和能量平衡的数据聚合协议(SFEB)。它假设具有相同事件标识(EID)的数据包可以被聚合,通过将网络划分为平行四边形来选择主要聚合器和次要聚合器。通过选择等待时间来提高数据聚合效果。但是,在无结构的数据聚合中,用于接收数据包的下游节点的数量并不固定,容易引起网络拥塞[10]。因此,还需要一个有效的缓冲区管理和调度方案来避免网络拥塞并提高吞吐量。

本文在无结构数据聚合方法的基础上,提出了一种基于近源数据聚合的路由协议,以确保有效的数据聚合和避免网络拥塞,且不需要对结构进行明确的维护。本文方法主要分为3个部分:① 下一跳节点选择,即根据下一跳节点的剩余能量、可用缓存空间以及与当前节点的链路强度来计算成本函数,根据成本函数来选择下一跳。 ② 无结构近源数据聚合,即为每个节点设定合理的数据接收时间,并对大量数据进行数据聚合,去除冗余数据,减少传输能耗。③ 拥塞控制,即每个节点根据当前接收的数据量和缓存状况,自适应调整接收率,避免节点拥塞实现能量均衡,并降低传输延迟。上述3个部分相互协作,下一跳节点选择用于动态构建最佳传输路由;近源数据聚合用于降低数据包维度;拥塞控制用于均衡节点能量。 当一个节点启动拥塞控制时,其上一跳节点会重启节点选择过程,选择其他节点进行数据传输。

1 网络无结构拓扑构建

1.1 拓扑结构

拓扑控制使用最小的功率保持连接,可以减少多余节点及其密集部署所产生的能耗。在逻辑拓扑构建阶段,传感器节点必须知道自己、相邻节点和基站的位置。

在一定区域内部署传感器之后,基站通过广播“HELLO”消息来启动拓扑结构构建过程。接收到这个“HELLO”消息的节点向下一节点发送“HELLO”消息。每个节点在随机设定的等待时间之后发送“HELLO”消息以避免对等节点之间的冲突。“HELLO”消息包含节点ID、位置信息、能量级别、缓冲区状态和到达基站的跳数(hc)。基站广播的HELLO消息中hc=0。收到从基站发送的HELLO消息时,传感器节点将其hc设置为1,并发送HELLO消息到下一跳节点。接收到这个HELLO消息的节点将其hc设置为2,依此类推。节点会从接收到的多个HELLO消息中选择具有最小hc值的邻居,并将自己的hc设置为hc+1。该过程持续,直到所有节点都包含在层次结构中。对未包含在逻辑拓扑中的孤立节点,广播HELLO消息使邻居节点知道它们的位置。孤立节点在接收到来自邻居的HELLO消息后设置它们的位置和hc。

本文不构建静态结构,而是使用无结构拓扑,其中传感器节点的层次结构决定数据转发到某个非特定节点。在拓扑构建阶段之后,每个节点知道其无线电范围内的所有相邻节点的可用能量、位置和缓冲器占用率。逻辑拓扑在开始时只构造1次,不需像基于结构的拓扑结构一样需要重复构建。WSN本质上是动态的,当节点死亡时拓扑发生变化。基于结构的拓扑控制协议在网络能量低于阈值能量水平时,或者在网络中有大量节点死亡之后会重启拓扑构建阶段。这增加了网络中大量的能源消耗。

本文提出的协议通过采用无结构的数据传输方法节省能量。在附近节点死亡的情况下,根据成本函数选择新节点进行数据传输。因此,所提出的协议可以在不重构拓扑的情况下处理拓扑变化。

1.2 基于可靠性的数据传输

在一些WSN应用中,需要较高的检测可靠性,所以会将传感器节点密集部署,但这样会产生高度相关和冗余的数据。可以选择性地将感测到的数据转发到聚合点,以此来最小化数据传输时的能量消耗。

例如,在森林资源监控应用中,整个森林可以分为多个子区域。需要对森林的不同分区进行不同程度的监测。含有珍贵树木的分区域需要受到高度关注。同样,在基于WSN的医疗保健应用中,ICU患者应该比普通患者受到更多的关注。因此,可以给子区域分配不同的可靠性权重(wj, 1≤j≤ns),其中ns是子区域的数量。分配给子区域的权重因子决定了该区域的QoS要求,如延迟和数据传输率。

本文所提出的方法基于所需的可靠性要求等级将整个感测区划分成子区域。用于感测数据的传感器数量是根据该区域的可靠性要求决定的。事件发生在可靠性要求较高的地区,需要从传感器节点收集更多的数据。因此,需要智能传输数据以达到区域所需的可靠性水平并节约能源。

如果事件发生在传感半径(dsense)内,则传感器节点可以感测事件。在感测到事件之后,每个传感器节点将可靠性因子(rf)分配给其感测的数据。感测数据的rf根据距离度量来计算,表示如下:

(1)

式中:dEvent_Sensor是事件与感知节点之间的距离,dsense是传感器节点的感应半径。

传感器节点根据其rf决定是否传输数据。如果rf≥trf,则决定传输数据。节点的trf是事件的可靠性阈值。一个节点的trf通过下式计算:

(2)

1.3 下一跳节点选择

基于结构的路由协议中源节点与目的地之间存在用于数据传输的固定路径。当路径中某个节点的能量耗尽或者网络故障导致路由失败时,建立新的路径。因此,路由维护成本高。另一方面,无结构路由协议动态选择下一跳节点进行数据转发。在每轮通信中,可以动态地选择不同的路径。这种无结构的路由可以提供负载均衡和容错能力,减少拥塞的可能性。

下一跳节点的选择是无结构聚合和路由协议中的重要问题。算法1显示了本文协议中基于成本函数的下一跳选择过程的伪代码。

算法1:下一跳选择过程定义:DID为下一节点的ID;cfi为节点i的成本函数。执行传感器节点发送DS;如果接收到的控制包非空,则 将此控制包的DID作为下一个节点的ID; 为该节点设置传输时间表;否则 传感器节点开始感测事件E的数据DS; 对于每个节点i 计算其成本函数cfi; 将cfi中的最大值赋值给cfmax; 将具有cfmax的节点的ID作为下一个节点的ID; 为该节点设置传输时间表;结束结束

在所提出的协议中,下一跳节点是基于成本函数来选择的。 根据下一跳节点的剩余能量、可用缓存空间以及当前节点与下一跳之间的链路强度来计算成本函数。

每个传感器节点维护一个邻居信息表,这有助于在数据转发期间计算成本函数和下一跳节点选择。邻居信息表包含下一跳邻居节点的节点id(NID)、坐标位置(N(x,y))、可用缓冲区(Buffst)、链路强度(ls)和剩余能量(Eresd)等信息。

当一个节点检测到数据或从其他节点接收到数据报文后需要转发给基站时,该节点首先从邻居信息表中为其所有下一跳节点计算成本函数。节点j(Nj)会选择具有最大成本函数值(cfmax)的下一跳节点i(Ni)。cfmax计算如下。

(3)

式中:N表示Nj的一组邻居,∝是根据Nj和Ni之间距离的倒数计算的权重因子。

(4)

节点i的剩余能量计算如下:

Eresd.i=Elevel.i-{(ETX(k,dtran))+

(5)

ETX(k,d)是将k个比特传输到距离dtran所需要的能量,其中dtran等于传感器节点的最大传输范围;RRX(k)是接收数据包所需的能量,且RRX(k)=Eelec×k;Eagg是用来聚合np数据包所需的能量。

可用缓冲区空间是根据当前的缓冲区状态和从Nj邻居节点传输数据的预期数量来计算的。Buffst和Elevel通常包含在用于数据包发送的确认包中,并在邻居信息表中更新。可用于节点i的缓冲区计算如下:

(6)

当邻居节点收到确认报文时,根据式(7)更新邻居节点的链路强度ls。链路强度是Nj和Ni之间链路的信号干扰噪声比(SINR)。RecSignal Power功率由式(8)计算得到,其中Recno.of bits是来自邻居节点Ni的确认报文数据中的比特数。

(7)

RecSignal Power使用文献[16]中公式计算得出:

(8)

式中Pr(d)是距离为d时的平均接收功率,由距离为d0时的参考功率Pr(d0)计算得到。β是路径损耗指数,Xdb是均值为零、标准差为δdb的高斯随机变量。

2 近源数据聚合

近源数据汇聚可以减少能源消耗、延迟和流量负载。在基于结构的数据聚合中,数据从其所有子节点定期收集,然后聚合形成单个数据包。基于结构的数据聚合在路由中聚合固定数量的数据包。需要汇聚的报文数量取决于路由结构。在无结构聚合中,聚合数据包的数量因节点而异。随着数据包数量的增加,流量负载、缓存需求和网络拥塞也会增加。因此,本文尽可能早地为事件聚合选定数据包。

有数据传输的节点在控制周期开始时将其定时器设置为(100-rf),然后开始递减定时器。当一个节点的定时器变为零时,它将把控制数据包发送给相邻节点。其他节点暂停它们的定时器并监听该发送者的控制数据包。控制报文包含源ID、下一跳ID、报文类型和等待时间。邻居节点设置它们的传输时间并将数据转发到下一跳节点。所选择的下一跳节点聚合接收到的数据,并将数据转发到通向基站的下一跳节点。

接收到的数据包在聚合节点处被缓冲以用于数据聚合,然后将其发送到下一跳。聚合节点用于接收数据包的等待时间直接关系到聚合精确性和数据传输时延。如果等待时间过长,会造成传输时延较大;如果等待时间过短,又会使数据聚合不充分。为此,本文考虑网络延迟约束,在满足约束条件下合理设置等待时间,以提高聚合效果,降低网络传输能耗。

设定聚合节点在数据聚合之前等待twexpt以收集大量的数据包,twexpt使用式(9)计算。对于WSN中的实时数据传输而言,感知的数据包必须满足一定的时延限制报告给基站。总延迟取决于传播延迟(τpro_delay)、传输延迟(τtran_delay)、信道接入延迟(τchan_delay)和缓冲延迟(τbuff_delay)。

twexpt={ (TTD-τpro_delay)-(hc[τtran_delay+

τchan_delay+τbuff_delay])} -β

(9)

截止时间(TTD)即剩余时间。τpro_delay表示为dn BS/ps,其中dn BS是聚合节点与基站之间的距离。ps是波的传播速度。τtran_delay表示为k/rt,即以rt的数据速率发送k比特数据的时间。为了简化计算,本文假设每跳缓冲时延和信道接入延迟不变。β是随机松弛时间裕度,用于保证聚合数据在期限内传送到BS。

本文假设WSN中传感器节点最初是随机部署的,但在空间上是一致的,基站位于网络拓扑结构的特定点。每个传感器节点都有1个唯一标识(NID)。源节点的数量是变化的。基站通过外部网络连接到数据采集中心。设定每个节点都知道它的位置和基站的位置。 基站没有资源限制,传感器采用电池供电,能耗有限,物理性能相同。如果能量耗尽,传感器不再工作。而且,源节点可以发送不同类型的数据报文,中间节点负责执行相同类型的报文网内聚合。不相邻的节点通过逐跳相互通信。节点发送n个大小为k位的数据包到距离d,经过数据聚合后将这些数据包变为1个数据包。如果聚合后的数据包大于k,它将被分割为大小为k的多个包。如果聚合后的数据包小于k,它将被放大到k。算法2显示了用于数据聚合的伪代码。

3 基于接收阈值的拥塞控制

在WSN中,基于结构的路由协议常被用来发现源-目的地对之间的用于数据传输的固定路径。当下一跳节点的能量耗尽或者网络故障导致路由失败时,建立新的路径。因此,路由维护成本高,控制负载均衡也是一项艰巨的任务。另一方面,无结构路由协议动态选择下一跳节点进行数据转发。因此,在每轮通信中,可以动态地选择不同的路由路径。这种无结构的路由可以提供负载均衡和容错能力,减少拥塞的可能性。

路由协议中发生拥塞的原因可以归纳为:路由中下一跳节点的选择采用启发式策略,导致网络中连接密度大的节点接收到大量报文,而当该类节点想要再次将接收到的报文信息转发给目的节点时,所需的时间会很长。如果节点接收报文的速率大于报文发送的速率,随着时间的推移,节点的剩余可用缓存逐渐减少,最后出现缓存溢出现象,也叫作节点拥塞。

在路由协议中,节点A依照数据转发算法向节点B转发报文m。为了防止节点B中出现缓存溢出现象,本文设置一个阈值,用来限制节点接收报文:当节点B接收到m报文后,节点B在C时间段内将接收到的所有报文信息成功转发给目的节点的概率是PC,设定一个节点B的阈值pThres,那么节点B接收报文m的条件为PC>pThres,如果此条件不满足,则拒绝接收。利用pThres来调整节点的拥塞程度。

由以上描述,在节点接收报文时附加一个额外条件,使节点的报文接收和报文发送呈现平衡状态,避免了节点拥塞情况的发生。网络中每个节点都能根据自身情况,合理、动态地调整自身阈值,使网络中的拥塞达到最小,实现拥塞控制。以下为基于接收阈值的拥塞控制策略具体步骤:

步骤1节点A和节点B通过邻居发现互相检测。

步骤2节点A和节点B把自身携带信息中有关对方的目的地址互相递交,节点A依照数据转发算法,把自身缓存中能传递给节点B 的报文信息打包放入一个List1列表中,整体传递给节点B。该报文信息主要包括标识符ID、报文被传输的跳数hop、目的节点DstID等。

步骤3节点B接收报文信息的集合List1,并计算出其能在C时间段内将所有报文信息成功转发给目的节点的概率PC。如果PC>pThres,则节点B将该报文信息的(ID、hop、PC)打包放入List2列表中。

步骤4节点B告知节点A自身需要的报文种类及顺序。

步骤52个节点A、B间的报文接收转发完成后,节点B更新自身的拥塞程度,并动态地调整自身阈值。

图1给出了本文提出的路由协议基本流程图。

4 仿真分析

4.1 仿真设置

本文通过NS-2.30来评估提出协议的性能。仿真的目的是将本文提出的协议与现有的无结构数据聚合协议RAG[14]和SFEB[15]进行比较。表1总结了所提出的协议的仿真参数。

图1 本文协议流程

本文考虑在500 m×500 m的区域内随机部署200~1 000个传感器节点。传感器节点的传输范围(dtran)被设置为50 m,数据速率为1~100 kbit/s。传感器节点的感应范围是50 m。数据包长度为60个字节。每个传感器节点具有0.6 J的初始能量。发送和接收比特的能量消耗是50 nJ/bit。传感、聚合和无线电放大所消耗的能量分别为0.083 J/s、5 nJ/bit/signal信号和10 pJ/bit/m2。事件是每隔一定时间间隔(3~10 s)随机产生的。具有相同事件ID的数据包可以被聚合。每个节点的缓冲区长度设置为65个数据包。传感区域被随机分为若干子区域,每个子区域在每个模拟中随机分配传感可靠性要求。本文运行模拟10次,每次35 s。取其平均值作为最终结果。

4.2 性能分析

比较本文提出的协议与其他现有协议在平均能量消耗、丢包率和端到端延迟方面的表现。平均能量消耗是评估WSN性能的最重要参数。它显示了数据传输过程中的能耗,有助于预测整个传感器网络的使用寿命。本文为每个生成的数据包设置RAG中的“Time-To-Deadline(TTD)”,以计算丢包率。端到端延迟是指从生成数据包传送到目的地的时间。

表1 仿真参数

4.2.1平均能量消耗

图2~4分别给出了3种协议在不同数据速率、事件生成时间和节点数量方面的平均能量消耗比较。由图可知,随着数据速率、感知能力、事件生成时间和节点数量的增加,本文协议比RAG协议和SFEB协议节省更多的能量。RAG协议采用等待策略来有效聚合数据包,以节约能源并消除原始数据的固有冗余。在SFEB协议中,所有节点都传输数据。在本文协议中,由于选择性地转发和聚合数据,这样就节省了将数据包广播给整个邻居节点的时间,减少了多跳传输中的流量负载。

4.2.2丢包率

图5~7分别给出了3种协议在不同数据速率、事件生成时间和节点数量方面的丢包率比较。当一个事件发生在一个感知域时,RAG协议和SFEB协议传输所有源节点的感知数据,本文协议则有选择地传输数据包以满足传输可靠性标准。

图2 不同数据速率的平均能量消耗

图3 不同事件生成时间的平均能量消耗

图4 不同节点数量的平均能量消耗

在图5中,丢包率随着数据速率的增加而增加。由于本文协议中源节点的数量少于RAG协议和SFEB协议,所以本文协议比RAG协议和SFEB协议有更小的丢包率。图6中,随着事件生成间隔时间的增加,3种协议的丢包率均逐渐减小。流量负载随着事件生成间隔时间的增加而减小,因此丢包率也越来越小。此外,由于本文协议中的流量负载较少,所以本文协议的丢包率比RAG协议和SFEB协议要小。图7为节点数量和丢包率的关系。由于在WSN中部署密集的传感器来感知区域中事件的发生,所以一个区域中可能有大量的传感器节点,一个事件可能被多个传感器感知和传送。本文协议采用近源汇聚对事件信息进行汇总,在节点数量较高时表现出优异的性能。

图5 不同数据速率下的丢包率

图6 不同事件生成时间的丢包率

图7 不同节点数量的丢包率

4.2.3端到端延迟

图8~10给出了3种协议在不同数据速率、事件生成时间和节点数量方面的端到端延迟比较。本文的等待策略根据数据包的最后期限动态调整聚合节点中的等待时间限制。

从图8可以看出,3种协议的端到端延迟随着数据速率的增加而增加。在RAG协议中,由于数据速率的增加,路径拥塞也增加,导致端到端延迟缓慢增加。而由于路径拥塞、等待时间等因素,SFEB协议的端到端延迟随着数据速率的增加而成比例地增加。由于本文协议选择的发送者数量较少,所以比RAG协议和SFEB协议具有更少的流量负载。另外,本文协议融合了基于接收阈值的拥塞控制策略,因此在端到端延迟方面,本文协议的性能优于其他协议。图9显示了不同事件生成时间的端到端延迟。流量负载和事件报告频率随着事件发生时间的增加而降低。因此,3种协议的端到端延迟减少。

3种协议的端到端延迟与节点数量的关系如图10所示。在SFEB协议中,数据聚合时间取决于聚合树的下游节点。聚合树随着节点密度的增长而增长,因此SFEB协议中的端到端延迟增加。RAG协议的等待时间是通过聚合过程中的中间节点计算的。它基于敏感的报文传送时间(截止时间TTD)来聚集报文。在RAG协议和本文协议中,数据包的优先传输时间表有助于满足延迟敏感数据包的截止期限。因此,在高节点密度下,RAG协议和本文协议比SFEB协议执行更好的数据包传输。然而,由于实时数据包的优先级数据转发,本文提出的协议在延迟方面优于RAG协议和SFEB协议。

图8 不同数据速率的端到端延迟

图9 不同事件生成时间的端到端延迟

图10 不同节点数量的端到端延迟

5 结束语

本文提出了一种能量有效的近源数据聚合路由协议。在该协议中,将感测区域分成可靠性要求不同的子区域,允许选定数量的发送者根据可靠性要求发送感测数据。这不仅节省了传感器的能耗,而且减少了网络中的流量负载。较少的流量负载和融入的拥塞控制策略也减少了由于拥塞和丢失恢复造成的端到端延迟。此外,本文协议中使用的无结构近源数据聚合方法还节省了由于结构构建而导致的能量消耗,提高了无线传感器网络的性能。

在将来的研究中,考虑将提出的协议进一步进行修改和测试,使其能应用到动态环境的需求。

猜你喜欢
报文数据包路由
基于J1939 协议多包报文的时序研究及应用
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
CTCS-2级报文数据管理需求分析和实现
铁路数据网路由汇聚引发的路由迭代问题研究
多点双向路由重发布潜在问题研究
浅析反驳类报文要点
一种基于虚拟分扇的簇间多跳路由算法
路由重分发时需要考虑的问题
C#串口高效可靠的接收方案设计