时间:2024-05-22
吴名星,康松林,陶志勇,谢英辉
(1.长沙民政职业技术学院软件学院,长沙 410004;2.中南大学信息科学与工程学院,长沙 410083)
近期,水下传感网络USNs(Underwater Sensor Networks)被广泛应用于潜艇跟踪、港口监控等水面应用[1-2]。USNs由部署于水下的传感节点和飘浮于水面的声纳浮标组成。传感节点感测水下环境数据,然后以声信号传输至水面上的浮标。收集感测数据后,浮标再以无线方式传输至控制中心。USNs典型的拓扑结构如图1所示。
水介质对无线信号有强的吸收性,无线信号在水域通信环境衰减快[3]。而光纤通信在水域环境具有严重散射。因此,光纤和无线射频通信并不适合水下节点间的通信。而声通信被认为是水下节点间通信的最有效方式。然而,声通信也存在带宽有限、动态传输时延、高通信能耗等不足。
图1 USNs的典型结构
由于声通信的特性,基于无线网络[4]设计的传统先应式和反应式路由协议在声通信环境下的性能差,比如时延大,丢包率高。相比于其他路由协议,机会路由OR(Opportunistic Routing)被认为是提高链路可靠性和数据包传递率的有效技术之一[5-6]。OR协议通过多跳完成数据的传递。具体而言,依据一些标准,如期望传输次数、数据包优先权、时延等,发送节点将它的邻居节点中一部分节点作为下一跳转发节点,将这些预备作为下一跳转发节点称为下一跳转发候选节点NFCNs(Next-hop Forwarding Candidate Nodes)。随后,依据不同的传输特性,对NFCNs进行转发优先排序。只有当高优先权的节点都传输失败后,低优先权的节点才能转发数据包。如果高优先权节点的传输成功,低优先权的节点也转发数据包,就增加了数据包的冗余量,浪费了网络,也加大节点能耗。
通过选择一部分节点作为NFCNs,OR协议降低了数据包丢失率和数据包重传次数。原因在于:一旦数据包丢失,只有所有的NFCNs节点都没有接收到数据包,再进行重传,进而减少了重传次数,降低了能耗。因此,OR协议在能量有限的USNs网络得到广泛应用。
OR协议采用机会策略选择下一跳转发节点,若传输失败,通常采用携带转发策略,而不是盲目的重传。因此,OR协议降低重传次数,减少了能耗,但是它并没有着重强调传感节点的能量消耗问题。事实上,目前多数基于USNs的OR协议缺少一个机制:对NFCNs内的节点的转发优先权进行轮换的机制。若不进行轮换,会导致转发优先权高的节点经常在转发数据包,这就使得这些节点的能量容易过早耗尽[7]。因此,必须引用轮换机制,即实时计算节点的转发优先级,并进行更新,平衡NFCNs内的节点转发负担,进而平衡节点间的能耗。
为此,提出基于轮换转发优先级的机会路由RFP-OR(Rotating Forwarding Priority-based OR)。RFP-OR路由先构建候选转发节点,再利用数据包传递率、能耗和水压值估计节点的适度值,并设置各节点的转发优先级。同时,通过更新节点适度值,从而实现对节点转发优先级的轮换。仿真数据表明,提出的RFP-OR协议能够有效地降低能耗,增加活动节点数。
引用图1所示的网络结构,整个网络的节点集为N,每个节点的通信半径为rc,其中传感节点集表示为Nn={n1,n2,…,n|Nn|}、声纳浮标集表示为Ns={s1,s2,…,s|Ns|},即N=Nn∪Ns。传感节点实时地感测水域数据,然后周期地将感测数据传输至浮标。而浮标再通过无线通信方式将数据传输至控制中心。
本文引用Urick声信道模型[8]估计两通信节点间的链路可靠性,并利用数据包传递率表征链路可靠性,具体过程如下。
依据此模型,在相距为d,传输频率为f的路径衰落A(d,f):
A(d,f)=dka(f)
(1)
式中:k为扩频因子。在实际场景中,一般k=1.5。而a(f)为吸收因子,其定义如式(2)所示[9]:
(2)
接下来,估计在距离d的传输信道上的平均信噪比SNR(Signal-to-Noise Ratio):
(3)
式中:Eb表示每比特的平均传输能量。N0为加性高斯噪声信道的噪声功率密度。依据文献[10-11],引用Rayleigh衰落表征尺度衰落,SNR服从式(4)的概率分布:
(4)
因此,产生误码的概率可表示为:
(5)
式中:pe(X)表示在信噪比X下的误码率的概率。引用BPSK调制模式。在BPSK中,每个符号携带一比特。依据文献[12],当传输距离为d时,产生一个比特误码的概率pe(d)为:
(6)
最后,传输m比特的数据包的传递概率p(d,m)定义如式(7)所示,其中d表示传输距离、m为比特数。
p(d,m)=[1-pe(d)]m
(7)
RFP-OR路由通过轮换下一跳转发候选节点NFCNs内的转发优先权,平衡节点间的能耗。与其他OR协议类似,RFP-OR路由主要由NFCNs的构建、选择下一跳转发节点和数据包的传输三个阶段构成。
RFP-OR路由考虑数据包传递率、剩余能量和水压差值三方面信息,构建NFCNs。
2.1.1 周期的beacon包
为了收集传感节点的相关信息,传感节点周期地传播beacon包,其包含发送节点的ID,节点的剩余能量和水下深度(水压)。当收到邻居节点的beacon包,节点就利用接收信号强度指标RSSI(Received Signal Strength Indicator)或到达时间ToA(Time of Arrial)技术估计离邻居节点距离[13]。距离估计不是本文讨论的范围,在此就不再累述。同时,每个节点通过接收邻居节点的beacon包更新自己邻居表。
2.1.2 准候选节点集
假定传感节点ni有数据包需要传输,而Ni为节点ni的邻居节点集。节点ni需要从Ni中选择一个节点作为下一跳转发节点。为此,节点ni首先计算Ni中每个节点的适度值Fit,然后选择最合适的邻居节点作为下一跳转发节点。
由于浮标是浮在水面,传感节点总是将数据传输至浮标。因此,传感节点总是选择离浮标近的节点作为下一跳转发节点[14]。为此,从Ni中进一步选择离浮标更近的节点,构建准候选节点集Ψi。假定节点j∈Ni,它的水压值为depth(j)。相应地,depth(i)为节点ni的水压值,如图2所示。
水压值越大,表明离水域距离越远。节点ni与节点j∈Ni的水压差值Pj:
Pj=depth(i)-depth(j)
(8)
只有Pj>0,节点j就加入Ψi集。即Ψi←Ψi∪{j}。构建了候选节点集后,再计算Ψi内每个节点的适度值。节点j∈Ψi的适度值为Fitj,其定义如式(9)所示:
(9)
然后,将Ψi内的节点以适度值进行降序排序。适度值越高,转发优先级越高。假定节点j的优先级为ρj。且ρ值越小,优先级越高。即当ρ=1时,它的转发优先级最高。
2.1.3 候选节点集
(10)
算法1:构建候选节点集
一旦构成了ψi后,当前节点(传感节点ni)就广播数据包Data,其在数据包首部嵌入节点的ID号和Dmax,其中Dmax表示节点ni离ψi内所有节点的最大距离。
一旦收到数据包,ψi内的节点就要设置定时器。即通过定时器竞争产生数据包的转发节点。节点的定时器定时时间与它的优先级反比。优先级越高,定时时间就越短。通过这种方式,优先级最高的节点能够最先获取转发数据包的转发权。一旦定时完毕,且在定时过程中,未监听到其他节点转发数据包Data,就立即转发Data,即成为下一跳的数据包转发节点。反之,当监听到其他转发了数据包,说明数据包传输成功,则放弃转发数据包,从而降低数据包冗余。
对于优先级为ρ的节点,它的定时时间为Th(ρ),其定义如式(11)所示:
(11)
式中:ϑ表示在水中的声传播速度,约为1 500 m/s。
图3 RFP-OR协议数据包转发流程图
若节点ni需要传输数据包,就先形成准候选节点集,然后再计算准候选节点集内各节点的适度值,并进行排序。再利用数据包传递率确定候选转发节点集。随后,节点ni就向候选转发节点集传输数据包Data。收到Data的节点就依据式(11)设置定时器,进入竞争转发数据包的阶段。若在定时完毕前,已监听到其他节点转发Data,就放弃竞争。若没有,则定时完毕后,就立即转发数据包Data。整个过程如图3所示。
利用Aqua-Sim V.1.0[15]软件分析RFP-OR协议性能。Aqua-Sim V.1.0软件是基于NS-2.30软件的水下传感网络仿真器。同时,考虑1 000 m×1 000 m×1 000 m水下监测区域,并将1 000 m×1 000 m×1 000 m划分四个子区域,每个子区域内随机部署16个浮标。之所以划分子区域,是为部署浮标,使得浮标能够近似于平均分布。
此外,考虑两类场景:(1)|Nn|=150;(2)|Nn|=350。这两类场景的区别在于监测区域内节点数的不同。场景一,传感节点数少,而场景二,传感节点数多。同时,引用多载波监听接入CSMA(Carrier-sense Multiple Access)的媒介接入控制协议MAC(Medium Access Control)接入信道。具体的仿真参数如表1所示[4,16]。
表1 仿真参数
为了更好地分析RFP-OR协议性能,选择文献[4]提出的基于水压路由DBR(Depth-Based Routing)和文献[15]提出的空洞感知的压力路由VAPR(Void-Aware Pressure Routing)作为参照,并分析它们能耗性能、数据包传递率和平均传输次数,其中用活动节点数率反映能耗性能。活动节点数率等于剩余能量不为零的节点数与总的节点数的之比。活动节点数越多,能耗越低,性能越好。
图4 活动节点数
3.1.1 活动节点数
首先分析活动节点数性能,如图4所示,其中图4(a)、4(b)分别表示场景一、场景二环境下的各协议的活动节点数。图4显示了各协议的活动节点数。活动节点数反映了节点的能耗速度。活动节点数越多,说明网络的能耗速度越慢,路由能效性能越好。从图4可知,提出的RFP-OR协议的活动节点数高于DBR和VAPR协议。并且随着仿真时间的增长,RFP-OR协议在活动节点数方面上的优势更加突显。原因在于:RFP-OR协议轮换节点的转发优先级,并利用节点的剩余能量、水压值和链路质量信息估计节点的适度值,进而选择优先级最高的节点转发数据包。而DBR协议和VAPR协议并没有轮换节点的优先级,这就导致优先级高的节点一直承担数据包的转发任务,这就加剧了这些节点的能耗速度,使它们的能量消耗殆尽,成为失效节点,降低了活动节点数。
此外,对比图4(a)和图4(b)不难发现,场景二的活动节点数下降得更快,并且场景一与场景二唯一不同的是节点数,而通信半径是相同的。这也说明节点密度大的环境加大了节点能耗。原因在于:在路由决策过程,三个协议均引用了广播机制,每个节点都需要广播数据包,同时,节点数越多,路由拥塞的概率也越大,这些原因都加剧了网络能耗。
3.1.2 数据包传递率
图5显示了在两个场景下的数据包传递率,其中图5(a)显示了场景一、场景二环境下的各协议的数据包传递率。从图5可知,数据包传递率随时间增长而下降。原因在于:时间越长,活动节点数越少,这就降低了数据包传输的流畅性,导致更低的数据包传递率。与VAPR和DBR协议相比,RFP-OR协议的数据包传递率得到有效地提高,特别是在场景二(高密度)环境。例如,在场景二环境中,当时间进行到约28 h,RFP-OR协议的的数据包传递率达到0.95,而DBR和VAPR协议的数据包传递率分别为0.05、0.10。
图5 数据包传递率
图6 传输时延
3.1.3 数据传输的平均时延
最后,分析数据包传输时延,如图6所示,其中图6(a)、6(b)分别表示场景一、场景二环境下的各协议的数据传输的平均时延。从图6可知,相比于DBR协议,提出的RFP-OR协议的传输时延得到有效控制。但是,RFP-OR协议的传输时延性能并不优于VAPR。原因在于:RFP-OR协议旨于通过轮换节点转发优先级,降低能耗,并没有从传输时延的角度去设计路由协议,这将是后期的工作方向。
此外,对比场景一和场景二不难发现,场景二环境下的数据传输时延较大。这主要因为:节点数越多,节点竞争传输越激烈,路由拥塞概率也就越大,另外,节点数越多,需要消耗更多的时间计算节点的优先级(处理时延)。
针对USNs的数据传输问题,提出基于轮换转发优先级的机会路由RFP-OR。RFP-OR路由评估节点的转发优先级,并采用轮换机制,进而平衡节点间的能耗。利用节点的剩余能量、链路质量和水压值估计节点适度值,并由适度值设置节点转发的优先级。同时,引用定时器机制产生下一跳转发节点。仿真数据表明,相比于VAPR和DBR协议,提出的RFP-OR协议能够有效地平衡能耗,增加了活动节点数,进而提高了数据包传递率。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!