胡 君,莫峥嵘
(1.湖南科技职业学院软件学院,长沙 410004;2.中国人民解放军海军工程大学电子工程学院二大队5队,武汉 430000)
近期,水下传感网络USNs(Underwater Sensor Networks)被广泛应用于潜艇跟踪、港口监控等水面应用[1-2]。USNs由部署于水下的传感节点和飘浮于水面的声纳浮标组成。传感节点感测水下环境数据,然后以声信号传输至浮标。收集感测数据后,浮标再以无线方式传输至控制中心。USNs典型的拓扑结构如图1所示。
图1 USNs的典型结构
由于水域通信的特性,光纤和无线射频通信并不适合水下节点间的通信。而声通信被认为是水下节点间通信的最有效方式。然而,声通信也存在带宽有限、动态传输时延、高通信能耗等不足。
在水下声通信的传感网络中,由于传感节点尺寸、成本和存储能量限制,传感节点无法采用多天线。为了克服此问题,引用协作通信机制,其充分利用了无线信道的广播特性,提高了链路质量和数据传输的可靠性[3-6]。Han[7]研究了水下通信的协作传输技术。Vajapeyam[8]也提出基于space-time块编码的协作路由。仿真数据表明,该路由在多径信道场景中具有良好的性能。此外,从网络方面,利用多跳方式传输数据能够降低节点的能量消耗。原因在于:在多跳通信方式下,每一跳的传输距离变短,所需的传输发射功率就低,进而降低了能耗。
为此,提出基于链路质量和物理距离选择转发节点的协作路由SRCR(Selecting Relays based link quality indicator and physical distances Cooperative Routing)。SRCR路由依据链路质量和物理距离选择下一跳转发节点和协作节点。仿真数据表明,提出的SRCR路由提高了数据包传递率,并降低了能耗。
图2显示了单个转发节点的协作传输原理图。从图2可知,单个转发节点的协作传输模型由一个发射节点、一个转发节点的和一个接收节点组成。
图2 单个转发节点的协作传输
在单个转发节点的协作传输模型中,引用基于TDMA的信道接入策略。通过占用两个时隙完成数据的传输。在第1个时隙,发射节点利用广播方式向接收节点传输数据,同时协作转发节点监听发射节点所广播的数据包;在第二时隙,协作转发节点先对数据包进行解码,然后再编码,最后,再向接收节点传输[9]。这种协作转发称为解码-转发协议,其广泛应用于协作传输。当接收到由直接传输和协作传输的信号后,接收节点就结合这两路信号,进而提高数据包的接收成功率。
本文考虑多跳水下传感网络,其由多个传感节点和一个预定的目的节点(信宿)组成。传感节点随机地分布于水下监测区域,这些传感节点频繁地监测环境,然后,以多跳方式将感测数据传输至目的节点。
在协作路由中,从源节点至目的节点的数据传输过程中涉及两类节点:路由上的转发节点RR(Routing Relays)和一跳协作通信的协作节点CR(Cooperative Relays)。图3显示了多跳协作路由的示例。源节点S选择节点2作为转发节点,而节点3作为协作节点,它们共同向目的节点D传输数据。
图3 多跳的协作路由
SRCR路由由4个阶段构成:邻居表更新、RCS/CTS消息交互、转发节点选择和数据包传输。
在初始阶段,每个节点构建自己的邻居表。首先,目的节点向所有传感节点广播告知数据包ADV(Advertisement Packets)。一旦收到ADV包,节点就从ADV包中提取以下信息:①链路的信噪比SNR(Signal Noise Ratio);②离目的节点的跳数HC(Number of Hops)。最初,跳数为零。即目的节点广播ADV包时,跳数值为零。一旦接收了ADV包,传感节点就将跳数加1,再转发ADV包。通过这种方式,使得传感节点知道它离目的节点的跳数值;③到达时间ToA(Time of Arrival)。ToA表示数据包到达时间。节点利用ADV包内的时戳估计ToA值。
例如,传感节点s具有3个一跳邻居节点,且分别为传感节点i、j和k。即NB(s)={i,j,k}。它的邻居表如表1所示。其中HCi表示传感节点i离目的节点的跳距。而ToA(i→s)表示从节点s至节点i链路的ToA。相应地,SNR(i→s)表示从节点s至节点i链路的SNR值。
表1 节点s的邻居表
当初始阶段完成后,所有传感节点就建立初始的邻居表。然而,由于部分传感节点失效、通信环境波动,节点的邻居表需要进行更新。
算法1显示了邻居表的更新过程。一旦节点s收到数据包。假定它收到节点i的数据包,它就更新HC、ToA和SNR。
首先,节点s检测节点i是否已加入自己的邻居集。如果i∉NB(s),则节点s将HC、ToA和SNR信息载入邻居表,如算法1的Step19至Step22所示。
若i∈NB(s),先判断节点i是否离目的节点更近。即判断是否满足HCs≥HCi+1,若满足,则表明节点i比节点s更靠近于目的节点。因此,节点s更新HCs,即HCs←HCi+1;若不满足,就不进行更新,如算法1的Step3至Step7所示。
(1)
(2)
Algorithm1:Updatingneighbortableofnodes
Input:Received packets
Output:Neighbor table of nodes
1 When nodesreceives any packet sent by nodei;
2 ifi∈NB(s) then
3 if HCs≥HCi+1 then
4 HCs←HCi+1;
5 else
6 Skip current HCs;
7 end
9 Skip current ToA(i→s);
10 else
12 end
14 Skip current SNR(i→s);
15 else
17 end
18 else
19 NB(s)←i;
20 HCs←HCi+1;
23 end
当源节点有数据包要传输时,它就向它的邻居节点广播RTS包。一旦收到RTS包,邻居节点就依据算法1更新邻居表。再依据邻居表内的信息,邻居节点就推荐自己作为潜在的转发节点。成为潜在的转发节点必须满足两个条件:①与源节点间的链路的SNR小于阈值;②比源节点更靠近于目的节点。
具体而言,假定源节点为s,它的邻居节点集为NB(s),它的潜在转发节点集为PR(s)。首先,源节点s广播RTS包。邻居节点(假定节点i)收到RTS包,就检测是否满足式(3)。若满足,则节点i就成为潜在转发节点,并加入PR(s),即PR(s)←i。
{SNR(s→i),SNR(i→s)}≥SNRTand HCs≥HCi
(3)
一旦成为潜在转发节点,节点i就向源节点s回复CTS包。若未成为潜在转发节点,就不回复CTS包。图4显示了RTS/CTS包的传输过程。
图4 传输RTS/CTS包的示意图
SRCR路由需要选择RR和CR两个节点。RR作为路由转发节点,而CR为协作转发节点。
为了提高接收消息的成功率,从NB(s)中选择信噪比高的节点作为源节点s的RR节点,如式(4)所示:
(4)
确定了RR(s)后,就选择协作转发节点。协作节点必须满足两个条件:(1)PR(s)和NB[RR(s)]这两个集的交集;(2)ToA值最小。ToA值越小,表明离目的节点越近。仍以源节点s为例,假定它的协作转发节点为k。选择k的过程如算法2所示。
Algorithm2:Selectcooperativerelaynode
Input:NB(s),NB(RR(s)),PR(s)
Output:CR(s)
Step 1:fork∈PR(s)∩NB[RR(s)]do
Step 2: if ToA(k→RR(s))=min{ToA(k→RR(s))} then
Step 3: CR(s)←k
Step 4: end
Step 5:end
图5显示了源节点选择协作节点的示例。源节点s的转发协作节点集为PR(s)={i,u,j,k},假定它选择节点u作为路由转发节点。而NB[RR(s)]∩PR(s)={i,j,k},然后从中选择具有最低ToA的节点作为协作节点,即k→CR(s)。
图5 选择协作节点和转发节点的示例
利用OPNET16.0软件建立仿真平台。100个传感节点随机分布于3D的水下环境,环境体积为500 m×500 m×100 m。信宿位于水面,并由其收集数据。同时,引用典型的IEEE 802.11协议作为媒体接入控制MAC(Medium Access Control)协议[10-11]。
此外,所有传感节点具有相同的传输半径,且为100 m。传感节点的操作频率为30 kHz。每个传感节点的能量为1 kJ,最大的传输功率为0.5 W。数据包尺寸为200 byte,数据率为10 kbyte/s。
本次实验重点分析数据包产生率对SRCR路由的性能。数据包产生率越大,网络流量越大。为此,利用数据包到达间隔PIAT(Packet Inter-Arrival Time)表征数据包产生率。PIAT越长,数据包产生率越低,反之,数据包产生率越高。
为了更好地分析SRCR性能,选择最短路径路由SPFR(Shortest Path First Routing)和基于SRN的非协作路由SRN-R(SNR-based Routing without cooperative)作为参照,并对比分析它们的传输时延、数据包传递率和能耗性能。
3.2.1 端到端传输时延
首先,分析路由的平均时延。图6显示了数据包传输的平均时延,且PIAT为150 s。仿真时间为7 000 s。
从图6可知,尽管SPFR路由选择最小跳数选择路由,但它产生了高的端到端传输时延。原因在于:SPFR路由在决策路由时,并没有考虑到链路质量。以低的链路传输数据包,降低数据包传输成功率,这就增加数据包的重传次数,最终,延长了数据包的传输时延。
图6 平均端到端传输时延
此外,观察图6可知,提出的SRCR路由有效地控制传输时延。这主要是因为:SRCR路由引用协作概念,并利用SNR和TOA值选择转发节点,提高了数据传输的成功率,降低了重传次数,最终降低了平均时延。
3.2.2 数据包传递率
由于水域介质对信号有强的吸附性,数据包传输率是估计水域通信路由的重要指标。图7显示数据包传递率随PIAT的变化情况。
图7 数据包传递率
从图7可知,PIAT的增加,增加了数据包的传递率。原因在于:PIAT越低,网络流量越大,传输数据包的碰撞率也就越高。而PIAT越高,网络流量越低,网络负担越低,有更多资源传输数据包,因此,数据包传递率得到有效提高。
从图7可知,SPFR路由的数据包传递率最低,这主要是因为:SPFR路由以最小跳数选择路由,增加了数据包碰撞率。而提出的SRCR路由引用协作策略,并依据链路质量和距离选择最优的协作节点,提高了数据包传输的可靠性。
3.2.3 平均能耗
平均能耗是指从源节点传输一个比特数据到目的节点所消耗的能量。为此,本次实验分析PIAT对平均能耗的影响,且PIAT从50 s至400 s变化。
从图8可知,SPFR路由的平均能耗最高,高于SRCR和SNR-R路由。原因在于:SPFR路由并没有考虑到信道质量,它需要多次重传才能将数据包成功传输至信宿。而SRCR路由的平均能耗最低,这主要是因为:SRCR路由利用通过协作节点协作传输数据,提高了数据包的传递成功率,降低了重传次数,进而降低了能耗。
图8 平均能耗
为了提高水下传感网络的性能,提出协作路由SRCR。SRCR路由充分考虑了水域通信环境的恶劣性,引用协作通信提高数据包传递率。并依据链路的信噪比和离目的节点的跳数选择协作节点和下一跳的转发节点,旨在利用最优的节点作为转发节点,进而路由性能。仿真数据表明,提出的SRCR路由有效地降低了能耗,并提高了数据包传递率。