1. 引言
无线传感器网络(Wireless Sensor Networks, WSNs)具有网络拓扑动态变化、具体应用相关性、节点能量受限及计算能力有限等特性,常常被部署于存在极大变数、环境恶劣的场所。在此场景中,电磁、噪声等干扰因素致使节点电池耗尽、信号丢失,从而导致节点失效、传输中断、数据包丢失等情况发生,直接影响到WSNs数据接收率、传输准确率和传输平均时延等关键性技术指标,降低无线传感器网络稳定性、准确性和可靠性,因此对WSNs故障管理机制的研究具有重要的意义。
2. WSNs故障管理研究内容
无线传感器网络节点资源受限的特点以及所处的恶劣环境,使得无线传感器网络比传统网络更易失效。经分析汇总,导致无线传感器网络发生故障的原因主要有:1) 传感器节点由于电池耗尽或外部事件而失效或损坏,影响节点的感知功能,导致感知数据失真以及数据传输产生误差。2) 网络连接失效导致网络区域分割且改变网络的拓扑结构。3) 由于节点自发组织管理特性以及多跳通信可能会引发网络拥塞导致数据包丢失。
为了在最小化网络能耗的前提下确保网络数据传输的可靠性,下面分别介绍无线传感器网络故障管理的方法和技术。
2.1. 故障检测
故障检测 [1] 主要包含网络故障的探测与分析,通过对网络进行常态监测,获取网络的运行状态,通过对获取信息进行分析进而识别故障并给出故障类型并确定故障的发生。在故障检测中,通常将网络状态信息收集的过程称为监测(Monitoring),将获取信息后的信息分析及决策称为检测(Detection)。
网络监测旨在收集网络运行状态信息、预测网络是否存在异常行为,通常可以分为主动监测和被动监测。主动监测是向网络中发送探测(probe)包或收集节点的事件报告,从而获取网络性能参数。其中,探测包或事件报告均会增加网络负载,因为需要考虑探测的数量和频率。被动监测是通过网络流量的变化来推测网络运行是否发生异常的一种技术。其中,监测信息主要包含网络通信性能、链路状态、节点状态、链路拥塞水平以及拓扑变化等。与有线网络类似,传感器网络将数据包的丢失、中断、延迟、以及无规律的流量等都当作网络故障的特征。WSNs故障检测方法与网络的应用类型紧密相关,目前多集中于网络层。
根据故障检测任务执行主体的位置不同,可以分为分布式方法和集中式方法。根据故障检测时是否发送探测包分为主动检测和被动式检测两大类。其中,主动检测是一种主动的、高效自适应检测方法,其形式是通过发送探测包实现快速检测和定位网络故障。被动检测不发送任何信息,仅仅依靠分析已知信息来推测网络故障。
1) 集中式故障检测方法。集中式方法通常由能量不受限的中心节点采用周期性主动探测的方式负责对网络进行监控、追踪失效节点或可疑节点,并对获得的信息进行分析,从而确定节点是否失效。文献 [2] 提出的Sympathy方法是一种集中式故障调试技术。集中式方式的优点是管理简单有效,适用于小型局域网络,在信息流量不大时在失效节点定位方面性能高效,缺点中心节点负载过重,容易造成网络管理的瓶颈,且中心节点一旦失效导致整个网络崩溃,可靠性低且不易扩展。
2) 分布式故障检测方法。分布式方式支持局部决策,将负载分散在网络中的节点,从而分担了中心节点的负载。文献 [3] - [5] 分别提出了基于分簇、邻居协作和两阶段邻居协作的故障检测方法,因为这些方法都是通过发送探测包和接收反馈信息实现故障的检测,因此都会由于额外探测包的发送增加网络负载。其中,文献 [3] 所提出的基于分簇的故障检测首先将整个网络分成不同的簇,通过独立簇内实现故障管理,实现网络管理压力分散化。簇内采用定期广播方式来定位失效节点,簇首通过定义的失效规则来判定节点是否失效。该方法通过局部检测从而能够知道整个网络的变化。由Anmol [4] 所提出的基于邻居协作的故障检测方法是在询问中心节点之前,由节点与其邻居一起检测和定位网络中的故障。在节点发出故障警报时,首先与一跳通信范围内的邻居获得的故障信息进行比较,在确认情况下才将故障信息发送给中心节点。因此,大多数情况下,中心节点并不知道网络总的任何失效信息,该方法减少了网络的通信信息,节省了网络节点的能量。由Hsin [5] 提出的基于两阶段邻居协作的故障检测方法是:节点首先等待邻居节点的更新信息以及可疑节点的信息,然后通过与邻居节点协商共同作出相对准确的决策。该方法的优点是中心节点只需要监测很小一部分的可疑节点就可以了。但这种方法的不足是需要网络被预先配置好,每个节点需部署特定软件来支持邻居协作,无疑增加了节点计算及节点间信息交互的负载。
2.2. 故障诊断
故障诊断主要包含故障识别与定位,通过参照故障分类从而将故障信息进行归类,分析并找出故障发生的原因,然后定位故障发生的节点。对于无线传感器网络而言,当汇聚节点Sink未接收到某个区域的信息时,需要考虑是区域中所有节点失效还是关键节点失效。文献 [6] 采用追踪协议来区分是所有节点失效还是关键节点失效,该协议基于自适应路由信息更新策略追踪故障节点,一旦获悉故障节点的相关信息便向外广播路由更新,缺点是在大规模WSNs中随着故障节点的增多,系统负载过大。
通常,节点故障包含节点自身故障、链路故障和汇聚节点故障三类。
2.3. 故障恢复
故障恢复是在确定故障发生节点后,对该节点进行处理,确保网络的正确运行。本文主要讨论如何在故障发生后恢复故障,而非忽略故障。
针对与应用相关的WSNs而言,其以数据为中心,任务驱动的特点,使得WSNs终端用户并不关心单个节点的状态和其采集的信息,而是关注整个监测区域所发生的事件是否被检测出来,如湿度、温度的变化等。面向应用的WSNs故障恢复是从节点故障着手,但其目标是使从整个簇、整个网络的角度出发,保证监测任务能够正常执行,并非要保证每个故障节点都得到修复。因此,本小节将从收集数据和广播数据的角度来对故障容忍协议进行讨论。就数据收集而言,WSNs众多应用中主要是将事件监测的原始感知数据发送给Sink节点,以便进行分析。由于发送的数据量大,当事件检测的数据已经足够则认定该通信可靠,故通常情况下并非每个数据包的丢失都会被记录。其中,ESRT [7] 将可靠度定义为收到报告的数量,PERG [8] 将可靠性定义为收到不同包的百分比。ESRT和PERG的相同点在于两者都碍于服务器的端到端反馈,不从任何中间节点上得到反馈信息。两种协议的不同点在于ESRT基于观测到的可靠度和拥塞状态来调节传感器报告的比率,使网络维持在一个优化的运行范围。而PERG则不考虑拥塞的因素,在允许的范围内基于观测到的可靠度和期望可靠度的差异,来提高或降低数据重传的数量。TAG协议 [9] 则使用路由树,借助复用孩子节点最近数据和发送融合数据给多个双亲节点的技术实现融合数据的收集。就数据广播而言,Sink节点向传感器节点发送数据,旨在分配任务或对节点重写,需要保证传输可靠性达到100%。其中,PSFQ协议 [10] 由消息中继以及错误恢复两部分组成,确保数据可靠传输到每一跳的节点上。GARUDA协议 [11] 采用核心节点集,近似最小化支配集的方法来确保数据的可靠传输。
3. WSNs故障管理研究进展
在WSNs具体应用中,传感器节点放置方法主要分为诸如智能楼宇系统的“结构化”应用和诸如灾情监控的“非结构化”应用。其中,前者应用中传感器节点位置是预先设定好的,后者应用中传感器节点是随机分布的,其位置服从二维泊松点过程。此外,根据Pareto法则,可知任何系统中很少一部分模块中所发现的故障,就占整个系统所有故障的部分,即常说的“20-80法则” [12] 。鉴于此,文 [1] 采用MATLAB进行仿真实验,得出相同通信范围和不同初始电量的网络中40%的簇包含了高达83.3%的故障,多数故障节点集中在一定的区域切这些区域在整个监测区域中所占的比重相对较小。下面将介绍WSNs故障管理方面众多研究学者的最新研究成果。
为了便于描述,将文中常用符号说明如表1所示。其中,一跳邻居节点定义如下:对于
若两之间距离小于
,那么
称作
的一跳邻居节点。
3.1. 网络故障模型
文中假定传感器节点随机播撒在一定二维区域上,节点编号已知且每个节点具有相同的通信和感知半径。对于节点可能发生的故障表现形式为不正确的感知数据或通信故障。为了统一,参考文 [13] 将网络中产生错误感知数据但仍然能进行通信的节点当作是可用的传感器节点,只有那些无法通信或者缺乏电源的节点看成是故障节点。
通常,传感器节点的故障概率与工作时间长度成正比,时间越长发生故障概率越高。文 [13] 中定义节点
的可靠性
,用来衡量节点在时间(0,t)范围内未发生故障的概率。其中:
(1)
表1. 符号说明表
如表1所示,式(1)中
为传感器节点的故障概率,可以总结出节点
的故障概率
与可靠性
之间的关系如下:
(2)
3.2. 研究成果
SRSS算法 [1] 是一种基于简单随机抽样的探测站点选择算法,该算法随机选择合适的传感器节点作为探测站点,将故障探测任务均衡分布在网络的不同节点上。同时,SRSS算法将Pareto法则用于调整探测站点的数量,釆用LEACH算法 [14] 用于网络分簇。SRSS算法步骤如下:
在算法SRSS中,Select Basic Probe Station中探测站点数量和位置确定问题尤为重要。其中探测站点数量与覆盖率、连接状况以及网络拓扑等有密切关系。文 [1] 对节点覆盖度、连接度以探测节点位置分布的选择进行了详尽分析,并考虑了动态调整探测频率的问题。下面简要介绍算法SRSS中涉及的LEACH算法。
下面将介绍基于邻居数据分析的方法。文献 [15] 提出基于邻居协作加故障容忍的故障检测方法,其本质WSN内所有节点希望通过咨询邻居节点来做出更为准确的决策,而不是一旦检测到故障就立刻发出警报信息,该方法能够提高故障检测的准确性。Hsin等 [5] 提出了一种两阶段的邻居协作故障检测方法。第一阶段,节点等待邻居节点更新与可疑节点的相关信息。第二阶段,通过与邻居节点协商做出更为准确的决策。两阶段邻居协作方法需要网络预先配置好以及部署特定的支撑软件,增加了节点计算和信息交换的负载。文献 [13] [15] 等针对面向事件检测邻居协作方法持续研究,通过分析邻居节点的历史数据来计算其可信水平,将其作为判断节点是否故障的依据。引入可信度的前提是该方法面向事件检测的WSN,只考虑事件是否发生的二元数据,应用场合特殊且每个节点需要承担一定的通信和计算负载。在这些研究基础上,文 [1] 提出一种被动集中式的基于邻居数据分析的WSN故障检测方法,该方法不局限于处理二元数据。基于传感器在覆盖范围内监测的物理变化量细微且相近,从而通过汇聚节点比较节点的历史数据,从而可以确定节点的故障状态,并且不会额外增加节点进行信息交换带来的存储和通信负载。文 [1] 提出的方法针对有规律采集并上报汇聚节点的实时监测应用,比如温湿度监测、光照监测、水体监测等应用。文 [1] 提出的方法通过分析节点与邻居节点的历史数据,依据节点数据的偏离度来确定节点是否故障,算法主要步骤如下:
Step 1:获取节点
的邻居节点,构建邻居节点集
。
Step 2:计算所有邻居节点的可信水平,构建可信邻居节点集
。
Step 3:找出邻居节点中可信水平符合要求的所有
个节点,计算均值
。
Step 4:计算节点
的数据偏移量异常的次数
。
Step 5:根据节点异常次数判断节点是否失效,从而得出可信度。
从算法主要步骤中可获知,算法的关键步骤在于可信水平的计算和节点失效的判定,详细内容可以参考文 [1] 。在上述研究的基础上,众多研究学者深入研究了WSN中某个节点故障后,通过节点移动策略来保证网络的连通性。其中,节点移动策略作为研究重点,主要涉及节点移动距离、节点剩余能量和节点移动数量三要素。Abbasi和Younis [16] 提出了DRAR连接恢复策略,针对1-连接和2-连接故障问题,设计了DARA-1C和DARA-2C算法,并且提出了一种集中式方式来解决K-连接问题,并提出了采用局部移动调整方式恢复连接的DCR算法。这些方法存在级联移动问题,牵扯移动的节点数量较多,系统能量消耗极大,并且没有考虑节点移动所带来的覆盖优化的附加效应。文 [1] 在考虑WSN节点分布特点的基础上提出一种改进DARA算法N-DARA (New Distributed Adaptive Recovery Algorithm),综合考虑节点度和节点移动距离,从一跳和两跳邻居节点中选择代价最小的节点移动到故障节点,从而完成连接恢复。N-DARA算法要求每个传感器节点定期更新本地邻居节点列表,核心模块为负责定期监听和负责连接恢复中的节点移动两大模块。其中,负责定期监听模块内容描述如下,故障恢复模块可参见文 [1] 。
N-DARA算法采用MATLAB进行仿真,从节点移动数量、移动距离和覆盖能力方面均有一定程度的提高,但是导致网络边缘覆盖能力的想下降。文 [17] 提出一种低能耗的无线传感器网络故障检测算法,利用了时间相关性检测出部分故障节点,然后利用空间相关性通过与邻居节点交换信息来确定节点的状态,从而实现WSN节点的故障检测。该算法充分利用了节点采集数据中的有用信息,避免了与其邻居节点交换的信息量,从而减少了网络的能量消耗。文 [18] 采取主动预防方式来提高网络传输可靠性,就WSN网络层可靠传输和故障容错研究方面做出四个方面的工作:1) 根据蚁群放生智能算法对WSN容错路由的启示,提出非均匀等级分簇的WSN故障容错路由算法。根据骨干网特性,运用改进粒子群算法对网络节点进行非均匀等级静态分簇,构建非均匀等级分簇拓扑结构,引入最优最差蚂蚁算法在相邻等级之间建立多条传输链路,根据蚂蚁信息素归一化值作为传输路径的选择概率建立故障容错的网络路由。2) 针对编码机制影响无线传感器网络传输可靠性问题,提出基于纠删编码的无线传感器网络多路径可靠传输策略。对网络节点进行等级标定,根据蚁群算法确定路径信息素值。根据反映链路质量的最优最差蚂蚁系统的信息素归一化值,在相邻等级节点间建立互不交叉的多路径路由传输容错机制,并通过仿真测试负载均衡和故障容错性能。3) 针对梯度策略影响网络传输可靠和故障容错问题,提出基于梯度的无线传感器网络多路径可靠传输容错策略。首先进行二次k均值非等概率簇分裂构建非均匀拓扑结构,按质量评价函数计算节点的综合度量信息并建立等高线,建立基于梯度的互不交叉的多路径路由,实施负载均衡的线性纠删编码多路径传输。4) 根据免疫系统机理对构建无线传感器网络多路径容错路由的启示,提出基于免疫系统机理的无线传感器网络多路径容错路由算法。鉴于能量效率是WSN故障诊断技术的首要因素,文 [19] 着重考虑信息处理和数据传输两个方面,对数据质量和节点能量进行监督,提出了面向WSN的非一致性故障检测机制IFDM (Inconsistent Failures Detection Mechanism: IFDM)和基于测量值的WSN分布式故障检测评估机制DFD-AM (Mechanism of Distributed Failures Detection by Assess Measurements: DFD-AM)。其中,IFDM通过采用节点不相交多重路径,比较数据包内容,判断故障路径,并实施故障节点的定位,具有检测速度快、功耗低、时延小等特性。DFD-AM利用相邻节点数据值的空间相关性计算节点的评估值,并利用评估值与测量值比较来判断节点是否出错。DFD-AM算法具有检测效率高、误检测率低、功耗低等特性。针对传感器节点间歇性故障,文 [20] 提出一种分布式分簇故障诊断方法。该方法先对网络进行基于簇首诊断的分簇,然后由簇头对簇内成员节点进行诊断,故障检测准确率较高。文 [21] 在WSN节点故障诊断和容错算法两个方面进行深入的研究。首先,其提出了量子小波神经网络与WSN模型相结合,利用量子小波神经网络固有的模糊性,实现耦合较强的传感器终端节点故障信息的识别,借由量子间隔的调整减少了故障模式分类时的不确定性。其次,其提出了改进的分簇式DFD无线传感器网络节点故障诊断算法,提高了诊断精度。
4. 结束语
无线传感器网络故障管理研究主要分为故障检测、故障诊断和故障恢复三个阶段。就面向应用而言,WSNs故障恢复着眼于节点故障,但目标是从整个簇、整个网络的角度出发,保证监测任务能够正常执行,并非要保证每个故障节点都得到修复。其中,故障容错策略能够有效提高无限传感器网络运行的鲁棒性和传输可靠性,从而保证网络在检测中出现异常或故障时,能够在一定时间内寻找出合适的容错控制方案,自适应的处理网络出现的各种异常现象,继续提供高可信度的计算服务。此外,考虑如何高效移动节点来解决故障节点恢复网络正常通信,也值得继续深入研究。
基金项目
北京联合大学“启明星”大学生科技创新项目(201511417SJ029和201511417SJ045),北京联合大学新起点计划项目资助(zk10201303),北京市职业院校教师素质提高工程资助项目(京教财(2012)21号)。
*通讯作者。