虚拟OID下的WSN网络管理方式

虚拟OID下的WSN网络管理方式

 

1概述   无线传感器网络(WirelessSensorNetwork,WSN)是以自组网形式构成的无线网络,网络节点具有稠密布置、随机撒播的特性,传感器节点协同地感知、采集、处理网络覆盖范围的信息,并提供给用户。无线传感器网络的工作方式与传统网络有很大差异:通信能量消耗大于数据处理能量消耗;传感器节点的能量有限;传感器各节点负担的任务量不同以致各节点能量消耗不平均;通常散布在无人值守的区域,一旦节点失效或能量耗尽也无法对它进行修复或充电[1]。因此,无线传感器网络的节能问题是研究的关键[2]。网络管理与网络本身息息相关,无线传感器网络与其他的无线网络相比,有不同的网络结构和需求。无线传感器网络是多跳的,每个节点都可以作为路由器使用,进行路径的存储。传感器网络的流量有相对静态的特性,从传感器节点到汇聚(Sink)节点的数据流远大于反方向的流量。另外,传感器网络的主要目标在于尽量降低系统功耗,延长网络的生命周期,它的节点通常运行在人无法接近的恶劣或者危险的远程环境中,更换电池是非常困难的(甚至是不可能的)。因此,有效地利用无线传感器网络的资源,保障其提供信息服务的质量,降低能量消耗、延长网络运行周期是无线传感器网络管理技术的重要目标。文献[3]从传统网络管理功能角度研究了无线传感器网络管理技术,并对网络管理的关键技术进行论述。文献[4]综述了无线传感器网络管理技术,并重点概述了现存的无线传感器网络管理系统和方法。文献[5]重点描述了无线传感器网络管理的协议框架,建立层次型管理体系。目前众多的研究者开展了无线传感器网络管理技术的研究,但这些研究中并没有针对无线传感器网络的节能需要研究网络管理技术。为此,本文通过虚拟对象标示符(VirtualObjectIdentifier,VOID)技术,研究无线传感器网管理协议,通过减少管理站与被管节点的通信,降低网络管理给无线传感器网络带来的能耗。   2管理信息库设计   管理信息库(ManagementInformationBase,MIB)是在端存放被管对象数据的一个数据库。MIB的结构见图1。在MIB中用OID标记被管理对象的参数,在管理协议中对它的使用是最频繁的,所以,可以通过减少OID的长度来减小通信量。为了减少MIB中OID的长度,该管理协议把MIB的OID分成对象监控OID表、原始OID和虚拟OID表3个部分。在WSN(29647)节点下的OID编号为1~127表示原始的OID,128编号表示对象监控OID表,129~255表示虚拟的OID表。为了减少管理站的查询请求,传感器中提供了间隔某个时间的本地轮询功能。本地轮询功能是在MIB中特定的表中定义的,通过修改相应表中的值就可方便地修改论询的值。轮询功能是在间隔时间到达时,判断相应的监测参数的值是否触发某个事件。与RMON相比,RMON是监视一个网段的功能,本地轮询功能是监视本的一些变量,在一定情况下向管理站发送报告。在传感器中,监测的参数能够触发的条件有2个,一个是大于某个值monHighVal,另一个是小于某个值monLowVal。如果监控表中的monLowVal(3)和monHighVal(4)的值都设置为0,则表示定时向管理站发送monOID(0)标明的数据值。通过轮询某OID变量,就可实现网络管理中OID的监控功能。虚拟OID变量是一种只定义其求值的方法而不在MIB中保存它的实时值的一种OID变量。它与传统的网络管理系统中的OID变量不同。虚拟OID在执行网络管理过程中定义;它的变量值并不是对应于被管对象中的某个实际参数值,而是通过已有的OID变量进行运算而得到的;它并不在MIB中保存它的实际值,只保存值的一种计算方式;对虚拟OID的运算,一般都是只能进行取值运算,而不能进行设置值运算。SNMP中的OID变量,它一般都是在的设计和实现过程定义的;它的变量值一般都是对应于被管理对象中的某个实际参数值;它的值会随着被管理对象中的实际参数值实时改变。另外,虚拟OID变量和传统的网络管理系统中的OID变量也有类似情况。首先它们都是为网络管理服务的;其次它们都是对网络状态的一种表示;最后它们都能通过网络管理协议进行访问。本文为实现虚拟OID功能,在SNMP协议中提供AddVirtualOID和RemoveVirtualOID操作原语来管理虚拟OID变量。在虚拟OID中的值是根据表达式valExpression所表示的含义来求解。为减少存储valExpression长度和增加求解虚拟OID速度,valExpression采用后缀表达式表示。   3虚拟OID操作原语设计   虚拟OID提供一种端的计算功能。虚拟OID的值把虚拟OID下的paramOID和paramValue中的参数,代入valExpression中求得。参数paramOIDsTable是中已经存在的OID变量,它可以是原始OID变量或者其他虚拟OID变量。参数paramValuesTable是计算虚拟OID值时用到的常量。valExpression是计算虚拟OID值的表达式,为减少表达式的长度和计算的速度,valExpression用后辍表达式表示计算方式。valExpression中的4位段格式如图2所示。valExpression可以为多个字节,valExpression被分成多个4位段,每个4位段表示一个操作数或一个运算符,每段开始的第1位为0表示运算符,为1表示操作数。运算符的第2位~第4位表示运算符的类型代码,0000表示valExpression结束,共有321种运算符,运算符代码见表1。valExpression中的操作数的第2位表示操作数类别标志位,为0表示后面剩下的2位为常量参数的序号,为1表示后面剩下的2位为OID参数的序号。后缀表达式中没有括号,只需从左向右扫描一遍表达式就可计算其值。它的计算流程如图3所示。   3.1虚拟OID原语协议数据单元设计   为了实现虚拟OID功能,提供2个对虚拟OID操作的原语,分别为AddVirtualOID和RemoveVirtualOID。AddVirtualOID是向无线传感器网络传感器中添加一个虚拟OID,RemoveVirtualOID是从传感器中删除一个虚拟OID,它们的具体定义如下:(1)AddVirtualOID操作原语。AddVirtualOID操作原语是用于向虚拟MIB表中添加虚拟的OID定义。AddVirtualOID原语的协议数据单元(PDU)定义如下:(2)RemoveVirtualOID操作原语。RemoveVirtualOID操作原语的功能正好和AddVirtualOID操作原语的功能相反,它是用于删除虚拟MIB表中的某个虚拟OID定义。在删除过程中,只用标识出要删除的虚拟OID即可。RemoveVirtualOID操作原语的PDU定义如下:}#p#分页标题#e#   3.2轮询原语PDU设计   在网络管理中通常会定时采集被管对象的值,然后对采到的数据进行处理的过程。然而,无线传感器通信的能耗远大于本地计算的能耗,因此,本文采用远程设定、本地轮询的方法,即通过管理站设定传感器轮询的变量,然后通过本地轮询设定的变量,在该变量的当前值超过阈值时,再把该变量的值传给管理站,通过这种方法既可实现对关键变量的实时监控,又可有效降低网络的能量消耗。本文设计的轮询操作原语分为AddPollOID和RemovePollOID,它们是管理站对传感器的操作命令。(1)AddPollOID操作原语AddPollOID操作原语实现对中的某个数据添加论询功能。当传感器收到管理站的AddPollOID命令时,就根据AddPollOID原语中的monOID和monIntervalTime的值来设置的OID监控表来监控相应的OID。AddPollOID原语的PDU定义如下:(2)RemovePollOID操作原语RemovePollOID操作原语实现对中的某个数据删除相应论询功能。RemovePollOID原语的PDU定义如下:   4仿真验证   仿真是用OMNet使用网格描述语言实现。首先创建一个名为WSNNMPSimulation的项目。在项目中添加了2个基本模块:Sink节点模块和Node节点模块。分别在Sink.ned和Node.ned中定义,并在与它们相应的Sink.h、Node.h和Sink.cc、Node.cc文件对Sink节点模块和Node节点模块进行变量和函数的声明和实现。创建基本模块后,定义相应的协议数据单元类。协议数据单元类PDU是所有其他协议数据单元的父类,它的8个子类分别对应8个PDU,与SNMP协议中对应的8个PDU类分别是GetRequestPDU、GetResponsePDU、SetRequestPDU、TrapPDU、AddVirtualOIDPDU、RemoveVirtualOIDPDU、AddPollOIDPDU、RemovePollOIDPDU。测量在对节点进行网络管理过程中该节点剩余能量的变化,并绘制剩余能量百分比(即剩余能量与初始能量的比值)和采集序号的曲线,如图4所示。图4节点的剩余能量对比图4中的2条曲线分别为采用了本地轮询功能和虚拟OID计算功能采集与没有采用它们采集所得到的结果。从以上变化趋势可知,节点的剩余能量随着网络运行时间的增加而减小,采用本地轮询功能和虚拟OID计算功能采集比不采用它们采集的节点能量下降慢。采用轮询和计算功能后,传感器节点在被网络管理过程中,只需本地轮询被设置的轮询变量,而不需要频繁地与管理站进行通信,以应答管理站的轮询请求,而只需在被轮询的变量的值超过阈值时,才将该变量的值返回给管理站,这样就能降低传感器节点的能量消耗。所以,本文设计的本地轮询功能和虚拟OID计算功能可以很好地降低网络管理对传感器节点的能量消耗。   5结束语   本文针对网络管理过程中节点能量消耗较大的问题,提出本地轮询和虚拟OID计算相结合的网络管理方法,并设计实现相对应的网络管理操作原语。仿真结果表明,本文提出方法和设计的原语适合无线传感器网络管理的应用。