CN111641990B - 高数据包投递率与能量有效性的水声传感器网络传输方法 - Google Patents
高数据包投递率与能量有效性的水声传感器网络传输方法 Download PDFInfo
- Publication number
- CN111641990B CN111641990B CN202010481041.2A CN202010481041A CN111641990B CN 111641990 B CN111641990 B CN 111641990B CN 202010481041 A CN202010481041 A CN 202010481041A CN 111641990 B CN111641990 B CN 111641990B
- Authority
- CN
- China
- Prior art keywords
- packet
- node
- data packet
- sensor node
- sensor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/04—Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources
- H04W40/10—Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources based on available power or energy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/12—Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/12—Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality
- H04W40/14—Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality based on stability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供了一种高数据包投递率与能量有效性的水声传感器网络传输方法,包括邻居信标交互机制,帮助传感器节点获取邻居数目,用于路由协议;机会路由机制,基于邻居数目规划最优数据包传输路径;冲突容忍的MAC协议,对不同类型包安排对应的优先级与发射功率,减少对重要包的冲突。本发明使用极低的控制开销,在高中断率的水声信道下保证投递率的同时抑制数据包重复传输或进入通信空区;通过提高INFO的功率来增加INFO的覆盖范围,有效解决基于接收方的机会路由面临的隐藏终端问题,在MAC层将INFO的发射优先级设定高于数据包,降低MAC层的冲突,在保证数据包投递率的同时也有效提升传感器节点的能量利用率,因此能够有效延长网络寿命。
Description
技术领域
本发明涉及水声传感器网络技术领域,尤其是一种水声传感器网络MAC层与路由层两个领域,具体为一种适合水声传感器网络的传输方法。
背景技术
嘈杂的海洋背景噪声以及水声信道的时变空变特性为水声传感器网络协议的设计带来极大的挑战。一方面,水声传感器节点能量受限但发射功率高,因此为了保证网络的运行时长,需要在抑制开销与重传的基础上提高数据包投递率;另一方面,水声信道的时变空变特性导致传输链路容易随机中断,进而产生通信空区。此外水声信号的长传播时延也会引起复杂且不确定的传输冲突。
目前国内外为了提高水声传感器网络的数据包投递率以及延长网络寿命,进行了大量的研究。一些水声传感器网络MAC协议,通过时隙分配或距离感知、随机接入的方式来减少不确定性冲突。然而,这些方式会产生大量的控制开销与重传。OR(OpportunisticRouting,机会路由)协议通过选择一个RCS(Relay Candidate Set,中继候选集)来动态形成从源到目的的路径。OR利用信道的广播特性,有效解决水声链路中断问题,提高数据包投递率。然而,OR会潜在地引起数据包冗余传输,导致额外占用能量与带宽资源。
为了解决OR中数据包冗余传输问题,基于发送方的OR协议在转发节点处选择与控制RCS的大小,例如GEDAR。在GEDAR中,转发节点将邻居划分为多个簇,要求簇内每个节点都在其它节点的通信范围内,之后选择最优簇作为RCS。然而GEDAR要求节点维持邻居信息,因此会产生大量额外的控制开销。另外,GEDAR在稀疏型水声网络中具有很低的跳间成功传输概率,因此需要一种能耗很大的节点移动方法来恢复空区。基于接收方的OR协议在接收节点处决定是否属于RCS,例如VBF。VBF是一种基于地理信息的OR协议,只在从源到目的节点间的虚拟管道中选择中继,因此协议性能受节点密度的影响很大,在节点密度低时面临通信空区问题,在节点密度高时又面临重复传输问题。
因此,如何在恶劣水声环境中保证高数据包投递率的同时提高节点能量利用率进而延长网络寿命,是水声传感器网络传输机制的研究关键。
发明内容
为了克服现有技术的不足,本发明提供一种高数据包投递率与能量有效性的水声传感器网络传输方法。为了解决水声传感器网络中的冲突与中断问题,提高数据包投递率,同时延长网络寿命。针对水下水声信道带宽与节点能量受限等特点,本发明从MAC层与路由层入手提出一种新的高数据包投递率、能量有效性的传输机制,简称HPEP(High Packetdelivery ratio and Energy efficient Protocol)。
本发明解决其技术问题所采用的技术方案的具体步骤如下:
本发明对应的传输机制用于传感器节点的数据包转发,包括三个部分:1)邻居信标交互机制,帮助传感器节点获取邻居数目,用于路由协议;2)机会路由机制,基于邻居数目规划最优数据包传输路径;3)冲突容忍的MAC协议,对不同类型包安排对应的优先级与发射功率,减少对重要包的冲突;
一、邻居信标交互机制;
网络中所有传感器节点在本地建立以下三个列表:
Q0:邻居列表;存储传感器节点一跳范围内的邻居信息,列表格式如下:
发送节点ID | n<sub>i</sub> | n<sub>j</sub> | n<sub>k</sub> | … |
接收时间戳 | T<sub>i</sub> | T<sub>j</sub> | T<sub>k</sub> | … |
其中,Q0由两行组成,发送节点ID为产生信标的传感器节点ID,用n表示;接收时间戳为传感器节点接收到信标时的绝对时间,用T表示;下标i、j、k用来区分不同节点;
Q1:数据包处理列表;存储当前尚未转发、正在处理的数据包信息;
数据包ID | p<sub>u</sub> | p<sub>v</sub> | p<sub>w</sub> | … |
其中,数据包ID包括源节点ID与包序列号,作为该数据包的唯一标识,用p表示;源节点ID为生成数据包的传感器节点ID,包序列号由1开始并随生成包个数的增加而递增;下标u、v、w用来区分不同数据包;
Q2;数据包完成列表;存储已经通过传感器节点转发出去的数据包信息;
数据包ID | p<sub>x</sub> | p<sub>y</sub> | p<sub>z</sub> | … |
其中,数据包ID的定义与Q1相同,下标x、y、z用来区分不同数据包;
网络中所有传感器节点周期性广播信标,信标产生周期为TB_sensor,为减少信标间的冲突,所有传感器节点在发送信标前添加一个0到1秒的随机时间抖动;
传感器节点发送的信标格式如下:
包类型 | 发送节点ID |
其中包类型用于标识不同类型的包,包括数据包、信标、INFO(INFOrmation,通知包);
传感器节点在接收到来自邻居的信标beacon后,获取beacon中的“发送节点ID”ni,在邻居列表Q0中是否存在与ni相同的发送节点ID;若不存在相同的发送节点ID,则将新获取到的“发送节点ID”ni添加到Q0中,并在对应的“接收时间戳”中写入当前时间;若存在相同的发送节点ID,则将Q0中beacon的“发送节点ID”对应的“接收时间戳”设为当前时间,并直接丢弃beacon;之后对Q0进行更新,用当前时间与Q0中所有“接收时间戳”相减,得到时间差,若时间差大于TB_sensor,则认为传感器节点与对应的邻居节点失去连接,此时将对应的“发送节点ID”从Q0中删除;否则不做任何处理;
二、机会路由机制
步骤1:若网络中某传感器节点n0有数据包packet要发送或转发,packet的包头格式如下:
其中,当前包类型为数据包,包序列号与源节点ID组合成数据包ID,作为该数据包的唯一标识,源节点ID为生成packet的传感器节点ID,当前发送或转发节点n0将自身ID与X、Y坐标赋分别予packet对应字段“发送节点ID”、“发送节点X坐标”、“发送节点Y坐标”中,RCS标志位标明传感器节点邻居节点数目与邻居数目门限Nth的关系,若邻居节点数目大于Nth,则将RCS置1;否则将RCS置0,邻居数目门限Nth为自定义常量;
另外,packet对应的INFO用于RCS中传感器节点间的协调,格式如下:
包类型 | 包序列号 | 源节点ID |
其中,包类型为INFO,其余字段与packet相同;
首先传感器节点n0判断自身当前是否处于Sink的一跳范围内,设Sink节点坐标为(xs,ys),传感器节点n0的坐标为(x0,y0),计算n0到Sink的欧式距离为若Ls0小于节点通信距离R,即Ls0<R,则n0在Sink的一跳范围内,此时传感器节点n0生成packet对应的INFO,将packet包头的“RCS标志位”置为1,并通过MAC层将INFO与packet发送出去,此后将packet的数据包ID添加到Q2中,并不再接收与packet具有相同数据包ID的数据包,并重新开始步骤1;若Ls0≥R,则n0在Sink的一跳范围外,进入步骤2;
步骤2:判断n0是否为空区节点;传感器节点n0通过信标交互机制获取当前邻居数目nc0,即统计当前列表Q0中“发送节点ID”的个数,若nc0<2,认为n0为空区节点,即没有比自己更靠近Sink的邻居节点,此时n0直接丢弃packet,并将packet的数据包ID从Q1删除,回到步骤1;若nc0≥2,进入步骤3;
步骤3:根据邻居数目更新packet包头的“RCS标志位”;预先设定常量“邻居数目门限”Nth,Nth根据应用需求设定,网络中节点越密集Nth设置越小,若nc0≤Nth,将packet中的“RCS标志位”置为0;否则置为1,进入步骤4;
步骤4:传感器节点n0通过MAC层将INFO与packet发送出去,此后将packet的数据包ID添加到Q2中,并不再接收与packet具有相同数据包ID的数据包,继续步骤5;
步骤5:若传感器节点n0的某一邻居节点n1接收到来自n0的packet或INFO,在判断自身是否属于n0的RCS前,首先进行以下步骤:
传感器节点n1获取packet或INFO包头中的“数据包ID”,若该数据包ID在Q2中有记录,说明之前已经完成对该数据包的转发,此时直接丢弃接收到的packet或INFO,跳至步骤1;否则判断该数据包ID在Q1中是否有记录,判断规则为:如在Q1无记录,说明n1第一次接收到该数据包ID下的包,如果接收到的是INFO,直接将INFO丢弃,如果接收到的是packet,则将其“数据包ID”添加到Q1中,进入步骤6;若在Q1有记录,说明正在处理该packet,此时直接跳至步骤8;
步骤6:n1判断是否归属于n0的RCS,即RCS0;
首先n1解析packet包头得到“RCS标志位”对应的值VRcs_0,若VRcs_0=0,说明n0邻居数目小于等于邻居数目门限值,此时n1属于n0的RCS,即n1∈RCS0,继续步骤7;若VRcs_0=1,n1判断是否比n0更靠近Sink,n0的坐标从packet包头字段“发送节点X坐标”与“发送节点Y坐标”获取;若n0到Sink的欧氏距离小于n1,即Ls0<Ls1,此时直接丢弃packet,并将packet的数据包ID从Q1删除,跳至步骤1;若Ls0≥Ls1,此时n1∈RCS0,进入步骤7;
步骤7:计算转发packet前的等待时间并开始计时;n1在发送packet前等待一段时间Thold,Thold的长短反映了n1在RCS0中的优先级,Thold的计算方式如下:
其中T_delay为预先设定的最大时延;v为水声传播速度,取1500m/s;L01表示传感器节点n1与n0之间的欧氏距离;公式(1)前一项反映传感器节点的优先级,后一项是考虑声信号到达不同节点的先后差异而设定的时间对齐;公式(1)最重要的部分是优先级系数δ,δ越小传感器节点n1的优先级越高,计算方式如下:
其中R为传感器节点通信半径;设为传感器节点n0到Sink节点的距离向量,为传感器节点n0到n1的距离向量,θ为和之间的夹角;N为最大邻居节点数目,N为常量且在所有传感器节点中具有相同的值,nc1表示传感器节点n1当前邻居数目;
步骤8:传感器节点,n1在等待时间Thold内,如果接收到packet对应的ACK或与packet具有相同数据包ID的数据包,则停止计时,将packet丢弃,并将packet的数据包ID从Q1删除;如果Thold超时,则准备继续转发packet以及对应的ACK,此时传感器节点n1的角色变为n0,下一跳接收到packet的传感器节点变为n1,继续执行步骤1,直到数据包packet传递到Sink;
三、冲突容忍的MAC协议
在接收到来自路由层的INFO与packet后,传感器节点首先将packet堆入缓冲区中,再检测信道忙闲状态;如果信道忙,等待信道空闲;如果信道空闲,立即将INFO发射出去;packet的发送参考列表Q1,如果packet之前没有待处理的数据包,即packet的数据包ID在Q1的首项,此时传感器节点在信道空闲后将packet发射出去,并将packet对应的数据包ID从Q1删除;如果packet之前存在待处理的数据包,即数据包ID不在Q1的首项,认为本传感器节点当前很可能在等待来自其它传感器节点且针对其它数据包的INFO,为避免这些INFO被冲突掉,在packet数据包ID成为Q1的首项前不能发射packet;
若传感器节点正确接收到信号,则直接将接收到的内容传输到路由层,在每一次信道状态发生改变后,重复MAC协议流程,直到传感器节点失效。
在所提出的MAC协议中,为了克服隐藏终端带来的数据包冗余问题,需要提高ACK的发射功率,进而增加换能器的通信距离;设换能器对数据包与信标的发射功率为P,通信距离为R;若保证能够覆盖所有RCS内的传感器节点,INFO的通信距离应为2R,对应的发射功率为:
其中,Pinfo与P的单位为W;R的单位为m;a为吸收系数,计算公式如下:
其中a与载波频率f有关。
本发明的有益效果在于:
1)考虑到传感器节点在邻居密度低的情况下面临路径中断与通信空区的风险,因此提出基于邻居数目的路由协议,使用极低的控制开销,在高中断率的水声信道下保证投递率的同时抑制数据包重复传输或进入通信空区。
2)通过提高INFO的功率来增加INFO的覆盖范围,因此有效解决基于接收方的机会路由面临的隐藏终端问题。考虑到INFO在协调RCS时的重要作用,在MAC层将INFO的发射优先级设定高于数据包,降低MAC层的冲突。
联合路由层与MAC层,本发明提出一种有效解决水声传感器网路中的中断与冲突问题、进而提高数据包投递率的传输机制。该传输机制在保证数据包投递率的同时也有效提升传感器节点的能量利用率,因此能够有效延长网络寿命。
附图说明
图1是二维水声传感器网络拓扑结构图。
图2是OPNET 75节点仿真场景图。
图3是HPEP、VBF以及GEDAR的性能对比曲线,其中图3(a)数据包投递率随网络传感器节点数目变化曲线图,图3(b)端到端时延随网络传感器节点数目变化曲线图;图3(c)能量利用率随网络传感器节点数目变化曲线图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
本发明对应的传输机制用于传感器节点的数据包转发,包括三个部分:1)邻居信标交互机制,帮助传感器节点获取邻居数目,用于路由协议;2)机会路由机制,基于邻居数目规划最优数据包传输路径;3)冲突容忍的MAC协议,对不同类型包安排对应的优先级与发射功率,减少对重要包的冲突;
一、邻居信标交互机制;
网络中所有传感器节点在本地建立以下三个列表:
Q0:邻居列表;存储传感器节点一跳范围内的邻居信息,列表格式如下:
发送节点ID | n<sub>i</sub> | n<sub>j</sub> | n<sub>k</sub> | … |
接收时间戳 | T<sub>i</sub> | T<sub>j</sub> | T<sub>k</sub> | … |
其中,Q0由两行组成,发送节点ID为产生信标的传感器节点ID,用n表示;接收时间戳为传感器节点接收到信标时的绝对时间,用T表示;下标i、j、k用来区分不同节点;
Q1:数据包处理列表;存储当前尚未转发、正在处理的数据包信息;
数据包ID | p<sub>u</sub> | p<sub>v</sub> | p<sub>w</sub> | … |
其中,数据包ID包括源节点ID与包序列号,作为该数据包的唯一标识,用p表示;源节点ID为生成数据包的传感器节点ID,包序列号由1开始并随生成包个数的增加而递增;下标u、v、w用来区分不同数据包;
Q2:数据包完成列表;存储已经通过传感器节点转发出去的数据包信息;
数据包ID | p<sub>x</sub> | p<sub>y</sub> | p<sub>z</sub> | … |
其中,数据包ID的定义与Q1相同,下标x、y、z用来区分不同数据包;
网络中所有传感器节点周期性广播信标,信标产生周期为TB_sensor,为减少信标间的冲突,所有传感器节点在发送信标前添加一个0到1秒的随机时间抖动;
传感器节点发送的信标格式如下:
包类型 | 发送节点ID |
其中包类型用于标识不同类型的包,包括数据包、信标、INFO(INFOrmation,通知包);
传感器节点在接收到来自邻居的信标beacon后,获取beacon中的“发送节点ID”ni,在邻居列表Q0中是否存在与ni相同的发送节点ID;若不存在相同的发送节点ID,则将新获取到的“发送节点ID”ni添加到Q0中,并在对应的“接收时间戳”中写入当前时间;若存在相同的发送节点ID,则将Q0中beacon的“发送节点ID”对应的“接收时间戳”设为当前时间,并直接丢弃beacon;之后对Q0进行更新,用当前时间与Q0中所有“接收时间戳”相减,得到时间差,若时间差大于TB_sensor,则认为传感器节点与对应的邻居节点失去连接,此时将对应的“发送节点ID”从Q0中删除;否则不做任何处理;
二、机会路由机制
步骤1:若网络中某传感器节点n0有数据包packet要发送或转发,packet的包头格式如下:
其中,当前包类型为数据包,包序列号与源节点ID组合成数据包ID,作为该数据包的唯一标识,源节点ID为生成packet的传感器节点ID,当前发送或转发节点n0将自身ID与X、Y坐标赋分别予packet对应字段“发送节点ID”、“发送节点X坐标”、“发送节点Y坐标”中,RCS标志位标明传感器节点邻居节点数目与邻居数目门限Nth的关系,若邻居节点数目大于Nth,则将RCS置1;否则将RCS置0,邻居数目门限Nth为自定义常量;
另外,packet对应的INFO用于RCS中传感器节点间的协调,格式如下:
包类型 | 包序列号 | 源节点ID |
其中,包类型为INFO,其余字段与packet相同;
首先传感器节点n0判断自身当前是否处于Sink的一跳范围内,设Sink节点坐标为(xs,ys),传感器节点n0的坐标为(x0,y0),计算n0到Sink的欧式距离为若Ls0小于节点通信距离R,即Ls0<R,则n0在Sink的一跳范围内,此时传感器节点n0生成packet对应的INFO,将packet包头的“RCS标志位”置为1,并通过MAC层将INFO与packet发送出去,此后将packet的数据包ID添加到Q2中,并不再接收与packet具有相同数据包ID的数据包,并重新开始步骤1;若Ls0≥R,则n0在Sink的一跳范围外,进入步骤2;
步骤2:判断n0是否为空区节点;传感器节点n0通过信标交互机制获取当前邻居数目nc0,即统计当前列表Q0中“发送节点ID”的个数,若nc0<2,认为n0为空区节点,即没有比自己更靠近Sink的邻居节点,此时n0直接丢弃packet,并将packet的数据包ID从Q1删除,回到步骤1;若nc0≥2,进入步骤3;
步骤3:根据邻居数目更新packet包头的“RCS标志位”;预先设定常量“邻居数目门限”Nth,Nth根据应用需求设定,网络中节点越密集Nth设置越小,若nc0≤Nth,将packet中的“RCS标志位”置为0;否则置为1,进入步骤4;
步骤4:传感器节点n0通过MAC层将INFO与packet发送出去,此后将packet的数据包ID添加到Q2中,并不再接收与packet具有相同数据包ID的数据包,继续步骤5;
步骤5:若传感器节点n0的某一邻居节点n1接收到来自n0的packet或INFO,在判断自身是否属于n0的RCS前,首先进行以下步骤:
传感器节点n1获取packet或INFO包头中的“数据包ID”,若该数据包ID在Q2中有记录,说明之前已经完成对该数据包的转发,此时直接丢弃接收到的packet或INFO,跳至步骤1;否则判断该数据包ID在Q1中是否有记录,判断规则为:如在Q1无记录,说明n1第一次接收到该数据包ID下的包,如果接收到的是INFO,直接将INFO丢弃,如果接收到的是packet,则将其“数据包ID”添加到Q1中,进入步骤6;若在Q1有记录,说明正在处理该packet,此时直接跳至步骤8;
步骤6:n1判断是否归属于n0的RCS,即RCS0;
首先n1解析packet包头得到“RCS标志位”对应的值VRcs_0,若VRcs_0=0,说明n0邻居数目小于等于邻居数目门限值,此时n1属于n0的RCS,即n1∈RCS0,继续步骤7;若VRCS_0=1,n1判断是否比n0更靠近Sink,n0的坐标从packet包头字段“发送节点X坐标”与“发送节点Y坐标”获取;若n0到Sink的欧氏距离小于n1,即Ls0<Ls1,此时直接丢弃packet,并将packet的数据包ID从Q1删除,跳至步骤1;若Ls0≥Ls1,此时n1∈RCS0,进入步骤7;
步骤7:计算转发packet前的等待时间并开始计时;n1在发送packet前等待一段时间Thold,Thold的长短反映了n1在RCS0中的优先级,Thold的计算方式如下:
其中T_delay为预先设定的最大时延;v为水声传播速度,取1500m/s;L01表示传感器节点n1与n0之间的欧氏距离;公式(1)前一项反映传感器节点的优先级,后一项是考虑声信号到达不同节点的先后差异而设定的时间对齐;公式(1)最重要的部分是优先级系数δ,δ越小传感器节点n1的优先级越高,计算方式如下:
其中R为传感器节点通信半径;设为传感器节点n0到Sink节点的距离向量,为传感器节点n0到n1的距离向量,θ为和之间的夹角;N为最大邻居节点数目,N为常量且在所有传感器节点中具有相同的值,nc1表示传感器节点n1当前邻居数目;
步骤8:传感器节点n1在等待时间Thold内,如果接收到packet对应的ACK或与packet具有相同数据包ID的数据包,则停止计时,将packet丢弃,并将packet的数据包ID从Q1删除;如果Thold超时,则准备继续转发packet以及对应的ACK,此时传感器节点n1的角色变为no,下一跳接收到packet的传感器节点变为n1,继续执行步骤1,直到数据包packet传递到Sink;
三、冲突容忍的MAC协议
在接收到来自路由层的INFO与packet后,传感器节点首先将packet堆入缓冲区中,再检测信道忙闲状态;如果信道忙,等待信道空闲;如果信道空闲,立即将INFO发射出去;packet的发送参考列表Q1,如果packet之前没有待处理的数据包,即packet的数据包ID在Q1的首项,此时传感器节点在信道空闲后将packet发射出去,并将packet对应的数据包ID从Q1删除;如果packet之前存在待处理的数据包,即数据包ID不在Q1的首项,认为本传感器节点当前很可能在等待来自其它传感器节点且针对其它数据包的INFO,为避免这些INFO被冲突掉,在packet数据包ID成为Q1的首项前不能发射packet;
若传感器节点正确接收到信号,则直接将接收到的内容传输到路由层,在每一次信道状态发生改变后,重复MAC协议流程,直到传感器节点失效。
在所提出的MAC协议中,为了克服隐藏终端带来的数据包冗余问题,需要提高ACK的发射功率,进而增加换能器的通信距离;设换能器对数据包与信标的发射功率为P,通信距离为R;若保证能够覆盖所有RCS内的传感器节点,INFO的通信距离应为2R,对应的发射功率为:
其中,Pinfo与户的单位为W;R的单位为m;a为吸收系数,计算公式如下:
其中a与载波频率f有关。
图1为二维水声传感器网络拓扑结构,传感器节点随机分布于水下预定范围内,实时采集海洋数据并以多跳方式将数据包传输到目的节点。Sink节点作为目的节点固定于水面,实时接收来自水下传感器节点的数据。传感器节点与Sink节点装配有相同的水声调制解调器,用于水声通信,其通信距离为R。此外,所有节点时间、空间同步。Sink节点利用GPS获取自身位置坐标,传感器节点通过某种定位算法,如MDS-Map获取自身位置坐标,所有节点按照某种时间同步算法(例如TPSN),达到时间上的统一。
本发明使用OPNET仿真软件对所提的传输机制进行性能分析。水声传感器网络拓扑如图2所示,传感器节点部署在2km×2km的垂直海域,其中传感器节点的深度范围为0到2km;多个Sink节点部署在海面。源节点数据包的生成间隔服从均值为10s的泊松分布。由PER(Packet Error Ratio,数据包出错概率)建模水声链路对数据包传输的中断影响。基于现有的水声换能器参数,设定接收功率为0.8W,数据包与信标发射功率为3W,根据公式(3),INFO的发射功率约为12W。其余仿真参数见表1。每次仿真选择网络最下层的一个传感器节点作为源节点,以及一个Sink节点为目的节点。设定6个场景,对应不同的传感器节点数目(55到80),对每一个场景改变种子值(生成随机数的基数)进行450次仿真并对结果求平均。
表1
设定三个性能指标,即PDR、End-to-end delay与Energy Efficiency。PDR(PacketDelivery Ratio,数据包投递率)为在Sink节点处成功接收到的数据包数目与源节点产生的数据包数目的比值,其中数据包ID相同的数据包被重复接收仍被认为是一次接收。End-to-end delay表示数据包从在源节点产生到在目的节点被接收所经历的时间。EnergyEfficiency表示能量利用率,描述了1J的能量所能传递的数据包的平均数量,为Sink节点处成功接收到的数据包数目与全网所有传感器节点消耗能量的比值。
如图3,将HPEP与现有的经典协议VBF与GEDAR在链路状况PER=0.5时进行性能对比。由仿真结果可得,由于在仿真时为了统一仿真条件,要求传感器节点不具有高耗能的自主移动能力,因此GEDAR没有空区恢复能力。GEDAR这类基于发送方的OR协议由于水声链路的不可靠性导致控制信息的丢失,会严重降低跳间数据成功传输概率。因此基于接收方的OR协议HPEP与VBF在稀疏型水声网络中各项性能更优。相较于指定固定传输管道的VBF,HPEP通过引入轻量级控制信息获取邻居数目,使数据包始终朝着节点密度较大的区域传输,因此不受网络节点密度影响,比VBF具有更大的PDR。HPEP引入长通信距离的INFO,能够有效抑制冗余传输,且通过基于邻居数目的路由协议,避免数据包流向空区节点,因此比VBF实现更高的能量利用率。另外HPEP使用冲突容忍的MAC协议抑制节点间对信道的争夺,且考虑到水声信号长传播时延而没有引入退避机制,因此有效降低数据包传输过程所需要的端到端时延。总体来说,HPEP在保证高投递率的同时能够提高节点能量利用率,因此有效地延长网络寿命。
Claims (2)
1.一种高数据包投递率与能量有效性的水声传感器网络传输方法,其特征在于包括下述步骤:
传输机制用于传感器节点的数据包转发,包括三个部分:1)邻居信标交互机制,帮助传感器节点获取邻居数目,用于路由协议;2)机会路由机制,基于邻居数目规划最优数据包传输路径;3)冲突容忍的MAC协议,对不同类型包安排对应的优先级与发射功率,减少对重要包的冲突;
一、邻居信标交互机制;
网络中所有传感器节点在本地建立以下三个列表:
Q0:邻居列表;存储传感器节点一跳范围内的邻居信息,列表格式如下:
其中,Q0由两行组成,发送节点ID为产生信标的传感器节点ID,用n表示;接收时间戳为传感器节点接收到信标时的绝对时间,用T表示;下标i、j、k用来区分不同节点;
Q1:数据包处理列表;存储当前尚未转发、正在处理的数据包信息;
其中,数据包ID包括源节点ID与包序列号,作为该数据包的唯一标识,用p表示;源节点ID为生成数据包的传感器节点ID,包序列号由1开始并随生成包个数的增加而递增;下标u、v、w用来区分不同数据包;
Q2:数据包完成列表;存储已经通过传感器节点转发出去的数据包信息;
其中,数据包ID的定义与Q1相同,下标x、y、z用来区分不同数据包;
网络中所有传感器节点周期性广播信标,信标产生周期为TB_sensor,为减少信标间的冲突,所有传感器节点在发送信标前添加一个0到1秒的随机时间抖动;
传感器节点发送的信标格式如下:
其中包类型用于标识不同类型的包,包括数据包、信标、通知包INFO;
传感器节点在接收到来自邻居的信标beacon后,获取beacon中的“发送节点ID”ni,在邻居列表Q0中是否存在与ni相同的发送节点ID;若不存在相同的发送节点ID,则将新获取到的“发送节点ID”ni添加到Q0中,并在对应的“接收时间戳”中写入当前时间;若存在相同的发送节点ID,则将Q0中beacon的“发送节点ID”对应的“接收时间戳”设为当前时间,并直接丢弃beacon;之后对Q0进行更新,用当前时间与Q0中所有“接收时间戳”相减,得到时间差,若时间差大于TB_sensor,则认为传感器节点与对应的邻居节点失去连接,此时将对应的“发送节点ID”从Q0中删除;否则不做任何处理;
二、机会路由机制
步骤1:若网络中某传感器节点n0有数据包packet要发送或转发,packet的包头格式如下:
其中,当前包类型为数据包,包序列号与源节点ID组合成数据包ID,作为该数据包的唯一标识,源节点ID为生成packet的传感器节点ID,当前发送或转发节点n0将自身ID与X、Y坐标赋分别予packet对应字段“发送节点ID”、“发送节点X坐标”、“发送节点Y坐标”中,RCS标志位标明传感器节点邻居节点数目与邻居数目门限Nth的关系,若邻居节点数目大于Nth,则将RCS置1;否则将RCS置0,邻居数目门限Nth为自定义常量;
另外,packet对应的INFO用于RCS中传感器节点间的协调,格式如下:
其中,包类型为INFO,其余字段与packet相同;
首先传感器节点n0判断自身当前是否处于Sink的一跳范围内,设Sink节点坐标为(xs,ys),传感器节点n0的坐标为(x0,y0),计算n0到Sink的欧式距离为若Ls0小于节点通信距离R,即Ls0<R,则n0在Sink的一跳范围内,此时传感器节点n0生成packet对应的INFO,将packet包头的“RCS标志位”置为1,并通过MAC层将INFO与packet发送出去,此后将packet的数据包ID添加到Q2中,并不再接收与packet具有相同数据包ID的数据包,并重新开始步骤1;若Ls0≥R,则n0在Sink的一跳范围外,进入步骤2;
步骤2:判断n0是否为空区节点;传感器节点n0通过信标交互机制获取当前邻居数目nc0,即统计当前列表Q0中“发送节点ID”的个数,若nc0<2,认为n0为空区节点,即没有比自己更靠近Sink的邻居节点,此时nn直接丢弃packet,并将packet的数据包ID从Q1删除,回到步骤1;若nc0≥2,进入步骤3;
步骤3:根据邻居数目更新packet包头的“RCS标志位”;预先设定常量“邻居数目门限”Nth,Nth根据应用需求设定,网络中节点越密集Nth设置越小,若nc0≤Nth,将packet中的“RCS标志位”置为0;否则置为1,进入步骤4;
步骤4:传感器节点n0通过MAC层将INFO与packet发送出去,此后将packet的数据包ID添加到Q2中,并不再接收与packet具有相同数据包ID的数据包,继续步骤5;
步骤5:若传感器节点n0的某一邻居节点n1接收到来自n0的packet或INFO,在判断自身是否属于n0的RCS前,首先进行以下步骤:
传感器节点n1获取packet或INFO包头中的“数据包ID”,若该数据包ID在Q2中有记录,说明之前已经完成对该数据包的转发,此时直接丢弃接收到的packet或INFO,跳至步骤1;否则判断该数据包ID在Q1中是否有记录,判断规则为:如在Q1无记录,说明n1第一次接收到该数据包ID下的包,如果接收到的是INFO,直接将INFO丢弃,如果接收到的是packet,则将其“数据包ID”添加到Q1中,进入步骤6;若在Q1有记录,说明正在处理该packet,此时直接跳至步骤8;
步骤6:判断n1是否归属于n0的RCS,即RCS0;
首先n1解析packet包头得到“RCS标志位”对应的值VRCS_0,若VRCS_0=0,说明n0邻居数目小于等于邻居数目门限值,此时n1属于n0的RCS,即n1∈RCS0,继续步骤7;若VRCS_0=1,n1判断是否比n0更靠近Sink,n0的坐标从packet包头字段“发送节点X坐标”与“发送节点Y坐标”获取;若n0到Sink的欧氏距离小于n1,即Ls0<Ls1,此时直接丢弃packet,并将packet的数据包ID从Q1删除,跳至步骤1;若Ls0≥Ls1,此时n1∈RCS0,进入步骤7;
步骤7:计算转发packet前的等待时间并开始计时;n1在发送packet前等待一段时间Thold,Thold的长短反映了n1在RCS0中的优先级,Thold的计算方式如下:
其中T_delay为预先设定的最大时延;v为水声传播速度,取1500m/s;L01表示传感器节点n1与n0之间的欧氏距离;公式(1)前一项反映传感器节点的优先级,后一项是考虑声信号到达不同节点的先后差异而设定的时间对齐;公式(1)最重要的部分是优先级系数δ,δ越小传感器节点n1的优先级越高,计算方式如下:
其中R为传感器节点通信半径;设为传感器节点n0到Sink节点的距离向量,为传感器节点n0到n1的距离向量,θ为和之间的夹角;N为最大邻居节点数目,N为常量且在所有传感器节点中具有相同的值,nc1表示传感器节点n1当前邻居数目;
步骤8:传感器节点n1在等待时间Thold内,如果接收到packet对应的ACK或与packet具有相同数据包ID的数据包,则停止计时,将packet丢弃,并将packet的数据包ID从Q1删除;如果Thold超时,则准备继续转发packet以及对应的ACK,此时传感器节点n1的角色变为n0,下一跳接收到packet的传感器节点变为n1,继续执行步骤1,直到数据包packet传递到Sin;
三、冲突容忍的MAC协议
在接收到来自路由层的INFO与packet后,传感器节点首先将packet堆入缓冲区中,再检测信道忙闲状态;如果信道忙,等待信道空闲;如果信道空闲,立即将INFO发射出去;packet的发送参考列表Q1,如果packet之前没有待处理的数据包,即packet的数据包ID在Q1的首项,此时传感器节点在信道空闲后将packet发射出去,并将packet对应的数据包ID从Q1删除;如果packet之前存在待处理的数据包,即数据包ID不在Q1的首项,在packet数据包ID成为Q1的首项前不能发射packet;
若传感器节点正确接收到信号,则直接将接收到的内容传输到路由层,在每一次信道状态发生改变后,重复MAC协议流程,直到传感器节点失效。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010261442 | 2020-04-03 | ||
CN2020102614427 | 2020-04-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111641990A CN111641990A (zh) | 2020-09-08 |
CN111641990B true CN111641990B (zh) | 2022-08-02 |
Family
ID=72330848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010481041.2A Active CN111641990B (zh) | 2020-04-03 | 2020-05-31 | 高数据包投递率与能量有效性的水声传感器网络传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111641990B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112469101B (zh) * | 2020-11-10 | 2022-04-22 | 桂林电子科技大学 | 基于深度与能量加权和转发区域划分的水下机会路由 |
CN113079092B (zh) * | 2021-03-29 | 2022-04-15 | 河海大学 | 一种水声网络机会路由抑制数据重复转发的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2747505A1 (en) * | 2012-12-19 | 2014-06-25 | Alcatel Lucent | Clustering of wireless sensor networks based on hidden node detection |
CN106413022A (zh) * | 2016-09-21 | 2017-02-15 | 华南理工大学 | 一种水声传感器网络机会路由协议的实现方法 |
CN110493841A (zh) * | 2019-07-31 | 2019-11-22 | 西北工业大学 | 一种水声传感网络路由实现方法 |
-
2020
- 2020-05-31 CN CN202010481041.2A patent/CN111641990B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2747505A1 (en) * | 2012-12-19 | 2014-06-25 | Alcatel Lucent | Clustering of wireless sensor networks based on hidden node detection |
CN106413022A (zh) * | 2016-09-21 | 2017-02-15 | 华南理工大学 | 一种水声传感器网络机会路由协议的实现方法 |
CN110493841A (zh) * | 2019-07-31 | 2019-11-22 | 西北工业大学 | 一种水声传感网络路由实现方法 |
Non-Patent Citations (1)
Title |
---|
王夙喆.无线传感器网络位置信息获取与应用研究.《中国优秀博士论文全文数据库》.2019, * |
Also Published As
Publication number | Publication date |
---|---|
CN111641990A (zh) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Guan et al. | Distance-vector-based opportunistic routing for underwater acoustic sensor networks | |
CN110493841B (zh) | 一种水声传感网络路由实现方法 | |
Ayaz et al. | Temporary cluster based routing for underwater wireless sensor networks | |
Stojmenovic et al. | Internal nodes based broadcasting in wireless networks | |
CN111901088B (zh) | 水下传感器自组网多路径传输纠删编码块分配方法和装置 | |
CN111641990B (zh) | 高数据包投递率与能量有效性的水声传感器网络传输方法 | |
Liu et al. | Energy-efficient guiding-network-based routing for underwater wireless sensor networks | |
CN110519818B (zh) | 基于簇型拓扑的水声传感器网络机会路由协议实现方法 | |
CN110519819B (zh) | 一种基于分层的水声传感器网络路由协议的通信方法 | |
Baranidharan et al. | Clustered geographic-opportunistic routing protocol for underwater wireless sensor networks | |
CN115022228A (zh) | 基于蚁群算法的声电协同网络的自适应路由系统及方法 | |
Zhu et al. | UPMAC: A localized load-adaptive MAC protocol for underwater acoustic networks | |
CN111416669A (zh) | 一种基于距离向量的水声传感器网络多浮标机会路由方法 | |
Sun et al. | MOR: Multi-objective routing for underwater acoustic wireless sensor networks | |
KR20090060931A (ko) | 무선 센서 네트워크에서의 크로스 레이어 라우팅 방법 | |
Carlson et al. | Location‐aware source routing protocol for underwater acoustic networks of AUVs | |
Yu et al. | Distributed packet-aware routing scheme based on dynamic network coding | |
CN112291729B (zh) | 一种低延迟的水下跨层机会路由方法 | |
Gupta et al. | Delay minimising depth-based routing for multi-sink underwater wireless sensor networks | |
CN114584226A (zh) | 低能耗高吞吐水声容断容迟通讯网络协议栈 | |
CN115379526B (zh) | 一种免于定位的高效水声传感器网络传输方法 | |
Wahid et al. | An environment-aware routing protocol for underwater wireless sensor networks | |
Kampen | Protocols for Underwater Wireless Sensor Networks-Challenges and Solutions | |
Parmar et al. | A cross layered approach to improve energy efficiency of underwater wireless sensor network | |
CN115379526A (zh) | 一种免于定位的高效水声传感器网络传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |