无线传感器网络故障检测研究
摘要:针对无线传感器网络资源受限的特点,研究了故障管理的相关内容,主要对故障检测的几种常见方法进行比较说明,对于无线传感器网络的应用具有一定的指导意义。
关键词:无线传感器;资源受限;故障管理;故障检测。
无线传感器网络是由大量低成本且具有传感、数据处理和无线通信能力的传感器节点通过自组织方式形成的网络[1]。它独立于基站或移动路由器等基础通信设施,通过特定的分布式协议自组织起来形成网络。它能够协作地实时监测、感知和采集网络分布区域内的各种环境或监测对象的信息,并对这些信息进行处理,使需要这些信息的用户在任何时间、任何地点和任何环境条件下(尤其是仅适合无线通信条件下)获取大量详实而可靠的信息。因此,这种网络系统可以被广泛地应用于国防军事、国家安全、环境监测、交通管理、医疗卫生、制造业、反恐抗灾等领域。
随着无线传感器网络应用范围的进一步扩展,常常被部署在极端环境来收集外部环境的数据。由于传感器节点的电源、存储和计算能力有限,并且应用环境恶劣,使得传感器节点比传统网络的节点更易于失效。在这些情况下维持高质量的服务,并尽可能地降低能源消耗是很有挑战性的,有效的故障管理对于达成这些目标是有极大帮助的。因此,对无线传感器网络故障进行管理是非常重要的。
1 无线传感器网络故障管理。
当网络或系统出现故障时,网络故障管理便成为管理员首要用到的工具。因此,故障管理事实上是整个网络管理的重中之重。
但遗憾的是,由于网络故障涉及到不同厂商,不同类型设备,涉及复杂的网络拓扑结构,涉及不同组织对故障类型的不同定位规则。
从用户的角度来说,希望在日常工作和生活中网络运营畅通,信息传输不受任何网络故障干扰。而从网络运行和管理者角度来说,他们希望在网络运营过程中,即使发生故障,也能很快地得到故障发生的原因。这些方方面面的因素使得对无线传感器网络故障管理的研究在近年来发展比较缓慢。下面参照传统网络的故障管理,将无线传感器网络的故障管理分为三个阶段:故障检测、故障诊断和故障恢复[2]来分别说明。
1) 故障检测。
为了确定故障的存在,需要收集与网络状态相关的数据。一般来说,网络发生故障后,网络设备将处于不正常的状态。通过获取设备的状态信息,就可以及时发现网络中出现的故障。收集网络状态信息有两种方法:设备向管理系统报告关键的网络事件;由网络管理系统定期地查询网络设备的状态,即主动轮询。
一般情况下,网络管理系统将这两种方法结合起来使用。当对网络组成部件状态进行检测后,不严重的简单故障通常被记录在错误日志中,并不作特别处理。而严重一些的故障则需要通过网络管理器,即所谓的“告警”。
网络设备一般都具有感知异常情况的能力,当设备发现自身或网络中的严重不正常现象时,它采用告警的方式报告给网管中心,因此,故障检测一般由网络中的设备完成。
2)故障诊断。
故障会在网络中传播,所有感知到故障的网络对象(包括物理对象和逻辑对象)都会发生告警,在一个大型网络中,一个故障可能会引起大量的告警。故障诊断就是对网络设备发出的告警进行相关处理,从一大堆的告警中找到故障发生的真正原因,并找出故障节点。在网络故障诊断中,一个理想的告警应该包含有关故障的五W 信息(Who、What、Where、When 和why)。由于网络设备对于自身以外的网络情况只了解非常有限的知识,所以网络设备产生的大部分网络告警只回答了who、what 和when 三个问题,而故障诊断要进行where 和why 的推理。另外,告警噪声的存在进一步增加了故障诊断的难度,这些告警噪声包含:告警丢失、延迟、重复和虚假告警等。
3) 故障恢复。
故障恢复的主要目的是根据识别的故障原因,自动或手动地对网络进行控制操作,恢复网络的正常运行。
2 无线传感器网络故障检测常见方法按照故障检测的执行主体所处位置的不同,可以将无线传感器网络故障检测方法分为集中式方法和分布式方法[3]。
2.1 集中式方法。
集中式方法[3]是无线传感器网络中较为常见的一种方法,一般来说是物理上或逻辑上处于中心位置的节点,负责对网络进行监控,追踪失败节点或可疑节点。由于中心节点要负责的事务较多,通常都让该节点不受能量的限制,能够执行大范围的故障管理事务。集中式方法的结构如图1 所示,主要采用周期轮询的方式来对节点进行管理:中心节点通常采用周期性主动探测的方式发布一些探测包,来获取节点的状态信息,对获得的信息进行分析,从而确定节点是否失效。
采用集中式网络管理,所有的网络设备都由一个管理者进行管理。当信息流量不大的时候,集中式网络管理简单且有效,在失效节点定位方面具有高效和准确的优点,所以它非常适用十小型的局域网络。在集中式网络管理结构下,管理者作为“客户”要完成复杂的网络管理任务,同时还必须与多个作为“服务器”的代理交换信息。这种结构存在着较大的缺陷,主要表现为:
1) 所有的分析和计算任务都集中在中心节点站, 造成网络管理的瓶颈,中心节点负载过重。由于其余节点的信息收集后都是发往中心节点,因此中心节点很可能变成一个专门用于数据传输的节点以满足故障检测和管理的需要。随之而来的问题就是中心节点所在的区域会有大量的流量往来,导致该区域的节点能量消耗急剧增加,越是靠近中心节点的越是这样,如图1 中的A,B 节点。
2) 中心节点站一旦失效,整个网管系统就崩溃了,这样导致整个系统的可靠性偏低。
3) 集中式结构导致大量的原始数据在网络上传输,带来了大量额外的通信量,占用大量的通信带宽,并导致网管系统工作效率降低。
4) 用于监测网络并收集数据的代理是预先定义好且功能固定的,一旦要扩展新的功能时十分不便,这样会造成系统的可扩展性较差。
5) 远端节点与管理中心之间的距离较远,且传感器网络中采用多跳通信,因此这两者之间的信息交互时延过长。
2.2 分布式方法分布式方法支持局部决策的概念,能够平滑地将故障管理分散到网络中去。目标是让节点在与中心节点通信前,能够给出一定层次的决策。在这种思想下,传感器节点能做的决策越多,越少的信息将被传输给中心节点,从而减少通信量。其算法流程如右表1。分布式的方法通常分为以下几种:
1) 节点自检测方法。节点自检测的方法依赖于节点自身所包含的功能进行故障检测,并将检测结果发送给管理节点。文献[4]中介绍了一种节点自检测的方法,通过软件和硬件的接口检测物理节点的失效。硬件接口包含了几个灵活的电路用于检测节点的方位和碰撞。软件接口包含了几个软件部件,用于采样传感器节点的读取行为。由于故障的检测由节点本身完成,这种方法的优点是不需要部署额外的软件或硬件节点用于故障检测。
2) 邻居协作的方法[5]。顾名思义,邻居协作的基本思想就是:在节点发出故障告警之前,将节点获得的故障信息与邻居(一跳通信范围内)获得的故障信息进行比较,得到确认的情况下才将故障信息发往管理节点。在大多数的情况下,中心节点并不知道网络中的任何失效信息,除非那些已经用节点协作方式确认的故障。这样的设计减少了网络的通信信息,从而保留了节点的能量。
3) 基于分簇的方法[6]。基于分簇的方法将整个网络分成不同的簇,从而将故障管理也分散到各自的区域内完成。簇内采用散播的方式来定位失败节点,簇头节点与一跳范围内的邻居以某种规则交换信息。通过分析收集到的信息,根据预先定义的失败检测规则可以最终确定失败节点。接着,如果发现了一个故障节点,该区域所在的节点将会把信息传播给所有的簇。
3 常见方法的比较。
从上可知,集中式方法与分布式方法都各有优缺点,针对于不同应用类型的网络,应该选取不同的方法。为了方便方法的选取,我们对上述方法个定性分析。考虑无线传感器网络本身能量有限的特点,以及故障检测的一般目的,我们选取能量消耗、通信开销、故障检测率和虚警率这四个方面进行比较,结果如表1。
4 结束语。
无线传感器网络的应用已经十分广泛,而且,一般认为物联网的最底部一层即为无线传感器网络, 因此对无线传感器网络的研究能很好地指导实践工作。本文对无线传感器网络故障检测的方法进行了分类描述分析, 对于指导无线传感器网络故障研究工作具有一定的指导意义。
无线传感器网络故障检测研究的评论条评论