张利琼,陶 昆
(贵州师范大学,贵州 贵阳 550014)
传感器网络通常由覆盖一个地区的若干传感器节点组成。每个传感器节点独立进行数据收集及处理[1-2],并将得到的数据通过无线连接传送到网关节点,再由网关节点向互联网发送。对于传感器网络,路由协议设计是很具挑战性的。首先,节点没有全球唯一的标识符,传统的互联网路由协议无法应用在传感器网络中;第二,传感器网络中的所有节点都是源节点,向唯一的目的节点Sink发送数据;第三,由于在被测对象内部或附近部署了大量的节点,它们采集到的数据是相同或相近的。这就需要路由协议具有数据融合能力,以节约电能,提高带宽利用率;第四,节点具备处理能力。节点的电能存储能力是很有限的,需要强大的资源管理和任务调度能力。因此,传感器网络的路由协议[3]是与传统网络截然不同的。
簇的建立和簇头特定任务的分配对于整个系统的可扩展性、寿命和能量效率起着非常大的作用。聚类路由[4]是降低簇中能量消耗的一种有效方式。LEACH[5](Low-Energy Adaptive Cluster-based Hierarchy)算法是最早的比较成熟的聚类路由算法。
LEACH协议的随机簇头选择分布不均匀,而且LEACH协议是根据节点曾经担当簇头的次数来决定是否担任簇头而没有考虑节点的剩余能量;同时,LEACH网络协议在节点数量大的无线传感器网络中使用时会采集大量的冗余数据,这样会使网络由于处理大量的冗余数据而使网络能耗大大增加,缩短了网络的生存周期。
LEACH-C[6](LEACH-centralized) 是集中式的簇头产生算法,由基站负责挑选簇头。因为无线传感器网络中使用节点数量大,节点覆盖密度也大,这样无法避免地使单个节点采集的数据与整个无线传感器网络采集的数据有很大的关联性。而用户需要的,并不是所有的节点采集的数据(包含冗余数据),而只是对发生事件的描述——利用网络数据集分析出的被观测区域正在发生的事件状况。
可以对LEACH协议进行改进,在成簇阶段(setupstate)之前,插入一个以节点能量为判断标准的筛选过程,将节点的剩余能量[7]与网络的平均能量相比较,一旦判断出本节点的能量大大的低于网络的平均能量,宣布节点在接下来的循环进入休眠状态直至新的成簇阶段到来时才重新开启节点,并再次进行筛选。同时,对成簇阶段的非簇内节点,在接下来的循环中使其进入休眠状态直至新的成簇阶段到来时才重新开启节点。
能耗设置方面,作了如下设置:发送节点的能耗包括启动收发机能耗和放大信号能耗;接受节点的能耗设置为启动收发机能耗。如图1所示。
图1 无线传输的能量模型
从图1可以看出:每处理k个bit的信息,需要消耗的能量为Eelec*k,而信号放大能量需要由信号传播的距离决定,εamp为放大系数。我们可以把距离分作两种:信号在簇内部传输时,我们视其为自由空间传输,此时信号收发机的能耗为:ETX(k,d)=Eelec*k+εamp*k*d21;d1为簇间传输距离。
在能量筛选算法[8]中,我们指定了一个能量门限(pthresh_)判断节点能量在网络中的地位:
其中Etotal是网络总能量;N代表网络中存活节点的总数;Ei是本节点的能量。
pthresh_的表达式能够将本节点的能量在网络中的地位清晰地表示出来。当能量门限取1时,意味着本节点能量远远低于网络中节点的平均能量。此时我们就可以设置节电关闭其无线收发机进入休眠状态,等到下个循环再重新开启,重复能量判断过程;当门限值取Etotal/N*Ei时,就依照门限大小决定节点休眠的概率:我们假设根据改进方法中能量判决门限所筛选出的节点就是最近周期内刚刚担任过CH的节点。进而令其在接下来的循环中进入休眠,直至新的簇首节点竞争周期到来。因为刚在最近周期担任过CH的节点,在能耗上的确大于其他节点,其所剩的能量在网络中必然处于较低的水平。所以在仿真中我们检测节点的hasbeench_变量状态,使每个节点在发送信息之前都先判断一下该变量状态(hasbeench_标志着本节点在上一个循环是否为CH节点),如果hasbeench_为l,表示上个循环中此节点担任过CH,则令其在本轮循环中进入休眠;否则,就产生随机数P与pthresh_做比较,一旦P小于门限pthresh_,则关闭节点,令其休眠;否则继续执行发送函数中的其他指令,向sink节点发送信息。同时,对成簇阶段的非簇内节点,在接下来的循环中使其进入休眠状态直至新的成簇阶段到来时才重新开启节点。
改进型LEACH的每轮循环分为节点能量筛选阶段、簇形成阶段和稳定工作阶段三个部分:
(1)每轮循环开始时,首先进行节点能量筛选,将低能节点、非簇内节点以及在上轮循环中担当簇头的节点令其进入睡眠状态,直到新的成簇阶段到来时才重新开启节点;
(2)簇形成阶段由 decideClusterHead、advertiseCluster-Head、findBestCluster、informClusterHead、createSchedule 几个函数组成,在经过该阶段后,簇头节点和相应的簇内节点得以选出和形成,同时簇头节点将根据本地信息给簇内节点分配TDMA时隙,并广播给簇内所有节点;
(3)在稳定工作阶段,簇内各个节点根据分配的TDMA时隙将感知的数据发送给簇头,簇头将数据聚合后发给基站。经过一轮数据采集和收集工作后,为了均衡节点能量,将进行新一轮的节点能量筛选和簇头选择。通常,稳定工作阶段时间都比前两阶段长。
由图2分析可知,LEACH协议的第一节点死亡时间为410 s,整个网络失效时间为527 s;LEACH-C协议的第一节点死亡时间为380 s,整个网络失效时间为571 s;改进型协议的第一节点死亡时间为280 s,整个网络失效时间为603 s。改进型协议第一节点死亡时间最早,其主要原因是每轮簇形成之前,每个节点都需要计算自身能量在整个网络中的状态,即进行能量筛选,故能耗要稍大些。但是改进型协议考虑了节点剩余能量在整个网络中的水平,不允许低于整个网络平均能量的节点担任簇头,并将一些低能的数据冗余节点令其进入休眠状态,这样节省了节点能耗,使网络生存周期较LEACH协议延长了14.4%,较LEACH-C协议延长了5.9%。因此,改进型协议的网络生存能力要优于LEACH协议。
由图3分析可知,改进型协议不仅将整个网络各个节点的能耗进行了平均,而且让网络中的节点轮换休息,对节点数量较大、节点覆盖密度大的无线传感器网络来说,节约了节点的能耗,在一定程度上延长了网络的生存周期。
目前,WSN技术己经渐趋成熟和实用,其路由协议研究也成为一个热点。经典的LEACH具有一定的局限性,通过对LEACH的改进,进行仿真。通过仿真,LEACH的改进,比原LEACH协议具有更好的网络生存周期,节约了节点能耗。
图2 网络生存周期
图3 平均能量消耗
[1]任丰原,黄海宁,林闯.无线传感器网络[J].软件学报,2003,14(7):1282-1291.
[2]李建中,李金宝,石胜飞.传感器网络及其数据管理的概念、问题与进展[J].软件学报,2003,14(10):1717-1727.
[3]Heinzelman W.Application-specific-protocol-architectures for Wireless Networks[D].Ph.D.Dissertstion,Mass.Inst.Technol,Cambridge,2000.
[4]Wendi B.Heinzelman,An Application-Specific-Protocol-Architecture for Wireless Microsensor Networks[C].IEEE Transactions on Wireless Communications,2002,1(4):660-670.
[5]Wendi Rabiner Heizelman,Joanna Kulik,H.ari Balakrishnan.Adaptive Protocols for information dissemination in Wireless Sensor Networks[A].VictorBah1.1999 5th ACM/IE-EE Annual International Conference on Mobile Computing and Networking Proceedings[C].Seattle,WA,USA:ACM,1999.174-185.
[6]柯志亨,程荣祥,邓德隽.NS2仿真实验——多媒体和无线网络通信[M].北京:电子工业出版社,2009.
[7]王慧斌,俞弦,徐立中.无线传感器网络LEACH协议的改进[J].无线传感器网及网络信息处理技术,2006:10176-184.