一种基于丢包率测量的WSN分簇方法
技术领域
本发明属于无线传感器网络分簇协议技术领域,涉及一种基于丢包率测量的WSN分簇方法。
背景技术
无线传感器网络是由大量的传感器节点构成的一种自组织网络。这种网络***可以被广泛应用于环境监测、医疗护理、军事国防、智能家居等领域。通过在感知区域放置大量密集部署、自组织的无线传感器节点,用户可以完成对指定区域的监控。
目前,分簇是无线传感器网络的主要节能手段之一。将无线传感器网络的传感器节点分簇,可以有效组织网络拓扑,利用多跳传输的方式进行通讯,减少长距离的传输,因此能够有效减少能源的消耗,从而延长网络生命期。在现有的分簇方法中,可以根据簇首的选择范围以及方式大致选取了以下两类。第一类是在整个传感区域中按照某种概率随机地选取若干簇首,而普通节点加入某个簇后,进而将传感区域划分为由各簇首所代表的若干区域。其中比较具有代表性的是文献[1]提出的基本LEACH协议。LEACH(Low-Energy AdaptiveClustering Hierarchy)是第一种基于聚簇式的分层路由协议,它采用了轮的概念,在每一轮中采用随机的方式为每个簇选择簇首节点,然后由簇内成员节点收集信息,并汇聚到簇首,最后再由簇首直接发往汇聚节点。LEACH选取簇首时是采用随机的方式,而能量消耗过多的节点一旦再被选为簇首,就有可能在下一轮信息采集中死亡,从而导致信息收集失败,进而影响整个网络的功能目标。第二类是根据节点的能量均衡问题来进行簇首的选取,能量高的节点被选为簇首的概率高,然后再根据簇首的分布情况来进行区域的划分。文献[2]介绍了一种基于这种分簇的LEACH-C协议。LEACH-C(LEACH-Centralized)分簇路由协议是在每轮开始时每个节点把自己的位置和当前能量情况报告给汇聚节点,汇聚节点计算出网络中节点的平均能量,能量高于平均能量的节点被选作候选簇首,然后采用模拟退火算法从候选簇首节点中选出数量合适且位置最优的节点作为簇首,最后汇聚节点将分簇结果广播给各个节点。
但是,无线传感器网络经常工作在恶劣的环境中,由于无线链路受到干扰或者衰落,经常需要数据重发,导致现有分簇性能降低。目前,大多数的WSN分簇方案中都没有涉及到簇首的丢包率问题的研究,都是通过节点能量的高低或节点的位置等来进行选取簇首。然而由于干扰和衰落,尽管节点的能量高或位置离汇聚节点近,但是由于需要不停重发,这些分簇方法不一定能够达到延长整个网络的生存周期或节能的目的。假设到当选簇首的节点的丢包率很大,这就意味传感器节点和簇首的通信要多次重新发送数据包。由于重发的能量耗费,多次重发会严重降低整个网络的生存时间。
因此,簇首的丢包率是非常重要的问题,需要提出一种能在恶劣电磁环境下仍能有效降低能源消耗,延长网络生命期的分簇方法。
本发明提出了改进分簇协议,用于解决由于干扰或衰落导致如图1所示(簇1,簇2,...,簇n及汇聚节点部分构成LEACH拓扑)无线传感网络生存性降低这一问题。
[1]LiTian,HuaichangDu,YanweiHuang,The Simulation and Analysis of LEACHProtocol for Wireless Sensor Network Based on NS2,IEEE,International Conferenceon System Science and Engineering,2012:530-533
[2]Shuo Shi,Xinning Liu and Xuemai Gu,An Energy-Efficiency OptimizedLEACH-C for Wireless Sensor Networks,IEEE International ICST Conference onCommunications and Networking,2012:487-492
发明内容
本发明提出一种基于丢包率测量的WSN分簇协议,能够避免分簇节点的簇首丢包率过高导致网络生存时间减少的问题。
本发明所采用的技术方案是按照以下步骤进行:
步骤1:选择由传感器节点、汇聚节点和任务管理节点组成的无线传感器网络,其中所有传感器节点和任务管理节点都可以直接与汇聚节点通信;
步骤2:所有节点均将自己的当前电池能量E、丢包率P和位置信息ID发送到汇聚节点;
步骤3:汇聚节点根据当前节点的电池能量计算出网络中节点当前的有效能量Ev,只有当有效能量Ev高于平均有效能量值Evaver的节点才会被选作候选簇首,并建立一个候选簇首集合;
步骤4:汇聚节点对候选簇首集合运用LEACH-C协议中的模拟退火算法,基于网络总的能量消耗最小函数进行目标优化,通过使用模拟退火算法从候选簇首中选择出使目标函数较小的簇首集合,得出所有节点的分簇方案并发送给每个节点;
步骤5:当节点接收到分簇方案的消息后,确定自己是否当选为簇首,当选簇首的节点应用CSMA/MAC协议以相同的发射功率向剩余节点们广播自己成为簇首的消息,称为ADV,剩余节点接听簇首们的ADV消息,当剩余节点接收完簇首的ADV消息之后,根据接收到的ADV消息的能量强度来决定加入哪个簇首,由于信道对称且ADV消息是以相同的发射功率发送,簇首发出的ADV报文信号越强,则其和该普通节点进行通信时能耗越小,在无障碍物影响下,该簇首是离普通节点最近的节点,在传感器节点确定加入哪个簇首的分簇之后,传感器节点用CSMA/MAC协议发送Join-REQ到相应的簇首,簇首接收所有的Join-REQ消息,形成无线传感器网络节点的簇;
步骤6:在每次进行数据传输时,当发送数据的节点发现有数据包丢失时丢包计数器加1,丢包计数器在数据传输阶段不断的累加,累加数字的大小是由节点决定的,节点丢包严重则累加值就大,但是当一轮时间结束后,节点不再发送数据,累加器也不再累加,进入下一轮,在选完候选簇首节点之后进行计数器清零,然后此后的每一轮都重复进行以上的步骤,直到节点全部死亡。
进一步,所述步骤1中传感器节点采用现成的EZ430-RF2500模块,由传感器模块、MSP430F2274处理器模块、CC2500无线通信模块和电源组成。
进一步,所述步骤3中有效能量Ev按照如下公式计算:
Ev=E×(1-P),
其中P是节点的丢包率,在时刻t的计算公式为:
Evi(t)=Ei(t)×(1-Pi(t)),
Evaver(t)=Evtotal(t)/N,
Ei(t)是第i个节点当前时刻t的剩余能量,Evi(t)是第i个节点的当前时刻t的有效能量,Evaver(t)是当前时刻t的节点的平均有效能量,Pi(t)是第i个节点的当前时刻t的丢包率,Evtotal(t)是所有N个节点当前有效能量之和。
本发明的有益效果是减小了簇首的丢包率,相较于一般的无线传感器网络分簇方法在生存性得到了提高。
附图说明
图1为本发明无线传感器网络组成图;
图2为本发明传感器节点体系结构图;
图3为本发明基于丢包率测量的WSN分簇协议LEACH-LLR算法的流程图;
图4为本发明LEACH-LLR算法的一轮工作过程示意图;
图5为本发明所提出的基于丢包率测量的WSN簇首选择的流程图;
图6网络中存活节点个数与运行时间的关系图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明一种基于丢包率测量的WSN分簇方法的步骤为:
步骤1:本发明采用的无线传感器网络的***构架如图1所示,是由传感器节点(即所有簇内节点)、汇聚节点(Sink)以及任务管理节点组成。传感器节点,是一个微型的嵌入式***,它的处理能力、存储能力和通信能力相对较弱,通过携带能量有限的电池供电。汇聚节点(Sink)连接传感器网络与Intemet等外部网络,实现两种协议栈之间的通信协议转换,同时发布管理节点的监测任务,并把收集的数据转发到外部网络上。因此,汇聚节点的处理能力、存储能力和通信能力相对比较强。在分簇路由协议中,将部分存在一定关联的节点划分成一个集合,称为簇。在该集合中推选某个节点作为中心节点,称为簇首节点,简称簇首;其余节点则为簇成员节点。簇首节点对簇内成员节点进行管理从而实现协同工作,并负责收集簇内的信息和簇间信息转发。
本发明可选基于如图2所示的传感器节点,传感器节点采用的EZ430-RF2500模块,由传感器模块、MSP430F2274处理器模块、CC2500无线通信模块和电源(电池)组成。
基于丢包率测量的WSN分簇协议流程图如图3所示。本发明定义了“轮”的概念,该算法的一轮工作过程图如图4所示,每轮由簇首的选择,簇的形成和稳定数据传输三个阶段组成。本发明所提出的LEACH-LLR协议中簇首选择的流程图如图5所示。LEACH-LLR协议具体步骤如下:
首先LEACH-LLR协议是基于两个设定:
1)网络中所有节点都可以直接与汇聚节点通信。
2)节点可以对发送功率进行调整。
步骤2:LEACH-LLR协议的簇首选择的步骤:
在每一轮开始时,所有节点均将自己的当前电池能量(Watt)E、丢包率P和位置信息ID发送到汇聚节点。
步骤3:汇聚节点根据当前节点的电池能量计算出网络中节点当前的有效能量Ev,只有当有效能量Ev高于平均有效能量值Evaver的节点才会被选作候选簇首,并建立一个候选簇首集合。其中有效能量Ev按照如下公式计算:
Ev=E×(1-P)
其中P是节点的丢包率。在分簇时刻t的计算公式为:
Evi(t)=Ei(t)×(1-Pi(t)),
Evaver(t)=Evtotal(t)/N,
Ei(t)是第i个节点当前时刻t的剩余能量,Evi(t)是第i个节点的当前时刻t的有效能量,Evaver(t)是当前时刻t的节点的平均有效能量,Pi(t)是第i个节点上一轮的丢包率,Evtotal(t)是所有N个节点当前有效能量之和;
步骤4:汇聚节点对候选簇首集合运用LEACH-C协议中的模拟退火算法(来自于文献[2]中的选簇方法),基于网络总的能量消耗最小函数进行目标优化,通过使用模拟退火算法从候选簇首中选择出使目标函数较小的簇首集合。得出所有节点的分簇方案,并将分簇方案发送给每个节点。
步骤5:LEACH-LLR协议的簇的形成步骤:
当节点接收到分簇方案的消息后,确定自己是否当选为簇首,当选簇首的节点应用CSMA/MAC协议以相同的发射功率向剩余节点们广播自己成为簇首的消息,称为ADV,剩余节点接听簇首们的ADV消息,当剩余节点接收完簇首的ADV消息之后,根据接收到的ADV消息的能量强度来决定加入哪个簇首,由于信道对称且ADV消息是以相同的发射功率发送,簇首发出的ADV报文信号越强,则其和该普通节点进行通信时能耗越小,在无障碍物影响下,该簇首是离普通节点最近的节点。在传感器节点确定加入哪个簇首的分簇之后,传感器节点用CSMA/MAC协议发送Join-REQ到相应的簇首。簇首接收所有的Join-REQ消息。到此,无线传感器网络节点的簇已经形成;
步骤6:LEACH-LLR协议的稳定数据传输阶段步骤:
在稳定数据传输阶段,簇首根据簇内节点加入的先后顺序创建一个TDMA时隙表,也就是簇内节点发送数据的时间顺序表,簇内节点根据分配好的时间顺序将采集到的数据依次发送给簇首节点,簇首节点接收数据,当所有簇内节点都按照TDMA时隙表发送完数据后,簇首节点再将自己采集的数据跟接收到的数据进行融合压缩后,发送给汇聚节点。本发明与LEACH-C协议的不同之处是所有传感器节点在数据发送阶段要进行丢包计数的统计工作,通过丢包计数器进行丢包率统计,在每次进行数据传输时,当发送数据的节点发现有数据包丢失时丢包计数器加1,丢包率P的计算公式如下:
P=丢包计数器n/总发送次数N,
丢包计数器在数据传输阶段不断的累加,累加数字的大小是由节点决定的,节点丢包严重则累加值就大,但是当一轮时间结束后,节点不再发送数据,累加器也不再累加,进入下一轮,在选完候选簇首节点之后进行计数器清零。然后此后的每一轮都重复进行以上的步骤,直到节点全部死亡。
本发明的优点有:本发明能够避免分簇节点的簇首丢包率过高导致网络生存时间减少、数据传输效率低和时延大的问题;不仅可以节省节点能耗还可以提高网络的数据传输效率,降低汇聚节点的传输时延。减小了簇首的丢包率,相较于一般的无线传感器网络分簇方法在生存性、节能和传输时延方面都得到了提高;而且算法中丢包率的计算方法复杂度极低,便于实施及节省能量。
在进行仿真测试时对比验证时,本发明方法与LEACH-C在基于丢包率都是[0.01,0.1]的环境下,网络生存性方面的比较如图6所示,从图中可以看出本发明较LEACH-C能延长网络的生存时间,且簇首节点“死亡”的时间明显延迟。这是由于本发明方法优化了簇首的能耗,选取了丢包率小,能量相对高的节点来当选簇首,从而使网络的能量使用效率明显改善且网络的生存时间也得到了延长,提高了***的性能。