北部湾海域水声传感器网络动态拓扑仿真
2021-11-19李丹
李丹
(1.北部湾大学电子与信息工程学院,广西 钦州 535011;2.钦州市物联网先进技术重点实验室,广西 钦州 535011)
关键字:水声传感器网络;北部湾;Aqua-Sim;动态拓扑
1 引言
水流和生物活动等因素会造成水声传感器网络(Underwater Acoustic Sensor Networks,UASNs)节点发送移动[1]。网络中大量节点的偏移会导致网络拓扑不稳定,分组投递率降低,甚至影响网络连通性[2]。通过实验了解UASNs节点移动速度对网络性能的影响情况,有助于研究UASNs领域的相关问题。本文以北部湾海域环境参数作为基础,基于改进的Aqua-Sim水声信道仿真平台[3]进行水声动态拓扑的仿真实验,并通过数据分析验证节点的运动会导致网络稳定性下降。
2 仿真过程
2.1 仿真平台
Aqua-Sim是NS2用于实现水声信道通信仿真的一个独立的程序模块[3]。改进的Aqua-Sim水声信道仿真平台在原Aqua-Sim 1.0模块加入与温度、盐度、维度、深度、航运密度和风速有关的参数、程序和接口,用水流噪声、船只或生物噪声、海风噪声和热噪声的累加值来模拟不同海域环境背景噪声对信号接收造成的影响,采用Del Grosso公式的简化结构计算海水声速,能够使仿真效果更加接近海洋水声信道。
2.2 实验参数
根据改进的Aqua-Sim水声信道仿真平台要求,在仿真环境中需要设置温度、盐度、维度、深度、航运密度和风速的值。仿真实验从北部湾北部海域夏季水流环境情况中提取相关参数,实验具体参数见表1。
表1 实验参数
2.3 仿真程序
实验程序分为两个部分,一个是平台程序库,另一个是TCL仿真脚本。在仿真开始前,需要在实验平台中添加LEACH协议的相关程序文件作为仿真实验的路由协议。TCL仿真脚本需要完成三个任务,分别是环境参数设置、网络拓扑初始化和节点运动轨迹设计。
(1)环境参数值主要按照表1的内容进行设置,关键代码如下:
(2)网络拓扑初始化过程需要指定各节点的初始化坐标。将节点的初始坐标记为Ni=(xi,yi,zi),其中,i是节点编号,i∈[0,18];xi、yi和zi是节点Ni的X、Y和Z轴坐标。将整个拓扑空间分为三层:第一层的节点N0位于海平面拓扑区域的正中央,其初始化坐标为N0=(400,400,0);第二层的节点深度为250m,整个平面区域被划分成6×6的行列矩阵,行高和列宽用a表示,9个节点均匀分布在矩阵中;第三层的节点深度为500m,节点分布模型与第二层相同。第二层和第三层的节点坐标见表2。
表2 第二层和第三层的节点初始化坐标
(3)为了防止节点被水流冲走,部署在水中的节点主要以浮标和锁链牵引的方式锚定在水中[7]。在具有潮汐等水流运动的环境中,锚定节点的运动呈现半周期性特征[8],加上北部湾北部海域夏季的水流处于气旋式环流状态[9],使得本实验模拟的海域中存在旋涡,因此可以假设节点在浮标、锁链和旋涡水流的作用下进行深度不变的圆周运动,锚定节点运动模型如图1所示。
图1 锚定节点运动模型
L是牵引锁链的长度,H是锚定节点随海水摆动时距离海面的高度,R是锚定节点在二维平面做圆周运动的半径。锚定节点的运动方向和R的取值应该由实际的水流运动情况决定。为了方便计算和编程,将节点N1~N18的运动方向设置为顺时针,以初始坐标为圆心,只设定4个关键坐标,分别是(xi,yi+R,zi)、(xi+R,yi,zi)、(xi,yi-R,zi)和(xi-R,yi,zi)。
2.4 仿真过程
仿真过程采用分组对照的方式,分别模拟网络在节点静止和运动状态下,网络分组投递率的变化情况,具体的实验分组情况见表3。
表3 实验分组情况表
按照实验分组编写testj.tcl文件,进行3组实验,每组实验运行3600s,分别生成tracej.tr和namj.nam文件,其中j表示分组编号。testj.tcl是实验的执行文件,tracej.tr是实验数据记录文件,namj.nam是动画演示程序文件。
3 实验分析
3.1 数据处理
本实验是通过对分组投递率的统计来分析网络的连通状态。从tracej.tr文件中提取事件类型、节点编号、Trace类型、分组类型、分组源IP地址和分组目的IP地址信息,分别用event、node_id,trace_type,packet_type,packet_src和packe_dest表示。根据event来判断当前记录是分组发送,还是分组接收。根据trace_type和packet_type过滤网络维护分组,只保留数据分组。根据node_id、packet_src和packe_dest来判断当前记录属于源节点、转发节点,还是Sink节点。具体数据处理程序流程如图2所示。
图2 数据处理程序流程图
变量num_fs和num_rx分别用来统计所有锚定节点发送的数据分组数和Sink节点成功接收的数据分组数。将统计后的数据按照公式(1)计算,得出分组投递率delivery_rate。
设300s为一个统计周期,将每组实验的数据分为36个周期,按照公式(1)计算每个周期内的分组投递率。
3.2 数据分析
图3是三种拓扑状态的网络分组投递率统计情况。在网络运行初期,网络节点处于组网阶段,信道冲突相对较小,三种拓扑状态的分组投递率在80%~100%之间。随着网络的不断运行,信道冲突增大,各实验组的分组投递率都有所下降。当网络运行进入稳定期时,节点静止网络的分组投递率可维持在70%~80%之间,而动态网络的分组投递率下降较为明显。节点低速运动网络的分组投递率维持在50%~60%之间,整个运行过程较为稳定。节点高速运动网络的分组投递率维持在20%~40%之间,且变化幅度较大。通过实验数据说明,网络节点的运动对网络连通性具有一定影响,且运动速度越快,网络的稳定性越差。
图3 分组投递率对比图
4 结语
水下环境复杂多变,UASNs节点因水流或生物活动等因素发生运动,造成网络拓扑的改变。针对UASNs节点运动影响网络稳定性的问题,本文基于北部湾海域环境参数,采用改进的Aqua-Sim水声信道仿真平台,进行UASNs的动态拓扑仿真。首先,在平台中加载LEACH协议。其次,以北部湾北部海域夏季水流环境为基础,设计节点运动模型。再次,设计TCL脚本程序实现网络运行仿真。最后,进行分组对照实验,对静态拓扑、低速运动拓扑和高速运动拓扑的分组投递率进行对比分析,证明网络节点的运动对UASNs网络连通性具有一定影响,且运动速度越快,网络的稳定性越差。