丁钰莹,郝 琨,李 成
天津城建大学计算机与信息工程学院,天津 300384
目前,水下传感器网络(underwater sensor networks,UWSN)[1-3]在海洋管理、资源保护、灾害监测和海洋军事活动等领域中颇受关注[4-5]。与陆地传感器网络一样,路由协议是UWSN的研究热点之一,其目的是在水域中建立一条从源节点到水面浮标的数据传输路径。由于水域环境的特殊性,UWSN采用水声通信。然而,水声信道具有带宽窄、比特误码率高和传输速率低等特点[6-7],这使得UWSN实现数据传输将面临更多困难与挑战。同时,水下节点的电池能量受限[8],且节点电池不易更换,为了避免节点因电池耗尽而失效,UWSN需优化节点能耗来提高网络传输性能。因此,设计一种高效可靠的路由协议对于推动UWSN的发展具有重要意义[9]。
现有的UWSN路由协议可分为基于单跳和多跳传输的路由方法。单跳传输主要是以自主水下航行器(autonomous underwater vehicle,AUV)辅助[10-12]的路由协议,定期充电的AUV自由航行在水下区域,当AUV移动到距离某一节点较近时,节点将监测区域采集到的数据发送给AUV,AUV再将数据传输到水面浮标,从而降低网络能耗,延长网络寿命。多跳传输主要以地理路由和机会路由[13-14]为代表,其优点是声速比AUV的运动速度快,总传输时延比AUV短。但多跳传输存在能量消耗不平衡的问题,距离水面浮标较近的节点耗能较快,容易导致网络出现路由空洞[15]。
近年来,专家学者针对UWSN路由协议进行了大量研究。基于多跳传输的路由方法中,简单、易扩展的地理路由[16-17]是UWSN最有效的路由协议之一。与主动和被动路由相比,地理路由无需建立或维护完整的路由,且无需发送路由消息。数据传输时,节点将数据包转发到距离水面浮标最近的最优下一跳节点。文献[18]提出基于向量的转发协议(vector-based forwarding protocol,VBF),VBF定义了源节点到目的节点的路由向量,节点根据转发矢量的距离决策是否转发数据包。节点通过预设的虚“路由管”传输数据包,避免数据冗余转发,提高网络能源效率。在低密度场景下,虚“路由管”中可能不存在合适的下一跳节点,导致网络出现路由空洞,从而增加了网络时延和能量消耗。文献[19]提出基于深度的路由协议(depth-based routing protocol,DBR),节点利用压力传感器获得自身深度,通过深度差进行路由调度。DBR在密集网络中性能良好,但在稀疏网络中可能出现多个节点转发同一个数据包,或当前节点找不到下一跳的现象,造成数据冗余发送和传输延迟。
机会路由中[20-22],数据包被广播到由部分邻居节点组成的候选集中,候选集内节点进行传输优先级的排序,当较高优先级节点未能成功转发数据包时,正确接收数据包的优先级较低节点才转发数据包,通过节点的机会转发,提高了数据传输性能。文献[23]提出基于层级的水下传感器网络自适应地理路由协议(level-based adaptive geo-routing protocol for underwater sensor network,LB-AGR),节点采用不同路由决策,根据候选节点的复合转发因子确定最佳路由,将上行路由单播传送,以减少节点碰撞和能量消耗。发送节点因未收到确认包(acknowledgement,ACK)而多次发送最后一帧,导致节点层级无穷增加,Sink节点因无法广播和接收数据包,导致网络出现状态死锁。文献[24]提出路由空洞感知协议(voidaware pressure routing protocol,VAPR),利用节点的深度决策路由,节点通过周期性信标建立通往Sink节点的有向路径,通过贪婪转发数据包,导致网络出现路由空洞。为了解决路由空洞,节点需要周期性地维护和更新有向路径,使网络能量快速消耗。
基于单跳的路由方法中,文献[25]提出AUV辅助的路由协议(AUV-aided underwater routing protocol,AURP),AURP通过使用AUV作为中继节点来实现高传输率和低能量消耗,数据按分层信息传输到汇聚节点,再由AUV高速率近距离收集数据,并将数据运送到水面浮标。该协议考虑了AUV收集路径对网络性能的影响,但对动态拓扑适应性不强,没有充分发挥AUV的能动性。文献[26]提出贪婪和自适应AUV寻路协议(greedy and adaptive AUV path-finding,GAAP),AUV根据反映水下事件重要性与时效性的数据信息值(value of information,VOI)的大小从节点收集数据,节点通过光通信将数据传输到AUV,AUV通过水声通信进行数据传输。另外,GAAP定义了一个整数线性规划公式,该公式可以精确地对所考虑的场景进行建模,从而得出一条最优路径。但光通信仅达到每秒几兆比特,传输范围非常有限。
基于以上分析,本文结合地理路由和机会路由设计高效的地理-机会混合型路由协议,提高数据传输性能;设计间距不等的分层网络,降低网络时延,节省网络能耗;考虑到普通节点的电池充电难度大和费用高等特点,采用能量不受限制的AUV与节点及水面浮标协调运作,从而提高网络吞吐量。
因此,本文提出AUV辅助的水下地理机会路由协议(geographic and opportunistic hybrid routing protocol for UWSN based on AUV,GOHRP)。GOHRP主要包括初始阶段和路由阶段:(1)初始阶段,为了简化网络模型,均衡网络能耗,GOHRP基于普通节点的深度将UWSN划分为间距不等的分层网络。普通节点根据剩余能量、邻居密度和数据包传输率选择每层的代理节点,且每轮通信开始时重新确定代理节点,以避免代理节点在一定通信时间后过早死亡,从而降低网络能耗,延长网络寿命。(2)路由阶段,普通节点通过机会路由策略,基于与邻居节点的距离和剩余能量选择下一跳节点,下一跳节点将普通节点采集到的数据和VOI转发给代理节点。AUV采用基于收益函数的动态路由策略,在避免远距离访问代理节点的同时,优先选择发送VOI值最大的代理节点作为当前访问目标,并将代理节点上的数据传输到水面浮标。仿真结果表明,GOHRP在保证高效稳定的数据传输率的同时,降低了网络能耗,延长了网络寿命。
假设网络模型中部署了N个普通节点和S个水面浮标监测UWSN,普通节点处于不同分层结构中,通过多跳声通信将周围事件的数据和VOI发送给代理节点,AUV通过动态访问代理节点,将收集到的数据传输到水面浮标,水面浮标通过无线链路或卫星将数据传输到监测中心进行数据分析。网络模型如图1所示。
Fig.1 Network model图1 网络模型
(1)一轮数据收集:指数据从普通节点传输到水面浮标的过程,该过程包括初始阶段和路由阶段。
(2)普通节点:部署在海洋底部,负责监测水下数据,id唯一,位置已知,受弱电池能量约束。
(3)代理节点:每层选择一个普通节点作为代理节点,代理节点的选择由普通节点的剩余能量、邻居密度和数据包传输率组成的权重大小决定,权重最大的普通节点当选为该层的代理节点。代理节点的选择主要取决于剩余能量,每轮重新选择代理节点,代理节点接收并保存普通节点发送的数据和VOI。
(4)AUV:AUV作为汇聚节点,具有自主移动性,负责将数据从代理节点传输到水面浮标。高效灵活的AUV携带多个传感器和水声通信模块,可较好地扩展UWSN的活动监测范围,有效提高网络通信效率。随着AUV的移动,远距离传输被短距离传输所取代,使数据传输性能显著提升。
(5)水面浮标:部署在水面作为目的节点,负责水下和陆上通信。
(6)不等层网络结构:GOHRP采用动态分层的方式,根据普通节点的深度将网络划分为间距不等的分层结构,从而使普通节点沿着分层的阶梯方向朝水面浮标传输数据。
假设水下监测区域依据普通节点的深度将UWSN划分为L层,一组E事件E1,E2,…,E|E|发生在L层水域内,其中|E|为事件数,若普通节点i在tk时刻监测到事件Ek(1 ≤k≤|E|),则通过普通节点i采集到事件Ek的数据信息值VOI为
式中,t为每轮数据收集的时间,tk,i为普通节点i采集到事件Ek的时间,βk(0 ≤βk≤1)表示重要性和时效性之间的信息权重,∈R+(正实数)和f(t-tk,i)分别表示事件Ek的重要性和时效性。f(t-tk,i)表示为的指数函数,当t=tk,i时,普通节点i采集到事件Ek的最大,接着随时间衰减,当衰减为最小值时,普通节点上的数据将被丢弃,停止数据传输;当tk,i=0时,FEk=1,f(t-tk,i)=e-t。
距离为d的任意一对节点传输m比特的数据包传输率为p(d,m),该传输率用于初始阶段代理节点的选择。
水声信道具有信道容量低、可靠性差以及可用带宽窄的特点,使得水声信道上的高速通信不仅复杂,还具有路径损耗的特点。路径损耗是指由于大规模衰落,频率为f的信号在距离d上的无阻碍衰减。GOHRP采用水声信号的衰减模型[28-29],对于频率为f的信号,距离为d的任意一对节点在水声信道中发生的路径损耗为:
式中,s为扩散因子(圆柱为1,实用为1.5,球面为2),在仿真实验中,s取1.5。吸收因子a(f)为:
距离为d的平均信噪比(signal-to-noise ratio,SNR)为:
式中,Eb和N0为常数,分别表示单位比特的平均能量消耗和噪声功率密度。
GOHRP采用二进制相移键控(binary phase shift keying,BPSK)调制模式[30],在BPSK中,每个符号携带1 bit。距离为d的任意一对节点的误比特概率为:
因此,距离为d的任意一对节点传输m比特的数据包传输率p(d,m)为:
4.1.1 不等层网络
为了简化网络模型,均衡网络能耗,GOHRP基于普通节点的深度将UWSN划分为间距不等的分层结构。不等层结构如图2所示。
Fig.2 Unequal layer structure图2 不等层结构
设Di为普通节点i的深度,GOHRP根据节点深度将UWSN由上到下化分为L层,第l层的间距记为rl(l=1,2,…,L),第一层普通节点i满足Di<r1,rl+1满足rl+1=rl+Δr(其中Δr为常数),普通节点i通过向上取整函数计算其所在的层级Li:
式中,Rc为普通节点的通信半径。
相比于等层网络,不等层网络结构的层间距由上到下逐渐增大,网络层级数目减少,使普通节点到水面浮标的传输跳数减少,降低了网络传输时延;避免了靠近水面浮标的节点因承担过多的转发任务而快速消耗能量,进而导致其过早死亡的问题,有利于延长网络生命周期;每轮通过在同一层选择不同的代理节点,均衡了层内节点的网络能耗,有效解决能耗热区问题。因此,不等层网络结构优化了网络性能,其路由效果更佳。
4.1.2 代理节点选择
普通节点根据自身深度估计所在层级后,GOHRP基于普通节点的剩余能量、邻居密度和数据包传输率动态选择每层的代理节点,代理节点负责从普通节点收集数据并传输到AUV。为了避免代理节点在一定通信时间后过早死亡,GOHRP将在下一轮通信开始时重新选择代理节点,通过选择高效可靠的代理节点,从而降低网络能耗,延长网络寿命。
第l层普通节点i的权重大小A(l,i)为:
式中,α1+α2+α3=1,α1,α2,α3∈[0,1],α1、α2、α3分别为能量因子、密度因子和传输因子,仿真中取α1=0.5,α2=0.2,α3=0.3,Eres(l,i) 和Einit(l,i) 分别是第l层普通节点i的剩余能量和初始能量,N(l,i)是第l层节点i的邻居节点数目,N(l)是第l层普通节点总数,pi(d,m)是节点i的数据包传输率,是第l层普通节点的平均剩余能量。
由于普通节点是随机分布的,为了节省能量,降低时延,每层选择代理节点时,若普通节点i的剩余能量Eres(l,i)小于该层平均剩余能量,则普通节点i停止参与代理节点的选择。因此,GOHRP选择权重最大的普通节点作为该层代理节点。
4.2.1 机会路由策略
普通节点向每层代理节点发送数据和VOI时,采用机会路由策略决策下一跳节点。若普通节点i的邻居节点u满足d(u,j)<d(i,j),则第l层节点i将节点u的信息保存在如下邻居节点信息表中。
其中,uid为邻居节点u的序列号;Eres(l,u)为第l层邻居节点u的剩余能量;d(u,j)为邻居节点u与代理节点j的距离;d(i,j)为普通节点i与代理节点j的距离。
基于与邻居节点的距离与剩余能量,普通节点的机会路由选择函数L(i,u)为:
式中,ε∈[0,1]为剩余能量和距离的信息权重,仿真中取ε=0.6。Einit(u)和Eres(u)分别为邻居节点u的初始能量和剩余能量。普通节点i选择Eres(u)最大和d(u,j)最小的邻居节点,即L(i,u)值最小的邻居节点作为下一跳节点,下一跳节点将数据和VOI转发到该层代理节点。
4.2.2 AUV动态路由策略
普通节点通过机会路由策略将采集到的数据和VOI转发给代理节点后,每个代理节点通过单跳声通信向AUV广播消息数据包,该包包括代理节点的位置坐标和其接收的VOI。其中,代理节点的通信范围是AUV在固定传输功率下的最大可达距离。假设代理节点的通信范围已知,AUV接收到消息包后,通过动态路由策略访问代理节点,并定期浮出水面,将收集到的数据传输到水面浮标。
根据式(1),任意普通节点i发送给代理节点的VOI为Ci(t)。
式中,普通节点i∈{1,2,…,N},事件数k∈{1,2,…,|E|},xk,i表示普通节点i与事件Ek的二元变量,若普通节点i采集到事件Ek,则取1;否则为0。表示普通节点i在tk时刻采集到事件Ek的VOI。
由式(10)得,各代理节点j接收到的VOI为RCj(t):
式中,代理节点j∈[]1,2,…,L,yj,i表示代理节点j与VOI的二元变量,若代理节点j接收到普通节点i发送的VOI,则为1;否则为0。
每个代理节点通过广播消息包向AUV发送VOI,AUV接收到各层代理节点发送的VOI为RCAUV(t):
式中,j∈{}1,2,…,L,zAUV,j表示AUV与消息包的二元变量,若AUV接收到代理节点j的消息包,则为1;否则为0。RCj(t)为代理节点j接收到的VOI。
GOHRP定义AUV的收益函数RF(t)为:
式中,距离d(t)={d1(t),d2(t),…,dL(t)},j∈{1,2,…,L},dj(t)∈R+(正实数)为AUV到代理节点j的距离,γ∈R+为常量。
AUV接收到VOI后,选择使其收益函数RF(t)最大的代理节点作为当前访问目标,RF(t)越大,访问优先级越高。即,在访问时间段t[0,T]内,AUV收集数据时需避免距离AUV较远的代理节点,并且根据VOI的大小优先访问发送VOI值最大的代理节点,再依次访问其他代理节点。
另外,为避免重复访问,AUV访问完当前代理节点后,将其数据值重置为零。而AUV垂直移动的时间对于收集下一个代理节点上的数据至关重要,则AUV更新的数据收集时间TU为:
式中,T为AUV的最大访问时间;DAUV为AUV的深度;Vver为AUV的垂直移动速度。
AUV根据各个代理节点的VOI值大小,以及代理节点与AUV的距离,实现其动态选择过程。AUV动态路由策略的具体过程由算法1所示。
算法1AUV动态路由策略
假设AUV接收到各代理节点的VOI值为RC1(t)=0,RC2(t)=0.5+0.001t,RC3(t)=0.66,RC4(t)=2,其中t=[0,2 000]。由于代理节点1的VOI值为0,AUV无需访问此代理节点。如图3所示,AUV通过分析VOI的大小,以及各代理节点与AUV的距离计算其收益函数的大小,从而确定依次访问的代理节点。因此,AUV的动态路径轨迹为2 →4 →3。
Fig.3 Dynamic path trajectory of AUV图3 AUV动态路径轨迹
GOHRP采用NS-3仿真模拟器,实现GOHRP的性能验证,并与VBF和LB-AGR在平均端到端时延、数据包传输率、网络能耗、网络寿命和网络吞吐量等性能参数上进行对比分析。NS-3中包含水声通信网络模块(underwater acoustic network,UAN),UAN通过水声信道接口、声学调制解调器、通信性能模块接口和MAC协议接口,模拟水下网络通信[31-32]。主要实验参数如表1所示。
图4为VBF、LB-AGR和GOHRP的平均端到端时延随节点个数增加的变化曲线。结果表明,随着节点数目的增加,平均端到端时延逐渐降低。其中,LB-AGR的时延小于VBF,因为VBF在稀疏网络中虚“路由管”内可能找不到合适的下一跳节点,导致网络出现路由空洞,使网络时延较高。LB-AGR采用抑制时间的转发机制,明显降低了端到端时延。相比于VBF和LB-AGR,GOHRP的平均端到端时延分别降低了0.20和0.08。这是因为GOHRP通过设计间距不等的分层网络,使网络层级数目减少,普通节点到水面浮标的传输跳数减少,降低了端到端网络时延;每层选择代理节点时,只有当普通节点的剩余能量大于该层平均剩余能量,才可入选代理节点,以节省能量,降低时延;在机会路由策略中普通节点的机会转发避免了数据包的循环传输,从而降低网络时延;AUV访问完代理节点后,将该代理节点上的数据重置为零,以避免重复访问。
Table 1 Experimental parameter list表1 实验参数列表
Fig.4 Average end-to-end delay图4 平均端到端时延
图5为VBF、LB-AGR和GOHRP的数据包传输率随节点个数增加的变化曲线。数据包传输率表示水面浮标成功接收的数据包数量与源节点发送的数据包数量的比率。结果表明,随着节点数目的增加,三种协议的数据包传输率随之增加。原因在于VBF定义了源节点到目的节点的路由向量,节点通过预设的虚“路由管”传输数据包,避免数据冗余转发,提高数据传输效率。LB-AGR中节点采用分层路由决策,根据候选节点的复合转发因子确定最佳路由,将上行路由单播传送;在机会路由策略中,依据普通节点与邻居节点的距离和剩余能量选择最优的下一跳转发节点,提高了数据传输性能。
Fig.5 Packet transmission rate图5 数据包传输率
图6为VBF、LB-AGR和GOHRP的平均能量消耗随节点个数增加的变化曲线。结果表明,当节点个数增加时,三种协议的平均能量消耗逐渐降低。其中,VBF的平均能量消耗最高,GOHRP最低。因为VBF在虚“路由管”传输数据包时,避免数据冗余转发,但路由空洞的出现,导致网络能耗较高。LBAGR中节点因多次发送最后一帧,使节点层级增加无穷大。由于靠近水面浮标的节点需要转发大量来自其他节点的数据而负担过重,过早耗尽自身能量而失效,造成网络“热区”问题,降低网络生命周期。GOHRP通过设计一种层间距由上到下逐渐增大的网络结构,使靠近水面浮标的层间距小于远离水面浮标的层间距。因此,靠近水面浮标的代理节点可以为层内的数据转发节省能量,从而优化了网络中各节点的能量消耗。
Fig.6 Average energy consumption varies with nodes图6 平均能量消耗随节点变化
图7为VBF、LB-AGR和GOHRP的平均能量消耗随仿真时间增加的变化曲线。结果表明,随着仿真时间的增加,三种协议的平均能量消耗逐渐增加。其中,GOHRP的平均能量消耗最低,且有稳定的上升趋势。相比于VBF和LB-AGR,GOHRP的平均能量消耗分别降低了0.38和0.19。这是由于GOHRP中不等层的网络结构减少了数据从源节点到水面浮标的传输跳数,使节点能耗较低,且每层代理节点的周期性选择均衡了网络能量消耗;转发过程中数据定向传输,数据传输到代理节点后,AUV通过动态路由策略将数据传输到水面浮标,使能耗的增加速率较其他协议明显降低。
Fig.7 Average energy consumption varies with time图7 平均能量消耗随时间变化
如图8所示,通过运行25轮仿真,实现了GOHRP在每一轮网络中所有节点之间所消耗能量的方差。结果显示,GOHRP在每一轮网络中,各个节点之间所消耗能量的方差较小,并且轮与轮之间曲线的波动较小,这说明GOHRP能够较好地均衡网络中所有节点之间的能量消耗。这是因为GOHRP在设计上考虑了各个节点之间的负载差异,并且为了避免代理节点在一定通信时间后过早死亡,GOHRP将在下一轮通信开始时重新选择代理节点,通过选择高效可靠的代理节点,使层内节点间能耗的不均衡问题从根本上解决。
Fig.8 Energy consumption variance of GOHRP图8 GOHRP能耗方差
图9为VBF、LB-AGR和GOHRP的节点存活率随仿真时间增加的变化曲线。随着仿真时间的增加,节点存活率逐渐降低。其中,VBF的节点存活率低于GOHRP和LB-AGR,原因是VBF中传输功率的增加导致部分节点能耗过高,使节点死亡率上升,存活率降低。当仿真时间为1 000 s时,VBF的节点存活率低于0.8,LB-AGR的节点存活率低于0.9,而GOHRP的节点存活率大于0.9;当仿真时间从1 500 s增加到2 000 s时,LB-AGR的节点存活率从0.74降低到0.33,其原因是LB-AGR中Sink节点因无法广播和接收数据包,导致网络出现状态死锁,使节点存活率较低。GOHRP的节点存活率最高,其原因是GOHRP为了避免代理节点在一定通信时间后过早死亡,普通节点将在下一轮通信开始时重新选择高效可靠的代理节点,并且普通节点在选择代理节点和下一跳转发节点时考虑了其剩余能量,从而延长了网络寿命。与VBF和LB-AGR相比,GOHRP的节点存活率分别提高了0.43和0.21。
Fig.9 Node survival rate图9 节点存活率
图10为VBF、LB-AGR和GOHRP的网络吞吐量随节点个数增加的变化曲线。网络吞吐量是AUV在网络运行期间发送给水面浮标的总字节数。结果表明,随着节点数目的增加,三种协议的网络吞吐量也随之增加,其中GOHRP的网络吞吐量高于VBF和LB-AGR。因为GOHRP中AUV通过动态路由策略优先访问使其收益函数最大的代理节点,并将收集到的数据传输到水面浮标,提高了网络吞吐量。
Fig.10 Network throughput图10 网络吞吐量
实验结果表明,本文提出的GOHRP协议具有以下优点:(1)通过设计层间距由上到下逐渐增大的不等层结构,使网络传输时延明显降低;(2)每轮依据普通节点的权重大小选择每层的代理节点,有效均衡了网络能耗;(3)普通节点采用机会路由策略决策传输数据到代理节点的下一跳转发节点,提高了数据包传输率;(4)剩余能量作为选择下一跳转发节点和每层代理节点的决定性因素,使节点的存活率得以提高,从而延长了网络寿命;(5)AUV根据其收益函数的大小依次访问各个代理节点,并将采集到的数据直接传输到水面浮标,使网络吞吐量显著提升。
本文主要研究了如何在复杂的UWSN中实现高效可靠的路由协议,提出AUV辅助的水下地理机会路由协议GOHRP。GOHRP设计了间距不等的分层网络,从而简化了网络模型,均衡了网络能耗;每层的普通节点通过自身权重大小动态选择代理节点,有效解决了能耗热区问题。利用优化后的网络拓扑结构,普通节点通过机会路由策略将采集到的数据和VOI转发给代理节点,提高了数据传输性能;AUV通过动态路由策略,根据其收益函数的大小,依次访问各层的代理节点,并将代理节点上的数据传输到水面浮标。仿真结果表明,GOHRP在网络能耗、数据传输率、网络时延、网络吞吐量和网络寿命方面均优于VBF和LB-AGR。
在未来的工作中,将结合水域环境的链路特性,进一步研究UWSN的其他重要特性。包括如何深入优化网络结构以提高UWSN通信质量,如何解决转发过程中出现的失效节点问题。