石亚男,刘广钟
(上海海事大学 信息工程学院,上海 201306)
无线传感器网络是由密集型、低成本、随机分布的集成有传感器、数据处理单元和短程无线通信模块的微小节点通过自组织方式构成的网络[1]。借助节点中内置、形式多样的传感器可以实现对生活环境全方位地监测与控制,这也是下一代互联网远景规划中较为重要的组成部分。无线传感器网络的自组织性和密集节点提供的容错能力,使其不会因为某些节点的异常而导致整个系统的崩溃,非常适合在特殊时刻、特殊环境中快速构建信息基础设施,因此有广阔的应用前景[2-3]。
水声传感器网络是无线传感器网络在水下一个重要应用[4]。水声传感器网络是指将耗能低、具有一定通信距离的水下传感器节点部署到指定海域中,利用节点的自组织能力自动建立起网络[5]。水下传感器网络在海洋管理、资源保护、灾害监测、海洋工程、海上生产作业和海洋军事活动中起到促进作用,因此近年来在世界上得到了广泛关注。
由于水声传感器网络采用水声信道通信,它与传统的陆上传感器网络相比存在路径失效、噪声、多途干扰、传输延时和多普勒效应等一系列问题。此外,由于在水声环境中节点的位置会不停地移动以及在水声环境中节点不便于更换,因此节点部署、定位和低功耗设计等问题是水声传感器网络研究的热点问题。现存的陆上传感器网络路由协议不能直接应用到水下传感器网络中,需要找到针对水声通信特点的有效而又可行的路由协议。
DBR(Depth Based Routing)[6]协议是水下传感器网络中的一个基于深度信息的路由协议,网络中所有节点的决定都取决于节点的深度信息。相对于其他基于地理位置信息的水下传感器网络路由协议,DBR不需要知道节点三维位置信息,只需要知道节点的局部深度信息。同时,DBR采用的是多Sink节点网络结构,继承了此网络节点的特点并且未带来额外的网络成本。但是它采用洪泛传播机制,多次计算深度信息会消耗网络能耗;其次,DBR中如果节点之间的密度太小,可能出现路由空洞等问题。
本文主要在DBR协议的基础上展开研究,提出一种基于局部更新策略的协议改进机制,并通过实验证明了采用局部更新策略可以大大降低整个传感器网络的能量消耗。
DBR采用的是多Sink节点水下无线传感器网络结构[7],它由水面上的无线传感器网络和水下无线传感器网络两部分组成,二者结合为一个整体网络。
DBR采用贪婪转发策略将数据包发送给水面的Sink节点[8]。DBR每次转发数据时试图选择离目的节点最近的节点,即深度最小的节点为下一跳转发节点;同时防止其他邻节点转发同样的数据包来减小能耗。在整个过程中,数据包越接近目的节点,转发节点的深度越小。在空洞不存在的情况下,如果减小每一跳转发节点的深度,数据包可以到达水面Sink节点。当某个节点有数据要发送时,简单地通过广播洪泛的形式将数据发送出去。其他节点收到数据之后,借助于深度传感器来计算自身的深度信息并且与发送节点的深度作比较。如果其深度小于发送节点的深度,则具有转发数据的资格,然后它将对收到的数据进行相应的处理,并同样通过广播形式将数据转发出去,否则将简单丢弃数据包。
DBR在能量控制方面主要存在以下缺陷:(1)在DBR中,所有的节点都要时刻保持工作状态,随时准备好接收数据包并且做出相应的处理工作,在节点密度较大的情况下,这使得能量白白消耗,缩短了网络的生存周期;(2)数据包转发采用的是洪泛机制,如果每个节点都参与数据的转发,将增加网络的复杂度,产生大量的冗余数据,导致过多的节点能量消耗,并且降低了网络的宽带利用率。同时,所有接到数据包的节点每次都计算自己的深度信息,同样耗能。
在传统的DBR协议传感器网络中,满足深度小于当前节点条件的邻居节点都会参与到数据包的转发工作中,这不可避免地造成多个节点同时转发相同数据包,造成数据冗余和能耗。本文针对DBR协议提出一种局部更新策略来减少DBR的能量消耗。
基于局部更新策略的DBR改进机制采用多Sink节点体系结构,如图1所示。水面上的为Sink节点,水下的为一般的传感器节点,以三维立体结构部署在需要监测的区域内。Sink节点彼此之间采用RF调制解调器通信,包括将数据传到基站;同时,应用水声调制解调器将接收到的水下节点的信息传送至基站。每个水下节点都配备深度传感器,可以随时确定自己的深度信息。水下节点主要负责数据的采集,同时通过多次转发最终将数据传送至海面上任意一个Sink节点即可。通过RF调制解调器,Sink节点可以高速、准确地将数据包传送给靠近基站的Sink节点,最终成功将数据传至基站。本文中设定将数据传至任意一个Sink节点即认为数据成功到达目的节点。
图1 水下传感器网络数据转发示意图
在网络部署初期,初始节点转发数据时,通过简单的洪泛广播来转发,所有节点深度比它小的节点可以进行转发,并且通知前一节点自己进行了转发;上一级节点将返回的信息存储在一个消息队列中,每隔一段时间t处理一次,具体为随机选取队列中的部分节点并发送关闭消息来使其关闭休眠,其余节点继续参与整个网络的转发工作。这样,在经过几轮的转发过程之后,网络中会有相当一部分节点处在睡眠状态,整个网络的能量消耗减少。当网络中的某一节点能量快要耗尽时,它将发送警告信息通知它的上一跳节点,上一跳节点将会洪泛一个消息唤醒它睡眠的邻居节点再次参与到网络数据传送工作中来。节点处理数据具体流程如图2所示。
对于水下网络中的节点而言,可以大致分为3类,如图3所示。图中实线表示传送数据包转发路径,虚线为返回上级信息包路径。源节点向外洪泛数据包后,只有深度比该节点小的邻居节点会将数据转发出去并向上级发送确认信息;而源节点处理消息队列后随机产生的睡眠节点将不再参与此次数据包的转发工作。
由于水下无线传感器网络处在水声环境中,因此每个节点的位置不是固定不变的。因为本文的算法会关闭部分节点来达到节能的目的,所以不可避免地会遇到路由空洞的问题。在此提出一个解决方法:由于存在多个节点转发数据,当某一节点数据无法再转发出去时不能说明整个网络环境一定存在路由空洞。解决思路为:将数据包回退至第一个转发超过2个节点的节点,并保留一段时间t,如在时间t内没有接收到另外几路分支的回退数据,则说明其中有一条分支是可以走通,将空洞分支中的所有节点关闭并将回退数据舍弃;如果同样收到其余分支的回退数据,说明此节点不通,将所有下游节点全部关闭并将数据回退到上一节点再继续检测,依次往复。如果数据回退到最下层节点,则说明整个水下传感器网络存在路由空洞,这时可以简单地洪泛一条消息来将所有节点唤醒,并开始重新生成优化网络。
图2 节点处理数据流程示意图
图3 节点传输图
本文采用MATLAB来仿真分析传统DBR路由协议和基于局部更新的改进后协议的性能,通过在相同环境下比较二者性能来验证改进算法的有效性,重点观察整个网络在正常工作一段时间后,整个网络中的传感器的平均剩余能量。
节点随机部署在500 m×500 m×500 m的三维区域中,水面Sink节点数量为5,假设节点在所有场景中都是静止的,MAC层采用802.11算法,信道带宽设为1 Mb/s,数据分组的大小为4 KB,节点的初始能量为 1 000 J,传送和接收数据分组消耗1 J。
能耗比较示意图如图4所示。可以看出,随着节点数目的增多,由于采用了局部更新算法,非必要传输节点会关闭节点以减小能耗,改进DBR算法平均耗能明显小于传统DBR。
传输率比较示意图如图5所示。随着网络中节点数量的增加,出现路由空洞机率减小,改进前DBR与改进后协议的传输正确率均有提高;而在相同情况下,改进后协议比传统DBR有明显优势。
图4 能耗示意图
图5 传输率比较图
本文研究了一个基于深度信息的路由协议DBR,在此基础上提出了一个新的局部更新策略,并将两者结合运用于水声传感器网络。实验表明,改进后的算法大大降低了整个网络的能量消耗,并且提高了传输率,达到了比较良好的性能。
[1]金军,纵芳,梁妙元,等.水下传感器网络路由协议研究[J].电信科学,2012(2):123-127.
[2]孙亭,杨永田,李立宏.无线传感器网络技术发展现状[J].电子技术应用,2006,32(6):1-5,11.
[3]梁玉芬,高德云,牛延超,等.无线传感器网络应用系统综述[J].电子技术应用,2007,33(9):3-5,9.
[4]窦丽娜.水声传感器网络研究[D].哈尔滨:哈尔滨工程大学,2008.
[5]AKYILDIZ I F,POMPILI D,MELODIA T.State of the art in protocol research for underwater acoustic sensor networks[C].Proceedings of the First Workshop on Under Water Network,2006.
[6]Yan Hai,Shi Zhijie,Cui Junhong.DBR:depth-based routing for underwater sensor networks[C].Network 2008,7th International IFIP-7C6,2008:16-1221.
[7]SEAGH W K G,TAN H X.Multipath virtual sink architecture for underwater sensor networks[C].Proceedings of Oceans 2006-Asia Pacific,IEEE Press,2006:1-6.
[8]黄芬,陈名松.水下无线传感器网络DBR路由协议研究[J].电视技术,2012,36(13):74-77.