一种基于分层的水声传感器网络路由协议的通信方法

文档序号:1759293 发布日期:2019-11-29 浏览:26次 >En<

阅读说明:本技术 一种基于分层的水声传感器网络路由协议的通信方法 (A kind of communication means of the water sound sensor network Routing Protocol based on layering ) 是由 赵瑞琴 韩安翠 李宁 于 2019-08-19 设计创作,主要内容包括:本发明提供了一种基于分层的水声传感器网络路由协议的通信方法,传感器节点和sink节点的声调制解调器都检测并记录接收到的数据包能量大小,并且调整发射能量将数据包以指定能量发送出去;若传感器节点接收到传感器节点发送的数据包,传感器节点首先检测接收到的能量,然后解析数据包,得到传感器节点的节点ID和层数;然后比较层数并进行相应的通信处理。本发明网络能量开销低,传感器节点根据数据包接收能量以及父节点和兄弟节点最小能量调整发射能量,在保证传输可靠的同时降低能量开销。网络能量均衡分布,考虑传感器节点的剩余电量,将能量消耗公平地分摊到每个传感器节点上,避免优先级高的节点因负载过重、电量快速消耗而失效。(The communication means of the present invention provides a kind of water sound sensor network Routing Protocol based on layering, the acoustic modem of sensor node and sink node all detects and records the data packet energy size received, and adjusts emitted energy and send data packet with prescribed energy;If sensor node receives the data packet of sensor node transmission, sensor node detects the energy received first, then parses data packet, obtains the node ID and the number of plies of sensor node;Then compare the number of plies and carry out corresponding communication process.Inventive network energy expense is low, and sensor node receives energy and father node according to data packet and brotgher of node least energy adjusts emitted energy, reduces energy expense while guaranteeing that transmission is reliable.Network energy equiblibrium mass distribution considers the remaining capacity of sensor node, energy consumption is liberally shared on each sensor node, the node for avoiding priority high fails due to overload, electricity rapidly deplete.)

一种基于分层的水声传感器网络路由协议的通信方法

技术领域

本发明涉及水下信息技术领域,尤其是一种水声传感器网络路由协议,适合于水声传感器网络系统。

背景技术

水声信道的带宽小、传输延迟长、不稳定等不足,对水声传感器网络路由协议的设计提出了很高的要求。

在水声传感器网络路由协议中,机会路由利用了无线传输的广播特性,通过多个节点对同一数据包的接收,克服水声信道传输不可靠和链路间歇性中断的问题。机会路由协议总体可分为三类,基于地理位置的协议、基于压力信息的协议和分层协议。

基于地理位置的协议中,VBF通过在源、目的节点间架设虚拟管道限制数据包的转发区域,此协议鲁棒性好,但是能量开销较大,且没有针对通信空区问题提出解决方案;AHH-VBF协议在VBF的基础上提高了节点部署稀疏区的包投递率,减少了节点部署稠密区包的重发次数;GEDAR协议动态地在每一跳选择一组没有隐藏终端的邻节点作为下一跳中继转发节点,并且通过调整无效节点的位置来实现通信空区的恢复,保证了数据包的可靠传输,但是由于采用了基于计时器的候选节点协调机制,该协议的端到端时延较大,而且该协议中信标消息占用较多的信道带宽与能量资源。

基于压力信息的协议中,DBR协议利用节点的深度差选择下一跳候选节点,但是它没有考虑中继节点的剩余电量,也没有解决水声传感器网络中可能存在的通信空区问题;HydroCast协议依据节点的深度信息,在每跳选择一组没有隐藏终端的候选中继节点,采用在二维表面节点间泛洪的方法进行空区恢复,但是该空区恢复方法要求很大的能量开销;VARP利用节点的方向信息,避免选择无效节点作为下一跳中继节点,解决了通信空区的问题。但是在VARP中,优先级较高的节点会因频繁转发数据包而导致电量快速消耗。

分层协议中,E-PULRP协议将网络中的节点划分为不同层,动态地在每一层选取中继节点,帮助数据包传递至sink节点。由于节点的移动性,E-PULRP中的分层需要不断更新,因此造成很大的控制开销,且E-PULRP没有考虑通信空区问题。

机会路由在每跳动态地选择下一跳中继转发节点,应用于水声传感器网络时能够改进网络性能。但是现有的针对水声传感器网络的各机会路由协议都还存在一些问题。

发明内容

为了克服现有技术的不足,本发明提供一种基于分层的水声传感器网络路由协议的通信方法。为了在保证数据包投递率的前提下,减少数据包的重发次数,实现网络中能量的均衡分布,本发明给出了一种基于分层的能量均衡水声传感器网络机会路由协议。本发明能够应用于通常的单sink水声传感器网络,

本发明包括分层和路由两部分,其中步骤1为网络分层过程,步骤2为机会路由协议。网络分层过程与机会路由协议并行运行,但网络分层过程要先于机会路由协议开始运行,先于机会路由协议的时长由网络具体部署状况决定。

本发明解决其技术问题所采用的技术方案的具体步骤如下:

步骤1:网络分层过程;

单个sink节点部署在海面,传感器节点随机部署在指定海域,传感器节点装配有各种传感器和声调制解调器,用于采集海域信息和传输数据;sink节点装配有同类型的声调制解调器;传感器节点将数据包通过多跳传输至sink节点,即认为传递完成;

传感器节点和sink节点的声调制解调器都检测并记录接收到的数据包能量大小,并且调整发射能量将数据包以指定能量发送出去;

步骤1.1:所有传感器节点在本地建立本地信息列表,格式如下:

节点ID 层数Layer 父节点ID 父节点最小能量E<sub>min_f</sub> 兄弟节点ID 兄弟节点最小能量E<sub>min_b</sub>

其中节点ID是区分不同节点的唯一标识,Sink节点和传感器节点统一编号;Layer取非负整数表示节点所在层数,设置sink节点的Layer为0,所有传感器节点Layer初始值为null;最小能量表示已成功接收到的信号的最小能量,初始值设为无穷大;

步骤1.2:sink节点按照如下格式周期性生成分层探针包,并以固定能量ECT广播分层探针包;

节点ID Layer 包类型

sink节点将Layer置为0;包类型用于区分当前包是分层探针包还是数据包;

步骤1.3:设传感器节点n1接收到分层探针包,首先检测接收到的分层探针包的能量Ercu,然后解析该分层探针包:

分层探针包的“节点ID”是发送该分层探针包的上一跳节点,设为n0;“Layer”表示上一跳节点n0所在的层数,设为Layer0

如果传感器节点n1所在的层数Layer1为null,则传感器节点n1将传感器节点n0设置为自己的父节点,令所在层数Layer1为Layer0+1,令父节点最小能量为Emin_f=Ercv,然后将父节点ID、层数Layer1、父节点最小能量Emin_f写入传感器节点n1的本地信息列表,之后进入步骤1.4;

如果Layer1不为null且Layer1小于传感器节点n0所在的层数Layer0,此时传感器节点n1不对本地信息列表做任何修改;

如果Layer1不为null且Layer1-Layer0=1,传感器节点n1首先比较Ercv和本地信息列表记录的父节点最小能量Emin_f,如果Ercv,>Emin_f,不对本地信息列表做任何修改;如果ErcvEmin_f,将传感器节点n0设置为自己的父节点,令父节点最小能量为Emin_f=Ercv,然后将父节点ID、父节点最小能量Emin_f写入传感器节点n1的本地信息列表中,之后进入步骤1.4;

如果Layer1不为null且Layer1-Layer0>1,传感器节点n1将传感器节点n0设置为自己的父节点,将自己所在的层数Layer1设置为Layer0+1,令父节点最小能量为Emin_f=Ercv,然后将父节点ID、层数Layer1、父节点最小能量Emin_f写入传感器节点n1的本地信息列表中,之后进入步骤1.4;

如果Layer1不为null且Layer1=Layer0,即传感器节点n1与n0在同一层内,此时传感器节点n1比较Ercv,与本地信息列表记录的兄弟节点最小能量Emin_b,如果Ercv≥Emin_b,不对本地信息列表做任何修改;如果Ercv<Emin_b,传感器节点n1将n0设置为兄弟节点,令兄弟节点最小能量为Emin_b=Ercv,然后将兄弟节点ID、兄弟节点最小能量Emin_b写入传感器节点n1的本地信息列表中;

步骤1.4:传感器节点n1通过查阅本地信息列表将n1的节点ID、Layer值写入分层探针包,以能量ECT广播该分层探针包,此时传感器节点n1变为n0,下一跳接收到该分层探针包的节点为n1,之后转到步骤1.3,直到网络中所有传感器节点完成分层或更新分层信息;

步骤2:机会路由协议

步骤2.1:网络中传输的数据包格式如下:

数据包ID 节点ID Layer DATA 包类型

其中,数据包ID为区别数据包的唯一标识,由生成该数据包的传感器节点以及生成时间决定;DATA为传感器节点要发送的数据;

若网络中某一传感器节点ni需要发送数据包,首先依据式(1)计算数据包的发送能量EDT,然后将数据包以能量EDT广播出去;

其中ECT为sink节点的广播能量;Emin为传感器节点ni比较本地信息列表中父节点最小能量Emin_f与兄弟节点最小能量Emin_b二者取的最小值;ET为传感器节点最大发送能量;

步骤2.2:若某传感器节点nj接收到传感器节点ni发送的数据包packet,传感器节点nj首先检测接收到packet的能量Ercv_pk,然后解析数据包packet,得到传感器节点ni的节点ID和层数Layeri;然后比较Layeri和传感器节点nj所在的层数Layerj

如果Layerj>Layeri,传感器节点nj直接丢弃数据包packet;

如果Layerj≤Layeri,传感器节点nj按照公式(2)计算等待时间Thold并开始计时,若在等待时间Thold内传感器节点nj接收到与packet有相同“数据包ID”的数据包,则传感器节点nj直接丢弃packet并停止计时;若到达等待时间Thold,传感器节点nj需要发送数据包而变成ni,下一跳接收到数据包的传感器节点变为nj,之后重复执行步骤2.1到步骤2.2,直到数据包被传递到sink节点;

等待时间Thold计算公式如下:

其中,r为传感器节点的通信距离;v为海洋环境中的声速;ER为数据包的接收能量Ercv_pk与发送能量EDT之比,r为传感器节点初始电量与剩余电量的比值。

本发明的有益效果在于:

1)网络能量开销低。本发明中传感器节点在发送数据包时,根据数据包接收能量以及父节点和兄弟节点最小能量调整发射能量,因此在保证传输可靠的同时降低能量开销。

2)网络能量均衡分布。在确定转发节点优先级时考虑传感器节点的剩余电量,将能量消耗公平地分摊到每个传感器节点上,避免优先级高的节点因负载过重、电量快速消耗而失效。

附图说明

图1是本发明的树形拓扑结构示意图。

图2是本发明的仿真节点分布图。

图3是本发明的仿真结果图。其中图3(a)是随着网络中传感器节点数目的增加,数据包投递率的变化曲线;图3(b)是随着网络中传感器节点数目的增加,数据包传输过程平均端到端时延的变化曲线;图3(c)是随着网络中传感器节点数目的增加,网络传输所有数据包所需能量开销的变化曲线。

具体实施方式

下面结合附图和实施例对本发明进一步说明。

步骤1:网络分层过程;

单个sink节点部署在海面,传感器节点随机部署在指定海域,传感器节点装配有各种传感器和声调制解调器,用于采集海域信息和传输数据;sink节点装配有同类型的声调制解调器;传感器节点将数据包通过多跳传输至sink节点,即认为传递完成;

传感器节点和sink节点的声调制解调器都检测并记录接收到的数据包能量大小,并且调整发射能量将数据包以指定能量发送出去;

步骤1.1:所有传感器节点在本地建立本地信息列表,格式如下:

节点ID 层数Layer 父节点ID 父节点最小能量E<sub>min_f</sub> 兄弟节点ID 兄弟节点最小能量E<sub>min_b</sub>

其中节点ID是区分不同节点的唯一标识,Sink节点和传感器节点统一编号;Layer取非负整数表示节点所在层数,设置sink节点的Layer为0,所有传感器节点Layer初始值为null;最小能量表示已成功接收到的信号的最小能量,初始值设为无穷大;

步骤1.2:sink节点按照如下格式周期性生成分层探针包,并以固定能量ECT广播分层探针包;

节点ID Layer 包类型

sink节点将Layer置为0;包类型用于区分当前包是分层探针包还是数据包;

步骤1.3:设传感器节点n1接收到分层探针包,首先检测接收到的分层探针包的能量Ercv,然后解析该分层探针包:

分层探针包的“节点ID”是发送该分层探针包的上一跳节点,设为n0;“Layer”表示上一跳节点n0所在的层数,设为Layer0

如果传感器节点n1所在的层数Layer1为null,则传感器节点n1将传感器节点n0设置为自己的父节点,令所在层数Layer1为Layer0+1,令父节点最小能量为Emin_f=Ercv,然后将父节点ID、层数Layer1、父节点最小能量Emin_f写入传感器节点n1的本地信息列表,之后进入步骤1.4;

如果Layer1不为null且Layer1小于传感器节点n0所在的层数Layer0,此时传感器节点n1不对本地信息列表做任何修改;

如果Layer1不为null且Layer1-Layer0=1,传感器节点n1首先比较Ercv和本地信息列表记录的父节点最小能量Emin_f,如果Ercv,>Emin_f,不对本地信息列表做任何修改;如果Ercv≤Emin_f,将传感器节点n0设置为自己的父节点,令父节点最小能量为Emin_f=Ercv,然后将父节点ID、父节点最小能量Emin_f写入传感器节点n1的本地信息列表中,之后进入步骤1.4;

如果Layer1不为null且Layer1-Layer0>1,传感器节点n1将传感器节点n0设置为自己的父节点,将自己所在的层数Layer1设置为Layer0+1,令父节点最小能量为Emin_f=Ercv,然后将父节点ID、层数Layer1、父节点最小能量Emin_f写入传感器节点n1的本地信息列表中,之后进入步骤1.4;

如果Layer1不为null且Layer1=Layer0,即传感器节点n1与n0在同一层内,此时传感器节点n1比较Ercv与本地信息列表记录的兄弟节点最小能量Emin_b,如果Ercv≥Emin_b,不对本地信息列表做任何修改;如果Ercv<Emin_b,传感器节点n1将n0设置为兄弟节点,令兄弟节点最小能量为Emin_b=Ercv,然后将兄弟节点ID、兄弟节点最小能量Emin_b写入传感器节点n1的本地信息列表中;

步骤1.4:传感器节点n1通过查阅本地信息列表将n1的节点ID、Layer值写入分层探针包,以能量ECT广播该分层探针包,此时传感器节点n1变为n0,下一跳接收到该分层探针包的节点为n1,之后转到步骤1.3,直到网络中所有传感器节点完成分层或更新分层信息;

步骤2:机会路由协议

步骤2.1:网络中传输的数据包格式如下:

数据包ID 节点ID Layer DATA 包类型

其中,数据包ID为区别数据包的唯一标识,由生成该数据包的传感器节点以及生成时间决定;DATA为传感器节点要发送的数据;

若网络中某一传感器节点ni需要发送数据包,首先依据式(1)计算数据包的发送能量EDT,然后将数据包以能量EDT广播出去;

其中ECT为sink节点的广播能量;Emin为传感器节点ni比较本地信息列表中父节点最小能量Emin_f与兄弟节点最小能量Emin_b二者取的最小值;ET为传感器节点最大发送能量;

步骤2.2:若某传感器节点nj接收到传感器节点ni发送的数据包packet,传感器节点nj首先检测接收到packet的能量Ercv_pk,然后解析数据包packet,得到传感器节点ni的节点ID和层数Layeri;然后比较Layeri和传感器节点nj所在的层数Layerj

如果Layerj>Layeri,传感器节点nj直接丢弃数据包packet;

如果Layerj≤Layeri,传感器节点nj按照公式(2)计算等待时间Thold并开始计时,若在等待时间Thold内传感器节点nj接收到与packet有相同“数据包ID”的数据包,则传感器节点nj直接丢弃packet并停止计时;若到达等待时间Thold,传感器节点nj需要发送数据包而变成ni,下一跳接收到数据包的传感器节点变为nj,之后重复执行步骤2.1到步骤2.2,直到数据包被传递到sink节点;

等待时间Thold计算公式如下:

其中,r为传感器节点的通信距离;v为海洋环境中的声速;ER为数据包的接收能量Ercv_pk与发送能量EDT之比,γ为传感器节点初始电量与剩余电量的比值。

下面以六节点的网络为例,给出相应路由方案。

水声传感器网络中,传感器节点随机部署在指定海域采集信息,单个sink节点布放在海面,接收来自传感器节点的数据。本发明采用树形拓扑结构来实现网络的路由功能,包括网络分层和机会路由两个阶段。

树形拓扑结构如图1所示,网络中的所有节点分层为根节点、第1层节点、第2层节点,…第n层节点。sink节点s为根节点,与浮标节点通过有线连接;传感器节点a和传感器节点b为第一层节点,且sink节点s为传感器节点a和传感器节点b的父节点,传感器节点a和传感器节点b为sink节点s的子节点,位于同一层的可以连通的传感器节点a和传感器节点b互为兄弟节点。

采用OPNET对本发明的性能进行仿真。如图2所示,设置网络大小为3km×3km,一个sink节点随机部署在网络上层,一个生成数据包的源传感器节点部署在网络下层。传感器节点的数目为10~30个,在网络域中随机布放。所有节点的最大通信距离为1km,最大发射功率为15W,接收功率为1W,空闲时的能量消耗为0.05W。源传感器节点以每5s的时间间隔生成256Byte大小的数据包。在物理层采用BPSK调制,MAC层使用CDMA,声调制解调器的传输速率为1024bps。所有传感器节点与sink节点在仿真时间开始后首先开始运行发明内容中的步骤1,即网络分层过程;经过30s后所有传感器节点开始运行步骤2,即机会路由协议,将源传感器节点产生的数据包中继到sink节点。仿真结束后得到的结果如图3所示。

从图3(a)可以看出,本发明对包的投递率随着节点密度的增加而增加,这是因为发送节点的父节点和兄弟节点都可以作为下一跳中继节点参与数据包的转发,从而保证了节点稀疏部署情况下数据的可靠传输。

从图3(b)可以看出,平均端到端时延随着节点密度的增加而下降。这是因为这是因为网络中节点数较多时,数据包的传输路径与源传感器节点和sink节点间的直线更加接近。

从图3(c)可以看出,本发明的能量开销随着节点密度的增加而减少,节点数较少时本发明能量花销小的原因在于路由协议中发送节点的父节点和兄弟节点都可参与数据的转发,保证了数据传输的可靠性,减少了发送节点对同一数据包的重复广播次数。由图3(c)也可以看出,相较于传统机会路由,本发明明显降低能量开销(相同仿真条件下,传统机会路由能量开销分布在30-80J之间)。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种应用在集群无人机通信中的路由方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!