无线传感器网络性能监测技术与系统研究
微机电系统(microelectromechanism system,MEMS)、无线通信和数字电子技术的进步孕育出一种全新的信息获取和处理技术——无线传感器网络(wirelss sensor networks,WSN)[1]。WSN是由能量、计算、感知和无线通信能力受限的众多微型节点组成。节点间通过自组织方式构成的WSN对周围环境进行分布与协作式感知,架起了计算机世界与真实物理世界的桥梁[2,3]。
近年来随着研究的深入与技术的成熟,以应用为背景、基于WSN的试验越来越多地涌现出来,WSN正处于从研究到应用的过渡阶段[4]。现在虽然有很多针对WSN的仿真平台[2],但现实环境中存在各种不可预料的影响因素或系统本身的错误,导致WSN实际部署后的行为有时会与预期行为有很大偏差[5]。为了使WSN更加可靠、有效地运行,需要对其进行管理,从而依据不同的具体情况对网络运行进行调整,在各种性能指标中作出权衡,以得到最大的总体性能。网络管理包括网络性能监测和网络维护。网络监测在WSN管理中地位至关重要[6]。通过网络监测可以发现网络中节点失效、资源消耗以及其他错误或异常。这些信息可以作为早期系统预警、节点再次部署等网络维护时的依据,同时也可以帮助排除系统故障[7,8]。如何高效、准确和快速地获得网络各个层次的信息是WSN监测技术需要研究的问题。
1无线传感器网络监测中的问题与挑战
正如大多数分布式系统一样,具备一种底层的支持来指示网络运行中失效节点、资源消耗以及系统综合性能对于WSN相当重要[8]。但是作为一种新型的网络,WSN又具有其自身的特点,所以传统分布式系统收集加集中处理的监测手段对于WSN并不适用。以下将从WSN的特点分析其网络监测中存在的问题与挑战:
a)从分布式系统的角度来看,WSN是节点数量众多且能量和传输带宽高度受限的分布式系统。在传统分布式系统中,由于网络中的每个节点都很重要,需要监测每个节点的状态信息;然而在WSN中单个节点的重要性降低。因此传统的逐个采集集中式处理方式(如SNMP管理方式)对于WSN来说已不再适用。
考虑到WSN的能量与带宽约束特性,为了以较低的能量开销来获得网络中的状态信息,需要在收集信息的过程中进行分布式处理。在节点众多的WSN中,由于单个节点的重要性降低,众多节点需协作才能完成任务。如何对多个节点状态信息的聚合或怎样从多个节点中选择具有代表性的节点收集网络状态信息变得十分有意义。文献[7]通过聚合的方式在监测网络中节点剩余能量信息精度与系统开销之间进行了平衡。文献[9]从图像处理的角度对如何选择采样点从而高效准确地收集网络中信息的问题进行了研究。这些都说明了分布式处理在WSN中网络监测的重要性。b)从嵌入式系统的角度来看,作为一种具有嵌入式特性的网络,WSN中的节点都是资源受限的嵌入式设备。这使得传统相对复杂的监测程序和通信协议不再适用于WSN。
作为嵌入式系统,WSN中每个节点的可利用资源(计算资源、存储空间、传输带宽和能量)十分有限。传统网络监测日志、字符串形式的属性查询在WSN中均不适用。因此,有必要优化信息的表示与存储方式,简化通信协议从而将资源的消耗降至最低。文献[5]在其网络协议设计中提出了在编译时对信息再编码的方法,大大降低了系统存储和通信开销。此外,文献[10]提出了主动监测概念,即在网络监测时只对重要的参数变化进行监测;通过主动监测可以避免无关信息的收集,节省了系统资源。所以,对于WSN监测,嵌入式设计与分布式处理同样重要。
c)从应用定制的角度来看,相对于传统网络WSN具有高度的应用定制特性。针对不同的应用场景,WSN在设计中会有很大的差异[4]。如何定义出描述WSN性能的指标参数以及设计出具有可扩展性的监测系统是WSN网络监测需要研究的一个重要问题。
在应用定制的WSN中,对于不同应用,管理者所关心描述网络性能的参数往往不同。因此,一方面应该找出WSN中描述网络性能参数的最小公共结合;另一方面WSN监测系统的设计应充分考虑到系统的可扩展性与开放性。所设计出的系统能提供一种框架,使得新的监测协议以及新的监测对象可以方便地集成于原有的监测系统中。文献[5]在WSN监测系统框架设计方面作出了有意义的研究。此外文献[6,10]中也对WSN的网络性能监测标准进行了讨论。
2无线传感器网络监测系统
2.1 基于聚合技术的监测系统
南加州大学洛杉矶分校的Zhao等人[11]提出了一种基于聚合的面向WSN的监测系统。该系统由三层构成,即digest(摘要)、scan(扫描)和dump(日志)。图1解释了三者间的关系。
首先,Zhao等人认为在对WSN的监测过程中,必须有一些指示网络基本特性的参数在网络运行时被不断采集。对于这些基本特性参数的采集形成了监测系统的第一层(digest)。由digest获得的网络基本特性参数代表着网络整体状况。Digest由digest函数式f(v1,v2,…,vn)定义。其中vi代表网络中节点i对应的值。这里如果将网络中当前所有节点剩余能量最低值作为digest计算,那么digest函数实际上就是计算Emin=min{v1,v2,…,vn}的值。其中vi代表节点i当前剩余能量。此外还可以对网络平均剩余能量、当前存活节点数、节点通信量等作digest计算。在网络运行过程中,通过digest diffusion可以使关于网络的digest被不断更新并传播至整个网络。Digest diffusion以最小的开销实现了对网络持续、宏观的监测。
Digest给出了网络的大致运行状况,其突变预示着网络中异常的发生,异常产生位置的确定可以通过对网络的进一步分析获得。对整个网络当前状态视图的分析形成了监测系统的第二层(scan)。文献[4]对于网络中剩余能量的scan进行了专门研究,通过指定scan视图公差T(tolerance)和分辨率R(resolution)来控制聚合的程度,进而得到剩余能量不同精确程度的视图。聚合式的网络scan给出了异常在空间上的信息,为进一步分析异常产生的原因提供了依据。
Scan给出了异常在网络中的位置,对异常区域的进一步分析可以最终得出关于异常的结论。对异常区域节点详细的信息收集形成了监测系统的第三层(dump)。其通过收集异常区域中节点数据可以对网络进行诊断。例如对某一区域中节点采集的一系列温度记录进行dump,可以对节点间协作的事件检测算法进行调试。Dump从最小的时间和空间粒度上提供了对网络的监测。
Digest、scan和dump对网络的监测依次放大,逐层细化。通过三层结构,基于聚合的监测系统从三个不同角度对网络的行为进行描述,达到了对网络有效监测的目的。
2.2简单、开放的监测系统加州大学伯克利分校的Tolle和Culler基于TinyOS[12]设计并实现了一种用于协助应用的WSN管理系统SNMS(sensor network management system[5])。为了满足简单和健壮的需求,SNMS的设计将管理机制与策略相分离。SNMS为命令、数据、事件和方案属性提供编码、传输以及译码机制。策略中什么能被管理,什么将被管理以及哪些节点参与管理均应该由系统的用户决定。这种开放式结构使得SNMS更加适用于以应用定制为特性的WSN的监测。
SNMS的底层,即网络通信层,提供了数据分发和数据收集两种网络管理协议。在SNMS中,数据收集协议drain用来收集网络中描述网络健康状况的数据;数据分发协议drip用来分发查询和管理命令。Drain协议用来构造一个资料收集树;它在构造收集树的过程中仅依靠每次构造生成树消息包中的RSSI累加值来选择父节点;节点自身不存储也不维护任何邻居表信息,从而减少节点及网络资源的开销。Drip协议基于trickle[13]算法提供了传输层可靠的消息分发。
在drain和drip提供的数据收集和数据分发协议之上是SNMS的数据输出、查询系统和事件日志系统三个基础服务。由于TinyOS各个组件随着硬件平台的改变、应用的不同以及组件自身的修正在不断变化,如果定义一种静态、统一的语义来描述组件的各个属性显然是不合理的。SNMS将组件属性的分类权留给了组件的设计者。设计者将其认为组件中有意义的属性抽取出来,并给出相应的描述和访问方法。当节点应用程序编译时,对程序中所有属性统一编码并产生一个与之对应的解释文件。通过解释文件,SNMS实现了对查询的编码和译码,从而减小了查询过程中的开销。SNMS事件日志系统借鉴了TOSSIM[2]中调试输出的思想。与对组件中属性的编码方式类似,SNMS事件日志系统在编译时将程序中日志输出的字符串统一编码并产生一个解释文件。同样,通过解释文件SNMS实现了日志的编码和译码,并减小了日志的开销。
SNMS提供对节点的控制、属性查询还有事件日志三种基本服务。通过管理机制与管理策略的分离,SNMS实现了最大化的开放系统。另外,SNMS通过编/译码来表示属性和事件方式,有效地解决了传感器节点存储和传输带宽上的限制。
2.3基于特定准则的主动监测系统
加州大学洛杉矶分校的Ramanathan等人[10]从系统调试的角度出发研究了如何更加有效地对WSN进行监测,并设计了面向WSN的调试系统sympathy[10]。Ramanathan等人认为WSN中监测存在三个问题:a)由于网络中节点的存储、通信和能量高度受限,无法传输和存储足够的信息以监测网络状况;b)分布嵌入以及无线系统给监测带来了更大的困难;c)网络中节点数量众多,监测时会产生大量信息,信息的泛滥与不足一样使得无法有效地对网络进行监测。基于此,Ramanathan等人提出了主动监测方法。主动监测就是按照事先定义好的有限准则和事件来对网络进行监测,而不是被动地记录网络中的所有事件。
Sympathy就是基于上面三点原因提出了对WSN进行主动监测。参照传统网络结合WSN特点,sympathy提出了WSN的监测准则(表1)与需要进行监测的事件(表2)。
Sympathy使表面上相互无关的事件相关联,并为这些事件提供上下文,以便找出错误的原因。通过使用sympathy可找到重要的准则、事件和一般的相关性,从而快速查明错误。与基于统计的网络信息收集相比,sympathy收集更具体的内容。在文献[10]中作者利用sympathy对tiny diffusion[14]进行了监测,并根据监测资料找出tiny diffusion中高丢包率的原因。
2.4分析比较
Zhao从数据聚合的角度研究了如何对WSN进行准确而高效的监测。其优点是:通过数据聚合分布式的处理可以减少数据中不必要的冗余信息,从而降低了数据收集过程中的网络开销;digest方式的聚合也从统计的角度对网络状况进行了描述。大部分时间的网络监测并不需要了解网络中每个节点的当前