本发明属于无线传感器网络领域,具体地说,涉及一种无线传感网多层次簇构建和簇头更新方法。
背景技术:
分簇拓扑结构便于管理,有利于分布式路由算法的应用,具有较好的可扩展性,适合大规模无线传感器网络应用。分簇路由协议通常将网络划分为簇,每个簇由簇头和多个簇成员组成,簇头管理或控制整个簇内成员节点,数据通过簇头间多跳传输至汇聚节点。分簇路由协议设计的首要目标是通过高效的分簇算法形成合理的网络结构,通过有效的簇头轮换机制保证网络连通性,延长网络的生命周期。因此,簇稳定性成了通信连接性能优劣、簇维护开销的高低与网络运行周期长短的主要决定因素,提高簇稳定性、降低簇重建频率和维护开销是簇构建算法的重要目标。
针对无线传感器网络分簇路由,围绕簇头的产生、簇的形成和簇的数据传输而设计了许多无线传感网分簇路由算法。《能量感知的无线传感器网络数据收集协议》,软件学报,2007,18(5):1092-1109,作者刘明,曹建农,陈贵海等,公开了基于节点自身及其邻居节点剩余能量设计簇头选举及簇构建方案,通过调节簇头覆盖半径确保由簇头形成的子图连通性,再构建汇聚树传输数据。但当网络负载较大时,不同簇成员之间的数据传输容易产生冲突,使得簇头收集数据效率下降,从而容易导致网络拥塞。《efficientroutingalgorithmbasedonunequalclusteringandconnectedgraphinwirelesssensornetworks》,internationaljournalofwirelessinformationnetworks,2016,23(2):141-150,作者xiah,zhangr,yuj,公开了通过调节传感器节点的通信半径将传感器网络进行非均匀分簇,再采用连通图理论设计路由选择算法。但分簇时仅考虑能量空洞避免,使得簇网络拓扑为节省能耗而频繁变动,导致维护网络稳定性的代价过大,造成网络性能下降。簇头间路由算法仅使用图论设计簇头间数据传输路由,忽视了无线传感网协议栈的信息共享以及传感器节点数据传输特点,优化效果受限。
从上述现有技术可知,现有无线传感网簇结构及路由方法性能不稳定、性能不均衡;如何利用无线传感器网络分布式的特点建立更高效的启发机制、通过局部区域有限范围内节点之间的互动和信息反馈来分簇,在降低节点间通信干扰、保证网络运行周期的同时,提高簇稳定性和网络数据传输性能仍然有待进一步创新。
技术实现要素:
1、要解决的问题
针对现有无线传感网簇结构稳定性不高的问题,本发明提供一种无线传感网簇构建和簇头更新方法,能够提高簇稳定性,改善网络服务性能。
2、技术方案
为解决上述问题,本发明采用如下的技术方案。
一种无线传感网多层次簇结构构建方法,
在传感器节点部署后,节点间定时发送hello消息收集相邻的邻居节点信息,使用基于rssi测距的信标节点定位算法,以汇聚节点为信标节点,建立相对坐标系统,各节点保存其坐标信息;通过以汇聚节点为起点,由近及远地完成全网的多层次簇构建;
具体包括如下步骤,
步骤a,在网络初始化阶段,以汇聚节点为中心、将传感器节点无线通信半径内的传感器节点划分为第0层簇网络;根据节点是否已经成为簇头或簇成员,将网络中所有节点划分为簇节点和空白节点,簇节点为已经成为簇头或簇成员的节点,反之则为空白节点;
步骤b,使用传感器节点能耗平衡策略方法构建第1层簇网络;
步骤c,以簇头能力值为依据,依次建立第1层簇网络的下层簇网络,即建立第2、第3、……第n层簇网络,n≥2。
优选地,步骤b中传感器节点能耗平衡策略方法包括,
步骤b1,计算步骤a中所述的第0层簇网络中各传感器节点能耗平衡值,并广播簇构建请求消息,节点i的能耗平衡值计算方法如下:
步骤b2,在收到所有第0层簇网络中邻居节点的簇构建消息后,空白节点选择具有最大能耗平衡值的邻居节点作为簇头,通过回复入簇消息请求加入簇结构;
步骤b3,第0层簇网络中节点在接收到空白节点的入簇消息后,检测其自身是否为目标节点,如果自身为目标节点,则将自身设置为簇头并广播成簇消息,通知簇成员节点进入睡眠状态;若节点在簇网络构建时长t超时后仍未收到自身为目标节点的入簇请求消息,则该节点为普通节点并进入睡眠状态;至此,完成第1层簇网络的构建。
优选地,步骤c中,
以簇头能力值为依据,依次建立第2、第3、……第n层簇网络,n≥2,
具体步骤为,
步骤c1,第n-1层簇网络中各簇成员计算自身簇头能力值,随后广播簇构建请求消息;
步骤c2,空白节点收到来自第n-1层邻居节点的簇构建消息时,将其簇头能力值保存至邻居表中;在接收到所有上层邻居簇头的簇构建消息后,选择其中具有最大簇头能力值的作为自身簇头,回复入簇消息;
步骤c3,第n-1层节点在接收到第n层节点的入簇消息后,检测其自身是否为目标节点,如果自身为目标节点,则将自身设置为簇头并广播成簇消息,通知簇成员节点进入睡眠状态;若节点在簇网络构建时长t超时后仍未收到自身为目标节点的入簇请求消息,则该节点为普通节点并进入睡眠状态。将所有成为簇头的节点划入第n层。至此,完成第n层簇网络的构建;
步骤c4,重复步骤c1-c3,直至完成整个无线传感网的簇网络构建。
优选地,步骤c1中,簇头能力值的计算方法如下,
首先,判断节点i担任簇头角色时该簇的稳定值si,计算公式如下:
si为节点i在同层簇网络中邻居节点集合,r为通信半径,d(,)表示两个节点间的欧几里得距离,
然后,计算节点簇头能力值,
zi为节点i通信半径范围内的空白节点集合;rj(j∈zi)为zi中节点j上报数据量的数学期望;pi为位于节点i通信半径内,且归属于第n-2层簇网络中簇头的集合;||表示集合中元素的个数。
一种无线传感网多层次簇结构,采用上述方法构建。
一种上述无线传感网多层次簇结构中簇头更新方法,包括如下步骤,
步骤a,簇头i依据剩余能量、流量负载等因素,采用下式评估是否能够满足继续担任簇头,若下式不满足,转步骤b进行簇更新;
以上所述的子簇头是相对概念,指位于当前簇头通信半径内,且归属于当前簇头所在网络层次的下一层网络中的簇头;
步骤b,簇头i通过广播簇更新消息,通知其邻居节点该进入簇头更新状态;随后邻居节点j根据双方位置、j的剩余能量及所在层次的相邻两层中的邻居簇头信息,按下式计算自身的簇头能力值,
d(,)表示簇头i与节点j的欧几里得距离,
以上所述的父簇头是相对概念,指位于当前簇头通信半径内,且归属于当前簇头所在网络层次的上一层网络中的簇头;
步骤c,簇头i推选具有最大簇头能力值的节点作为新簇头,再分别由簇头i、新簇头在各自通信半径内广播簇头更换消息,并完成角色转换;
步骤d,收到簇头i的簇头更换消息、但未收到来自新簇头的簇头更换消息的节点根据邻居表判断其通信范围内是否有簇头邻居,如有则向簇头能力值最大的邻居簇头发送请求加入消息,否则进入孤立节点状态;孤立节点选择剩余能量最大的邻居节点中继数据,后期网络运行过程中,如收到新簇头广播消息时加入具有最大簇头能力值的簇。
3、有益效果
相比于现有技术,本发明的有益效果为:
(1)本发明构造的层次式簇结构,在原来的网络之上形成一个多连接的虚拟簇头网络,簇头间通过多跳方式将数据传输至汇聚节点,克服了leach等协议采用单跳传输方式所带来的高能耗;
(2)本发明构造的层次式簇结构具有稳定性高、分布式按需簇更新的特点,且克服了传统方法周期性全网簇更新所带来的高额开销。
附图说明
图1为本发明无线传感网簇网络结构图;
图中a-k为各簇头结构;短虚线内为第0层簇网络;实线内为第1层簇网络;长虚线内为第2层簇网络;长虚线外为第3层簇网络;
图2为本发明簇头间的逻辑连接关系图(以簇头i为例);
图中ip为簇头i在上层网络中的父簇头;ic为簇头i的在下层网络中的子簇头;iq为簇头i通信半径内的同层簇头;
图3为本发明具体实施方式中簇头i的数据传输对其所有父簇头的干扰场景;
图4为本发明具体实施方式中簇头i对其所有子簇头数据传输的干扰场景;
图5为本发明具体实施方式中簇头i数据传输对同层簇头数据传输的干扰场景。
具体实施方式
下面结合具体实施例对本发明进一步进行描述。
如图1和图2所示,一种无线传感网多层次簇结构,存在a-k共11个簇头结构,将网络划分为4层,分别为第0层簇网络、第1层簇网络、第2层簇网络和第3层簇网络;数据通过簇头节点在簇之间传递直至汇聚节点。
本发明构建完成的簇网络,逻辑连接关系仅存在于相邻层的簇头间,同层网络的簇头间不存在逻辑连接关系。存在逻辑连接关系的簇头中,将上层网络中的簇头称为父簇头,下层网络中的簇头称为子簇头。
其构建方法为,在传感器节点部署后,节点间定时发送hello消息收集相邻的邻居节点信息,使用基于rssi测距的信标节点定位算法,以汇聚节点为信标节点,建立相对坐标系统,各节点保存其坐标信息;通过以汇聚节点为起点,由近及远地完成全网的多层次簇构建;
具体包括如下步骤,
步骤a,在网络初始化阶段,以汇聚节点为中心、将传感器节点无线通信半径内的传感器节点划分为第0层簇网络;根据节点是否已经成为簇头或簇成员,将网络中所有节点划分为簇节点和空白节点,簇节点为已经成为簇头或簇成员的节点,反之则为空白节点;
步骤b,使用传感器节点能耗平衡策略方法构建第1层簇网络;
本步骤中传感器节点能耗平衡策略方法包括如下步骤:
步骤b1,计算步骤a中所述的第0层簇网络中各传感器节点能耗平衡值,并广播簇构建请求消息,节点i的能耗平衡值计算方法如下:
步骤b2,在收到所有第0层簇网络中邻居节点的簇构建消息后,空白节点选择具有最大能耗平衡值的邻居节点作为簇头,通过回复入簇消息请求加入簇结构;
步骤b3,第0层簇网络中节点在接收到空白节点的入簇消息后,检测其自身是否为目标节点,如果自身为目标节点,则将自身设置为簇头并广播成簇消息,通知簇成员节点进入睡眠状态;若节点在簇网络构建时长t超时后仍未收到自身为目标节点的入簇请求消息,则该节点为普通节点并进入睡眠状态;至此,完成第1层簇网络的构建;
本步骤中t取2秒,但t可根据网络规模、传感器分布特征、传感器通信半径等进行调整;
本步骤中承担第1层簇头以及这些簇头覆盖的成员节点构成了第1层簇网络;
步骤c,以簇头能力值为依据,依次建立第1层簇网络的下层簇网络,即建立第2、第3、……第n层簇网络,n≥2;具体步骤为:
步骤c1,第n-1层簇网络中各簇成员计算自身簇头能力值,随后广播簇构建请求消息;
簇头能力值的计算方法如下,
首先,判断节点i担任簇头角色时该簇的稳定值si,计算公式如下:
si为节点i在同层簇网络中邻居节点集合,r为通信半径,d(,)表示两个节点间的欧几里得距离,
然后,计算节点簇头能力值,
zi为节点i通信半径范围内的空白节点集合;rj(j∈zi)为zi中节点j上报数据量的数学期望;pi为位于节点i通信半径内,且归属于第n-2层簇网络中簇头的集合;||表示集合中元素的个数;
步骤c2,空白节点收到来自第n-1层邻居节点的簇构建消息时,将其簇头能力值保存至邻居表中;在接收到所有上层邻居簇头的簇构建消息后,选择其中具有最大簇头能力值的作为自身簇头,回复入簇消息;
步骤c3,第n-1层节点在接收到第n层节点的入簇消息后,检测其自身是否为目标节点,如果自身为目标节点,则将自身设置为簇头并广播成簇消息,通知簇成员节点进入睡眠状态;若节点在簇网络构建时长t超时后仍未收到自身为目标节点的入簇请求消息,则该节点为普通节点并进入睡眠状态。将所有成为簇头的节点划入第n层。至此,完成第n层簇网络的构建;
本步骤中t取2秒,但t可根据网络规模、传感器分布特征、传感器通信半径等进行调整;
步骤c4,重复步骤c1-c3,直至完成整个无线传感网的簇网络构建;
本步骤中承担第n层簇头以及这些簇头覆盖的成员节点构成了第n层簇网络。
该方法综合考虑了簇网络的稳定性、簇头节点负载与传输能力以及对其他簇结构的影响。簇头能力值的定义为构建合理的初始化簇网络提供了支持。簇头能力值通过与节点相关的路由数有效地控制新构造的簇对已存在的其他簇产生的影响,同时使用稳定性与父节点个数判断簇头传输数据的能力。
在上述无线传感网多层次簇结构初始化构建周期结束后,汇聚节点将各个节点在网络中的状态通过广播分簇消息通知各个节点;各簇头节点在接收到网络运行消息后,再进行转发,通知其邻居节点,由此,网络中所有节点均可接收到该消息;节点在接收到广播分簇消息后,开启运行周期,直至能量耗尽;每个周期包括簇内数据传输阶段与簇间数据传输阶段;首先,簇内数据传输阶段,簇成员节点通过基于竞争的介质访问控制层协议将数据传输至簇头节点后进入睡眠状态,直到下一个周期的簇内数据传输阶段的到来;然后,在簇间数据传输阶段,簇头节点进行数据融合,并将数据通过簇头节点间转发至汇聚节点;
簇头节点在簇间数据传输周期结束时,判断自身是否能够继续担任簇头。当簇头剩余能量不足以继续担任簇头时,进入簇头更新阶段。选择新的簇头时,充分考虑候选簇头的剩余能量以及与原簇头之间距离,尽量避免对网络拓扑造成过大的变动。同时,节点在网络中承担的网络负载以及本身的传输能力也是很重要的因素。节点的网络负载和父节点个数中的任一个相较另一个偏大或偏小容易造成网络拥塞或资源分配不平衡导致信道资源浪费。
一种上述无线传感网多层次簇结构中簇头更新方法,包括如下步骤,
步骤a,簇头i依据剩余能量、流量负载等因素,采用下式评估是否能够满足继续担任簇头,若下式不满足,转步骤b进行簇更新;
步骤b,簇头i通过广播簇更新消息,通知其邻居节点该进入簇头更新状态;随后邻居节点j根据双方位置、j的剩余能量及所在层次的相邻两层中的邻居簇头信息,按下式计算自身的簇头能力值,
d(,)表示簇头i与节点j的欧几里得距离,
步骤c,簇头i推选具有最大簇头能力值的节点作为新簇头,再分别由簇头i、新簇头在各自通信半径内广播簇头更换消息,并完成角色转换;
步骤d,收到簇头i的簇头更换消息、但未收到来自新簇头的簇头更换消息的节点根据邻居表判断其通信范围内是否有簇头邻居,如有则向簇头能力值最大的邻居簇头发送请求加入消息,否则进入孤立节点状态;孤立节点选择剩余能量最大的邻居节点中继数据,后期网络运行过程中,如收到新簇头广播消息时加入具有最大簇头能力值的簇;簇更新造成的孤立簇执行步骤b和c进行簇更新。
本实施例通过基于上述一种无线传感网多层次簇结构的分布式路由方法,以说明其稳定性好、性能高的优点;
本发明使用干扰因子为依据计算下一跳选择的概率。具体方案如下:
步骤a,簇头间通过hello消息交换彼此的逻辑连接关系、簇头负载预测值以及自身的干扰因子,并将其记录入各自的邻居表中;邻居表中,标记出簇网络构建过程中形成的簇头间父、子、同层关系;
本步骤中簇头i负载预测值的计算公式如下,
li、lj分别表示簇头i及其子簇头j的负载预测值,pj、cj分别表示簇头j的父簇头与子簇头集合;ui为簇头i所在簇的成员节点集合,rj表示以i为簇头的簇内成员节点j上报数据量的数学期望;||表示集合中元素的个数;
步骤b,更新与维护簇头i数据传输对邻居簇头数据传输的干扰因子;
本步骤中确定簇头i数据传输对邻居簇头的数据传输干扰因子的更新与维护,计算公式如下,
右边第一项计算簇头i对其父簇头集合中所有成员的子簇头数据传输的干扰程度(图3);第二项计算簇头i对其子簇头中所有成员数据传输的干扰程度(图4);第三项计算簇头i对所有同层邻居簇头数据传输的干扰程度(图5);
pi、pk分别为簇头i和k的父簇头集合,cj为簇头j的子簇头集合,mi为簇头i通信半径范围内同层簇头集合,lk表示簇头k的流量负载预测值;||表示集合中元素的个数;
步骤c,下层网络簇头j以所计算的各父簇头干扰因子为依据,确定各父簇头为下一跳的概率;
计算方法如下,
pj表示簇头j的父簇头集合,ifi、ifk分别为簇头j的父簇头i、k的干扰因子;x为簇头j通过hello消息已获取干扰因子值的邻居簇头数量,未获取干扰因子的簇头i干扰因子值ifi为0,且被选作下一跳的概率为
以上所述仅为本发明的实施例而已,并不用于限制本发明。本发明可以有各种合适的更改和变化。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。