2021-4-9 | 互联网管理论文
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定义如下:}