基于深度路由的水下传感器网络(翻译、整理)
背景与意义
无线传感器网络引起了研究人员的广泛关注,并在该领域取得了很大进展。
起初,这些网络仅涵盖地面的实用程序。但后来,由于在地球被 70% 水覆盖,所以大家开始研究传感器网络的水下应用,也就是我们的水下无线传感器网络(UWSNs)。
路由协议在网络模型中扮演着重要的角色。主要问题是在源和目标之间找到一条有效的路由,以便以较低的能耗向目标发送更多的数据包。
由于水下网络具有一些独特的特性,现有瓶颈:
- 水声通信代替无线电。但是水声具有低带宽和长距离传播延迟的特点。不适合端到端有长延迟或高宽带要求的网络。
- 网络节点随水流移动,网络的动态拓扑结构具有动态性。
- 水下传感器节点由电池供电,但电池难以充电或更换。
为UWSNs设计的路由协议应该考虑所有这些因素:长传播延迟、低通信带宽、动态拓扑和能量效率
一些路由协议已经被提出来解决这些问题,,如VBF和HH VBF。都属于基于地理的路由协议,需要通过定位来得到所有传感器节点的全维位置信息。它们因为UWSNs中的本地化是另一个有待解决的具有挑战性的研究问题,所以不能满足这些要求。
本文提出一种基于深度的路由协议,不需要节点的位置信息,只需要通过在每个水下传感器节点上安装一个深度传感器得到局部的深度信息。
DBR的主要优点如下:
- 不需要全维度位置信息。
- 能处理动态网络,具有良好的能源效率。
- 它利用了多接收器的网络架构,而不引入额外成本。
我们进行了广泛的模拟,结果表明,对于密集网络,DBR可以在通信成本很低的情况下实现每一个高的数据交付率(至少95%)。
研究现状
几种现有的用于无线传感器网络和水下传感器网络的路由协议,它们大致分为两类:
针对陆基传感器网络提出了许多路由协议,然而这些协议大多是针对静态或低动态网络提出的。
显然,在具有动态拓扑的UWSNs中直接应用这些针对静态传感器网络提出的路由协议需要频繁更新路由信息,这会导致显著的通信开销、低能量效率和端到端长延迟。
基于地理位置的路由协议利用传感器节点的位置信息将数据包从源节点转发到目标节点,如VBF。
VBF在水下传感器网络中工作良好。但是,它假设每个传感器节点的位置信息都可以通过定位服务获得,这是UWSNs的另一个难点。
我们提出的DBR和基于地理的路由协议之间的主要区别在于DBR不需要全维位置信息。相反,在分组转发中只需要每个节点的深度信息。
DBR介绍
网络结构
DBR可以自然地利用多接收器水下传感器网络架构。这种网络的一个示例如图1所示。
在该网络中,同时配备了射频(RF)和声学调制解调器的多个接收器,部署在水面上。
带声调制解调器的水下传感器节点分布在3D区域,每个节点都可能是个数据源。它们可以收集数据,也可以悟转发数据。
由于所有的接收器都有射频调制解调器,所以它们可以通过无线电信道有效地通信。
因此,数据包到达任何接收器,它可以有效地传递到其他接收器或远程数据中心。
为了更加集中,我们在本义巾不考虑表面汇之间的通信。相反,我们假设贝要成功地将包传递到其巾一个接收器,它就到达了目的地。
本文假设每个水下节点都知道其深度信息,即从自身到水面的垂直距离。因为,深度传感器可以很容易地获得深度信息。相比之下,获取全维位置信息的难度要大得多。
协议概述
DBR是一种贪婪算法,它试图将数据包从源节点传递到目的节点。
在此过程中,当数据包接近目的地时,转发节点的深度会减小。如果我们在路由的每一步中减少转发节点的深度,则可以将数据包传递到水面。
在DBR中,传感器节点根据自己的深度和前一个发送方的深度,做出分组转发决策。这是DBR的关键思想。
当接收到数据包时,节点首先检索前一跳数据包的深度dp,然后,将接收节点自身的深度dc与dp进行比较。
如果该节点更靠近水面,即dc<dp,它将认为自己是转发数据包的合格候选者。否则,它只是简单地丢弃数据包。
转发节点的多个相邻节点都可能是在下一跳的合格候选节点,如果所有这些节点都尝试广播数据包,将导致高冲突和高能耗。因此,需要控制转发节点的数量。理想情况下,可以多次发送分组,节点只需发送一次相同的数据包。
协议设计
“发件者ID”是源节点的标识符,包的序列号是唯一序列号。数据包序列号与发送者ID一起用于区分数据包。“深度”是最近转发器的深度信息,在转发数据包时逐跳更新。
产生冗余数据包有两个主要原因。
- 转发数据包时使用了多条路径
- 节点可以多次发送数据包
为了解决上述问题,每个节点维护一个优先级队列Q1和一个历史数据包缓冲区Q2。虽然DBR中的多条路径不能完全消除,但我们使用优先级队列来减少转发节点的数量,从而控制转发路径的数量。而数据历史缓冲区保存节点发送数据包的最新历史记录,以确保一个节点在一定时间间隔内只转发同一数据包一次。
节点使用保持时间来调度分组转发。在节点处,分组的保持时间基于d计算,d是前一跳的深度与当前节点的深度差值。
不同深度的节点也将具有不同的保持时间。为了减少跳数,DBR尝试选择深度最小的相邻节点作为第一个转发数据包的节点。同时阻止其他相邻节点转发相同的数据包,以减少能耗。
例如:节点S是发送方,节点n1、n2和n3都是其单跳相邻节点。实线圆圈表示节点S的传输范围。当节点S广播一个数据包时,所有相邻节点都将接收该数据包。节点n3的深度低于S,因此它丢弃数据包。尽管节点n1和n2都是合格的转发节点,但节点n1优选转发分组。同时,阻止节点n2的转发。
基于以上分析,我们可以看到,保持时间必须满足两个条件:
- 保持时间应随d的增加而减少;
- 两个相邻节点的保持时间之间的差异应足够长。在较低节点开始其自身的分组转发之前,以便能听到深度较小的节点的转发。
以上图为例,使用d的线性函数f (d) = α · d + β表示保持时间,其中d是当前节点和前一个节点的深度差,具体的计算如下:
d1和d2分别为节点n1和n2处的深度差,假设n1在时间t1从S接收数据包,n2在时间t2接收数据包,t12是n1和n2之间的传播延迟。那么这两个条件可以用以下不等式表示:
- f(d1)<f(d2)
- t1+f(d1)+t12≤t2+f(d2)
将f(d)线性表达式带入得到:
即只要a满足上述条件,则所有条件成立。
考虑N1和N2的最差位置,取,其中τ=R/v0,R是节点的最大传输范围,v0是声音在水中的传播速度。
α的值取决于节点n1和n2的深度差,对于节点的单跳邻居,α可以在0到R之间变化,R是传感器节点的最大传输距离。当(d1−d2)→ 0,α→−∞。它表明我们不能找到一个常数α满足条件2。
相反,我们使用全局参数δ来代替(d1−d2)计算保持时间,即α=−2τ/δ. 如果d1−d2≥δ,节点n1先转发一个数据包,阻止节点n2转发。
让具有最小深度的节点保持时间为0。我们可以通过求解以下方程来计算β:
带入f(d)线性表达式,得到:
为了进一 步控制参与数据包转发的节点数量,我们引入了另一个全局参数:深度阈值dth。
只有当前一跳节点深度和当前节点深度之间的差值大于阈值Dth时,节点才会转发数据包。
d 可以是正的,0,或者负的。
如果d 设置为0时,表示深度小于当前节点的所有节点都是合格的转发候选节点。如果d 设置为-R,R为传感器节点的最大传输范围,则DBR变为泛洪协议。
显然,深度阈值表示了数据包投递率和能量消耗之间的权衡。阈值越大, 参与转发的节点就越少,消耗的能量也就越少;但是数据包投递率会降低。另一 方面,阈值越小,参与转发的节点越多,转发率越高;但能源消耗会更高。
算法伪代码:
节点在接收到数据包时,首先基于深度信息和深度阈值dth检查其是否是符合转发条件。如果不符合,它将搜索该节点数据包的优先级队列Q1,并删除具有相同数据包ID的数据包,因为另一个更好的节点已经转发了该数据包。如果节点是合格的转发器,它将在数据包的历史数据包缓冲器Q2中搜索,如果在Q2中找到该数据包,则会因为最近转发了该数据包而将其丢弃。否则,节点基于当前系统时间和保持时间计算分组的发送时间,并将分组插入优先级队列Q1。如果数据包已经在Q1中,则将发送时间更新为较早的时间。之后,Q1中排队的数据包将根据其计划的发送时间发送出去。
评估
评估DBR的性能,并将其与基于向量的转发(VBF)协议进行比较
我们使用以下指标来评估路由协议的性能。
- 数据包投递率。定义为在汇聚处成功接收到的不同数据包的数量与源节点产生的数据包总数的比值。
- 端到端的平均延迟。表示数据包从源节点到任何接收点所花费的平均时间。
- 总能耗。表示网络中所有节点在发送、 接收和空转数据包过程中消耗的总能耗。
研究算法参数和网络设置对DBR性能的影响。
参数影响
Parameter δ
参数δ决定数据包在每个节点的保持时间。
δ越大,每个节点的保持时间越短,因此端到端的平均延迟将减少;但是更多的节点将转发相同的数据包,这将导致更多的能量消耗。
δ越小,节点的保持时间越长,因此平均端到端延迟增加;但转发同一数据包的节点较少,这有助于降低能耗。
能量消耗和端到端平均延迟如何随δ的三个不同值变化:
δ=R/4时的端到端延迟约为δ=R时延迟的三倍,同时随着δ的升高,能耗确实会增加,但不会显著增加(小于5%)。所以在后面的模拟实验中选择δ=R。
深度阈值dth
深度阈值dth如何影响分组交付率和能量消耗。
当深度阈值增加时,分组交付率和总能量消耗都会减少。这是因为增加深度阈值就会减少网络中可用节点的数量。
节点移动性
为了评估节点移动性如何影响DBR的性能,我们在1m/s、5m/s和10m/s的不同固定节点速度下模拟了DBR。
分组交付率、总能量消耗和平均延迟不会随节点速度发生很大变化。
原因是DBR中的所有路由决策都是基于自身节点的深度信息,无需相邻区域之间交换路由信息。因此,DBR可以很好地处理动态拓扑网络。
接收器数量
探究数据交付率如何随着接收器数量变化而变化。
具有多个接收器的DBR比只有一个接收器的DBR具有更好的数据包传递率。
由于DBR是一种贪婪算法,试图将数据包传送到水面,因此增加水面上的接收器数量将增加接收器接收数据包的机会。
不同数量的接收器的能耗几乎相同。原因是在DBR中,接收器的数量不会影响转发过程。
具有多个接收器的DBR比具有一个接收器的DBR具有略好的端到端平均延迟。
这是因为在多个接收点的情况下,只要数据包到达任何一个接收点,它就被视为成功交付。
DBP VS VBF
考虑DBR的两种设置:一个接收器和多个接收器。
比较了DBR和VBF的三个指标。
对于单接收器设置,DBR与VBF的分组交付率相差不大。然而,通过设置多接收器,DBR可以实现更好的传输率,尤其是对于稀疏网络。
与VBF相比,DBR具有更好的能效。在所有情况下,DBR的总能耗都约为VBF的一半。这主要是由于DBR采用了冗余包抑制技术。DBR中的双队列机制大大减少了网络中的冗余数据包传输。
在有多个接收器的DBR中产生最少的端到端延迟,但VBF比具有一个接收器DBR有更好的端到端延迟表现。
仿真结果表明,DBR协议适用于密集网络。然而,稀疏网络中的传输率相对较低。原因是DBR采用贪婪模式。在稀疏网络中,单纯的贪婪方法无法实现高的传输率。
总结和展望
本文提出了一种基于深度的水下传感器网络路由协议DBR。DBR使用贪婪算法将数据包传递到离水面更近的接收器。
与其他需要节点全维位置信息的基于地理的路由协议不同,DBR只需要深度信息,而深度信息可以在每个传感器节点本地轻松获取。
此外,DBR可以自然地利用多接收器水下传感器网络体系结构的优势,而不会引入额外的成本。我们的仿真结果表明,对于密集网络,DBR可以在合理的能耗下实现较高的数据包传输率(至少95%)。
为了实现在稀疏网络的更好性能,需要进一步探究恢复算法,以解决贪婪策略失败的“空洞”区域,以提高能效和输送率。