无线传感器网络GEAR协议的一种改进方案 点击:440 | 回复:3



哥斯达黎加

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 4回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2006年12月28日
发表于:2006-12-11 16:34:00
楼主
[摘 要]:无线传感器网络(WSNs)被认为是未来改变世界的十大技术之首,但有限的计算、存储和通信能力,尤其是严重受限的能量使其应用前景面临巨大挑战,WSNs在应用之前需要解决许多关键问题,能量问题即是其中之一。能量对于WSNs的生命周期具有决定意义,设计WSNs路由协议需要重点考虑能耗问题;针对WSNs的GEAR路由协议,提出一种能耗上的改进方案并进行仿真,仿真结果显示:该方案能明显降低能耗。
关键词:无线传感器网络;GEAR协议;能耗
0 引 言
    在无线传感器网络(WSNs)中,节点通常需要获取其位置信息,这样,它采集的数据才有意义。如在森林防火应用中,需要知道火灾的具体位置。地理位置路由假设节点知道自身及目标区域的位置,以这些位置信息作为路由选择的依据,按照一定策略转发数据到目标区域。位置和能量感知的地理路由(geographical and energy aware routing,GEAR)属于这一类路由协议,它是WSNs中的一个能量感知的基于位置的地理路由协议,模拟结果显示:GEAR路由,与传统非能量感知的地理路由相比能极大地延长网络寿命。能量对于WSNs的生命周期具有决定意义,能耗是WSNs路由协议需要重点考虑的问题。本文针对GEAR路由协议,依据GEAR的特点提出了一种改进方案,使其在能耗力方面有所改进。
    1 GEAR路协议
    1.1 核心思想
    由于Sink发出的查询消息中经常包含位置属性,GEAR路由协议在向目标区域散布查询消息的同时考虑了地理位置信息的使用。其主要思想是通过利用位置信息使得“兴趣”的传播仅到达目标区域,而不是传播到整个网络,从而避免洪泛方式,减少路由建立的开销。
    GEAR路由中查询消息的传播包括2个阶段:(1)查询消息转发到目标区域:从Sink节点开始的路径建立过程采用贪婪算法,节点在邻居中选择到目标区域代价最小的节点作为下一跳节点,并将自己的路由代价设为该下一跳节点的路由代价加上到该节点一跳通信的代价。若陷入路由洞,节点则选取邻居中代价最小的节点作为下一跳节点,并修改自己的路由代价;(2)在目标区域内散布查询消息:查询消息到达目标区域后,通过迭代地理(节点密度较大时)或洪泛方式(节点较少时)将查询消息传播到目标区域内的所有节点。这2个阶段完成后,监测数据沿查询消息的反向路径向Sink节点传送。
    1.2 NS2中GEAR的实现细节
     GEAR路由协议在NS2中的实现是一个简化的版本,查询消息在事件区域的转发是采用洪泛方式,没有实现迭代地理方式,下面仅对改进时关心的问题进行说明。
    首先,GEAR路由假设已知节点的位置和剩余能量信息,通过下面几个变量来表示:
    double geo_longitude_, geo_latitude_;//节点的位置信息;
    int nmn_pkt_sent_, num_pkt_recv_;//发送和接收的信息包数量;
    double initial_energy_;//节点的初始能量;
    double unit_energy_for_send_, unit_energy_for_recv_;//发送和接收单位信息包消耗的能量。
    其次,NS2中实现的CEAR发布查询消息时分为2个阶段,在消息没有到达目标区域时,采用贪婪算法(单播方式)转发消息,消息到达目标区域后,采用洪泛方法(广播方式)转发查询消息。节点根据不同的情况作出相应的处理:
    enum geo_actions { BROADCAST = 0, BROADCAST_SUPPRESS,
    OUTSIDE_REGION } ,
    其中,BROADCAST=0表示节点在目标区域内部,采用广播方式转发查询消息;BROADCAST_SUPPRESS表示节点的所有邻居都不在目标区域内,节点不转发查询消息;
    OUTSIDE_REGION表示节点在目标区域外,用单播转发查询消息。与路由相关的函数:
    int32_ t findNextHop (GeoHeader * geo _ header, bool greedy) ;// 找到下一跳邻居;
    int floodlnsideRegion(GeoHeader * geo_header) ;// 在区域内转发信息包;
    double retrieveHeuristicvalue (GeoLocation dst ) ;// 得到节点的通信代价;
    void broadcastHeuristicvalue (GeoLocation dst, doublenew_heuristic_value);当出现路由洞时,需要修改节点的通信代价,并将这个修改后的通信代价告知其邻居节点。
    NS2中实现的GEAR,查询消息在事件区域内的转发没有采用迭代地理的方式,仅采用了洪泛方式,具体的洪泛代码见NS2代码中~ns/diffusion3/filters/gear.
    2 GEAR路由协议的改进方案
    2.1 问题描述
    文献[2]指出:如果使用Micadot节点,发送一个比特上尽量进行网内处理,减少数据传输量,可以有效地节省能量。理想的融合情况下,中间节点可以把n个长度相等的输人数据分组合并成一个等长的输出分组,只需消耗不进行融合所消耗能量的1/n即可完成数据传输;最差的情况下,融合操作并未减少数据量,但通过减少分组个数,可以减少信道的协商或竞争过程造成的能量开销,所以,在数据传输时要尽量采用数据融合。在GEAR路由中,当查询消息到达目标区域后,事件区域中的节点采集的数据沿查询消息的反向路径向Sink节点传送,由于数据采集时同一区域的众多节点采集的数据往往有相似性,如果能够让这些节点协同工作,对数据进行必要的融合,就可以减少冗余数据包的传输。
    如果节点密度比较大,GEAR采用迭代地理转发机制,作为对GEAR路由协议的改进,每一次迭代的中心节点可以作为数据融合节点,将其子区域节点采集的数据进行处理后再沿反向路径传送。这样,目标区域内第一个收到查询消息的节点将融合后的数据沿查询消息的反向路径向Sink节点传送。
    如果节点密度比较小,GEAR则采用洪泛转发机制。这时由于没有子区域中心节点可以使用,需要以某种方法产生一个融合节点对数据进行处理。一种简单的方法是选择能量比较大的节点作为融合节点,当然,该节点需要能够与其他节点直接通信。该节点对数据进行处理后沿查询消息的反向路径向Sink节点传送。
    2.2 解决方案实现
    根据2.1节的思路,迭代地理方式采用数据融合具有明显的优势:首先,融合节点不需要选取,以子区域中心节点作为融合节点即可;其次,节点密度较大时,采用融合方式更节省能量。但由于NS2中实现的GEAR是一简化版本,查询消息在事件区域内的转发并没有采用迭代地理方式,为便于比较改进前后的效果,在改进方案的实现中仅针对洪泛方式进行设计。具体的改进方案分为如下几个步骤:
    (1)当查询消息转发到事件区域后,区域内的节点先建立簇。由于GEAR中每个节点知道自身及邻居节点的位置和能量信息,因此,可根据节点的位置信息,



哥斯达黎加

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 4回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2006年12月28日
发表于:2006-12-11 16:35:00
1楼
不错!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2006-12-11 16:38:00
2楼
收藏

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2006-12-11 16:38:00
3楼
不错

热门招聘
相关主题

官方公众号

智造工程师