CN110519818B - 基于簇型拓扑的水声传感器网络机会路由协议实现方法 - Google Patents
基于簇型拓扑的水声传感器网络机会路由协议实现方法 Download PDFInfo
- Publication number
- CN110519818B CN110519818B CN201910704219.2A CN201910704219A CN110519818B CN 110519818 B CN110519818 B CN 110519818B CN 201910704219 A CN201910704219 A CN 201910704219A CN 110519818 B CN110519818 B CN 110519818B
- Authority
- CN
- China
- Prior art keywords
- cluster
- packet
- node
- 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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/46—Cluster building
-
- 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
-
- 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/20—Communication route or path selection, e.g. power-based or shortest path routing based on geographic position or location
-
- 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
本发明提供了一种基于簇型拓扑的水声传感器网络机会路由协议实现方法,将机会路由协议与簇型拓扑相结合,转发节点根据邻簇位置与节点密度确定数据包流向方向,提高数据包一跳转发成功率并有效避开通信空区。同时利用簇型拓扑将网络稀疏化,进而明显减少路由控制开销,克服传统有状态机会路由控制开销大的弊端,提高网络能量利用率。建立簇间转发使用簇内节点辅助机制,在主节点转发失败后,簇内其它节点竞争转发,提高簇间转发成功率并减少数据包重传。节点在评估自身优先级时考虑节点剩余能量,因此网络能耗能够分散给每个节点,解决热点问题并有效延长网络寿命。
Description
技术领域
本发明涉及水下信息技术领域,涉及水声通信、水下网络两个领域,具体就是一种适合水下水声传感器网络的路由协议。
背景技术
路由协议是多跳型网络不可缺少的部分。为解决传统路由协议低转发率、高重传率导致节点因能量快速消耗而失效的问题,提出机会路由协议。机会路由摒弃传统只选择单个节点作为下一跳的方式,充分考虑无线传播的广播特性,选择多个节点作为下一跳候选集,然后候选集内部协调选出最优节点作为下一跳。机会路由尤其适合信道环境恶劣的水声网络,能够有效提高一跳传输的成功概率,减少数据重传,降低端到端时延以及延长网络寿命。
机会路由协议通常包括候选集选择和候选集协调两个过程,按照候选集选择策略不同分为基于发送方和基于接收方两种类型。基于发送方的机会路由协议是由发送数据包的节点决定下一跳候选集包含哪些节点,并对这些节点进行优先级排序。发送节点通常知道邻居信息,因此具有较高的一跳转发成功率并保证数据包能够朝着最优的方向流向目的节点,同时也能有效解决通信空区问题。但这种有状态的路由协议要求每个节点知道局部拓扑信息,这通常是由信标交互完成的,导致路由控制开销大,尤其在网络拓扑因为节点漂移、链路中断引起变化时,为保证路由协议的正常运行,节点之间需要更加频繁地交互控制信息,导致节点因能耗过大而快速失效,进而缩短网络寿命。这类机会路由包括GEDAR、VARP、HydroCast等。基于接收方的机会路由协议是由接收到数据包的节点决定自己是否属于候选集并对自己的优先级进行评估。发送节点不需知道邻居信息,因此路由控制开销小、节省更多能量,且因为良好的可扩展性而适合大规模网络。但这种无状态的路由协议无法保证数据包朝着最优的方向流向目的节点,且常常面临通信空区问题。这类机会路由包括DBR、VBF、E-PULRP等。
在水下水声传感器网络中,节点因电池不易更换而能量受限。如何使用最少的能耗将数据包以最少的转发次数、最少的能量消耗,实现最小的端到端时延和最大的包投递率是机会路由协议研究的关键。
发明内容
为了克服现有技术的不足,本发明提供一种基于簇型拓扑的水声传感器网络机会路由协议实现方法。针对水声信道带宽与节点能量受限等特点,本发明解决了现有的基于发送方的机会路由协议控制开销大的问题。
本发明解决其技术问题所采用的技术方案的详细步骤如下:
步骤1:确定网络结构;
三维水下水声传感器网络由两种节点组成:随机部署在水面二维平面的Sink节点和随机部署在水下三维空间内的传感器节点,Sink节点装配有GPS获取自身位置;传感器节点装配有不同类型的传感器采集水域信息;所有Sink节点和传感器节点都装配相同的声调制解调器,使用水声信号进行通信;传感器节点有生成和中继数据包的能力,数据包经多跳传输至任一Sink节点,即认为传递完成;
步骤2:完成网络初始化;
步骤2.1:所有Sink节点通过GPS得到自身位置坐标,所有传感器节点通过定位算法得到传感器节点的位置坐标,并进行周期性的更新;
步骤2.2:所有传感器节点通过周期性的信标交互方式获取所有Sink节点位置坐标;
步骤2.3:整个网络通过分簇算法划分成多个互不重叠的球型簇并进行维护,且分簇算法保证簇内节点在空间上均匀分布;所有簇的半径为声调制解调器通信半径的二分之一,因此簇内所有节点都在彼此的通信范围之内;
步骤2.4:所有簇内传感器节点明确本传感器节点处在哪个簇中、所在簇坐标、所在簇中的传感器节点个数以及所在簇中是否包含Sink节点,而不需要知道簇内有哪些其它传感器节点以及其它传感器节点的位置坐标;其中簇坐标为簇内包含的所有传感器节点坐标的平均值;
步骤2.5:如果一个簇内的一个或多个普通传感器节点能够与另一簇内的某一或某些传感器节点直接通信,认为这两个簇互为邻簇,不同簇间通过信标交互获得邻簇列表;
当网络初始化完成后,每个传感器节点在本地具有以下信息:
其中,传感器节点坐标和簇坐标用三维向量表示,簇坐标表示的是一个虚拟的、位于球型簇球心的点,任意节点到某一簇的距离是该节点到簇球心的距离;传感器节点的所在簇ID为不等于0的常数,作为区分网络中不同簇的标识,当簇ID为0时,表示数据包只在簇内传输;Sink标志位表示该传感器节点所在的簇内是否包含有Sink节点,如果没有Sink节点则将Λ置0,否则Λ置1;ρ表示簇内传感器节点个数;邻簇列表格式如下:
邻簇ID | 邻簇X坐标 | 邻簇Y坐标 | 邻簇Z坐标 | 邻簇簇内节点数目 |
CID(i) | c_x_pos(i) | c_y_pos(i) | c_z_pos(i) | ρ(i) |
… | … | … | … | … |
Sink列表格式:
Sink节点X坐标 | Sink节点Y坐标 |
S_x_pos(k) | S_y_pos(k) |
… | … |
步骤3:机会路由过程
步骤3.1:若网络中某传感器节点n0有数据包packet要发送,packet的包头格式如下:
数据包ID | 上一跳节点坐标 | 上一簇ID | 下一簇ID |
其中,数据包ID作为区分不同数据包的唯一标识,由生成该数据包的传感器节点赋值,该ID通过传感器节点位置与时间唯一标识且在网络传输过程中保持不变;上一跳节点为将数据包一跳传输至本节点的传感器节点;上一簇为上一跳节点所在的簇;下一簇表示该数据包要发往的邻簇;
首先传感器节点n0检查Sink标志位Λ,如果Λ为1,表示传感器节点n0所在簇c0中包含有Sink节点,此时传感器节点n0只在packet包头填入数据包ID并在“上一簇ID”中填入0值,然后将packet发送出去;如果标志位Λ为0,传感器节点n0查询本地Sink列表,找到距离传感器节点n0所在簇c0最近的Sink节点S(K),继续步骤3.2;
步骤3.2:传感器节点n0从邻簇列表中找到比传感器节点n0所在簇c0更靠近Sink节点S(K)的邻簇集合{cl},使用公式(1)计算{cl}中各簇的满意因子a(l):
其中e为传感器节点n0当前剩余能量;E为传感器节点n0初始能量;NADV(l)为邻簇cl的前进指数,计算公式如下:
其中,R为声调制解调器通信半径,L为簇c0与簇cl之间的欧式距离,通过求簇坐标间的欧氏距离得到;Ll为簇cl与S(K)之间的欧式距离;L0为簇c0与sink节点S(K)之间的欧式距离;θ为向量与之间的夹角;
p(dcl,pk_len,ρl)为传感器节点n0向邻簇cl投递包长为pk_len(单位bit)的数据包时的成功概率,p(dcl,pk_len,ρl)计算公式如下:
其中,k为传播因子,表示声信号传播的几何形式,a(f)为吸收系数,使用Throp公式表示为:
传感器节点n0得到{cl}内满意因子最小的邻簇coptimal作为下一簇,并将Coptimal的簇ID写入packet包头的“下一簇ID”字段中;
传感器节点n0继续补充packet包头其它字段:生成数据包ID并添加到“数据包ID”字段中;然后将传感器节点n0的节点坐标添加到“上一跳节点坐标”字段中;将本簇c0的簇ID添加到“上一簇ID”字段中;
最后将数据包packet发送出去,并不再接收与packet有数据包ID相同的数据包;
步骤3.3:当传感器节点nj接收到步骤3.2中n0发送的数据包packet后,首先解析packet包头信息;如果“上一簇ID”为0,则传感器节点n0直接将packet发送给S(K),传感器节点nj不必继续转发,直接丢弃packet,并不再接收与packet有相同“数据包ID”的数据包;如果“上一簇ID”不为0,则进入步骤3.4;
步骤3.4:传感器节点nj继续解析packet包头字段“上一簇ID”,按不同情况进行如下操作:
传感器节点n0为发送数据包packet的传感器节点,所在簇为c0,如果传感器节点nj解析packet发现包头字段“上一簇ID”与传感器节点nj所在簇cj的ID,即与CID(j)相同,此时传感器节点n0与nj在同一簇内,之后继续执行步骤3.5;
如果传感器节点nj解析packet发现包头字段“上一簇ID”与传感器节点nj所在簇cj的ID,即与CID(j)不同,此时传感器节点n0与nj在不同簇内,之后继续执行步骤3.6;
步骤3.5:此时传感器节点nj与传感器节点n0位于同一簇c0(簇ID为CID(0))中,分别比较传感器节点nj和传感器节点n0到packet包头所指示“下一簇”的距离;如果传感器节点n0离“下一簇”更近,传感器节点nj直接丢弃packet,并不再接收与packet有相同“数据包ID”的数据包;如果传感器节点nj离“下一簇”更近,传感器节点nj通过公式(8)计算等待时间Tdelay1并开始计时;
如果传感器节点nj在Tdelay1内接收到与packet数据包ID相同的数据包,且包头“上一簇ID”不为CID(0),则认为packet成功传输到下一簇中,此时传感器节点nj丢弃packet并不再接收与packet有相同数据包ID的数据包;
如果传感器节点nj在Tdelay1内接收到与packet数据包ID相同的数据包,且包头“上一簇ID”为CID(0),则簇c0内有其它节点已转发packet,此时传感器节点nj丢弃packet并不再接收与packet有相同数据包ID的数据包;
如果Tdelay1超时,传感器节点nj将本节点位置坐标添加到packet包头“上一跳节点坐标”字段中,然后将packet发送出去并不再接收与packet有相同数据包ID的数据包;此时packet传输到下一跳,传感器节点nj变为n0,在下一跳接收到packet的普通传感器节点变为nj,之后继续执行步骤3.3;
所述等待时间Tdelay1的计算公式为:
其中,R为声调制解调器通信半径;v为声信号在水中的传播速度,T1为簇内辅助节点最大等待时间,为常量,d为上一跳节点n0与nj之间的距离,计算如下:
β表示簇内辅助节点满意因子,计算公式如下:
其中Lj为节点nj与packet包头“下一簇ID”中的簇之间的距离,簇坐标通过查阅本地邻簇列表得到,L0为packet包头“上一跳节点坐标”与“下一簇”之间的距离;
步骤3.6:此时传感器节点nj与传感器节点n0位于不同簇中,传感器节点nj继续解析packet包头字段“下一簇ID”,如果“下一簇ID”与传感器节点nj所在簇cj的簇ID不同,则继续执行步骤3.7;如果“下一簇ID”与传感器节点nj所在簇cj的簇ID相同,则继续执行步骤3.8;
步骤3.7:此时传感器节点n0不准备将packet发给簇cj,传感器节点nj直接丢弃packet;
步骤3.8:此时传感器节点nj首先检查本地sink标志位Λ,如果Λ为1,传感器节点nj只将packet的“上一簇ID”字段置0值,然后发送packet并不再接收与packet有相同数据包ID的数据包;如果sink标志位Λ为0,传感器节点nj查询本地Sink列表找到距离nj所在簇cj最近的Sink节点S(K)*节点,执行步骤3.9;
然后通过公式(11)计算等待时间Tdelay2并开始计时;
其中,a为转发节点满意度因子,通过公式(1)计算得到;
如果传感器节点nj在Tdelay2时间内接收到与packet的数据包ID和“上一簇ID”都相同的数据包,认为上一簇对packet重复转发,此时传感器节点nj直接丢弃该数据包;
如果传感器节点nj在Tdelay2时间内接收到与packet数据包ID相同但“上一簇ID”不同的数据包,认为非最优邻簇对packet转发,此时传感器节点nj也直接丢弃该数据包;
如果传感器节点nj在Tdelay2时间内接收到与packet数据包ID相同且数据包头“上一簇ID”与nj所在簇cj的簇ID相同,传感器节nj则直接丢弃packet;
如果Tdelay2超时,此时传感器节点nj变为n0,然后将packet发送出去并不再接收与packet有相同数据包ID的数据包,下一跳接收到packet的传感器节点变为nj,跳转至步骤3.3,直至packet数据包传输到任一sink节点。
本发明的有益效果具有以下优点:
1)将机会路由协议与簇型拓扑相结合,转发节点根据邻簇位置与节点密度确定数据包流向方向,提高数据包一跳转发成功率并有效避开通信空区。同时利用簇型拓扑将网络稀疏化,进而明显减少路由控制开销,克服传统有状态机会路由控制开销大的弊端,提高网络能量利用率。
2)簇间转发使用簇内节点辅助机制。在主节点转发失败后,簇内其它节点竞争转发,提高簇间转发成功率并减少数据包重传。
3)节点在评估自身优先级时考虑节点剩余能量,因此网络能耗能够分散给每个节点,解决热点问题并有效延长网络寿命。
附图说明
图1是本发明三维水下水声传感器网络结构图。
图2是本发明水下水声传感器网路簇型拓扑图。
图3是本发明传感器节点转发原理示意图。
图4是本发明进行仿真时的节点分布俯视图。其中“Rx Group Config”模型用于配置管道阶段。
图5是本发明的仿真结果图,其中图5(a)为节点数目和数据包投递率的关系示意图,图5(b)为节点数目和数据包的端到端时延的关系示意图,图5(c)为节点数目和数据包的能量消耗的关系示意图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
步骤1:确定网络结构。
图1为三维水下水声传感器网络结构。三维水下水声传感器网络由两种节点组成:随机部署在水面二维平面的Sink节点和随机部署在水下三维空间内的传感器节点,Sink节点装配有GPS获取自身位置;传感器节点装配有不同类型的传感器采集水域信息。所有Sink节点和传感器节点都装配相同的声调制解调器,使用水声信号进行通信;传感器节点有生成和中继数据包的能力,数据包经多跳传输至任一Sink节点,即认为传递完成;
步骤2:完成网络初始化。
步骤2.1:所有Sink节点通过GPS得到自身位置坐标,所有传感器节点通过定位算法(如MDS-Map算法)得到传感器节点的位置坐标,并进行周期性的更新;
步骤2.2:所有传感器节点通过周期性的信标交互方式获取所有Sink节点位置坐标(例如GEDAR采用的信标广播方式);
步骤2.3:为减少机会路由协议所需的控制开销,使用簇型拓扑来将网络稀疏化。如图2,整个网络通过分簇算法(如改进的LEACH算法)划分成多个互不重叠的球型簇并进行维护,且分簇算法最大程度上保证簇内节点在空间上均匀分布;所有簇的半径为声调制解调器通信半径的二分之一,因此簇内所有节点都在彼此的通信范围之内;
步骤2.4:所有簇内传感器节点明确本传感器节点处在哪个簇中、所在簇坐标、所在簇中的传感器节点个数以及所在簇中是否包含Sink节点,而不需要知道簇内有哪些其它传感器节点以及其它传感器节点的位置坐标;其中簇坐标由簇内包含的所有传感器节点坐标取平均值得到;
步骤2.5:如果一个簇内的一个或多个普通传感器节点能够与另一簇内的某一或某些传感器节点直接通信,认为这两个簇互为邻簇,不同簇间通过信标交互获得邻簇列表;
当网络初始化完成后,每个传感器节点在本地具有以下信息:
其中,传感器节点坐标和簇坐标用三维向量表示,簇坐标表示的是一个虚拟的、位于球型簇球心的点,不一定有传感器节点位于这个点,任意节点到某一簇的距离是该节点到簇球心的距离;传感器节点的所在簇ID为不等于0的常数,作为区分网络中不同簇的标识,当簇ID为0时,表示数据包只在簇内传输;Sink标志位表示该传感器节点所在的簇内是否包含有Sink节点,如果没有Sink节点则将Λ置0,否则Λ置1;ρ表示簇内传感器节点个数;邻簇列表格式如下:
邻簇ID | 邻簇X坐标 | 邻簇Y坐标 | 邻簇Z坐标 | 邻簇簇内节点数目 |
CID(i) | c_x_pos(i) | c_y_pos(i) | c_z_pos(i) | ρ(i) |
… | … | … | … | … |
Sink列表格式:
Sink节点X坐标 | Sink节点Y坐标 |
S_x_pos(k) | S_y_pos(k) |
… | … |
步骤3:机会路由过程
步骤3.1:若网络中某传感器节点n0有数据包packet要发送,packet的包头格式如下:
数据包ID | 上一跳节点坐标 | 上一簇ID | 下一簇ID |
其中,数据包ID作为区分不同数据包的唯一标识,由生成该数据包的传感器节点赋值,该ID通过传感器节点位置与时间唯一标识且在网络传输过程中保持不变;上一跳节点为将数据包一跳传输至本节点的传感器节点;上一簇为上一跳节点所在的簇;下一簇表示该数据包要发往的邻簇;
首先传感器节点n0检查Sink标志位Λ,如果Λ为1,表示传感器节点n0所在簇c0中包含有Sink节点,此时传感器节点n0只在packet包头填入数据包ID并在“上一簇ID”中填入0值,然后将packet发送出去;如果标志位Λ为0,传感器节点n0查询本地Sink列表,找到距离传感器节点n0所在簇c0最近的Sink节点S(K),继续步骤3.2;
步骤3.2:传感器节点n0从邻簇列表中找到比传感器节点n0所在簇c0更靠近Sink节点S(K)的邻簇集合{cl},使用公式(1)计算{cl}中各簇的满意因子a(l):
其中e为传感器节点n0当前剩余能量;E为传感器节点n0初始能量;NADV(l)为邻簇cl的前进指数,计算公式如下:
如图3,R为声调制解调器通信半径;L为簇c0与簇cl之间的欧式距离,通过求簇坐标间的欧氏距离得到;Ll为簇cl与S(K)之间的欧式距离;L0为簇c0与sink节点S(K)之间的欧式距离;θ为向量与之间的夹角;
p(dcl,pk_len,ρl)为传感器节点n0向邻簇cl投递包长为pk_len(单位bit)的数据包时的成功概率,p(dcl,pk_len,ρl)计算公式如下:
其中,k为传播因子,表示声信号传播的几何形式,k=2为球面传播,k=1为柱面传播;a(f)为吸收系数,使用Throp公式表示为:
通过以上计算,传感器节点n0得到{cl}内满意因子最小的邻簇coptimal作为下一簇,并将coptimal的簇ID写入packet包头的“下一簇ID”字段中;
传感器节点n0继续补充packet包头其它字段:生成数据包ID并添加到“数据包ID”字段中;然后将传感器节点n0的节点坐标添加到“上一跳节点坐标”字段中;将本簇c0的簇ID添加到“上一簇ID”字段中;
最后将数据包packet发送出去,并不再接收与packet有数据包ID相同的数据包;
步骤3.3:当传感器节点nj接收到步骤3.2中n0发送的数据包packet后,首先解析packet包头信息;如果“上一簇ID”为0,则传感器节点n0直接将packet发送给S(K),传感器节点nj不必继续转发,直接丢弃packet,并不再接收与packet有相同“数据包ID”的数据包;如果“上一簇ID”不为0,则进入步骤3.4;
步骤3.4:传感器节点nj继续解析packet包头字段“上一簇ID”,按不同情况进行如下操作:
如图3是传感器节点转发原理示意图,虚线圆包含的传感器节点属于一簇,实线圆表示传感器节点信号的辐射范围,n0为发送数据包packet的传感器节点,所在簇为c0,如果传感器节点nj解析packet发现包头字段“上一簇ID”与传感器节点nj所在簇cj的ID,即与CID(j)相同,此时传感器节点n0与nj在同一簇内,nj可能为图3中的nj5或nj6,称nj为“簇内辅助节点”,之后继续执行步骤3.5;
如果传感器节点nj解析packet发现包头字段“上一簇ID”与传感器节点nj所在簇cj的ID,即与CID(j)不同,此时传感器节点n0与nj在不同簇内,nj可能是图3中的nj1、nj2或nj3、nj4,之后继续执行步骤3.6;
步骤3.5:此时传感器节点nj与传感器节点n0位于同一簇c0(簇ID为CID(0))中,分别比较传感器节点nj和传感器节点n0到packet包头所指示“下一簇”的距离;如果传感器节点n0离“下一簇”更近,传感器节点nj直接丢弃packet,并不再接收与packet有相同“数据包ID”的数据包;如果传感器节点nj离“下一簇”更近,传感器节点nj通过公式(8)计算等待时间Tdelay1并开始计时;
如果传感器节点nj在Tdelay1内接收到与packet数据包ID相同的数据包,且包头“上一簇ID”不为CID(0),则认为packet成功传输到下一簇中,此时传感器节点nj丢弃packet并不再接收与packet有相同数据包ID的数据包;
如果传感器节点nj在Tdelay1内接收到与packet数据包ID相同的数据包,且包头“上一簇ID”为CID(0),则簇c0内有其它节点已转发packet,此时传感器节点nj丢弃packet并不再接收与packet有相同数据包ID的数据包;
如果Tdelay1超时,传感器节点nj将本节点位置坐标添加到packet包头“上一跳节点坐标”字段中,然后将packet发送出去并不再接收与packet有相同数据包ID的数据包;此时packet传输到下一跳,传感器节点nj变为n0,在下一跳接收到packet的普通传感器节点变为nj,之后继续执行步骤3.3;
所述等待时间Tdelay1的计算公式为:
其中,R为声调制解调器通信半径;v为声信号在水中的传播速度,T1为簇内辅助节点最大等待时间,为常量,d为上一跳节点n0与nj之间的距离,计算如下:
β表示簇内辅助节点满意因子,计算公式如下:
其中Lj为节点nj与packet包头“下一簇ID”中的簇之间的距离,簇坐标通过查阅本地邻簇列表得到,L0为packet包头“上一跳节点坐标”与“下一簇”之间的距离;
步骤3.6:此时传感器节点nj与传感器节点n0位于不同簇中,传感器节点nj继续解析packet包头字段“下一簇ID”,如果“下一簇ID”与传感器节点nj所在簇cj的簇ID不同,如图3所示,此时nj可能为nj3或nj4,则继续执行步骤3.7;如果“下一簇ID”与传感器节点nj所在簇cj的簇ID相同,如图3此时nj可能为nj1或nj2,则继续执行步骤3.8;
步骤3.7:此时传感器节点n0不准备将packet发给簇cj,传感器节点nj直接丢弃packet;
步骤3.8:此时传感器节点nj首先检查本地sink标志位Λ,如果Λ为1,传感器节点nj只将packet的“上一簇ID”字段置0值,然后发送packet并不再接收与packet有相同数据包ID的数据包;如果sink标志位Λ为0,传感器节点nj查询本地Sink列表找到距离nj所在簇cj最近的Sink节点S(K)*节点,执行步骤3.9;
然后通过公式(11)计算等待时间Tdelay2并开始计时;
其中,α为转发节点满意度因子,通过公式(1)计算得到;
如果传感器节点nj在Tdelay2时间内接收到与packet的数据包ID和“上一簇ID”都相同的数据包,认为上一簇对packet重复转发,此时传感器节点nj直接丢弃该数据包;
如果传感器节点nj在Tdelay2时间内接收到与packet数据包ID相同但“上一簇ID”不同的数据包,认为非最优邻簇对packet转发,此时传感器节点nj也直接丢弃该数据包;
如果传感器节点nj在Tdelay2时间内接收到与packet数据包ID相同且数据包头“上一簇ID”与nj所在簇cj的簇ID相同,说明比传感器节点nj优先级更高(Tdelay2更短)的同一簇内的其它传感器节点已转发packet,nj则直接丢弃packet;
如果Tdelay2超时,此时传感器节点nj变为n0,然后将packet发送出去并不再接收与packet有相同数据包ID的数据包,下一跳接收到packet的传感器节点变为nj,跳转至步骤3.3,直至packet数据包传输到任一sink节点。
使用Opnet对本发明进行仿真。所有普通传感器节点分布在3km×3km×3km的海域中,3个Sink节点分布在海面。声调制解调器的发射功率为0.026W,带宽20kHz,背景噪声源包括湍流、航船、海浪以及热噪声,设定海面风速为20m/s,航船因子为0.5,声速为1500m/s。声调制解调器使用BPSK调制方式,在MAC层使用Aloha协议。通过增加海域中传感器节点的数量,得到本发明性能的变化曲线。
指定普通传感器节点1作为数据包产生节点,节点1产生数据包的速率为6pkts/min,包长为1000bit。其余传感器节点将数据包多跳传递至任一Sink节点,即认为传递完成。节点1发送数据包与其它普通传感器中继数据包的过程按照技术方案中的具体步骤来执行。仿真结束后统计数据包投递率、端到端时延和能量开销。
仿真结果如图5所示,图5(a)显示数据包投递率随着海域中传感器节点数量的增加而增加,并且在节点数目到达35后趋于稳定,达到90%(检错门限为0.01)。这是因为候选节点数目的增加,提高了数据包一跳转发的成功概率。相较于传统机会路由协议(检错门限为0.01时,投递率最高约为70%),本发明因为使用“簇内辅助节点”提升簇间转发成功率,就整个网络而言有更高的投递率。
图5(b)中数据包的端到端时延随着节点数目的增加而减小并在节点数目达到35后趋于稳定。这是因为在网络中节点数目较多时,数据包的传输路径与源节点和Sink节点间的直线更接近。
图5(c)中在一段时间内传递所有数据包的能量开销(包括控制开销与转发开销)随着节点数目的增加而减少。这是因为随着网络中数据一跳转发距离的增加,转发次数减少进而降低能量开销。相较于传统有状态机会路由(例如HydroCast),在节点数目和网络负载相等时,本发明因为基于簇型拓扑减少控制开销,所以有更低的能量消耗(HydroCast能耗分布在50-80J之间)。
Claims (1)
1.一种基于簇型拓扑的水声传感器网络机会路由协议实现方法,其特征在于包括下述步骤:
步骤1:确定网络结构;
三维水下水声传感器网络由两种节点组成:随机部署在水面二维平面的Sink节点和随机部署在水下三维空间内的传感器节点,Sink节点装配有GPS获取自身位置;传感器节点装配有不同类型的传感器采集水域信息;所有Sink节点和传感器节点都装配相同的声调制解调器,使用水声信号进行通信;传感器节点有生成和中继数据包的能力,数据包经多跳传输至任一Sink节点,即认为传递完成;
步骤2:完成网络初始化;
步骤2.1:所有Sink节点通过GPS得到自身位置坐标,所有传感器节点通过定位算法得到传感器节点的位置坐标,并进行周期性的更新;
步骤2.2:所有传感器节点通过周期性的信标交互方式获取所有Sink节点位置坐标;
步骤2.3:整个网络通过分簇算法划分成多个互不重叠的球型簇并进行维护,且分簇算法保证簇内节点在空间上均匀分布;所有簇的半径为声调制解调器通信半径的二分之一,因此簇内所有节点都在彼此的通信范围之内;
步骤2.4:所有簇内传感器节点明确本传感器节点处在哪个簇中、所在簇坐标、所在簇中的传感器节点个数以及所在簇中是否包含Sink节点,而不需要知道簇内有哪些其它传感器节点以及其它传感器节点的位置坐标;其中簇坐标为簇内包含的所有传感器节点坐标的平均值;
步骤2.5:如果一个簇内的一个或多个普通传感器节点能够与另一簇内的某一或某些传感器节点直接通信,认为这两个簇互为邻簇,不同簇间通过信标交互获得邻簇列表;
当网络初始化完成后,每个传感器节点在本地具有以下信息:
其中,传感器节点坐标和簇坐标用三维向量表示,簇坐标表示的是一个虚拟的、位于球型簇球心的点,任意节点到某一簇的距离是该节点到簇球心的距离;传感器节点的所在簇ID为不等于0的常数,作为区分网络中不同簇的标识,当簇ID为0时,表示数据包只在簇内传输;Sink标志位表示该传感器节点所在的簇内是否包含有Sink节点,如果没有Sink节点则将Λ置0,否则Λ置1;ρ表示簇内传感器节点个数;邻簇列表格式如下:
Sink列表格式:
步骤3:机会路由过程
步骤3.1:若网络中某传感器节点n0有数据包packet要发送,packet的包头格式如下:
其中,数据包ID作为区分不同数据包的唯一标识,由生成该数据包的传感器节点赋值,该ID通过传感器节点位置与时间唯一标识且在网络传输过程中保持不变;上一跳节点为将数据包一跳传输至本节点的传感器节点;上一簇为上一跳节点所在的簇;下一簇表示该数据包要发往的邻簇;
首先传感器节点n0检查Sink标志位Λ,如果Λ为1,表示传感器节点n0所在簇c0中包含有Sink节点,此时传感器节点n0只在packet包头填入数据包ID并在“上一簇ID”中填入0值,然后将packet发送出去;如果标志位Λ为0,传感器节点n0查询本地Sink列表,找到距离传感器节点n0所在簇c0最近的Sink节点S(K),继续步骤3.2;
步骤3.2:传感器节点n0从邻簇列表中找到比传感器节点n0所在簇c0更靠近Sink节点S(K)的邻簇集合{cl},使用公式(1)计算{cl}中各簇的满意因子α(l):
其中e为传感器节点n0当前剩余能量;E为传感器节点n0初始能量;NADV(l)为邻簇cl的前进指数,计算公式如下:
其中,R为声调制解调器通信半径,L为簇c0与簇cl之间的欧式距离,通过求簇坐标间的欧氏距离得到;Ll为簇cl与S(K)之间的欧式距离;L0为簇c0与sink节点S(K)之间的欧式距离;θ为向量与之间的夹角;
其中,k为传播因子,表示声信号传播的几何形式,a(f)为吸收系数,使用Throp公式表示为:
传感器节点n0得到{cl}内满意因子最小的邻簇coptimal作为下一簇,并将coptimal的簇ID写入packet包头的“下一簇ID”字段中;
传感器节点n0继续补充packet包头其它字段:生成数据包ID并添加到“数据包ID”字段中;然后将传感器节点n0的节点坐标添加到“上一跳节点坐标”字段中;将本簇c0的簇ID添加到“上一簇ID”字段中;
最后将数据包packet发送出去,并不再接收与packet有数据包ID相同的数据包;
步骤3.3:当传感器节点nj接收到步骤3.2中n0发送的数据包packet后,首先解析packet包头信息;如果“上一簇ID”为0,则传感器节点n0直接将packet发送给S(K),传感器节点nj不必继续转发,直接丢弃packet,并不再接收与packet有相同“数据包ID”的数据包;如果“上一簇ID”不为0,则进入步骤3.4;
步骤3.4:传感器节点nj继续解析packet包头字段“上一簇ID”,按不同情况进行如下操作:
传感器节点n0为发送数据包packet的传感器节点,所在簇为c0,如果传感器节点nj解析packet发现包头字段“上一簇ID”与传感器节点nj所在簇cj的ID,即与CID(j)相同,此时传感器节点n0与nj在同一簇内,之后继续执行步骤3.5;
如果传感器节点nj解析packet发现包头字段“上一簇ID”与传感器节点nj所在簇cj的ID,即与CID(j)不同,此时传感器节点n0与nj在不同簇内,之后继续执行步骤3.6;
步骤3.5:此时传感器节点nj与传感器节点n0位于同一簇c0(簇ID为CID(0))中,分别比较传感器节点nj和传感器节点n0到packet包头所指示“下一簇”的距离;如果传感器节点n0离“下一簇”更近,传感器节点nj直接丢弃packet,并不再接收与packet有相同“数据包ID”的数据包;如果传感器节点nj离“下一簇”更近,传感器节点nj通过公式(8)计算等待时间Tdelay1并开始计时;
如果传感器节点nj在Tdelay1内接收到与packet数据包ID相同的数据包,且包头“上一簇ID”不为CID(0),则认为packet成功传输到下一簇中,此时传感器节点nj丢弃packet并不再接收与packet有相同数据包ID的数据包;
如果传感器节点nj在Tdelay1内接收到与packet数据包ID相同的数据包,且包头“上一簇ID”为CID(0),则簇c0内有其它节点已转发packet,此时传感器节点nj丢弃packet并不再接收与packet有相同数据包ID的数据包;
如果Tdelay1超时,传感器节点nj将本节点位置坐标添加到packet包头“上一跳节点坐标”字段中,然后将packet发送出去并不再接收与packet有相同数据包ID的数据包;此时packet传输到下一跳,传感器节点nj变为n0,在下一跳接收到packet的普通传感器节点变为nj,之后继续执行步骤3.3;
所述等待时间Tdelay1的计算公式为:
其中,R为声调制解调器通信半径;v为声信号在水中的传播速度,T1为簇内辅助节点最大等待时间,为常量,d为上一跳节点n0与nj之间的距离,计算如下:
β表示簇内辅助节点满意因子,计算公式如下:
其中Lj为节点nj与packet包头“下一簇ID”中的簇之间的距离,簇坐标通过查阅本地邻簇列表得到,L0为packet包头“上一跳节点坐标”与“下一簇”之间的距离;
步骤3.6:此时传感器节点nj与传感器节点n0位于不同簇中,传感器节点nj继续解析packet包头字段“下一簇ID”,如果“下一簇ID”与传感器节点nj所在簇cj的簇ID不同,则继续执行步骤3.7;如果“下一簇ID”与传感器节点nj所在簇cj的簇ID相同,则继续执行步骤3.8;
步骤3.7:此时传感器节点n0不准备将packet发给簇cj,传感器节点nj直接丢弃packet;
步骤3.8:此时传感器节点nj首先检查本地sink标志位Λ,如果Λ为1,传感器节点nj只将packet的“上一簇ID”字段置0值,然后发送packet并不再接收与packet有相同数据包ID的数据包;如果sink标志位Λ为0,传感器节点nj查询本地Sink列表找到距离nj所在簇cj最近的Sink节点S(K)*节点,执行步骤3.9;
然后通过公式(11)计算等待时间Tdelay2并开始计时;
其中,α为转发节点满意度因子,通过公式(1)计算得到;
如果传感器节点nj在Tdelay2时间内接收到与packet的数据包ID和“上一簇ID”都相同的数据包,认为上一簇对packet重复转发,此时传感器书点nj直接丢弃该数据包;
如果传感器节点nj在Tdelay2时间内接收到与packet数据包ID相同但“上一簇ID”不同的数据包,认为非最优邻簇对packet转发,此时传感器节点nj也直接丢弃该数据包;
如果传感器节点nj在Tdelay2时间内接收到与packet数据包ID相同且数据包头“上一簇ID”与nj所在簇cj的簇ID相同,传感器节nj则直接丢弃packet;
如果Tdelay2超时,此时传感器节点nj变为n0,然后将packet发送出去并不再接收与packet有相同数据包ID的数据包,下一跳接收到packet的传感器节点变为nj,跳转至步骤3.3,直至packet数据包传输到任一sink节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910704219.2A CN110519818B (zh) | 2019-07-31 | 2019-07-31 | 基于簇型拓扑的水声传感器网络机会路由协议实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910704219.2A CN110519818B (zh) | 2019-07-31 | 2019-07-31 | 基于簇型拓扑的水声传感器网络机会路由协议实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110519818A CN110519818A (zh) | 2019-11-29 |
CN110519818B true CN110519818B (zh) | 2022-07-12 |
Family
ID=68624513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910704219.2A Active CN110519818B (zh) | 2019-07-31 | 2019-07-31 | 基于簇型拓扑的水声传感器网络机会路由协议实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110519818B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111278078B (zh) * | 2020-01-21 | 2022-06-10 | 桂林电子科技大学 | 一种移动稀疏水声传感器网络自适应路由协议的实现方法 |
CN111416669B (zh) * | 2020-03-11 | 2022-03-29 | 华南理工大学 | 一种基于距离向量的水声传感器网络多浮标机会路由方法 |
CN112954642B (zh) * | 2021-03-01 | 2022-03-15 | 西北工业大学 | 一种适应复杂动态水声传感器网络的分簇方法 |
CN114007260B (zh) * | 2021-10-21 | 2023-09-01 | 深圳彤辉科技有限公司 | 一种无线传感器网络中的节点间协作定位方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010100655A2 (en) * | 2009-02-12 | 2010-09-10 | Kumar Praveen | Addressing and routing scheme for distributed systems |
CN109246786A (zh) * | 2018-10-16 | 2019-01-18 | 天津大学 | 水下传感器网络中基于距离的能量均衡动态地理路由方法 |
-
2019
- 2019-07-31 CN CN201910704219.2A patent/CN110519818B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010100655A2 (en) * | 2009-02-12 | 2010-09-10 | Kumar Praveen | Addressing and routing scheme for distributed systems |
CN109246786A (zh) * | 2018-10-16 | 2019-01-18 | 天津大学 | 水下传感器网络中基于距离的能量均衡动态地理路由方法 |
Non-Patent Citations (3)
Title |
---|
An Energy-Aware and Void-Avoidable Routing;ZHUO WANG等;《IEEE Access》;IEEE;20180213;第6卷;第7792-7801页 * |
UWSNs中基于深度调整的混合型路由协议;张红军等;《计算机工程与设计》;20161116;第37卷(第11期);第2898-2903页 * |
一种新的水下无线传感网络的路由协议;姜慧霖等;《仪表技术与传感器》;20160915(第09期);第108-111页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110519818A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110519818B (zh) | 基于簇型拓扑的水声传感器网络机会路由协议实现方法 | |
Rahman et al. | EECOR: An energy-efficient cooperative opportunistic routing protocol for underwater acoustic sensor networks | |
Chirdchoo et al. | Sector-based routing with destination location prediction for underwater mobile networks | |
Coutinho et al. | Design guidelines for opportunistic routing in underwater networks | |
Yu et al. | WDFAD-DBR: Weighting depth and forwarding area division DBR routing protocol for UASNs | |
CN110493841B (zh) | 一种水声传感网络路由实现方法 | |
CN105916183B (zh) | 基于链路质量和剩余能量的无线传感器网络路由选择方法 | |
CN111510956B (zh) | 一种基于分簇和增强学习的混合路由方法、海洋通信系统 | |
CN111049743A (zh) | 一种联合优化的水声多跳协作通信网络路由选择方法 | |
CN111083758A (zh) | 一种高能效声电协同传输网络路由系统及方法 | |
Baranidharan et al. | Clustered geographic-opportunistic routing protocol for underwater wireless sensor networks | |
CN111328096B (zh) | 自主水下航行器辅助的UWSNs路由空洞修复方法 | |
Shrivastava et al. | A survey on congestion adaptive routing protocols for mobile ad-hoc networks | |
Wang et al. | Reinforcement learning-based opportunistic routing protocol using depth information for energy-efficient underwater wireless sensor networks | |
Sun et al. | MOR: Multi-objective routing for underwater acoustic wireless sensor networks | |
CN111641990B (zh) | 高数据包投递率与能量有效性的水声传感器网络传输方法 | |
Meghanathan | A location prediction-based reactive routing protocol to minimize the number of route discoveries and hop count per path in mobile ad hoc networks | |
Zhang et al. | A beam width and direction concerned routing for underwater acoustic sensor networks | |
CN116782330A (zh) | Sd-uanet中考虑负载和链路变化的路径选择方法及介质 | |
CN112423356B (zh) | 基于能量均衡的无人装备集群aodv路由方法 | |
CN112291729B (zh) | 一种低延迟的水下跨层机会路由方法 | |
Jang et al. | Direction based routing strategy to reduce broadcast storm in MANET | |
CN114867081A (zh) | 基于中继无人机节点的移动自组网多源传输路由方法 | |
CN114449608A (zh) | 一种基于Q-Learning的无人机自组网自适应路由方法 | |
Hajare et al. | Robust Opportunistic Routing Solutions for under water Sensor Networks |
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 |