APP下载

一种可调节转发区域的水下传感器路由

2021-11-01张文森

计算机测量与控制 2021年10期
关键词:能量消耗数据包路由

王 鑫,张文森,覃 琴

(1.桂林电子科技大学 计算机与信息安全学院,广西 桂林 541004;2.桂林电子科技大学 海洋信息工程学院,广西 北海 536000)

0 引言

当前水下无线传感器网络路由主要挑战依旧是传感器节点携带能量有限,且充能难度大。水下无线传感器网络部署在水环境中,采用水声通信,声波信号衰减快、通信时延高[1],节点在水下充能困难[2],给无线传感器网络的应用带来极大的挑战。近年来,越来越多的机构[3-5]和高校[6-10]研究者们致力于设计可靠、高效、负载均衡的节能路由协议[11]。文献[12]提出经典的DBR路由协议,节点通过深度信息转发数据。文献[13]在DBR基础上进行改进,提出基于分层的路由协议Layered-DBR,节点进行一次信息广播后,只允许指定深度范围内的节点进行信息接收,以达到控制网络副本的目的[14]。为了延长DBR协议的网络生存周期并平衡能量消耗,文献[15]提出一种考虑剩余能量水平的能量有效路由协议EEDBR,在EEDBR协议中,通过比较节点深度信息和剩余能量的加权权重决定每个节点转发数据的优先级。当节点接收到广播的数据包后,考虑深度和能量计算自身的权重值。文献[16]和文献[17]基于分簇对路由进行研究。文献[18]将强化学习应用到路由算法中,提出了一种基于深度的Q-Learning机会路由协议EDORQ。文献[19]提出一种基于蚁群优化算法的水下无线创拿起网络分簇路由算法,通过蚁群算法提高寻找最优路径效果。

上述这些路由协议都是基于DBR思想进行改进,在路由过程中,所有的数据包都是从深度较深的节点向上转发给深度较浅的节点,沿着汇聚节点的方向发送数据,很容易导致负载不均衡和能量消耗不均衡。本章针对水下无线传感器网络能量消耗不均衡和路由过程中过多冗余节点参与转发增加能耗的问题,提出一种可调节转发区域的水下传感器路由协议(ESAFDBR, an energy-saving underwater opportunistic routing protocol with adjustable forwarding area)。该算法可以实现能量平衡和减少冗余节点转发产生的能耗。在ESAFDBR中,通过划分转发区域,并根据邻居节点密集程度自适应调整转发区域,有效抑制冗余节点参与转发。其次,考虑节点的深度、剩余能量和节点两跳邻域内节点数计算加权值控制转发节点的转发优先级。整体上实现负载均衡,均衡网络节点能量消耗,从而提高整体网络的生存周期。

1 系统模型

1.1 网络结构

ESAFDBR采用多汇聚节点(Sink)的水下无线传感器网络结构模型,如图1所示。

图1 水下无线传感器网络结构图

水下无线传感器网络由可部署在水面和水下的节点组成。部署在水下的节点可分为锚定节点和中继节点,其中锚定节点固定在海洋等水底部,位于网络最底层的用于采集数据的节点,锚定节点一般发送数据不接受数据。中继节点随机分布在水中不同位置,配置有声学调制解调器,既可以发送数据也可以接收数据,通常担任源节点和目的节点间通信的中继者身份。部署在水面的节点通常称为汇聚节点,配置有声学调制解调器和无线电调制解调器。汇聚节点可以控制从水下节点收发声学信息,也可以发射和接收远程射频信号,以便与岸上基站进行通信。汇聚节点是水下传感器节点和陆地上基站中通信间的一个中继节点,收集到的数据可用于本地或者连接到另一个网络用于某种特定目的[20]。由于信号在水中的衰减特性,在水下,声学通信是最流行和使用最广泛的通信介质。汇聚节点可通过无线电等介质与岸上基站通信。基站通过Internet或卫星网络将处理好的信息发送给终端用户使用。假设锚定节点采集到数据后,向汇聚节点发送消息,只要消息顺利到达汇聚节点后,都会成功传送陆地基站。ESAFDBR只专注于将消息从锚定节点成功发送到汇聚节点的过程。

1.2 能耗模型

水下环境影响能量消耗和声信号的传播速度,本章节采用的是Stojanovic提出的典型水下信道传播模型[21]。水声信道在水下传感器网络中衰减模型可以表示为:

10logA(d,f)=k×10logd+d×logα(f)

(1)

其中:k是扩散系数,k的值可能是1,1.5和2,当k=1时表示浅水区的圆柱性扩展,当k=1.5时为实际扩展,当k=2时意味着深水区域的球形扩展。f为信号频率,α(f)表示水环境的吸收系数,其与信号频率f的关系可以表示为:

(2)

由公式(2)可以得出,吸收系数α(f)随着信号频率f增加而增加,也就是说,频率越高将会造成信号的衰减越严重,这也是为什么水声信号在水中可用的带宽有限的原因。公式(2)适用于高频信号,当信号频率是低频信号时,吸收α(f)与f可以使用如下公式表示:

(3)

水下信道噪声由各种噪声叠加,在水环境中影响比较严重的噪声有湍流噪声Nt(f)、船舶航运噪声Ns(f)、海浪噪声Nw(f)和热噪声Nth(f),可以表示为:

N(f)=Nt(f)+Ns(f)+Nw(f)+Nth(f)

(4)

在水声信道中,当声信号频率为f,传播距离为d出的接收器处信噪比可表示为:

SNR(f,d)=P(f)-A(d,f)-N(f)+DI

(5)

其中:P(f)表示发射器频率为f的发射功率,A(d,f)为衰减,N(f)为噪声,DI是方向性指数,通过重定向水听器来避免噪声的节点质量。除此外,声音调制解调器也会对水声通信有影响,因为它也是声音通道中的组成部分。

2 问题描述

传统DBR路由协议路由过程中,所有的数据包都是从深度较深的节点向上转发给深度较浅的节点,沿着汇聚节点的方向发送数据。每个数据包都携带记录发送该数据包节点的深度信息的字段,并且在每次发送信息的时候更新。接收节点计算与上一节点深度差,深度差越大该节点获得的转发权限优先级越高。这很容易导致负载不均衡和能量消耗不均衡,因为处于较好位置的节点会被频繁选为转发节点,容易陷入局部最优。如图2所示,接收到节点S1和S2转发数据的节点中,A点都处于最佳转发节点的位置,因此A节点会被频繁选为转发节点过度消耗能量。

图2 传统DBR路由策略

此外,在图2中可以观察到,当A选做转发节点转发数据包时,R1,R2,R3区域的节点都可以收到节点A的抑制作用,不会继续转发数据包。而R4和R5区域内的节点在等待时间结束后会继续转发接收到的数据包,因为它们并不在节点A的转发范围内,无法接收到节点A发送的抑制信号。这样,造成冗余转发而浪费能量,若在节点分布稀疏区域,冗余转发可以提高通信的可靠性,但是如果在密集区域内就会造成多余的能量消耗。

本章提出一种可调节转发区域的水下传感器路由协议ESAFDBR,ESAFDBR不仅考虑了节点的深度信息和剩余能量信息,在传输过程中使网络实现负载均衡。同时还考虑了两跳节点邻域信息,以此避免节点陷入局部最优。为了减少冗余转发增加能耗,ESAFDBR设计划分转发节点区域策略,将初始转发区域划分为Reuleaux三角形,利用Reuleaux三角形特性抑制冗余节点,并且设计转发区域可根据节点邻域内的节点密集程度自适应调整,增强网络的鲁棒性和自适应性。以下结构介绍ESAFDBR的设计。

3 ESAFDBR路由算法设计

3.1 ESAFDBR数据包结构

ESAFDBR包含3种数据的消息,分别为邻居请求消息(NEIGHBOR INVITE),应答消息(ACK)以及数据信息消息(DATA),每种消息类型通过数据包携带的数据类型ID字段区分,分别为00,01,10。在同一个水下传感器网络中,每个传感器节点都有自身独立的ID编号,且不会有重复的ID编号。

邻居请求信息用来查找邻域信息,统计自身可用路由数量,其包括4个域,如图3所示,数据类型ID为“00”,源节点ID表示发送邻居请求消息的传感器节点ID,该节点的深度和能量存放数据包节点深度和剩余能量字段中。包序号用来区别不同数据包,数据包的编号可由”数据类型ID+源节点ID+发送序号”组成。

图3 邻居请求和回应数据包格式

应答信息用来回应邻居请求信息。数据包格式与邻居请求消息格式一样,如图3所示,其数据类型ID为“01”,源节点ID、节点深度和剩余能量字段的信息分别为自身节点ID、当前深度和当前剩余能量。包序号保留接收到请求的包序号,表示此消息是回应邻居请求的消息。

数据信息格式包括7个域,如图4所示。其数据类型ID为“10”,源节点ID为转发节点ID,包序号为锚定节点首次发送时组成的序号,中间转发不能修改包序号,以免同一节点重复多次转发相同的数据包。源节点ID、深度和能量分别为发送数据包节点的ID,当前深度和当前剩余能量。转发角是控制划分转发区域,有60,120和180三个值,当为60值选择使用Reuleaux三角形转发区域,当值为120时选择使用张角为120度的锥形转发区域,当值为180时,与DBR路由协议一样所有接收到数据的节点都是潜在转发节点。

图4 数据信息格式

3.2 转发区域

ESAFDBR划分转发区域是为了更好地抑制冗余节点,ESAFDBR将转发区域节点尽量限制在S0区域,区域S0是一个Reuleaux三角形形状的区域。如图5所示,假设水下无线传感器节点的通信范围半径为R。

图5 ESAFDBR转发区域的划分

S0区域是由3个半径为R的圆环相交得到的Reuleaux三角形。根据Reuleaux三角形的性质[22],所划分出来的莱洛三角形内任意两点的距离最大为R。所以,在图中当节点S发送数据是,区域内节点A、B、C、D、E、F、G、H都可以接收到数据包,D、E因为深度小于S的深度,判断为没有转发权限丢弃数据包。C、F计算自身的位置并不在S0转发区域内,不具备转发节点的权限也丢弃数据包。A、B、G、H节点通过计算优先级,节点A优先级较高,最先发送转发数据包,当节点A转发数据包时,B、G、H节点都能接收到数据包,因为A、B、G、H都位于同一个半径为R的Reuleaux三角形中,在这区域中任何节点都能接收到节点A发送的数据信息,因此都能收到节点A的抑制作用,从而也达到了限制冗余节点转发的效果。

3.3 确定所属区域

如图6所示,主转发区域是由3个半径为R的圆组成的Reuleaux三角形,L1,L2,L3三条弧线可以使用式(6)表示:

图6 Reuleaux转发区域的数学模型

(6)

转发区域内节点都在这3条弧线围成的区域内,可以通过如下式子表示:

(7)

当邻域内水下传感器节点密度大的时候,以控制冗余转发为主要目的,可以使用式(7)确定Reuleaux三角形区域选择转发节点。当邻域内水下传感器节点比较稀疏时,冗余节点参与转发数据有利于增强水下传感器网络的可靠性,此时,ESAFDBR自适应调整夹角,扩大转发区域,转换为锥形转发区域,如图7所示,依次扩大转发区域夹角,分别为120°和180°。当夹角变为180°时,则是DBR路由协议的路由策略。

图7 锥形转发区域

通过以下式子确定节点是否属于锥形转发区域内的节点,设H节点位置为(Hx,Hy),S节点位置为(Sx,Sy),三维坐标同样的计算方式,θ是存放在数据包中的数据,通过邻居信息收集时得到的邻居节点数判断邻居节点的数量决定θ的值。当θ=180时,其实就变成DBR路由协议。

(8)

3.4 ESAFDBR计算加权策略

为了更好地选择转发节点,ESAFDBR路由协议中,既考虑了节点的能量效率,还将节点信息的计算扩展到了两跳邻域。计算当前节点的深度、剩余能量以及拥有下一跳潜在转发节点的数量,通过这样既可以平均能量消耗,实现负载均衡,还能提前预测空洞,避免节点遇到空洞信息。数据包转发优先级通过计算转发等待时间HT(holding time)来实现,节点转发时间HT越小则越先转发数据包。每个节点接收到数据包后,要先计算自己转发等待时间HT,计算HT可以使用以下公式:

(9)

(10)

R为水下传感器节点的传输范围,Δd为当前节点与上一跳节点的深度差,Ecur和Einit分别表示节点当前剩余能量和节点初始能量,b表示当前节点存在下一跳的节点数,该数据在发出邻居信息请求时,统计收到的回应消息,选择并统计合适的节点数,并存放在节点存储器中,保持实时更新。λ1、λ2、λ3分别为深度差加权系数、剩余能量加权系数和下一跳邻域节点数量加权系数。δ随具体环境变化需要取值,如果选择较小的δ,数据包的HT会增长,参与转发的数据包能够得到更好的抑制,能耗也会减少,但是节点间端到端的延时则会增加。τ的计算(10),c为声音在水中的传播速度,约等于1 500 m/s。

3.5 ESAFDBR算法处理介绍

ESAFDBR路由协议具体实现步骤如下,分为邻居节点请求信息处理流程和节点收到数据信息时的处理流程。

邻居请求消息处理流程:

Step1:水下传感器节点定期向邻居广播邻居请求消息,数据类型ID+源节点ID+发送序号”组成的包序号,以此区分数据包。

Step2:收到邻居请求消息的节点,判断数据包时邻居请求类型数据包,然后对比自身深度如果小于数据包中深度,发送回应消息,字段携带有原序列号。

Step3:发送节点收到回应消息,更新邻居潜在转发节点的个数。

节点收到数据包信息时处理流程如下:

Step1:判断接收到的数据包文类型是否是数据包类型“10”,判断自身是否是潜在转发节点,如果不是潜在转发节点则不参与转发并丢弃该数据包。如果是潜在转发节点则查看邻居潜在转发节点的个数,如果为0则不参与转发并丢弃该数据包,通过这种方式可以避免下一跳遇到空洞,如果邻居潜在转发节点个数不为0,则继续下面步骤。

Step2:判断节点是否在转发区域内,如果节点不在转发区域内,则不具备转发权限并丢弃该数据包,继续等待下一个数据包。

Step3:如果节点位于转发区域中,计算保活时间,然后等待发送。

Step4:等待期间内如果收到该数据包的抑制信号,该节点将放弃转发该数据包,否则,等待时间结束后,将继续转发该数据包。

4 实验仿真与结果分析

本实验将对ESAFDBR路由协议与现有路由协议DBR和EEDBR进行性能比较和分析。

4.1 仿真环境

实验的仿真使用Matlab建立水下无线传感器网络仿真平台进行路由仿真。在实验仿真过程中,使用不同数量的传感器节点(50~600个)进行实验仿真。每一次比较的网络拓扑都是随机生布局的,3种路由策略作用于同样拓扑结构的网络进行仿真模拟。因为实验可能会产生误差,为了减少实验结果收误差的影响,实验结果取30次仿真运行的平均值。部分仿真参数如表1所示。

表1 实验参数设置

4.2 实验结果与分析

4.2.1 网络生命周期

实验中定义的生命周期为第一个节点的能量消耗完时,源节点发送数据包的轮次。如图8所示,由于DBR深度较小的节点经常被用于转发数据包,因此这些节点的能量会很快就被耗尽了。本文定义第一个节点的能量完全耗尽时,即在网络中出现第一个节点死亡时,源节点发送数据包的轮次数作为网络的生命周期。如图8所示,由于DBR选择具有较小深度的节点来频繁地传输数据,导致这些节点能量被迅速耗尽而死亡。EEDBR和ESAFDBR采用了深度和能量加权的方式,在深度与能量共同加权的策略下,传感器节点能够有效地平衡网络节点的能量消耗。因此,在传感器节点将能更长时间保持活动状态。此外,较低的冗余能耗是提高网络寿命的另一个因素。DBR无法避免冗余的分组传输,具有相似深度的节点也具有相似的保持时间。因为转发节点通信范围外的节点无法接收到抑制消息,在DBR和EEDBR中这些相同的分组被相继发送。在ESAFDBR中,能够大量限制这类传感器节点参与转发,因为转发节点受到节点的深度和剩余能量限制外,通过转发区域的划分,能够避免转发节点传输范围之外的节点继续发送,随着节点数量的增多,抑制冗余节点的效果优于EEDBR和DBR。ESAFDBR转发区域可随着节点密度自适应调整,能增强网络的鲁棒性。ESAFDBR考虑了两跳的节点信息,有效避免遇到空洞情况,因此,总体上ESAFDBR比DBR和EEDBR的性能更优。

图8 网络生命周期

4.2.2 能量消耗

本实验定义能量消耗通过数据包从源节点成功发送达到目标节点期间,水下传感器网路消耗的能量总量来估算。如前所述,DBR能量消耗比EEDBR和ESAFDBR更高,主要是因为在一轮成功转发过程中,DBR有过多的冗余节点参与了转发,ESAFDBR通过制定转发区域有更好的抑制冗余节点的作用,所以图中ESAFDBR能耗比DBR和EEDBR更少。3种方案能耗都随着节点网络的增加而增加,这是因为随着网络节点的增加,更多处于相同深度,拥有相近保活时间的节点无法被抑制。相比之下,ESAFDBR通过设置转发区域、深度和剩余能量加权、考虑两跳节点避免空洞等方面更好地抑制冗余及转发。如图9所示,随着网络节点的增加,ESAFDBR能量消耗小于DBR和EEDBR的能量消耗。

图9 能效消耗曲线

5 结束语

本文针对水下无线传感器网络能量消耗不均衡和路由过程中过多冗余节点参与转发增加能耗的问题,提出提出一种可调节转发区域的水下传感器路由协议ESAFDBR。ESAFDBR不仅考虑了节点的深度信息和剩余能量信息,在传输过程中使网络实现负载均衡。同时还考虑了下一跳可用邻居节点数,通过这样避免节点陷入局部最优。此外,为了在密集区域中减少冗余转发减少能耗,ESAFDBR设计划分转发节点区域策略,将初始转发区域划分为Reuleaux三角形,利用Reuleaux三角形特性有效抑制冗余节点,并且设计的转发区域可根据节点邻域内的节点密集程度自适应调整,增强网络的鲁棒性和自适应性。通过仿真实验可以验证,ESAFDBR协议能够有效地减少冗余节点参与转发,整体上提高网络的生存周期。

猜你喜欢

能量消耗数据包路由
二维隐蔽时间信道构建的研究*
数据通信中路由策略的匹配模式
一种用于6LoWPAN的多路径路由协议
OSPF外部路由引起的环路问题
C#串口高效可靠的接收方案设计
热拌沥青混合料生产和施工全过程能耗与排放评价
网络数据包的抓取与识别
移动基站无线传感器网络优化研究