无线传感器网络故障管理综述

无线传感器网络中的故障管理框架:综述

摘要

无线传感器网络(WSNs)由一组传感器节点组成,广泛分布在区域内以采集信息。由于环境影响等各种原因,部分传感器节点可能会发生故障。由于故障的发生不应影响网络的预期功能和正常运行,因此故障管理对于提高容错能力至关重要。本文根据故障的行为、耐久性以及网络组成部分对故障进行分类。然后阐述了故障管理的组成部分以及故障管理框架所面临的挑战。同时,分析了其他现有框架,总结其主要挑战,包括能耗、故障检测精度、延迟、网络可扩展性和开销。以往的研究将故障管理框架分为集中式、分布式和分层式,而我们提出一种新的分类方法,该方法基于各框架的管理性能以及所涉及节点的数量。随后,根据这些主要挑战对各类框架进行了分析与评估。分析结果为进一步设计出更准确、高效的故障管理框架提供了可能,这些新框架具有最小能耗、延迟和开销。

关键词 :无线传感器网络;管理框架;检测;诊断;恢复。

1. 引言

无线传感器网络是自组织网络,包含多个具有有限处理、存储、通信能力以及有限电池容量的传感器系统。如今,传感器网络越来越多地应用于医疗、环境监测和森林等领域。[1]

无线传感器网络中故障管理的主要应用可分为3类:持续可用系统、实时系统和精确系统。因此,这些网络需要故障管理以及增强的容错能力。预计传感器节点将在各种环境中长期独立运行,且由于其物理位置的原因,可能无法进行维护和电池更换。网络的不同组件可能发生故障,且故障类型因对节点性能影响的耐久性而异。[2]因此,故障管理对于保证网络的服务质量和性能至关重要。一组专门为容错设计的功能或应用称为故障管理框架,是网络管理系统中不可分割的一部分。[3]无线传感器网络的故障管理是网络管理的重要组成部分,包括故障的检测、诊断和恢复。正确实现故障管理可实现最优的网络管理并减少网络故障,从而提高容错能力。此外,还需要某些解决方案来降低能耗并最大化网络寿命。[4]

近年来,作者们设计了多种用于故障检测与恢复的故障管理框架。本文通过关键词检索了无线传感器网络中关于故障管理框架的研究,如表1所示。文章通过谷歌学术以及Springer Link、Science Direct、IEEE Xplore、ACM数字图书馆、Wiley InterScience和Taylor & Francis在线等学术数据库进行检索。

表1. 系统性综述方法

关键词 来源
故障管理 期刊, 会议, 研讨会, 杂志,白皮书 以及汇刊
故障检测 期刊, 会议, 研讨会, 杂志,白皮书 以及汇刊
故障诊断 期刊, 会议, 研讨会, 杂志,白皮书 以及汇刊
故障恢复 期刊, 会议, 研讨会, 杂志,白皮书 以及汇刊
容错 期刊, 会议, 研讨会, 杂志,白皮书 以及汇刊
网络管理 期刊, 会议, 研讨会, 杂志,白皮书 以及汇刊
管理框架 期刊, 会议, 研讨会, 杂志,白皮书 以及汇刊
管理架构 期刊, 会议, 研讨会, 杂志,白皮书 以及汇刊

在找到2258篇文章后,我们根据标题筛选出663篇论文。通过审阅摘要并评估其相关性,进一步选出103篇文章。随后,本文选取了其中54篇关于故障管理框架的论文进行研究,其中包括10篇综述文章,如图1所示。我们详细分析了2003年至2018年间提出的34个框架。

大多数综述文章不包含对框架的评估,通常只关注故障分类或对框架进行一般性综述。因此,我们力求提供全面的回顾和适当的分析。本文的主要目标是:
- 基于故障行为和耐久性、网络组件以及故障影响区域对传感器网络中的故障进行分类
- 故障管理组件及类型的三步分类:检测、诊断和恢复。同时,根据性能提出一种新的故障恢复方法分类
- 基于性能将故障管理框架分为通用类和子类
- 描述当前框架,并阐述故障检测、诊断和恢复的主要步骤
- 基于主要挑战评估所描述的框架,并为在传感器网络中提出更有效的框架提供机会

此处,故障管理框架被分为四类:集中式、分布式、分层式和混合式。在集中式框架中,一个传感器节点在逻辑上和地理上管理整个网络。该节点(中心节点)通常具有无限资源,能够管理故障。通过分析故障管理框架的步骤和性能,我们根据中心所采用的机制将其分为三类:基于数据库、基于机器学习和基于时间的。为了纠正集中式框架的缺陷,引入了分布式框架。分布式故障管理框架将故障管理任务分布在整个网络中。根据参与故障管理的节点数量,这些框架可分为两类:基于代理和基于邻居协作。分层故障管理框架结合了集中式和分布式方法,旨在改进分布式系统。在评估故障管理框架的性能时,我们将它们分为四类:基于数据库、基于时间、基于邻居协作和基于自管理。混合框架通过结合分布式和分层框架。当前框架基于其面临的挑战(包括能耗、故障检测精度、可扩展性和流量负载)进行研究。

示意图0

本文每个部分的主要目的是回答下文讨论的关键问题。
1. 影响需要管理的无线传感器网络的主要故障有哪些?(第2节)
2. 无线传感器网络中的故障管理步骤以及传感器网络中每个步骤的方法是什么?(第3节)
3. 如何对故障管理框架进行细致的分类?(第4节)
4. 需要评估的故障管理框架面临的最重要挑战是什么?(第4节)
5. 如何比较每一类中的故障管理框架?(第5、6、7、8节)
6. 鉴于无线传感器网络的挑战,我们如何有效评估故障管理框架,以期为未来提供更优的框架?(第9节)

本文的结构如下。接下来,将讨论故障分类。然后在第3节中介绍了故障管理的基本原理。第4节包含了所提出的框架分类及挑战。第5、6、7和8节分别介绍了集中式、分布式、分层式和混合式框架。第9节对各类框架进行了讨论与评估。最后一节包括结论和未来工作。

2. 无线传感器网络故障分类

无线传感器网络中故障的主要特征是故障的原因和来源。故障原因分为四组:网络规格定义不当、网络实现不当、系统组件故障以及环境因素。设计人员和程序员对网络规格的定义不当会导致故障。[5]在设计过程中,网络实现不当会引发故障。即使设计和实现都没有缺陷,仍可能发生一些偶然性故障,或者噪声、干扰等环境因素也可能导致故障。

无线传感器网络中发生的故障有多种分类,如图2所示。这些组分别基于节点的行为故障、故障持续时间、网络组件以及故障影响区域。

示意图1

行为故障分为两类:软故障和硬故障。此外,根据故障持续时间,它们可分为四类:永久性、瞬时、间歇性和噪声。导致节点普遍不活动的故障称为硬故障,通常是永久性的。永久性故障具有持久性和连续性。例如,损坏的电池就是一种永久性故障。传感器节点内部组件发生的故障可能导致其未从网络中的其他节点断开连接,但产生错误数据。这种故障称为软故障。该故障可能瞬时或间歇性地影响节点。瞬时故障不是永久性的,可能会发生由于临时的环境变化所致。它们仅在短时间内发生,并会自动恢复,但可能再次出现。瞬时故障的诊断和管理非常困难。间歇性故障的发展时间相较于瞬时故障更长,可能以间歇性的时间间隔出现,并具有特定频率,其诊断和管理相对不那么困难。对于噪声故障,传感器读数的方差增加。与每次仅影响一个传感器读数的瞬时故障不同,噪声故障会影响一系列的传感器读数。

另一个凹槽上文基于网络的组成部分:节点、网络、汇聚节点或基站(BS)以及后端中的故障 d.

节点级故障 :传感器节点是无线传感器网络的主要组成部分,具有敏感性和脆弱性。电池放电或外部事件可能导致其发生故障。每个节点由两部分组成:硬件和软件。硬件包括主要部分,如传感器单元/执行器、数据处理单元、无线发送器/接收器以及电源。[6]每个节点的其他附加部分包括移动装置、定位系统和电源单元,这些部分是否具备取决于节点的具体应用层需求。节点故障可能与硬件部分有关,例如低电量。[7]软件和硬件故障或恶劣环境条件可能导致故障节点及错误读数(低电量节点会影响信息的读取和感知)。通常情况下,节点故障会导致整个网络做出错误决策,尤其是当故障涉及簇头时。当错误的值被发送到汇聚节点并收集了错误数据时,基站将从整个网络接收到错误的信息。因此,大多数研究集中在高优先级节点(特别是簇头节点和管理节点)的故障检测与恢复上。

网络故障 :传感器节点通过通信链路相互连接并与汇聚节点相连,因此通信链路是导致故障的另一原因。路由是无线传感器网络中的主要构建组件,需要传感器、软件分发、更新配置以及节点间的协调。路由层故障是网络中最重要的一类故障,可能导致发送错误消息或产生不可接受的延迟。由于所有网络中的链路都容易发生故障,节点之间不稳定的关系会导致网络断开以及网络拓扑的动态变化。当某个节点无法访问时,其移动会导致数据完全丢失。无线电干扰、路径故障、路径中的永久或临时阻塞,以及接收消息之间的差异,均可能导致节点间通信故障。此外,节点数量增加以及在响应事件时从休眠状态同时转入激活状态,可能会引发拥塞。路由层的软件故障还可能导致消息被发送到错误的目的地。

汇聚节点或基站 :汇聚节点位于网络的更高层级。传感器节点收集的数据通过链接发送到汇聚节点或基站,再由汇聚节点或基站将数据传送到后端系统。该部分可能出现故障,导致网络整体信息丢失,从而引发严重的网络故障。汇聚节点发生故障时,可能无法向传感器下达任务或将信息发送至基站。此外,局部区域的拥塞可能扩散至汇聚节点,影响从网络其他部分接收数据。该网络部分的主要故障之一源于其能量有限。由于基站通常远离城市,能源供应不足且受限,容易出现能量短缺并引发故障。此外,基站所使用的软件也可能出现故障。

后端故障 :汇聚节点中收集的数据在后端进行调查和评估。后端故障可能由黑客引起,并导致故障节点和网络故障。此类故障会影响整个网络,导致系统整体效率降低。

一些故障根据其影响范围进行分类。如果一个或多个节点受到故障影响,则属于局部故障。然而,簇头、代理或网络管理器等关键节点的故障被视为全局故障。未能采取适当措施纠正局部故障会导致全局故障的发生。例如,由于传感器节点发生故障,错误数据被发送到汇聚节点。如果故障未得到管理,中心将做出不当决策,并可能引发全局故障。如图3所示,当故障在网络的更高级别中传播时,整个系统都会受到影响。因此,网络层面的故障管理至关重要。

示意图2

3. 无线传感器网络中故障管理框架的基础

在本节中,我们描述无线传感器网络中故障管理框架的基本原理。容错是指系统处理故障并保持其最佳运行状态的能力。[1]提高容错能力的常用方法之一是故障管理。无线传感器网络中的故障管理包括三个步骤:检测故障、定位故障节点和恢复故障。下文将描述故障管理框架的这三个步骤及其评估。

3.1. 故障检测

故障检测是指检测影响网络或节点最佳状态的任何不可预测的故障或破坏性因素。根据性能,故障检测技术可分为三组:集中式、分布式和自管理。下文将对这些方法进行讨论。[8]在集中式故障检测技术中,由一个传感器节点集中诊断故障。[9]该节点可以是汇聚节点、中央控制器或网络管理者。在此方法中,中心节点持续接收来自其他节点的状态消息,并利用这些消息来诊断故障节点。[10]

另一种技术是自管理,其中节点会评估自身能力并分析其物理状况。实际上,传感器节点通过测量电池电压,并分析和估算放电时间与速率来估计电池寿命。

在分布式或协同故障检测中,其目的是让所有节点都参与到检测过程中。在这种技术中,通过邻近节点之间的协调以及聚类技术来检测故障。前者技术基于通过应用从邻居接收到的数据以及特定方法(如多数投票或将接收到的信息与邻居信息的平均值进行比较)来检测故障。在聚类技术中,簇头相比其他节点具有更多的来源,能够检测故障。[11]由于簇头发生故障会限制其对节点的可访问性,因此检测有故障的簇引起了特别关注。在基于聚类的技术中,节点频繁地向簇头报告其状态。那些未向簇头发送消息的节点被视为故障节点。

3.1.1. 评估故障检测方法

以下将评估故障检测技术的优缺点。在集中式故障检测方法中,假设数据分布是恒定的,从而通过数据分析来检测故障。在此类方法中,只有集中式控制器能够检测故障节点,因此无法在大规模网络中使用该方法。此外,节点数量的增加会导致发送到中心的消息数量上升,从而增加检测延迟,使得该方法无法应用于实时环境。因此,集中式方法不能适用于所有传感器网络。[12]

与集中式方法相比,自管理方法具有更高的可扩展性,且其检测延迟更低。然而,自管理方法主要关注节点的永久性故障,因此我们不能仅依赖它们来检测所有故障。在自管理技术中,需要精确的假设和阈值,但在某些网络中无法获得这些值。[13]

如今,分布式故障管理方法引起了更多关注。参与故障检测的节点数量增加可以提高检测的准确性。然而,在基于邻居合作的方法中,需要从邻居接收更新的数据以检测故障。此外,参与节点数量的增加会导致网络中传输的控制消息数量上升,以及能耗水平升高。基于簇的方法旨在提高可扩展性,并减少能耗和检测延迟。这些方法与传感器网络具有最高的兼容性,在故障检测方面也更为高效。[14]

3.2. 故障诊断

在检测到网络中的故障后,我们需要诊断故障类型和故障节点。在此步骤中,需要确定故障对网络状态的影响、故障的原因、类型和影响。一种定位节点的方法是应用全球定位服务,但由于其成本和能耗较高,这种方法并不经济。另一种方法是在网络中部署一些具有特定地理位置的参考节点,以帮助其他节点确定自身位置。[15]为了调查和定位网络中的故障,我们需要对网络进行监控。关于无线传感器网络中的故障管理,监控主要分为四类:被动监控、主动监控、主动式监控和反应式监控。在被动监控模型中,当诊断出故障时,该模型会触发警报。在主动监控模型中,传感器节点持续向控制中心发送更新或存活消息,以报告其存在状态。在第三种模型即主动式监控中,管理系统会主动收集并分析网络信息,以诊断过去发生的事件并预测未来事件,从而维持网络性能。反应式监控是一种管理系统。[16]该系统收集网络状态信息,以检测是否有值得关注的事件发生,并随后采取一定的自适应措施来重新配置网络。在定位故障之后,管理系统将对其进行隔离。[17]

3.2.1. 评估故障诊断方法

在主动监控中,顺序消息被发送到中心以更新节点状态。此处,故障诊断延迟被最小化;然而,发送顺序消息会导致流量开销增加。此外,发送消息还会导致节点能耗上升,因此该方法不具备节能性。被动监控通过建立模型来诊断故障。由于该方法无需发送顺序消息来评估网络,其能耗和流量开销相较于主动监控更低。但构建模型使得该方法相比主动方法更为复杂。主动式监控旨在通过当前数据预测故障。预测故障需要对网络进行训练和测试。故障检测该方法的准确性与其他方法相比更高,但实施训练和测试步骤会导致延迟增加,尤其是在实时网络中。反应式方法通过评估数据相关性或比较参数与阈值来检测故障。这些方法比主动方法更简单,且准确性更高。

3.3. 故障恢复

在网络恢复阶段,无线传感器网络会被重建或重新配置,以确保故障节点不会影响网络的最优性能。[19]通常情况下,恢复是用一个完好的状态替换故障状态的过程。故障恢复执行两项任务:更改配置和恢复。前者以不影响正确输出数据的方式改变系统结构,后者旨在消除故障的影响。根据故障类型,故障恢复方法包括前向和后向恢复。

后向恢复方法的目的是将故障网络恢复到其先前的健康状态。在该方法中,需要记录网络每一时刻的状态,并恢复所记录的故障状态。为实现此目的并记录网络当前状态,有两种机制可用:检查点和登录。检查点机制用于存储数据,每当数据发生变化时,它会连同变化一起恢复数据。后一种机制也存储数据;但当数据发生变化时,仅记录变化部分。这些方法的主要优点是具有通用性,且独立于网络或任何进程。然而,它们的主要缺点是网络恢复成本较高。此外,不能保证相同或类似的故障不会再次发生。例如,簇头节点及其备份同时被更新。当簇头出现故障时,将由备份替代。此外,当路径发生故障时,多路径算法会被应用于为主路径分配一个备份。

前向恢复采用并行系统。在此方法中,一组冗余被插入网络中,并在发生故障时使用。与之前的方法不同,前向恢复将网络的故障状态更改为正常状态,并可继续执行其任务。[20]该方法的主要问题是,为了纠正故障,需要提前检测到它们。例如,簇中的故障成员可通过休眠/唤醒调度技术被非故障节点替换;如果传输链路出现故障,则会识别并替换为另一条路径。[21]

3.3.1. 评估故障恢复方法

根据网络应用,可以实现各种后向恢复和前向恢复方法。以下将讨论这些方法的优缺点。在后向恢复方法中,检测到故障后,网络将回退到先前的存储状态。[22]由于检查点或登录中存储的数据可用,因此恢复速度较快。此外,不需要冗余,因此实施成本较低。然而,需要选择合适的点来存储网络状态,这使得其实现更加复杂。另外,存储网络状态需要发送消息,从而导致更高的能耗。而且,当检查点出现故障时,无法进行故障恢复。前向恢复方法利用冗余来传输网络状态。[23]与前者相比,该方法更简单,且无需知晓故障的确切类型。在此情况下,发生故障时,网络从新状态初始化其状态,因此恢复所需时间更长。此外,冗余会导致成本增加,并非在所有传感器网络中都能实现。

4. 无线传感器网络中故障管理框架的分类及挑战

为了明确故障管理框架的呈现方式,我们在本节中定义了一种新的分类。在所提出的分类中,故障管理框架被分为四组:集中式、分布式、分层式和混合式。每组包含若干子组。图4展示了所提出的故障管理框架分类。

示意图3

集中式框架通过中心或汇聚节点管理故障,根据机制分为4组:基于数据库、机器学习和时间的集中式框架。分布式框架根据参与节点的数量分为2组:基于代理和基于邻居协作的框架。分层故障管理框架结合了集中式和分布式方法,旨在改进分布式系统。该组被划分为基于数据库、时间、邻居协作和自管理的分层框架。混合式框架通过结合分布式框架和分层框架而开发。故障管理框架的实现面临诸多挑战,采用所提出的分类方法可更易于分析这些挑战。

4.1. 故障管理框架的挑战与问题

在本小节中,概述了故障管理框架面临的挑战。如今,针对无线传感器网络中故障管理框架的各类研究,似乎有必要对这些框架进行评估和比较。设计框架的主要挑战包括提高能耗、故障检测精度、延迟、可扩展性和流量。[4, 24‐28]
- 能量 :降低能耗的目的是最大化网络寿命。该特性依赖于每个节点单元生命周期的延长。在理想状态下,所有节点的能量基于规则的调度被同时耗尽,从而最大化网络寿命。[24]由于传感器节点的硬件条件以及节点电池不可再生的事实,能耗的改善与网络的故障管理密切相关。[29]因此,需要一个故障管理系统,通过有限的能耗方式实现故障的检测与恢复。一种节省节点能量的方法是在节点不使用时将其关闭。[25]另一种方法是减少发送到汇聚节点的数据,包括通过数据集成或降低采样频率来实现。在故障管理中,消息数量的减少会导致能耗降低。因此,故障检测准确性的提高会导致能耗增加。
- 故障检测精度 :正确识别的故障节点数量除以实际故障节点总数。[25, 26]有多种方法可以提高故障检测精度。参与检测故障的节点数量增加,会提高故障检测精度。[30]因此,合作可提高故障检测精度。此外,增加故障检测所花费的时间可提高准确性。然而,时间增加会导致延迟和能耗增加。
- 延迟 :故障发生到故障被检测之间的时间称为延迟。[31]基于时间的和基于数据库的框架可减少延迟。较长的延迟会导致故障向网络更高级别传播的可能性增加。另一方面,较短的延迟会导致故障检测精度降低。[27]
- 可扩展性 :故障检测框架需要设计成能够在节点数量增加时仍具备故障管理能力。[3, 25]由于网络包含大量传感器节点,故障管理框架应能够管理大量的节点。节点对中心或代理节点的依赖减少,将提高可扩展性。
- 流量 :在无线传感器网络中,汇聚节点或中心节点的流量高于网络的其他组件。[7, 32]由于数据的融合与集成,分层方法的流量低于其他框架。更高的集成度导致更少的网络流量和负载。

故障管理框架基于上述挑战进行评估。

5. 集中式故障管理框架

本节概述了集中式故障管理框架。故障管理设有中央管理器,用于控制和监控网络。管理者是基站用于管理节点的工具或过程。只有通过连接到管理者,才能对节点的设置进行更改。当管理者检测到故障时,通知过程即开始。通知是管理者用来向基站发出警报以启动故障管理过程的过程。

在集中式故障管理系统中,一个集中式传感器节点识别网络中故障节点的地理区域。在检测和定位故障后,会通过适当的机制进行恢复。该集中式节点可以是基站、中央控制器或管理者。这种集中式节点通常具有无限资源,并执行广泛的故障管理任务。因此,节点需要报告相关数据以评估故障。集中式故障管理的主要步骤如图5所示。

示意图4

在此方法中,中央管理器通过接收来自节点的数据包,并将其与其他节点进行比较,从而做出决策以检测和判断故障的发生。在检测到故障并完成恢复后,网络能够正常运行。例如,如果某个节点在一系列轮次中未向管理者发送任何消息,则该节点的故障将被检测到,并由一个合适的邻近节点替代。

集中式故障管理框架根据其性能分为三组:基于数据库、基于机器学习和基于时间的。在基于数据库的方法中,数据被发送到中心并进行整合,然后由故障管理框架对其进行分析评估。基于机器学习的框架应用机器学习算法在中心管理故障节点。基于时间的框架分配一些时隙来评估节点的状态。在接下来的小节中,我们研究集中式框架的性能。

5.1. 基于数据库的集中式框架

在这些框架中,用户可以在中心搜索故障检测控制指令。实际上,中心会创建一个数据库来收集节点的数据。该数据库由一个集中式系统控制,包含从节点接收的数据,这些数据经过集成且冗余度最低。每个节点响应管理者的请求。管理者将数据存储到数据库中,检查数据并诊断节点中的故障或缺陷。为了检测和修复故障,需要监控传感器节点中的行为和事件。针对此类监控,故障修复工具包括事件/数据记录和远程下载/调试。基于事件的集中式框架由事件控制过程组成,这些过程仅在发生预定义事件或故障时执行。事件通知是该框架的核心。当事件发生时,节点传播消息,这些消息最终被传送到中心。基于事件的系统的核心由一种称为发布/订阅的基本子结构模型构成。基于发布/订阅模型的系统通过从源发送事件将信息提供者与用户连接起来事件发送给用户。在此模型中,信息的用户通过一种称为订阅的概念来表明其感兴趣的领域。当系统中产生一个事件时,发布/订阅结构负责检查该事件与所有订阅的匹配情况,并将相关事件发送给用户。

SNMS [34] 是一个基于数据库的集中式框架,是一种用于监控网络中传感器节点无故障运行的交互式系统。SNMS 包含两个主要管理功能:基于查询的网络健康信息收集和事件日志记录。前者允许用户监控节点环境的物理参数,例如,可以预测节点电池的剩余能量。在此框架中,人工管理员周期性地监控网络状态,网络通过检测低性能部分和故障来采取纠正措施。周期性网络监控有助于动态网络分析,以预测潜在故障并采取预防措施。然而,在 SNMS 中,集中式处理方法要求中央管理器持续调查网络状态,这可能导致传感器节点的能耗增加,并缩短网络寿命。SNMS 的另一个主要缺点是仅支持被动监控。

在[35],中提出了一种基于事件日志记录的集中式框架。该框架基于UPnP实现,并提供用于故障管理的标准协议。UPnP是一组网络协议,可使所有网络组件无需人工干预即可连接。[36]与SNMS不同,该协议无需人工监控来预测故障。在UPnP中,基站(BS)内指定一个管理者,作为节点与控制点之间的连接器。系统包含三个主要组件:控制点、管理者和传感器节点。控制点具备充足的组件和资源以执行UPnP协议,网络管理通过管理者提供的服务进行。控制点与管理者之间使用UPnP协议通信。然而,传感器节点与管理者则通过特定传感器作为连接器,与UPnP协议进行通信。因此,管理者可通过UPnP协议实现每个传感器的功能。随后,信息从传感器节点发送到基本节点。管理者负责解析通过UPnP传输的消息。最后,管理者负责管理和收集来自网络中传感器节点的信息。基本节点存储网络的管理服务,并负责所有管理过程,因此基本节点执行计算任务。与管理者框架中传感器节点的有限资源相比,控制点能够检测网络中的事件和故障。管理者通过非UPnP传感器将所执行过程的事件报告给控制点。实际上,该机制通过中央管理器检测故障节点。该方法的主要缺点是,UPnP框架仅适用于具有高计算能力和大内存容量的系统。

在[37],中提出了一种基于查询的另一种集中式框架,称为MOTE‐VIEW。在此框架中,使用可视化模块来描述所提供的数据。每一层都包含插件功能以提供模块化后缀。通过定义一个可由插件改进的通用连接器,每一层可以在不同规模下被采用,以支持通用框架中的各种需求。对网络数据的访问通过数据访问抽象层进行。每个节点包含元数据,这些元数据在数据库中为所有网络节点固定,例如名称、传感器集合、配置和校准系数。节点信息通过节点层收集,并直接发送到数据库。然后每个事件更新节点。在连接到节点配置层时,用户设置射频、功率、采样率和其他参数。本文中使用了邻居之间的主动监控和网络层面的被动监控。事实上,当网络某个区域没有故障时,控制中心处于非活跃状态。在这些区域中,决策通过邻居协作做出。在文章中,通过对节点数据库执行查询来检测中心的故障。为了评估数据库并获取所需数据,应用了新鲜度参数。60分钟后,如果中心未收到来自节点的消息,则会检测到故障。

5.2. 基于机器学习的集中式框架

该方法分为3组:监督学习、无监督学习和强化学习。在监督学习中,向系统提供一组输入‐输出对,系统试图训练出从输入到输出的函数。此方法需要一些输入数据来教导系统。学习方法包括k‐最近邻、决策树、神经网络、支持向量机和贝叶斯统计。然而,对于某些问题,监督学习方法无法得到合适的输出,因此需要采用强化学习方法。在强化学习方法中,系统通过与动态环境的试错交互来优化其行为。强化学习是机器学习的一个领域,其中代理通过与动态环境的试错交互来学习如何行动。[38]这里不提供输入‐输出 对。无监督学习是另一种机器学习方法。在无监督学习中,学习是在未标记的数据上进行的,以发现隐藏的模式。不同类型的无监督学习包括k‐均值聚类、主成分分析(PCA)。[39]

在[40],中提出了一种基于神经网络的集中式框架。该框架专为异质无线传感器网络设计。该框架采用分层结构,可在不同硬件平台下实现多种容错技术。该框架分为三层:设备层、中间件和应用层。该框架的步骤如图6所示。

示意图5

在设备层,网络的各种平台处于活跃状态,并提供诸如传感器读数或与业务流程相关的事件等固定信息。中间件的所有组件均通过访问框架中节点的角色来提供Web服务接口。该层分为两个子层:平台抽象层和故障管理层。前者提供将异质无线传感器网络连接到网络后端的机制;后者负责控制无线传感器网络的故障。应用层包含业务应用,其在无线传感器网络中应用相应角色。故障管理层的两个主要角色是自动故障检测与恢复。为支持这些角色,系统状态单元和系统管理器提供网络信息。第一个单元是数据库,用于记录网络事件;第二个单元包含传感器节点硬件的准确信息。故障检测单元通过神经网络检测故障,这些神经网络学习不同故障位置的特征,从而能够正确识别故障。然后,隔离单元基于该信息及其他输入判断是否存在故障。结果被发送至恢复单元,由其决定应采取的措施。恢复机制包括更改路由树结构、传感器组合或其他解决方案,例如为不同节点分配角色。为不同节点分配角色包括重新编程节点。

决策树是一种用于估计离散函数的方法。实际上,它是一种创建分类模型的工具。该方法通过历史数据来构建模型。决策树利用数据生成树形结构,这种结构类似于IF和ELSE规则,并最终在训练阶段实现数据标签。决策树的学习过程是构建树的元素和叶子。[41]使用决策树,可以在传感器网络中检测故障。一种基于决策树的集中式框架是Sympathy系统。在该系统中,使用集式汇聚节点进行调试和定位故障。该算法包括一个汇聚节点和多个节点。汇聚节点向节点发送请求以接收事件的数据。该算法的步骤如图7所示。

示意图6

传感器节点监控网络标准,响应环境事件,并将请求的数据发送到汇聚节点。该算法通过向邻近节点发送消息来检测和调试故障。实际上,在此方法中,会向邻近节点发送消息以收集事件信息和指标。当汇聚节点接收到某个节点的数据后,会分析这些数据以判断是否发生了事件。该方法考虑了故障的三种潜在来源:节点、路径和汇聚节点。汇聚节点定期检查每个节点发送的流量。未发送受监控流量被视为一种故障。汇聚节点应用由节点生成的流量标准来定位故障。这些标准包括连接标准(例如路由表、邻居列表)、流标准(例如每个节点和汇聚节点发送和接收的数据包)以及节点标准(例如节点活动周期)。当这些标准在一段时间内未被更新时,将被终止。Sympathy系统采用决策树来确定故障是发生在节点、连接还是汇聚节点。通过评估网络指标(连接、流和节点)来检测故障。汇聚节点会判断在上一轮中是否从某节点接收到足够的信息。实际上,数据不足表明该节点存在故障。为了节省能量并避免发送过多数据,网络节点仅被允许向汇聚节点发送主要事件。该算法从传统调试方法中构建故障检测技术,因为传统方法假设无线节点具有无限资源,且节点仅因本地原因发生故障。然而,Sympathy系统并未提供自动调试机制,也没有提供故障恢复策略。[42]

5.3. 基于时间的集中式框架

基于时间的框架中的故障管理由两个主要阶段组成:数据收集和分配时隙。在这些框架中,网络启动时,节点使用CSMA/CA并始终处于监听状态。在数据收集阶段,中心构建一个树形结构,该结构连接各个节点,并执行从资源节点到基站的数据传输路由。在此阶段,收集邻近节点的数据。在第二阶段,中心为每个节点分配一个时隙,用于向基站传输数据。此外,还会为节点分配一些时隙,用于通过故障管理进行时间同步。在监听周期内,节点采用CSMA/CA进行通信监听,以检测故障。时隙通常用于将新节点连接到数据传输树,其数量多于数据传输时隙。[43]

FlexiMAC框架[44]是主要的基于时间的框架之一,在网络启动期间采用CSMA/CA来传输数据包。因此,节点的接收器持续处于监听状态,并使用令牌机制,只有持有令牌的节点才会执行特定指令,从而避免冲突。在网络启动完成后,节点通过TDMA调度进行数据收集。在该方法的故障检测阶段,FlexiMAC中存在一个短暂的CSMA、容错时隙和监听时隙,此时所有网络节点均处于监听状态。这一特性使得节点能够根据其邻居的本地状态自行配置。在此时隙中,节点监听环境活动,以便在发生故障时无需预先了解网络拓扑即可完成自配置。此外,节点会发送无线信号,接收到信号的节点将响应并执行更新操作。当向网络中添加新传感器或某个节点试图寻找新父节点时,FlexiMAC允许节点将故障节点作为其子节点,并分配一些程序给这些故障节点,同时重建自身的程序。此处,电池电量低于阈值的节点,或在其分配的时隙中未发送或接收数据的节点被视为失效节点。

WinMS框架提出了一种基于时间的集中式故障管理方法,该方法应用FlexiMAC来管理故障。在该协议中,最终用户(人工管理员)预先在传感器节点中定义管理参数(这些参数用于触发事件),并确定在事件发生期间执行的管理任务。该方法允许每个节点作为代理,根据其邻居状态自主执行管理功能。除了利用时隙检测节点中的故障并在中心对节点进行自我配置外,管理者还监控网络节点。通过集中监控,管理者能够集中检测故障。基站通过路由节点生成完整的网络拓扑,从而创建一种恢复故障路径的方法。WinMS定义了用于检测网络行为和限制资源应用的准则和阈值。例如,在WinMS中,节点会执行故障管理步骤,即使其电池资源有限。中央管理器维护管理信息库(MIB),其中存储了传感器网络模型;这些模型表示网络状态。中央管理器分析传感器网络模型以检测诸如安全性差区域、网络分割以及故障检测等事件。表2展示了研究中基于分类、故障管理步骤、故障类型和网络类型的集中式框架。

在同质无线传感器网络中,所有节点都是相同的;然而,在异质无线传感器网络中,节点具有不同的能力(例如电池、处理能力和存储)。在异质无线传感器网络中,具有更强能力的节点被称为超级节点。故障管理框架可应用于同质和异质网络;然而,大多数框架已应用于同质网络。[46]由于这两种网络的节点不同,因此无法将同质网络的故障管理框架用于异质网络。在异质网络中,管理的某些步骤被分配给超级节点;例如,超级节点收集其邻居的数据并将其发送到中央管理。这些网络在可扩展性、能耗和开销

无线传感器网络中的故障管理框架:综述

6. 分布式故障管理框架

在本节中,概述了分布式故障管理框架。这些框架在整个网络中采用多个管理站,而不是集中控制。事实上,提出这些框架的主要目的是避免集中式框架存在的一些问题:开销和可扩展性。在分布式框架中,每个管理者控制一个网络子集,并可以直接与其他管理站通信以执行管理功能。分布式框架使传感器节点能够自主管理。能够自主判断自身状态的节点与基站之间的通信需求更少。

分布式故障管理框架根据管理故障的节点数量分为两类:基于代理和基于邻居协作。在前一种方法中,代理负责检测和恢复整个网络中的故障,并由中心进行管理。后一种方法通常采用相关性模型执行故障管理。事实上,所有节点合作检测和恢复节点。这些框架使用相关性模型。

6.1. 基于代理的分布式故障管理框架

在此方法中,会在整个网络中选择一组代理。这些代理可用于在网络中分发管理功能。该方法需要某个节点准备充当代理并执行管理任务。此外,还需要人工干预,以智能地部署代理,从而覆盖所有网络节点。因此,网络需要预先配置,且人工管理员应掌握有关特定程序下代理最佳位置的足够信息。当管理者恢复网络节点状态时,网络会面临显著延迟,因为需要等待代理访问各个节点。此外,由于传感器节点数量增加会导致代理数量增多,这些框架在大规模无线传感器网络中无法有效运行。

MANNA 是最流行的基于代理的框架之一。该框架属于网络管理框架,同时执行故障管理。该框架可应用于分布式和分层式组。由于代理负责故障检测,因此我们将该框架归类为基于代理的分布式框架。在此框架中,采用外部管理者来管理和监控网络。该管理者具有广泛的网络视图,能够执行网络内部无法完成的复杂任务。然而,管理者与传感器节点之间的通信会导致较高的开销。根据网络拓扑、同质性和异质性,MANNA 将传感器节点指定为管理者或代理。它们通过交换请求或响应来实现管理目的。MANNA 中的故障管理包括两个阶段的故障检测:安装阶段和运行阶段。该算法的步骤如图8所示。[49]

示意图7

在安装阶段,节点向代理报告其状态和剩余能量,代理将数据发送给中央管理器。网络管理器基于本地信息以及从代理接收的数据,创建网络拓扑和能量模型。这两个模型用于构建覆盖区域模型,供管理者用于监控传感器和通信。随后,模型被发送给代理,代理根据接收到的模型及节点的响应对节点进行检测。在运行阶段,传感器节点在采集和传输数据的同时也执行数据管理活动。其中,能量级别监控起着重要作用。节点检查自身的能量水平,一旦状态发生变化,便向代理发送消息。代理通过与能量相关的变量将信息传递给中心的管理者。因此,管理者能够分析能量和拓扑模型,并向代理发送适当的消息以执行故障管理。管理者发送GET操作以恢复节点状态。如果代理或节点未响应GET操作,管理者将评估能量图以确认节点的剩余能量。当能量耗尽时,管理者检测到故障并向观察单元发送警告。警告是系统为宣布可疑事件而发送的一种消息,提供有关故障类型的信息并准确描述事件。因此,在基于MANNA框架的基础上能够检测故障。[50, 51]

在[52],中提出了一种基于智能代理的分布式故障检测框架。第一步,将从属代理(s‐代理)分布到各个网络节点进行监控。代理将其报告发送给管理代理(m‐代理)。该管理者采用软件代理实现分布式故障管理,并利用贝叶斯网络作为建模和推理工具。贝叶斯网络适用于处理不确定性问题,且需要证据关联。在此网络中,因果关系也起着重要作用。该网络是一种非循环有向图,用于表示一组随机变量及其独立通信方式。具有高级推理能力的网络智能代理在网络管理中考虑多种因素,以实现分布处理与控制。这些代理负责诊断其区域内生成的警报的原因。s‐代理中发生故障的可能性被视为一组假设,并利用熵来降低传感器节点故障检测的不确定水平。通过应用熵,代理从每个节点接收到的值被分类。熵用于分析类别,与错误数据最相似或与正确实现差异最大的节点将被怀疑为故障的。故障。在分析类别时,疑似节点可能获得不同的优先级,并且可能完全不同。应用多数投票,类别基于优先级被引入。故障与其影响之间的因果关系被表示为贝叶斯网络。该网络将节点之间连接的树划分为子图。分布在网络中的代理具有节点的局部视图,将其信息传输到中心,以提供网络的全局视图。

6.2. 基于邻居协作的分布式故障管理框架

这些框架采用相关性模型。在相关性模型中,不同情况下的感知值之间存在连接。[9]用于故障管理的相关性模型包括空间相关性、时间相关性和现象相关性。空间相关性模型假设在某个物理范围内(如邻域)或空间范围(如可靠传感器组)内的传感器读数之间存在关系。在这些模型中,假设节点的值通常相等,而差异则表明存在故障。在时间相关性模型中,假设当前时间戳的传感器读数与先前时间戳的传感器读数之间存在关系。现象相关性模型假设某些现象相关参数之间存在关系。[53]

在[54],中提出了一种基于邻居协作的分布式故障管理框架。该论文提供了无线传感器网络中的故障恢复框架和容错框架。如图9所示,主要包含3个步骤:故障检测、诊断和恢复。

示意图8

在检测步骤中,除了用于监控节点的监听器外,每个节点还会为邻近节点创建一个邻居表。每个节点基于空间相关性模型将其自身的读数平均值与邻近节点的读数平均值进行比较,并执行评估。然后基于时间相关性模型将其之前的读数与当前读数进行比较。根据这些比较结果,节点初始化其信任度。如果信任度为1,则该节点是可靠的;但如果等于0,则该节点不可靠。节点的能量被用于预测故障。当能量低于某一限值时,预测该节点为故障节点。故障节点会向其他节点发送广播包以报告其能量降低情况,并向能量较高的节点发送单播包,请求其接管自身任务,随后进入睡眠状态。为了诊断故障,邻近节点评估TD值,并向其邻居发送消息以定位故障。为了诊断链路故障,各节点通过自我评估测量接收信号强度和链路使用率。一旦诊断出故障,便向故障恢复模块发送警报。在此框架中,节点的数据存储在永久存储器中。存储的信息持续更新,作为检查点使用。利用数据检查点参数来恢复旧数据。当网络进入故障状态时,系统将检索由检查点确定的最后一个非故障状态,并将其恢复至新的正确状态以继续运行。同时,状态检查点也用于恢复节点的信任度。为了预测故障,采用节点的剩余能量作为依据。当节点的能量低于阈值时,它会向其他节点发送数据包报告自身状态,然后寻找能量更高的节点。本文的一个亮点是考虑了两种类型的故障:节点故障和链路故障。针对这些故障,对节点或链路状态的恢复做出相应的决策。

[55]中提出的框架可有效应用于监控和监管区域的无线传感器网络。该机制由一个两步定时器组成。在第一阶段,传感器等待接收来自邻居的更新;在第二阶段,它们与其他邻居进行协商和协作,以做出更精确的决策。此处采用被动监控来定位故障,控制中心不期望节点保持活跃状态,除非发生故障。因此,这种分布式监控机制结合了两种特性:被动监控中的低能耗,以及主动监控中的高响应性和可靠性。在第一步中,采用邻居监控来检测故障。实际上,每个传感器仅向其邻居发送更新消息,并主动监控它们。监控过程由每个邻居的定时器控制。当某个传感器在预定义时间段内未收到其邻居的数据时,则认为该邻居失效。如果网络未被分割,邻居监控是有效的。由于邻居之间相互监控,监控效果在整个网络中扩散,而控制中心仅需监控一小部分传感器。为解决此问题,该框架采用本地决策。在此方法中,传感器节点在向控制中心和整个网络发送警告之前,先通过邻居协作与其邻居进行协调与合作。结果是决策更加准确,从而减少了流向控制中心的流量。表3展示了基于分类、故障管理步骤、故障类型和网络类型的现有研究中的分布式故障管理框架。

表3. 分布式故障管理框架

方案 故障管理框架 检测 诊断 恢复 故障类型 网络类型
[49] 基于代理 组检测 主动的 - Node 同质的
[50] 基于代理 组检测 主动的 - Node 同质的
[52] 基于代理 组检测 主动的 - Node 同质的
[54] 基于邻居合作 组检测 主动的 转发恢复 节点,Link 同质的
[55] 基于邻居合作 组检测 被动 and 活跃的 - Node 同质的

7. 分层故障管理框架

本节概述了分层故障管理框架。这些框架是集中式和分布式方法的结合。通常,分层框架表示用于管理的额外层级节点,这种方法使得控制分布更加简单。这些框架旨在应对分布式结构中的延迟和复杂性问题。分层管理结构基于簇和单元。

在基于聚类的框架中,传感器节点被分组,以有效地将感知数据传输到汇聚点/基站。在聚类节点上,选择一个簇头来监控其成员节点的运行状态。该方法通过数据的本地传输和数据集成来节省能量,从而减少网络拥塞。通常,簇头负责监控成员节点的状态。单元式框架是分层方法的一个子集。在此方法中,节点被划分为由单元构成的虚拟网络,以支持网络可扩展性,并在最小能耗下本地执行节点检测与恢复。特别是,单元式框架支持实现分布式故障检测,并将故障报告给各个单元。在每个单元中,一个节点充当单元管理员,另一个节点作为网关。单元管理员负责决定节点的活跃和休眠状态,并负责数据的收集、集成和发送至网关。网关节点协同工作,在最小能耗下进行故障检测。[25]分层故障管理框架可分为四组:基于数据库、基于时间、基于邻居协作和基于自管理。类似于集中式和分布式方法,这些组可根据故障检测的实现方式和参与故障检测的节点数量进行分类。下文将讨论最突出的分层框架。

7.1. 基于数据库的分层故障管理框架

与集中式框架类似,基于数据库的分层故障管理框架应用数据库来集成节点数据。所有数据节点都被集成到数据库中。当数据库从簇头接收到新数据时,将比较新旧数据,并将检测到的差异视为故障。基于数据库的分层框架与集中式框架之间最重要的差异在于簇头处的数据集成。换句话说,从簇头发送的数据量减少,因此不需要大型数据库。

一种基于数据库的最重要分层故障管理框架已在[56]中提出。该框架包括三个主要部分:故障检测、诊断和恢复。主要步骤如图10所示。

示意图9

该框架以分层方式实现。该层由传感器监控监听器、传感器历史管理器、监控历史数据库、传感器故障检测器和传感器故障预测器组成。监听器层监控无线传感器网络的健康状况,并定期检查所有网络节点。该层以固定时间间隔与簇头通信,并将信息传输至传感器历史管理器。此部分执行查询操作,以将信息适配到监控历史数据库中的数据。监控历史数据库是存储过去已诊断和处理事件的池。在适配过程中,管理器同时向故障检测器和预测器发送信息,以便框架能够预测和检测故障。通过评估节点能量、链路利用率以及每条链接的接收信号强度,可以实现故障的预测与检测。如果感知数据与当前数据不同,故障检测器会在数据库中记录该事件。在完成故障检测与预测后,检测器或预测器会与管理器通信以确认故障。故障可能发生在传感器节点层面或网络层面。在此层中,管理器追踪故障诊断、故障源及故障特征。管理器识别受影响的传感器节点硬件。该信息被传递至检测管理器,由其对整个网络执行检测。故障诊断管理器与无线传感器网络诊断管理器与恢复编程器进行通信。故障恢复层由四个部分组成:网络级恢复管理器、节点级恢复管理器、恢复编程器和报警单元。无线传感器网络诊断管理器通过恢复层的通知单元直接发出警报。恢复编程器单元与节点级恢复管理器和网络级恢复管理器通信,以恢复故障。无线传感器网络恢复管理器实施必要的配置更改,并抵消故障的影响。节点级恢复管理器改变传感器节点的结构,纠正硬件和软件故障,以维持传感器节点性能并启动恢复方案。

7.2. 基于时间的分层故障管理框架

这些框架应用了3种故障管理机制。这些机制分别利用往返延迟、节点响应时间和定时器参数。在采用往返延迟机制的故障管理框架中时间计算信号脉冲或数据包从特定源节点传输到邻居并返回所需的时间。[57]在基于响应时间的故障管理方法中,每个节点通过向邻近节点发送消息来评估其响应所需的时间。该时间被视为一个阈值。在此阈值期间未发送响应的节点被诊断为故障的。在第三种机制中,作为冗余手段,在节点上添加了一个定时器。最具代表性的基于时间的分层故障管理框架如下所示。

[58]中提出的框架是主要的分层框架之一,称为CRAFT。CRAFT集成了容错任务和网络主要操作。该方案兼容网络变化,特别是传感器能量水平的变化。CRAFT的核心思想是利用周期性检查点。所有整合到簇头(CHs)的数据都会存储在汇聚节点(sink)中,直到接收到数据确认;数据会持续更新。当发生故障时,检查点值用于恢复节点的数据。CRAFT的第一步是在网络层面定义角色。这些角色包括:1)数据复制器,用于在汇聚节点中复制存储的数据;该数据用于恢复汇聚节点中可能发生的故障;2)资源监控器,用于评估复制的数据并做出数据恢复决策;3)故障发现器,通过响应时间偏差(RTD)和监控剩余能量来检测传感器故障。检查点数据根据新数据以及汇聚节点的最新能量水平进行定期更新。[29]第二步是生成调度。为检查点数据结构的周期性更新定义了静态调度。该调度基于数据生成速率和用户更新速率设定。汇聚节点通过监控自身的能量水平来预测其故障。在故障检测步骤中,当传感器节点响应汇聚节点超时时,即诊断为故障。在成本评估步骤中,CRAFT根据网络产生的开销执行恢复操作。恢复节点将执行故障节点的所有任务。在[59],中,CRAFT通过椭圆曲线节点乘法得到了改进。在此方法中,沿曲线连续添加采样点。此外,采用了高基数可扩展蒙哥马利乘法器以加速伽罗瓦域乘法器。该方法改进了蒙哥马利多方法,提高了网络性能,并减少了开销延迟和能耗。

在[60],中提出了一种改进CRAFT的框架,称为ECRAFT。在ECRAFT中,每个簇头(CH)从其成员中指定一个节点作为检查点。第一步中,节点被聚类,然后分配各自的角色。节点感知环境中的数据并发送给簇头。簇头将整合后的簇数据发送至汇聚节点,并在其检查点节点中保存一份整合数据的副本。在 ECRAFT结构中,簇头具有7种不同的状态。前三种状态与簇形成相关,其余四种状态则涵盖簇头在操作阶段的运行表现。因此,在操作阶段开始时,簇头首先为每个簇节点分配时间区间。当簇节点向簇头发送数据时,也会同时发送自身的剩余能量信息。此外,数据被整合后,其副本被保存在检查点中,随后数据被发送至汇聚节点。在最后一个操作阶段,簇头会评估簇内各节点的剩余能量,以判断是否需要选择新的簇头。若需更换簇头,则必须重新选择一个新的检查点。检查点节点可能处于三种不同的状态组中。第一组包括簇形成和检查点的引入;第二组在操作阶段期间产生,并在簇运行的每个时间段内均会执行;第三组同样与簇的操作阶段相关,但并非在操作阶段的每个时间段都必须执行,仅当汇聚节点向簇头发送请求以从检查点获取数据时才执行该组操作。

在[61]和[62]中提出了两个类似于ECRAFT的框架,用于检测和恢复故障的簇头。在[61],中,每个簇的一个成员被指定为检查点,并发送顺序消息以监控其簇头。如果簇头在特定时隙没有响应,则被检测为故障。然后,检查点向簇内其他成员介绍自己作为新的簇头,并指定一个新的检查点节点。在[62],中提出了一种基于时间的框架。在此框架中,汇聚节点为每个簇头设置一个定时器。如果簇头在特定时隙向汇聚节点发送消息,则定时器将被重置;否则,汇聚节点会发送一条消息来评估它们。收到消息后,簇头应向汇聚节点发送确认应答;否则,它们将被检测为故障。一旦检测到故障,汇聚节点会用同一簇中剩余能量较高的节点替换故障的簇头。在[63],中提出了一种类似的基于时间的故障管理框架。在此框架中,存在一个传输延迟的阈值。如果一个节点超过了该阈值,则被视为故障。在恢复步骤中,最近的邻近节点将替换故障节点。

在[64],中提出了一种基于时间的分层故障管理机制,用于检测和恢复故障。该方案包括四个阶段:宣告、数据传输、故障检测和故障恢复。在宣告阶段,组织簇并选择簇头。接着,簇头向其他节点宣告自身存在。宣告完成后,节点根据接收信号强度选择最近的簇头。然后,簇头为其成员定义一个TDMA程序。在第二阶段,所有子集节点将数据发送给簇头。第三阶段是基于簇头响应时间的故障检测。如果某个簇头在某一时间段内未向基站发送任何响应,则该簇头被标记为故障节点,并将此信息传播到网络其余部分。当诊断出簇头发生故障时,其所有成员节点都会感知到该故障。最后,开始故障恢复。对于故障恢复,汇聚节点根据剩余能量将其一个成员指定为新的簇头。因此,新的簇头与其他成员相比具有最高的剩余能量。即使某些节点的能量耗尽,该方法仍能维持其网络连接和数据传输能力。

在[65],中,IFTF是一种基于时间的分层框架。在故障检测步骤中,该框架旨在检测两类故障:由电池耗尽引起的节点故障以及由与邻居弱连接导致的链路故障。在本地检测步骤中,簇头监控其成员,并通过发送周期性消息来检查它们的状态。簇头等待特定间隔以接收关于其状态的消息。为了避免瞬时故障的影响,该间隔应足够长,以确保所选节点的消息能够成功传输。只有当某个节点的消息丢失时,该节点才被怀疑为故障的。在集成检测步骤中,簇头会收到来自其他成员对其检测结果的确认。此步骤在降低误报率方面起着重要作用。集成时间应足够长,以便在最终决策之前交换消息,并将结果发送至应用层。深度检测过程会增加能耗,因为更详细的检测意味着更多的监控和信息收集。在IFTF中,应用测试服务与网络检测服务的结合使得系统能够在不同层次进行监控,而不会产生过大的开销。同时,网络管理者也能获得有用的信息。

一种基于时间的分层故障管理框架已在[66],中提出,称为ZFTMA。该框架用于检测簇头(CH)及其成员节点的故障。在形成簇的过程中,CH会列出其能量水平以及簇内的所有成员,并在每个信息收集阶段更新该列表。通过分析接收到的数据包,CH可诊断并标记未发送数据的节点,使其进入等待状态一段时间。若在此时间帧内CH仍未收到来自这些节点的数据,则将其宣布为故障节点,并在网络中传播该信息。CH的故障检测至关重要。在第一种故障检测类型中,CH监控自身的剩余能量,若低于阈值,则立即启动更换CH的过程。此外,区域管理器(ZM)负责监控各个CH。当数据从CH传输到ZM时,CH会列出其成员及能量水平,从而使ZM获得该区域拓扑的概貌,并记录该区域内所有CH的信息。当ZM在特定时间段内未收到来自某个CH的数据包时,该CH将被标记为故障节点,并启动其恢复过程。一旦检测到CH发生故障,其所有成员节点将逐步获知该故障情况。在恢复阶段,ZM根据簇内成员的剩余能量,提名另一个成员作为新的CH。实际上,新的CH是该簇中剩余能量最高的节点。

[67]中提供的方法是一种基于时间的分层式管理系统,采用定时器机制。事实上,簇头为邻近传感器维护一个定时器T1。如果簇头察觉到传感器的传输,则重置该定时器。实际上,当簇头或邻近节点检测到某节点的性能时,它们会重置该节点的定时器。节点在两种情况下被视为失效:1)定时器超时且未收到其任何响应;2)簇头向该节点发送3次消息,但该节点无响应。在该框架中,故障节点和簇头均会被检测。检测簇头故障时使用两个定时器。T1由汇聚节点中的中心启动;若汇聚节点从某个簇头或经由该簇头接收到数据包,则重置该定时器。而T2启动后,邻近簇头的节点会与该簇头交换消息。若未收到响应或第二个定时器超时,则判定该簇头为故障。[68]一旦中心检测到故障,便启动恢复步骤。故障恢复仅针对普通节点执行。在此步骤中,对网络拓扑完全知晓的中心将适配一个新的簇头,并更新其路径。由于中心了解整个网络拓扑,因此应选择一个对当前结构改动最小的替代簇头。

7.3. 基于邻居协作的分层故障管理框架

这些框架和分布式系统基于合作执行故障检测。区别在于,在邻居协作框架中,簇成员之间存在协作。事实上,基于空间相关模型,簇内感知的数据应具有相似性,任何差异都表明存在故障。在基于邻居协作的分层框架中,采用多数投票机制,通常由簇头(CH)或单元管理员负责执行该操作。多数投票的结果指示节点的状态。下文将介绍最重要的基于邻居协作的分层框架。

在[69],中提出了一种基于邻居协作的分层式框架。在此框架中,簇成员通过合作来检测簇头故障。在故障检测步骤中,簇成员向簇头发送消息,随后簇头对这些消息进行响应,该响应行为表明簇头处于活跃状态。如果簇头未对一定数量的消息作出响应,则被判定为故障的。簇成员利用簇间协作来确认簇头确实发生故障。事实上,当超过一定数量的簇成员发现无法与簇头通信时,即判定簇头为故障的。在该算法中,当某个节点检测到与簇头失去通信,但其邻近节点仍能与簇头通信时,则认为链路出现故障。在恢复阶段,检测到簇头失效的节点会传播簇头失效消息,以通知其他成员。接收到该消息后,所有节点进入恢复阶段。在恢复阶段,簇节点在其邻居列表中寻找新的簇头,并连接该簇头以通过其传输数据。在链路恢复步骤中,无法与簇头通信的节点选择一个邻近节点作为中继,将数据发送至其簇头。检测和恢复簇头及链路故障的算法步骤如图11所示。

示意图10

在[70],中提出了一种基于邻居协作的分层故障检测机制。在故障检测步骤中,节点将其数据发送给其簇头,簇头通过确认应答(ACK)进行响应。如果簇头未对其簇成员做出响应,则簇成员通过协作来检测该簇头是否为故障的。故障信息将上报至网关节点。为了验证故障检测的准确性,网关节点联合其无线通信范围内的其他网关节点采用多数投票机制进行判断。随后启动故障恢复阶段,网关节点向所有簇成员通告该故障。簇成员评估自身的无线通信范围以及网关情况,并决定是连接到其他邻近的簇头,还是选择网关作为其簇头。

DFMC 是一种基于邻居协作的分层式故障管理机制。在此框架中,应用了蜂窝传感器。[71]该算法为每个簇选择一个簇头和一个管理者。在普通节点中进行故障检测与恢复的第一步时,所有单元的管理者均处于睡眠状态。当簇头收不到某个节点的响应时,会立即通知簇管理器。随后,簇管理器向该节点发送查询,并由簇节点通过多数投票方式判断该节点的状态。一旦检测到故障节点,则选择一个具有最相近无线通信范围的邻近节点来接管故障节点的任务。第二步是在簇头中进行故障检测与恢复。簇管理器周期性地向其簇头发送消息,若未收到回应,则认为该簇头发生故障。一旦检测到簇头故障,即启动故障恢复机制。簇头的故障通常是由于能量减少所致。故障恢复由簇本地执行,所有簇成员通过管理者的消息获知故障情况。管理者从簇成员中选择一个新的簇头。新的簇头应靠近原簇,且到管理者的距离最短,并具有最大的剩余能量。

基于邻居协作的分层框架已在[72]和[73]中提出。在这些框架中,簇中中心位置且剩余能量水平最高的节点被选为簇管理器,并负责执行故障管理。簇管理器将其簇划分为4个单元,使单元管理员位于单元的中心。簇管理器仅与簇及单元管理员连接。在此协议中,单元管理员仅与CH、簇管理器以及单元内部的单元相连。假设这些连接均为单跳连接。单元管理员、簇管理器和CH通过合作来检测其簇中的故障节点。首先,所有单元的管理员处于睡眠状态。当CH未响应状态评估消息而未发送数据时,会立即通知簇管理器。簇管理器向单元管理员发送唤醒消息。最后,采用多数投票方式来判断节点的状态。如果节点为故障的,则该节点在未来将不再被使用。为了检测CH的故障,簇管理者发送查询并周期性接收响应消息。当未收到簇头(CH)的响应时,簇管理器会向单元管理员报告。单元管理员重复该操作。然后,单元管理员和簇头(CH)使用多数投票操作来检测簇头(CH)的状态。为了恢复故障,簇管理器选择剩余能量水平最高的节点作为新的簇头(CH)。簇管理器的故障由簇头(CHs)进行检测。如果簇头在某一时间帧内未收到来自簇管理器的查询消息,则判定该簇管理器为故障,并上报给单元管理员。单元管理员和簇头(CH)向该簇管理器发送查询消息以确定其状态。随后,单元管理员和簇头(CH)应用多数投票操作来确定簇管理器的状态。如果簇管理器发生故障,簇头(CH)将通知所有节点参与竞争以被选为新的簇管理器。单元管理员的故障由簇管理器检测。当某个单元管理员未对状态评估消息作出响应时,即被判定为故障的单元管理员。簇管理器通知靠近该故障单元管理员的另外两个单元管理员。接着,这两个单元管理员向相关单元管理员发送查询消息以检测其状态。然后,这两个单元管理员与簇管理器共同采用多数投票操作来确定该单元管理员的状态。为了恢复故障,簇管理器通知所有单元节点参与竞争。

在[74],中提出了一种基于邻居协作的分层故障管理框架。该方法结合了聚类节点和簇成员占空比的方法来管理故障。在此框架中,选择一个节点作为备用簇头,用于检测和恢复故障的簇头。此外,该框架采用加权中位数方法来检测和恢复故障的簇成员。为了计算数据的加权中位数,邻居之间需要进行合作。一旦检测到故障节点,该节点将被隔离,并且一个邻近节点将从睡眠模式切换到唤醒模式以取代它。

7.4. 基于自管理的分层故障管理框架

在这些框架中,节点通常负责评估自身状态,并且通常会处理由低电量引起的故障。实际上,节点通过将其剩余能量与初始值进行比较来检测自身状态。检测到故障后,节点会发送消息通知其邻居和簇头。通常,故障恢复由簇头和单元管理员执行。以下是一些关于自管理方法的研究。

在[75]中提出了一种基于自检的分层故障管理框架。该机制包括两种故障检测类型:节点自检和被动检测。此外,应用的功能还包括剩余能量和警报传播。在自检方法中,节点将其自身的剩余能量与其初始值进行比较,如果剩余能量低于定义的阈值,则激活“警报”功能。被动检测用于突然死亡的节点。在定义这两个功能后,将评估状态。对于被动检测,基站将网络划分为多个组,并为每个组分配一组管理者。换句话说,同时执行了簇化和分组。基站主要关注组管理器的突然死亡。然而,组管理器和簇头通过被动检测来监控网络节点。它们之间被动检测的区别在于簇头和组管理器所监控的节点数量不同。簇头仅关注其成员。组管理器通过发送消息来评估簇头。当检测到某个节点发生故障时,管理者会调查其当前网络的状态,包括网络连接和覆盖水平,并在网络状态危急时通知基站。但是,如果邻近节点能够执行故障节点的任务,则仅根据组的最新状态更新基站。听到更新消息后,簇头将评估组管理器。若在特定时间段内未收到消息,簇头将通知基站。接下来,为了恢复故障节点,将减少其监控范围。例如,减少由它们监控的节点数量。当检测到某个组管理器不适合执行管理工作时,基站会将其更改为簇头。

在[76],中提出了一种基于自管理的分层式框架,称为自管理框架(SFM)。在SFM中,网络由多个标准节点组成,所有节点均参与网络管理。该方法仅处理由于缺少节点响应而检测到的故障。在此算法中,当检测到故障节点时,计数器增加1个单位。这些计数器被放置在一个表中,然后节点协作以检测可疑节点。每个节点定期向其邻居广播一条消息。消息包含创建者ID和传感器值。邻近节点具有表,并检查消息创建者是否包含在表中。如果创建者未包含在表中,则表,传感器值将与平均传感器进行比较。当残差超过阈值时,计数器增加1个单位。但若残差低于阈值,则会广播一条怀疑消息。接收到怀疑消息后,节点会检查可疑节点的ID是否包含在可疑节点内存中。如果包含,则向邻近节点发送一条判定消息,并判定源节点为故障节点。当计数器与阈值相等时,可疑节点参数为1。发起节点充当判断者并确定故障。在创建怀疑消息时,定时器开始工作;当定时器停止时,发起节点会检查计数器的值以统计同意投票的数量。接收到判定消息后,节点会检查故障节点是否包含在其邻居的表中,以及其表中是否包含该故障节点的ID。如果故障节点包含在其邻居的表中,则该故障节点的连接将被切断。

此外,[77]提出了一种基于自管理的分层故障管理框架。该框架仅管理与电池耗尽相关的故障。首先,网络被划分为多个组。这些组被进一步划分为一组虚拟单元。每个组指定一个组管理员,每个单元则采用一个单元管理员。在故障检测阶段,存在两种检测方法:自检和主动检测。在节点自检阶段,节点监控自身的剩余能量。如果能量低于阈值,则向单元管理员发送一条消息。此类故障无需恢复。单元管理员监控自身的剩余能量,并将其健康状态报告给所属的组管理员。组管理员监控自身状态,当其电池能量低于阈值时,会通知其他邻近的组管理员及其子单元的管理员。此外,若基站(BS)未收到来自某个组管理员的任何流量,则该组管理员将被视为可疑管理者。随后会向该可疑组管理员发送一条消息;若其未返回确认应答(ACK),则判定为故障节点。在节点检测阶段,若某节点被检测为故障节点,其邻近节点将从睡眠状态切换至激活状态,并取代该故障节点。同时,单元管理员会选择一个备用节点作为备份,以在其发生故障时进行替换。然后其他节点会被更新并连接到新的单元管理员。单元故障的恢复是本地执行的。组管理员将故障的单元管理员信息报告给其他单元成员,并通过指派新的单元管理员来更新状态。每个组管理员都会选择一个备份节点,以便在发生故障时接替其职责。新的组管理员信息将被通报给其他组管理员,以便它们进行相应更新。若组管理员的邻近节点剩余能量不足以替代故障的组管理员,则会与其他组管理员协作,共同选择一个合适的节点。

在[78],中提出了一种基于自管理的故障管理框架。在此框架中,节点监控自身的硬件状态,包括接收器、发射器和微控制器电路。根据硬件故障类型的判定,将节点分为四类:1. 正常:无故障部件,能正常执行所有任务的节点;2. 失效:电池耗尽、接收电路故障或某些硬件故障的节点;3. 通信节点:传感器电路损坏,仅向其他节点发送消息的节点;4. 终端节点:接收电路故障,仅从周围环境收集数据的节点。

8. 混合式故障管理框架

在[54],混合式框架中,提出了一种分层式与分布式框架的结合方案。该框架称为LPS‐FMP,由管理站、管理系统、代理系统、网关系统和普通传感器节点组成。在此框架中,故障信息通过两种方式收集:1)代理上传信息;2)管理端发送查询。为了检测故障,涉及三个组件:故障检测系统、网关检测系统和客户端软件。用于检测代理故障的系统包含三个功能组件。第一个组件是网络,用于获取环境信息并传输数据。第二个组件包括电源模块、传感器模块和高频传感器模块,用于判断主网络模块是否发生故障。第三个组件为故障处理,用于在故障发生时保持节点活跃并存储其信息。在第一步中,故障检测管理从电源模块、传感器模块和高频发送模块收集信息,以判断是否存在故障。如果存在故障,系统进入故障检测阶段,由故障管理芯片确定实际故障。在恢复阶段,若故障与电源相关,电源将启用备份以替换原始供电。当高频发送模块发生故障时,节点无法与外部世界连接。为了恢复故障,管理模块通过更新路由表来通知其他节点停止向故障节点发送数据。随后进入维护阶段。根据信息存储模块中的信息分析故障,以维护网络。因此,该框架使故障节点保持活跃,并尝试纠正故障。

表4展示了所有关于分层式和混合式框架的已审研究。这些研究基于故障管理步骤、故障类型和网络类型进行表示。

表4. 分层式与混合式故障管理框架

方案 故障管理框架 检测 诊断 恢复 故障 网络类型
[56] 基于数据库 集中式与自检 主动的 转发恢复 节点和Link 同质的
[58]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值