摘要:针对无线传感器网络部署区域由于通信障碍和其他一些因素产生的某些节点无法与网络通信的情况,给出了一种使用节点代理解决监测区域内节点通信不可达的方案,并基于一般意义的网络系统模型提出了一种探测覆盖区域内节点连通性的算法,即基于深度探测的节点覆盖连通性判定算法DBDAFNCJ。节点连通性分析和仿真实验结果表明,节点代理方案可以很好改善节点部署区域内节点通信不可达的情况,同时表明DBDAFNCJ算法可以高效、准确地获悉部署区域内节点连通性的情况。
1引言
针对传感器网络的覆盖连通性问题,本文将在第2节讨论无线传感器网络覆盖连通性理论及网络模型。第3节采用了一种节点代理基站来解决网络中不可达节点的连通性方案。第4节将给出在第2节中所给模型的基础上进行网络覆盖连通性判定的算法。第5节对提出的基站代理方案和节点连通性判定算法进行实验。第6节是结束语。
2网络覆盖连通性理论及网络模型
传感器网络节点连通性的要求与adhoc网络大致一致:1)信息必须有一条或足够多的路径从信息源转发到目的节点(基站);2)信息在转发过程中延迟尽量小。信息的转发路径越多,系统越可靠,但由于需要多个中间节点同时处于工作状态,节点能耗增加,系统寿命降低。无线发射器件的能耗随着收发距离长度的变大呈指数增长,采用多跳方式信息转发代替点对点通信,可以节约大量的能量。但过多的跳数会增加信息接收转发的次数,同样会带来额外的能耗。因此,将上述2个矛盾的因素折衷,适当控制转发节点的个数是降低能耗的关键。
通常,理想状态下具有节点连通性优化作用的密度控制所要解决的核心问题同覆盖优化类似,但节点的约束条件更多。将所有传感节点组成的集合分为{h1,h2,…,hm}等m个子集,即,设hi为组成主干连接网络的传感节点的一个集合,si是传感器节点。每个处于传感状态的非主干节点能够与至少一个主干节点通信,主干节点之间必须有一条且至少一条直接或间接的路径实现二者相连。
基于上述理论,给出一个一般意义上的无线传感器网络模型,描述如下。
在系统模型中,设传感器节点能够向基站报告其剩余能量信息,并能智能地切换开启和休眠状态,且传感电路和数据处理电路可以智能开关,另外,节点传输距离可以通过编程进行调节控制。值得注意的是,SenTech公司开发的声觉通道模块[13]传感器节点具有上述功能。设传感器节点可以作为数据转发的中继。基站拥有可以根据实际任务和环境的需要智能地选取部分传感器节点进行工作、选择数据路由以及媒体访问仲裁的网络管理功能。在网络系统模型中,网络的组织和管理都是基于能量意识的,依赖于每个传感器节点的能量知识,网络的控制参照传感器节点的工作状况和能量剩余情况。
在系统中,参考文献[14,15]中节点通信时的能量消耗模型,模型中定义的节点发送信息和接受信息的能量消耗公式如下。
发送信息能量消耗:接收信息能量消耗:其中,Es表示节点发送消息的能量消耗;β1和β2分别表示节点在发送和接收信息过程中单位信息所耗损的能量,其值均取为50nJ/bit;β’表示单位信息在传送过程中由于信号保持而在单位面积(m2)耗损的能量,其值取为100pJ/bit/m2;m表示信息位数;d表示信息传输距离。
基于以上无线传感器网络的系统模型,给出以下一些定义。
定义1传感器节点间的连通性。若在无线传感器网络部署区域内,节点之间总可以某种路由方式相互传送信息,则称在网络覆盖区域内节点之间是连通的。
在无线传感器网络中,传感器节点的能量主要花费在对外界信号的转换处理和进行数据通信的开销方面。由于节点的能量是由有限的电池提供,如果在网络工作时一直让节点在任何情况下都处于开启状态则会降低节点的使用寿命,从而影响整个网络的使用寿命。因此,如何有效地利用基站优化组织和管理无线传感器网络节点对于网络的优化应用具有重要的意义。一类面向任务的传感器网络应用可以选择性地开启覆盖区域内的传感器节点并平衡节点的负载,对于任务无关的节点使其处于休眠状态,这样可以节约宝贵的传感器节点能量,达到延长节点乃至整个网络寿命的目的。
上述网络优化过程的前提是基站必须获悉网络中节点情况,只有确保覆盖区域内网络节点的连通性基站才能有效地对节点进行组织和管理。在传感器网络通信中,节点与基站之间理想通信模式是使用短距离的通信方式,这种方式假设基站对于网络中的节点在任何情况下都是可达的,然而,这并不符合实际。因为在部署传感器网络时没有统一的模式,且网络部署环境有很大差别。在许多实际应用场景中存在各种障碍物(如建筑物、树木以及其他一些干扰信号等)会阻碍节点和基站之间的正常通信,有时这些障碍物甚至会使节点处于不可用状态。
图1描述的是当基站和传感器节点都处于彼此的通信范围内时,由于障碍物的存在使得基站不能够与被阻碍节点进行直接通信的情况。
对于基站和传感器节点不能直接通信的另一种情况如图2所示,在传感器网络部署区域内,有部分节点处于基站的传输范围之外,此时基站和这部分节点就不能进行直接通信。
3基于代理的不可达节点解决方案
在本节,针对第2节中在无线传感器网络部署区域内节点对于基站不可达的情况,例如,由于障碍物的存在或者位于基站射频传输范围之外使得一些节点成为基站不可达节点,提出了一种在基站可达的节点中寻找一个节点作为代理来解决基站与不可达节点之间连通性问题的方案。
3.1基本思想及定义
首先,给出方案的基本思想以及一些定义。
不失一般性,可以假设基站至多以2跳的方式
到达所有的部署节点,对于所有直接到达节点的跳数为1,其余的都简化为2跳,并且认为基站可达的节点可以作为基站转发传感数据的中继节点。从这些中继节点中选出某些节点作为代理,使其作为基站与不能接收基站信息的不可达节点之间的通信中介。我们考虑使代理节点和其周围基站不可达节点形成组,代理节点作为该组的“组长”,负责在基站和基站不可达节点之间的通信中介。
假设S为部署在监测区域的节点集合,|S|=n,基站(basestation)记为B,同时又设SR和SUR分别为部署区域内基站可达和不可达节点的集合,SR和SUR定义如下:
值得注意的是,由于在实际部署区域存在某些节点其传输信号不被其他任何节点获悉,如掉入部署区域深坑的节点,集合SR∪SUR往往并不等于集合S。因此,在节点部署阶段,使基站为每个传感器节点建立以下属性参数。
Blink:节点与基站连接状态,取值为0或1,而分属SR和SUR集合;
Nlist:集合SR中节点的所有邻居节点;
Hlist:在基站信息传输范围之内节点的跳数表。
Glist:节点成组的成员参数。
3.2基于节点代理的方案
在设计代理和不可达节点的组时,追求一种平衡代理负载的算法以延长代理节点的寿命,在算法中,基站为每个节点增加一个属性参数,称为Aid,在集合SUR中用以标识节点被分配给哪个代理节点,而其他属于集合SR中的节点的Aid=0,另外,基站为集合SR的每个候选代理节点设置一属性参数Glist用以识别其组成员。组的形成过程描述如下。
1)对于每个节点,基站计算其与集合SR中相邻节点的Hlist值,并对获得的节点Hlist值按照升序排列;
2)对于1)中节点Hlist排序结果由低到高(顺序),在集合SR中依次为SUR中节点分配一个代理节点,此时存在2种情况,处理如下:
if|Hlist(sj)|=1
标记Aid(sj)=si,分配sj到惟一连通的节点si;加sj到Glist(si)中
elseif|Hlist(sj)|>1
为sj计算分配到SR中的多个连通节点的成本Acost
标记Aid(sj)=sk,当sj分配到集合SR中节点sk时Acost最小;加sj到Glist(sk)中
Acost(k)=r1×(sj到通信成本)+r2×|(Glist(sk)|
其中,sj到si通信成本的计算基于节点sj和si的距离,r1+r2=1,参数r1和r2是动态可调节的量,取值与Acost(k)中sj到si通信成本和|(Glist(sk)|在节点成组过程中所占的比重成正比。
4无线传感器网络覆盖连通性判定算法
算法中使用结构类型定义节点,具体如下:
节点结构定义
StructNODE{
NodetypeN;//节点类型,区分基站和普通节点
floatE;//节点能量值
boolv;//节点访问标志
NODE*n[];//指向下一跳节点的指针集
}
算法为基于深度探测的网络覆盖连通性判定算法DBDAFNCJ(depthbaseddetectionalgorithmfornetworkconnectivityjudgment),下面具体介绍。
算法DBDAFNCJ
AlgorithmDBDAFNCJ()
Begin
Si=f
//设置组内连通的节点初始集Si为空
Si←grouphead
If(Gi≠f)
//判断与组长连通的相邻节点初始集Gi为是否非空
{Si←在Gi集中任选一个节点记为k并标志为已访问;
Repeat{if(ki≠f)&&存在未被访问的节点
//判断与k节点连通的相邻节点初始集ki存在未被访问的节点
{Si←在ki集中任选一个未被访问过的节点j,并标志为已访问;
ki=ji;}
ji为与j节点连通的相邻节点集
Else
{回溯到上一个节点t
ki=ti;
Endif;
Until整个节点集合的连通子集都处理完毕
Endif
End
5仿真实
通过仿真实验对提出的节点代理方案和DBDAFNCJ算法进行性能评估,下面依次给出实验方法、环境和结果。
5.1实验环境
在广泛使用的网络仿真器ns-2的环境下用C++和TCL实现了节点代理方案和DBDAFNCJ算法,实验设备是一台运行RedhatLinux9.0,具有P42.8GHz处理器,512MBDDR内存的PC.实验中,假设传感器节点随机部署在1000m×1000m监测区域内,基站被随机地部署在监测区域的边界内部,基站的传输半径设为500m,节点的传输半径设为50m,成组节点分配代价Acost中的a1和a2的取值各设定为0.4和0.6,主要考虑到在仿真中由于节点代理方案中节点成组代价比例稍重一些。为模拟第3节讨论的实际部署区域中节点处于基站传输范围之外和存在诸如建筑物等障碍物使得节点处于孤立状态,在各种节点规模的仿真中,设置某一百分比的节点随机部署在基站的传输半径之外,在算法DBDAFNCJ的实现中,为简化起见,且不影响仿真结果的可靠性,除基站外,其余节点均只存储与其只有1跳路由关系的相邻节点,为了快速得到实验结果并且不影响仿真结果的可靠性,把节点的初始能量设置为20J,采用模型中节点能量消耗模型,此时能量足以满足实验条件,选择一个简化了的定向扩散协议[18]作为网络层的路由协议,修改协议使节点间以逐跳的方式进行路由。
5.2实验设计及结果
仿真实验中,主要考虑部署区域内节点可达率NRR(nodereachabilityratio)作为测试指标,计算如下:
NRR=部署区域内可达节点的数目/部署区域内节点总数
在上述仿真实验环境下,设计了两类实验方案对节点代理方案和DBDAFNCJ算法进行评估。
1)在部署区域内,改变部署节点的数量,固定处于基站传输范围之外的节点为总节点20%,把节点数目分为100、150、200、250、300、350、4007种情况进行仿真。
2)在部署区域内,固定部署节点的数量为300,变化部署处于基站传输范围之外的节点百分比,把百分比分为5%、10%、15%、20%、25%、30%6种情况进行仿真。
针对两类实验方案,使用DBDAFNCJ算法分别对使用节点代理方案部署区域节点预处理前后的节点连通性进行判定,分别记为PRE_DBDAFNCJ和POST_DBDAFNCJ,下面给出实验结果。方案1)、2)的实验结果分别如图4、图5所示。
5.3结果分析
从图4和图5的结果可以看出,一方面,DBDAFNCJ算法对于初始部署区域节点的连通性比例的判定基本与设定的节点连通性比例一致,说明了DBDAFNCJ算法可以很好地对部署区域内节点的连通性实际情况进行判定。另一方面,对于用节点代理方案处理后的部署区域使用DBDAFNCJ算法进行节点连通性判定的结果表明,节点代理方案较好地改善了部署区域内节点的连通性情况,方案1)中12%~15%的不可达节点实现了与基站的间接连通;方案2)中3%~12%的不可达节点实现了与基站的间接连通。那些最终还处于不可达状态的节点是因为其1跳范围内没有基站直接可达节点。在现实情况下,如部署区域中掉入深坑的节点、部署完毕即出故障的节点均可认为是此种情况。
6结束语
对于随机部署在监测区域的无线传感器网络节点连通性的研究是其后续研究、管理和应用的基础,针对在实际应用中,节点随机部署而可能出现与基站不能正常通信的问题,提出了一种使用与基站连通的节点作为代理解决基站不可达节点的方案,并基于节点存储的路由信息给出了一种节点连通性的判定算法,仿真实验中,在改变仿真节点数目而固定不可达节点比例以及固定仿真节点数目而改变不可达节点比例2种情况下,结果均表明所提出的节点代理方案可以有效地改善部署区域的节点不可达问题,同时表明,所提出的节点连通性判定算法能够高效地探测部署区域内节点的连通性状况。