发明内容
本发明的目的在于,提供一种使无线网络传感器节点动态地关闭无线射频功能的方法,用以减少由于空闲侦听造成的能量消耗;同时,克服现有无线传感器网络分布式休眠机制区域性休眠策略的不足。
本发明的技术方案是,一种基于概率统计的无线传感器网络分布式休眠方法,其特征是所述方法包括下列步骤:
步骤1:分布式休眠过程启动后,判断无限传感器网络中的待测节点是否是正在使用的路由的中间节点或数据源节点,如果是,则执行步骤13;否则,执行步骤2;
步骤2:所述待测节点从邻居节点列表中获取处于激活状态的邻居节点个数,并根据分布式冗余判定准则,判断所述待测节点是否处于冗余状态;如果是,则执行步骤3;否则,执行步骤13;
步骤3:所述待测节点向同层节点、所述待测节点的前向节点和所述待测节点的后向节点发送休眠通告报文,并启动休眠通告定时器;
步骤4:所述前向节点收到所述休眠通告报文后,直接将邻居节点列表中所述待测节点的工作状态修改为休眠状态;
步骤5:所述同层节点或所述后向节点收到所述待测节点发送的休眠通告报文后,检查自己的邻居节点列表,判断所述待测节点是否是所述同层节点中唯一处于激活状态的节点或者是否是所述后向节点唯一处于激活状态的前向节点;如果是,则执行步骤6;否则,执行步骤9;
步骤6:所述同层节点或所述后向节点向所述待测节点发送休眠阻止报文,禁止所述待测节点切换至休眠状态;
步骤7:所述待测节点在休眠通告定时器超时前,收到休眠阻止报文时,检查被禁止休眠的节点地址是否是所述待测节点本身的地址;如果是,所述待测节点将自动终止本轮休眠请求,跳至步骤13;否则,执行步骤8;
步骤8:所述待测节点将以所述被禁止休眠的节点的地址作为关键字查找相应的邻居节点列表,并将所述被禁止休眠的节点的工作状态修正为激活状态,跳至步骤13;
步骤9:所述同层节点或所述后向节点将邻居列表中所述待测节点的工作状态改为休眠状态;
步骤10:在休眠通告定时器超时前,所述待测节点未收到休眠阻止报文,所述待测节点设定休眠定时器,并关闭无线通信模块正式切换至休眠状态;
步骤11:当休眠定时器超时后,所述待测节点向所述待测节点的同层节点、所述待测节点的前向节点和所述待测节点的后向节点发送休眠唤醒报文;
步骤12:收到所述休眠唤醒报文的节点将相应邻居节点列表的工作状态修改为激活状态;
步骤13:本轮分布式休眠过程结束。
所述邻居节点列表包括字段:邻居节点地址、剩余能量、位置标识、区域标识和工作状态。
所述分布式冗余判定准则具体是:将所述待测节点的一跳邻居节点分为两类,第一类是落在待测节点感知区域内的节点,第二类是落在待测节点感知区域外但与待测节点感知区域具有重合感知面积的节点;则所述待测节点的分布式覆盖率函数为:
其中,n1,n2分别表示落在待测节点感知区域内、外的节点数;p1是第一类节点对待测节点感知区域的平均覆盖率、p2是第二类节点对待测节点感知区域的平均覆盖率;λ为第一类节点和第二类节点在覆盖时的权重;当所述待测节点的分布式覆盖率函数大于等于设定值时,即被判定为处于冗余状态。
所述同层节点是指在无线传感器网络中与所述待测节点具有相同跳数的节点。
所述待测节点的前向节点是指与所述待测节点相邻,并且在无线传感器网络中跳数值小于所述待测节点的节点。
所述待测节点的后向节点是指与所述待测节点相邻,并且在无线传感器网络中跳数值大于所述待测节点的节点。
所述休眠通告报文包括字段:报文类型、报文源地址。
所述休眠阻止报文包括字段:报文类型、报文源地址和报文目的地址。
所述休眠唤醒报文包括字段:报文类型、报文源地址。
所述休眠通告定时器设定的定时时间是:
其中a为基本延时;Einit为节点初始能量值;e为节点当前能量值;k为设定值,表示延时对剩余能量的依附程度。
本发明通过对局部邻居节点信息进行统计来估计本节点的感知覆盖区域是否能被相邻节点的感知覆盖范围所覆盖,以达到应用所需的最小感知覆盖度。本发明提供的方法对相邻节点间距离进行估计,并通过二项分布对节点区域覆盖率进行估算。该方法在保证网络连通性的同时,可使网络节点根据不同的应用感知,进行自适应休眠任务的调节。
具体实施方式
下面结合附图,对优选实施例作详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
图1是基于概率统计的无线传感器网络分布式休眠方法原理图。图1中,本发明通过节点O1对局部邻居节点O2、O3、O4、O5信息进行统计,来估计本节点O1的感知覆盖区域是否能被相邻节点O2、O3、O4、O5的感知覆盖范围所覆盖,从而达到应用所需的最小感知覆盖度。
图2是基于概率统计的无线传感器网络分布式休眠方法流程图。图2中,本发明的实现过程包括如下步骤:
步骤101:分布式休眠过程启动后,判断无限传感器网络中的待测节点是否是正在使用的路由的中间节点或数据源节点,如果是,则执行步骤113;否则,执行步骤102。
路由的中间节点是指:正在被某条路由所使用的节点。
数据源节点是指:产生数据的节点。
因为路由的中间节点和数据源节点是正处于工作状态的节点,如果他们不工作了,那整个无限传感器网络也就失效了。因此,为了不让正在使用中的路由中断和保证源数据的发送,使路由中间节点和数据源节点不响应分布式休眠过程。
步骤102:所述待测节点从邻居节点列表中获取处于激活状态的邻居节点个数,并根据分布式冗余判定准则,判断所述待测节点是否处于冗余状态。
图3是邻居节点列表结构图。图3中,邻居节点列表包括字段:邻居节点地址、剩余能量、位置标识、区域标识和工作状态。其中,邻居节点地址占用8个字节、剩余能量占用4个字节、位置标识占用1个字节、区域标识占用1个字节、工作状态占用1个字节。
分布式冗余判定准则具体是:将待测节点的一跳邻居节点分为两类,第一类是落在待测节点感知区域内的节点,第二类是落在待测节点感知区域外但与待测节点感知区域具有重合感知面积的节点。
待测节点的一跳邻居节点是指:与待测节点的一跳通信范围内可以到达的所有节点的集合。与待测节点之间只有一跳,也就是此节点和待测节点的路由通信之间不经过其他节点。
待测节点的感知区域是指:假设在二维坐标区域内节点i的坐标为(xi,yi),Rs为感知半径,则节点i的感知覆盖范围为 节点只能对感知覆盖区域内的情况进行感应及数据的采集。
图3是分布式冗余判定准则的节点分类示意图。图3中,假设O为待测节点,Rs为感知半径,第一类节点是落在待测节点感知区域I内的节点,第二类节点是落在待测节点感知区域外但与待测节点感知区域具有重合感知面积II的节点。
通过概率的方法,我们可以计算得出两类节点与中心节点感知区域的重合面积的期望。然后利用统计的邻居节点数量,通过二项分布来近似估计待测节点被其他节点所覆盖的概率。
图4是节点感知重叠区域研究模型示意图。如图4所示,可分别列出节点i、j的中心感知区域方程:
因此,可计算得出感知重合面积为 在节点均匀分布的情况下,对落在中心感知区域内节点的感知重合面积求期望,可得到节点对中心感知区域的平均覆盖面积为:
同理可得,中心节点感知区域外的节点对中心感知区域的平均覆盖面积为:
其中, Rs为节点的感知半径,R′表示与中心节点感知区域相交的节点距离中心节点的最远位置距离。ξ为R′与感知半径Rs的比值,ξ=R′/Rs。
由此可得出中心感知区域内、外的节点对中心感知区域的平均覆盖率分别为:
考虑到即便在节点足够多的情况下处于感知区域外的节点也很难达到对中心感知区域的全覆盖。故在分布式覆盖率中引入了变量λ,用于表示中心感知区域内、外的节点在覆盖时的权重。利用二项分布,我们便可推出节点分布式覆盖率函数:
其中,n1,n2分别表示落在节点感知区域内、外的节点数;p1是第一类节点对中心感知区域的平均覆盖率、p2是第二类节点对中心感知区域的平均覆盖率;λ为第一类节点和第二类节点在覆盖时的权重;当所述待测节点的分布式覆盖率函数大于等于设定值ρmin时,即当
则被判定为处于冗余状态。
如果待测节点处于冗余状态,则执行步骤103;否则,执行步骤113。
步骤103:待测节点向同层节点、待测节点的前向节点和待测节点的后向节点发送休眠通告报文,并启动休眠通告定时器。
其中,同层节点是指在无线传感器网络中与所述待测节点具有相同跳数的节点。待测节点的前向节点是指与所述待测节点相邻,并且在无线传感器网络中跳数值小于所述待测节点的节点。待测节点的后向节点是指与所述待测节点相邻,并且在无线传感器网络中跳数值大于所述待测节点的节点。
图6是休眠通告报文结构图。图6中,休眠通告报文包括字段:报文类型和报文源地址;其中,报文类型站1个字节,报文源地址占8个字节。
休眠通告定时器用于设定休眠通告的响应时间。由于能量相对较少的节点更需要获得休眠的机会,因此将延时定义为与剩余能量相关的函数。延时函数定义为:
其中a为基本延时,Einit为节点初始能量值,e为节点当前能量值,k表示延时对剩余能量的依附程度并根据特定的应用进行针对性设计。
步骤104:前向节点收到所述休眠通告报文后,直接将邻居节点列表中待测节点的工作状态修改为休眠状态。
为防止休眠对路由性能产生影响,当有节点收到休眠通告报文后会根据自己与通告休眠的节点间的位置关系做出不同的处理。由于待测节点休眠只会对以待测节点作为下一跳节点的后向节点及同层节点的路由产生影响,故前向节点收到该报文后直接将邻居节点列表中待测节点的工作状态修改为休眠状态。
步骤105:同层节点或后向节点收到待测节点发送的休眠通告报文后,检查自己的邻居节点列表,判断待测节点是否是同层节点中唯一处于激活状态的节点或者是否是后向节点唯一处于激活状态的前向节点。
如果待测节点是同层节点中唯一处于激活状态的节点,则待测节点不能进入休眠状态。这是因为此时待测节点进入休眠状态,则待测节点所在层的所有节点都处于未激活的状态,整个网络的路由到达该层后,会无法继续路由工作。
同样的道理,待测节点是后向节点唯一处于激活状态的前向节点,则待测节点也不能进入休眠状态。
所以,当待测节点是同层节点中唯一处于激活状态的节点或者是后向节点唯一处于激活状态的前向节点时,则执行步骤106;否则,执行步骤109。
步骤106:同层节点或后向节点向待测节点发送休眠阻止报文,禁止所述待测节点切换至休眠状态。
由于此时待测节点不能进入休眠状态,所以同层节点或后向节点通过向待测节点发送休眠阻止报文,禁止待测节点切换至休眠状态。
图7是休眠阻止报文结构图。图7中,休眠阻止报文包括字段:报文类型、报文源地址和报文目的地址。其中,报文类型占用1个字节、报文源地址占用8个字节、报文目的地址占用8个字节。
步骤107:待测节点在休眠通告定时器超时前,收到休眠阻止报文时,检查被禁止休眠的节点地址是否是待测节点本身的地址。如果是,所述待测节点将自动终止本轮休眠请求,跳至步骤113;否则,执行步骤108。
步骤108:所述待测节点将以所述被禁止休眠的节点的地址作为关键字查找相应的邻居节点列表,并将所述被禁止休眠的节点的工作状态修正为激活状态,跳至步骤113。
步骤109:将同层节点或后向节点将邻居列表中待测节点的工作状态改为休眠状态,默认其在休眠通告定时器超时后自动转为休眠状态。
步骤110:在休眠通告定时器超时前,待测节点未收到休眠阻止报文,待测节点设定休眠定时器,并关闭无线通信模块正式切换至休眠状态。
步骤111:当休眠定时器超时后,待测节点向所述待测节点的同层节点、所述待测节点的前向节点和所述待测节点的后向节点发送休眠唤醒报文。
其中,休眠唤醒报文与休眠通告报文的结构一样。
步骤112:收到所述休眠唤醒报文的节点将相应邻居节点列表的工作状态修改为激活状态。
步骤113:本轮分布式休眠过程结束。
在步骤113之后,可以重复上述步骤101-步骤113开始新一轮的分布式休眠过程。
本发明通过对局部邻居节点信息进行统计来估计本节点的感知覆盖区域是否能被相邻节点的感知覆盖范围所覆盖,以达到应用所需的最小感知覆盖度。分布式休眠机制中对相邻节点间距离进行估计,并通过二项分布对节点区域覆盖率进行估算。该方法在保证网络连通性的同时对感知覆盖也有一定程度的维护,具有方法简便,成本低廉,不需要配置GPS等定位设备,可根据不同的应用感知要求进行自适应调节以及灵活的分布式机制等特点。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。