1 选择GEAR的依据
在众多的路由协议中,许多研究者认为地理位置路由协议是解决和处理资源严重受限的WSN最有效的方案之一。在许多应用中,若不能获得被监测对象事件发生的具体地理位置,就无法采取相应措施。如在军事战场中,需要知道战争发生的地点;在森林火灾中,也要及时获得火灾发生的位置。因此,研究基于地理位置的路由协议是一项非常有意义的工作[1]。
位置路由协议有一个显著的特点,节点能够通过GPS或者其他类似的定位方法来获得自身位置信息,并且可以将自己的当前状态与位置信息告知其通信半径内的邻居节点。路由的建立仅通过一跳通信范围节点信息就可以完成,而节点间的信息传输也只需知道目的节点的位置信息和下一跳节点的位置,不需要其他的拓扑信息。
能量对于WSN的生命周期具有决定意义,能耗是WSN路由协议需要重点考虑的问题。位置和能量感知路由协议(Geographic and Energy Aware Routing,GEAR)充分考虑了能源有效性,基于地理位置,与传统非能量感知的位置路由相比,极大地延长了网络的生命周期。
2 GEAR的基本原理
GEAR采用节点的地理位置信息及节点剩余能量的情况,建立查询消息到目标域的路径。传送数据分组到目标域中所有节点的过程包括两个阶段:目标域数据传送和域内数据传送。
2.1 目标域数据传送
在目标域数据传送阶段,当节点接收到数据分组,它将邻接点同目标域的距离和它自己与目标域的距离相比较。若存在更小距离,则选择最小距离的邻接点作为下一跳节点;否则,认为存在“空洞”,节点将根据邻居的最小开销来选择下一跳节点。
2.2 域内数据传送
在域内数据传送阶段,可通过以下两种方式让数据在域内扩散:当节点密度较小时,直接采用洪泛转发机制;当节点密度较大时,则采用迭代转发机制,直到域内剩下唯一的节点。GEAR的解决方案:当查询命令到达区域内的第一个节点时,若该节点的邻接点数目大于一个预设的阈值,则使用递归转发机制,否则用前者。
当这两个阶段完成后,目标域内节点都将监测数据发送到目标域内第一个收到查询消息的节点,此节点再将监测数据沿查询消息的反向路径向汇聚节点传送。
3 GEAR+的综合性能分析
针对GEAR路由协议在数据传输过程中存在的路由空洞及能量浪费问题,提出了一种新的位置路由协议——GEAR+ 。
3.1 GEAR+的主要思想
3.1.1 路由空洞
在目标域数据传送阶段,当节点的所有邻接点都比自己到目标域的距离大时,就遇到了路由空洞问题,该节点知道自己遇到了路由空洞问题,则根据邻居节点的最小开销来选择下一跳节点[2]。
当经过一段时间后,有可能再遇到路由空洞,若选择原来的节点作为下一跳节点,就会形成上次的路由空洞问题,这需要在2个节点间不断循环作为下一跳节点,才能跳出空洞区域,这样就造成了不必要的节点能量损耗[3]。
所以,如果节点能拥有相邻两跳或更多跳节点的地理位置信息,那么节点遇到路由空洞的条件是两跳或多跳范围内没有比它更接近目标域的节点。这样就可以提前意识到路由空洞的存在,大大减少路由空洞产生的概率,从而避免在错误路径上走得更远,也保证了汇聚节点以较小的代价完成目标域数据传送。
3.1.2 能量浪费
在域内数据传送阶段,目标域的所有节点一直处于数据传输或者空闲状态,节点不工作还处于空闲状态无疑是对能量的浪费。由于数据采集时同一区域的众多节点采集的数据,其中必定有一些相似或相同的,而对于采集到的数据都会沿原路返回至汇聚节点[4]。
所以,若让这些节点协同工作,对数据进行必要的融合,就可以减少冗余数据包的传输;与此同时,还可以通过改变节点的工作状态来节约能源,当节点采集完数据送往特定节点进行数据融合时其他节点就可以进入休眠状态。
3.2 GEAR+的改进方案
本文针对GEAR算法中传送数据分组的两个阶段都进行了研究与改进,由于GEAR算法在NS2中的实现是一个简化的版本,查询消息在目标域内的转发是采用洪泛方式,并没有采用迭代方式[5],所以为便于比较改进前后的效果,在对第二阶段改进方案的实现中仅针对洪泛方式进行设计。具体改进方案如下:
① 第一阶段的改进。对路由空洞的分析可知,如果节点能拥有相邻两跳或更多跳节点的地理位置信息,那么两跳范围内或者是满足条件的多跳范围内的节点都变成了“邻居”节点。数据传送之前,采用通过邻居节点之间的N次信息交换,使各节点掌握K跳范围内邻居节点的位置信息,当在数据传送时,就可以利用K跳邻居的位置信息优化路由的选择。
② 第二阶段的改进。
◆ 汇聚节点在发送查询消息前先根据节点的通信半径将目标域划分成若干个大小相等的子区域,并把每个区域看成为一个簇;
◆ 根据各簇内节点能量的大小为它们选择簇首节点,只要节点的能量最大,并能大于能量阈值,该节点就可以担任簇首节点;
◆ 节点将在第一个T时间内采集的数据首先传送至簇首节点,由簇首节点对其进行数据融合后再发送至域内第一个接收到查询消息的节点,再沿查询消息的反向路径发送至汇聚节点;
◆ 在下一个T时间里,当簇头节点接收到由簇内节点采集并发送来的数据后,将簇内节点转换为休眠状态,直到第二个T时间结束,簇内节点则根据自己的时钟将自己转入唤醒状态,等待下一次采集数据的命令。
4 GEAR+的仿真实验
本文采用NS2来模拟验证GEAR算法与改进算法GEAR+的性能。
4.1 仿真环境设置
为了研究GEAR+的性能,并对GEAR+协议与GEAR协议进行仿真和对比分析,本文仿真参数设置如下所示:
◆ MAC层采用802.11;
◆ 网络中分布200个相同的节点,初始能量均为1J,且所有节点保持禁止;
◆ 200个节点随机分布在600 m×600 m的区域内;
◆ 节点的通信半径为90 m,目标域为矩形区域,矩形的中心坐标以及大小根据实验场景具体设置;
◆ 所有传输数据分组的大小固定为32字节,发送和接收一个数据分组的比值为1.6∶1.2;
◆ 每个节点发送一个数据分组消耗的能量为0.1 J,接收一个数据分组消耗的能量为0.075 J,可调权值α的取值为1,假设休眠状态时能量消耗为0;
◆ 仿真时间为30 s。
以上参数并非恒定不变,根据不同的方针,场景需要改变其中的一些参数值。仿真过程中,当节点数目增加时,改变网络尺寸大小,但保持节点密度不变。
4.2 仿真结果分析
如图1所示,采用改进后的算法时节点剩余能量较多。
图1 节点能量消耗图
5 总结
本文介绍了基于地理位置信息的WSN路由协议,并详细介绍了位置路由GEAR的基本原理。针对GEAR协议在数据传输过程中存在的路由空洞及能量浪费问题,提出了一种改进的位置路由协议。采用NS2仿真工具对其仿真实验,尽管仿真工具的集成版本有所限制,可实验还是取得了比较理想的结果,要投入实际应用还需要大量的学习。随着WSN技术的快速发展,相信研究地理位置路由协议会成为一项非常有意义的工作。