刘锐军,孟 俊,刘书敏
(河北建材职业技术学院,河北 秦皇岛 066004)
目前,水下组网技术基本都是基于水声通信实现的[1]。但由于水声通信的固有特性,尚未出现与小型水中机器人相结合的水声通信组网应用,因此采用水下电场通信与水中机器人技术相结合的水下组网方法,这是一种潜在研究方向[2]。充分考虑了水中机器人的机动性和自组网的灵活性,网络中每个水中机器人(节点)的功能一致,地位平等[3]。
增强型目的序列距离矢量(Enhance-Destination Sequenced Distance Vector,E-DSDV)路由协议中,每个节点需要建立和维护一张路由表,路由表中存储路由信息。与目的序列距离矢量(Destination Sequenced Distance Vector,DSDV)路由协议所不同的是,E-DSDV协议能够将收发端实时检测的电压信号及时转换成与邻居间的距离信息,同时将邻居间的距离信息转换成协议中所需要的序列号[4]。
1.1.1 路由建立与维护
基于水下电场通信的E-DSDV协议要求每个节点保存路由表。节点间通过周期性地发布路由更新分组来交互路由信息,以保证路由表的准确性[5]。路由的更新遵循以下两个原则:一是比较该更新分组中携带的路由信息和节点存储的路由条目,如果节点收到的路由序列号大于路由表中存储的路由条目序列号时,将会更新自己路由表中的旧路由信息,采用更新后的路由而删除原先存储的旧序列号的路由;二是如果更新分组中路由的序列号与现存路由的序列号相同,网络将会比较在相同序列号下节点的度量(跳数)大小,最终会选择度量较小的节点,以此来更新路由信息,同时会删除旧的路由表。
1.1.2 路由更新方式
更新方式有两种方式,一种是部分数据分组更新,由于E-DSDV是根据实时采集电压来获得邻居信息,因此根据接收到的电压值更改数据电压。另一种是完全更新,该更新方式包含了节点路由表的所有信息。节点在网络中会优先选取序列号较大的路由,如果两个路由具有相同的序列号,源节点到目的节点将会选择跳数较少的链路。
对数据进行分析,从而得到序列号的值。图1表示了水下电场通信接收端接收到的电压与通信距离的关系,其中d表示水下电场通信距离,Ud表示通信范围内对应的接收电压[6]。经过数据拟合处理得到了通信距离与接收电压关系式为:
图1 接收电压与通信距离拟合曲线
在水下电场通信E-DSDV协议中,节点每移动一个单位节点将会增加两个序列号值,图2展示了正常通信时序列号的分布情况[7]。当节点出现故障无法正常通信时,节点的序列号会增加1。在水下电场通信E-DSDV中,奇数序列号表示节点无法正常通信,同时也会将到达该节点的跳数设置为无穷大。由E-DSDV协议原理可知,路由选择优先会选择序列号大的节点作为下一跳节点,如果通信链路中某个节点序列号变成奇数,则不能进行通信,从而避免了路由环路现象的产生。
图2 通信序列号的分布
本实验主要应用NS2软件进行仿真实验。NS2软件是指一种针对网络技术的模拟软件,是一种面向对象的网络仿真器[8]。主要针对移动网络仿真,如网络传输协议、路由队列管理机制以及路由算法等[9]。对设计的网络进行了仿真测试,图3展示了NS2软件仿真结果,仿真环境参数和实验环境参数设置相同[10]。实验环境的长度为300 mm,宽度为200 mm,A、B、C、D表示通信节点,箭头表示数据链路。图3(a)表示节点在初始状态时各节点的拓扑结构,同时也展示了各节点通信链路情况,图3(b)表示在第二种拓扑结构下各节点的通信链路情况,图3(c)表示第三种拓扑结构下的各节点通信链路情况。
图3 仿真结果
结合仿真数据进行了实验验证,如图4所示,分别展示了每个状态下节点布置情况,同时标出了数据链路的通信情况。
图4 网络初始状态拓扑结构
图4(a)展示了初始状态各节点部署情况,表1为网络初始状态路由表,其中包含接收的目的节点(Dest)、下一个邻居节点(Next),到达目的节点需要的跳数(Metric)以及目的节点的序列号值(Seq),A、B、C、D分别表示路由节点。当路由表创建完成后,由节点A向其他3个节点发送指令,让其按照预设的运动轨迹进行移动。
表1 网络初始状态路由表
图4(b)展示了网络第一次变更后的拓扑结构,根据仿真实验效果实现由节点A向节点C发送消息,此过程中路由表的建立如表2所示。从表2中可以观察到当节点B脱离网络后,跳数会变成无穷大,节点序列号将会增加1变为奇数。根据协议要求,奇数节点是不能进行通信的,因此B节点无法进行下一节点通信,因此脱离通信链路,同时其他节点到达节点B的跳数为无穷大。
表2 第二拓扑状态路由表
图4(c)表示网络的第三种拓扑结构,图中标出了由节点A向节点B发送消息的链路情况。由于节点B已经不在节点A的通信能力范围内,因此节点A只能通过其他节点转发消息至节点B。此时网络中的路由情况如表3所示,表中展示了当源节点发送消息不能直接到达目的节点时,需要经过多跳的方式进行转发路由消息,且在转发过程中会选择较大序列号的路由。
表3 第三拓扑状态路由表
本文提出了一种面向水下电场通信网络的E-DSDV组网协议,可以实时采集节点的发射电压,通过检测发射电压建立实际通信序列号,再根据节点之间的各自广播路由信息建立路由表。协议中引入了实时采集电压并建立实际序列号算法,增强了网络系统的鲁棒性,可以更好地适应水下实际环境,确保网络系统能够及时做出相应的决策。通过大量的实验验证了该协议的合理性及有效性,E-DSDV协议与其他协议相比主要增进了实时采集和处理信息能力,更加适应于水下环境无任何基础设施的网络,解决了电场通信在实际水环境中的组网问题,为今后水下电场通信组网在军事与民用等相关领域的勘探和作业奠定了基础。