基于电池供电的传感器网络通常运行在火山地带、战区等人无法接近的恶劣甚至危险的远程环境之中,网络节点的电源更换或再充电等工作通常无法进行。广泛分布于被测环境的传感器节点既要负责收集敏感数据,又要完成数据传输的路由等功能;而且,攻击者还可能会利用侵占节点向网络中注入大量的虚假数据包,致使节点在传输这些数据包时耗尽能量而失去效用。因此,网络节点电源的无法替换性使能量消耗问题相对于传感器网络的其他关键技术而言尤为重要;在不影响性能的前提下,设计有效的能量消耗控制策略成为传感器网络软硬件设计中的核心问题。
1 传感器网络节点组成及其能量分析
典型的传感器网络体系结构通常由分布的传感器节点、接收发送器、互联网和用户界面等构成。其中,传感器节点作为网络中的独立工作实体,其基本的功能子系统包括供电子系统、传感子系统、计算子系统和通信子系统等,如图1所示。
1.1 供电子系统
供电子系统由电池和ACDC转换器等模块构成,其主要任务是为其他各个子系统供给能源。
电池作为节点最主要的能量来源,其性能与容量至关重要。虽然增加电池容量可以延长供电子系统的能量供给时间,但采用有效的再充电技术或是太阳能等再生性能源则更利于保证供电子系统的能量来源,为其他子系统实现持续性的能量供应。一种新的基于i?Bean无线技术和“能量获得”技术、靠感应振荡能量转换器工作的i?Bean无线发射机[3],在没有电池供电的情况下,能由在50~100 mg力作用下的28~30 Hz振荡产生1.2~3.6 mV的电压,并允许在30 m距离上以115 kbps速率发送数据,为克服远程无线传感器网络面临的电池工作时间短等问题提供了一种有效的解决途径。
1.2 传感子系统
传感子系统由一组传感器和ADC控制器等构成,主要任务是负责采样/收集被测控对象的敏感信息,并转换成相应的数字信息。
理想情况下,传感子系统自动检测周期性和非周期性两类事件时[4],其能量消耗总量可简单概括为单次采样消耗的能量与采样次数的乘积。因此,要控制该子系统的能量消耗必须从以下两个方面进行:一是控制单次数据采样所消耗的能量,二是控制采样频率。前者可通过采用低功耗器件,从元器件本身有效控制单次数据采样的能量消耗。对于后者而言,由于传感器网络众多分布节点中往往是成组节点去监测相同的对象或敏感数据,有选择性地减少单个节点的采样频率并不会对被测数据有效性和完整性造成破坏,只要依据应用需求合理设置节点采样任务的激活原则,就能在保证数据准确性的前提下,较好地控制该子系统的能量消耗。
图1传感器网络节点结构框图
1.3 计算子系统
计算子系统包括微处理器/微控制器、存储器和I/O接口电路等硬件;负责控制传感器、执行通信协议和处理传感数据等软件算法;是节点的控制和计算核心。
作为节点的功能控制中心和数据计算中心,计算子系统功能复杂,与其他各个子系统联系紧密,因此,计算子系统的功能强弱、性能高低、在不同工作状态(活动、空闲和休眠等)的持续时长以及不同状态间的相互切换等,都会严重影响整个节点的能量消耗。低功耗器件、适时休眠和空闲时的降频技术,都是硬件上减少计算子系统能量消耗的常用技术,节点间的功能轮换则使从网络的整体来实现网络节点的能量消耗相对均衡。
自组织的簇生成、传输数据的加密/解密以及通信链路的建立和维护等,都是通过执行相应的指令序列来完成的,算法越复杂,指令条数就越多,消耗的能量也就越大。然而,算法是有效性、可靠性和复杂性的矛盾统一体,有效、可靠的算法往往具有较高的复杂性;简单算法的有效性、可靠性则可能不适应于应用需求。应用环境的多样性和不确定性,使得软件算法的能量消耗远比硬件的能量消耗控制困难,既要满足应用环境的需求,还要尽可能降低软件算法的复杂性。
另外,资源受限的传感器网络节点还易于遭受物理损坏攻击,使得非对称密钥管理协议等其他计算机网络中普遍采用的控制机制和数据处理算法并不适合于传感器网络。依据应用环境的需求,传感器网络对各控制和数据处理算法往往会有不同层次的要求。因此,每种控制或数据处理算法都是传感器网络中的非常具有挑战性的研究领域,需要根据节点能源的发展水平和技术特点,大幅度改造现有的成熟算法,或重新设计新的处理算法,甚至于在必要的时候;还可通过适当降低网络或节点的性能来控制节点能量消耗,以有效延长网络的生命周期。
1.4 通信子系统
由无线收发部件构成的通信子系统负责节点的通信任务。无线收发部件采用的调制模式、数据率、发射功率和操作周期等都是影响通信子系统能量消耗的关键因素。另外,由于通信元器件本身的物理特性等原因,通信子系统即使处于空闲期,也有着与接收期几乎相近的能量消耗。因此,在没有通信任务时,应尽可能地使通信子系统进入休眠期,而不是让其处于空闲期。
短距离无线通信和减少网络通信流量是通信子系统能量消耗控制的主要手段。传感器网络中普遍采用的级跳通信就是通过缩短通信距离,降低发射功率的方法实现能量节省的;数据融合则是通过减少网络流量达到降低能量消耗的目的。
数据冗余是保证即使个别节点或部分通信链路失效时,基站仍能获取完整数据的有效手段;然而,直接传输原始数据则会严重增加网络通信量,造成大量无为的能源消耗。簇首数据融合是消除冗余数据,减少网络通信量的有效手段之一。传统的簇首数据融合方式中,簇首节点接收簇内各节点传来的数据,然后通过内容检查并消除冗余后将结果数据上传基站。此种方式仅是降低了数据路由过程中的能源消耗,对簇内数据传输的节点能源消耗问题没有影响。
如图2所示,基于安全模板的数据融合机制,是通过少量数据传输替代大量数据传输的方法来更进一步地降低簇内的网络通信量[5].其中,传感器节点并不直接传输采集数据,而是用从簇首节点接收到的安全模板生成采集数据的组合代码后再上传;簇首节点接收到传感器节点上传的代码数据,检查冗余后有选择地向部分传感器节点申请传输实际数据,以有效降低簇内的网络通信量。最后,簇首节点从选定的传感器节点接收到无冗余的采集数据并直接上传基站。
图2基于安全模板的数据融合
基于安全模板的数据融合机制是对传统数据融合机制的有益补充,使整个网络的能源消耗更加合理,安全模板还可减化数据加密算法,更进一步地降低能源消耗。不过,模板种子的更换频率太慢会严重影响到网络安全,太快又可能造成不必要的模板数据传输,频繁唤醒传感器节点进行模板数据处理,导致无为的能源消耗。因此,此方法的有效性取决于网络数据冗余的量,和冗余数据传输与模板数据传输/处理的能源消耗比例。
2 能量攻击防范
传感器网络节点无人值守、资源有限的固有特性,使其遭受的攻击范围和形式更加多样化。与常规的资源消耗攻击有所不同,能源攻击即是针对节点能源的有限性,不以消耗节点的计算和存储资源为目的,而是着重消耗节点的能量。攻击者利用侵入节点,向网络注入大量的虚假数据,致使节点,尤其是路由节点,在大量的数据通信中耗尽能量而失效,从而导致整个网络瘫痪。由此而言,入侵者的首要目的是消耗路由节点的能量,其注入的虚假数据的传送距离越远,影响的节点数就越多。由于入侵者可能获得侵占节点的完全控制权,标准的验证机制对这类网络内部攻击的行为是没有作用的。
文献[6]提出的检出虚假数据机制,是在网络中设置汇流节点,并由汇流节点来认证传感器节点的身份和整合数据报,基站与汇流节点进行有效的分析和交互验证后检出虚假的数据报。该机制的重点是由基站检出入侵者注入的虚假数据以防止决策错误,而由于其不能减少虚假数据报的传送距离,故不能被用于能量攻击的防范措施。
为尽早检出和丢弃由被攻击节点注入的虚假数据包,以达到安全需要和降低由此产生的能源消耗,文献[7]将交互验证的思想进一步扩展,在簇首节点到基站的数据传送链路上的各个节点间建立关联关系,如图3所示,从而所有节点以一种交错的逐跳方式验证其要传递的数据包。只有t+1(t是设定的安全上限,取簇内的节点数)个节点全部通过认证,数据包才能被传递到基站,因此,只要被攻击的节点数小于等于t,基站或没有被攻击的节点就能检测出并丢弃由入侵者注入的虚假数据包。
图3节点关联示意图(t=3)
3 结语
传感器网络能量消耗控制策略应着重从器件本身的功耗特殊性、休眠进入原则、缩短通信距离和减少网络流量这几个方面进行量化和设计。然而到目前为止,传感器网络的能量有效性还没有被模型化和量化,也不具有被普遍接受的标准,需要更进一步地深入研究。
涉及传感器网络软件、硬件各个层面的能量消耗问题至关网络生命周期。从网络构成及其运行过程而言,节点各个子系统的能量消耗又相互影响,此消彼长,针对单一子系统的能量消耗控制策略并不能从根本上解决问题。因此必须结合网络的应用环境,从器件选择、数据处理算法的有效性和复杂性、数据通信量和网络运行机制等方面兼顾各个子系统的功能特点和性能要求,整体上评估能量消耗问题,必要时甚至适当降低性能标准,以设计相应的消耗控制策略,有效延长网络生命周期。