基于ICMP和SNMP的网络设备监测技术
2014-02-09曹文斌陈国顺
曹文斌,陈国顺,牛 刚,赵 洋
(1.军械工程学院军械技术研究所电子室,河北石家庄050000;2.63892部队,河南洛阳471000)
0 引 言
目前,民网中关于网络设备监测技术主要有两种:基于ICMP协议和基于SNMP协议。由于构成指挥控制系统网络的设备具有类型多,分布地域广,所处的网络层次跨度大,通信能力(包括数据处理的实时性、可靠性等)要求高[1,2]等特点,不仅给系统维修保障工作带来了较大的困难,而且对传统的在线监测技术提出了挑战。基于ICMP[3-6]协议的监测技术比较成熟,具有通用性强,可靠性高,实现简单等优点,但是该方法需要频繁的轮询网络设备,势必会给被监测设备所在的网络注入大量的测试流量,占用大量宝贵的网络资源,容易造成网络拥塞,严重时会造成网络的瘫痪,同时该方法的实时性较差。对于指挥控制系统这一特定的应用背景来说,这些缺点都是致命性的。基于SNMP协议的监测方法是目前比较智能化的方法,具有较高的实时性,且不会占用过多的网络资源,但是该方法要求被监测的网络设备必须支持SNMP协议,所以通用性不强,而且当网管软件死机或通信链路出现问题时,告警信息无法由被管对象发送至管理端。该方法局限于对网络设备的监测,由于故障关联性的存在,会导致系统定位不准确。
为了提高指挥控制系统运行的可靠性和对指挥控制系统设备监测的覆盖范围,屏蔽不同设备的差异性,提高故障监测的实时性和故障定位的准确率,本文在总结常用方法的基础上,将传统方法进行改进,提出了一种适合指挥控制系统的网络设备综合监测方法。
1 综合监测方法原理
本文结合指挥控制系统设备的特点,将两种方法相融合,提出了一种改进的主动轮询与事件触发相结合的综合监测方法,提出了一种通过事件触发系统扫描的故障监测模型,实现不同方法之间的优势互补。
1.1 综合监测方法原理
综合监测方法的原理是在被监测设备上开启并设置代理。在网络管理站(NMS),运行在线监测进程,一方面通过SNMP协议轮询关键的网络节点设备(NND),采集网络设备性能参数包括CPU利用率和剩余内存等,若超过阈值,则告警;另一方面时刻监听162号端口,接收并代理发送的告警信息。在收到告警信息后,对轮询触发条件进行判断。若满足条件,则触发对全系统基于ICMP协议的扫描,判断NND的状态,根据每个节点的状态,在拓扑图上以不同颜色区别显示。
1.2 系统流程
综合监测方法流程如图1所示。首先,NMS进行拓扑扫描,探测网络拓扑结构,获取网络或中节点设备的数据,主要包括设备类型、端口及IP地址和不同设备的连接关系等;然后,设计两个进程,一个用于接收SNMP Trap消息,设计有Trap接收器,处理和分析收到的Trap消息,另一个进程用于对网络设备进行周期性的扫描,主要监测网络设备的CPU利用率和内存使用情况,判断监测得到的数据结果是否超出了预先设定的阈值。若两个进程任何一个满足告警条件,则进行告警,如果连续三次获取数据失败,则触发告警;其次,系统根据预设的轮询触发条件,判断告警事件是否满足轮询触发条件。若满足,则进行基于ICMP的全系统轮询,判断告警故障发生的位置,并在拓扑图上以不同的颜色进行显示;若不满足则存储告警信息。
2 关键技术分析
2.1 自适应轮询周期调整算法
对网络设备监测的目的是发现异常状态,所以理想的轮询算法是在超出设备参数阈值时增加轮询频率,提高监测灵敏度;在未超出阈值部分减小轮询频率。基于该思想,我们提出了改进的轮询周期调整算法。
经过实践观察,网络设备的工作状态存在一定的规律性,在一段很小的时间内,其性能参数的变化可以用一线性函数进行模拟[10,11]。所以本文提出改进的基于OLS轮询周期调整算法。该算法通过历史采集数据的线性拟合,根据数据变化的趋势和差值动态调整下一轮询周期值。
定义1 在t时刻,网络设备性能参数的采集点用d(t)表示,第i个采样值表示为d(ti),其中i=1,2,3……。
定义3 定义数据序列D={fd(ti-m),fd(ti-m+1)……fd(ti-1)},表示m个历史数据采样值,用于基于最小二乘的线性预测。
设估计的模型为
算法流程如图2所示。实现步骤如下:
(1)设置初始值,初始轮询周期为T,轮询周期为t=T,最小轮询周期为tmin,告警阈值为U,预测序列长度为m,经过m个初始周期后,获得数据序列D;
(2)利用最小二乘法,求得预测模型,求得下一轮询点的预测值f(ti);
(4)判断t≤tmin是否成立,若成立则令t=tmin;否则t=t;
(5)经过t时刻后取得被监测设备实际参数值fd(ti),判断fd(ti)<U是否成立,若成立,则令
图1 综合监测方法原理
图2 算法流程
(7)更新数据序列D,跳至步骤2。
2.2 触发条件的设置
一方面当有告警产生时,网络肯定出现问题,但产生多个告警不一定会有多个故障;另一方面当存在网络节点设备CPU利用率过高的告警时,不宜立刻触发轮询。基于以上考虑,本文采设置了一定的轮询触发条件,来屏蔽这些问题。我们在收到告警消息后,不是立刻触发轮询,而是等待一定的时间t,如果在t内没有继续收到告警,经过t后触发轮询;如果在t内收到其他告警消息,重新开始计时,直到累计无告警消息时间达到t后开始轮询。为了防止连续告警次数过多,系统中设置了重新计时次数n,当n累积达到3次后,立刻开始轮询。在轮询过程中屏蔽所有告警消息,轮询结束后,重启告警。如图3和图4所示。
3 算法性能分析与仿真验证
算法调整策略如式(2)所示,当超过阈值时,1-fd(ti)>0,所以该部分调整后的轮询周期始终是减小的。此处我们为了兼顾网络设备的实际处理能力,采用了负逻辑的调整方式,随着fd(ti)由阈值逐渐靠近1(即100%)时,1-fd(ti)的值逐渐减小,部分的值减小,调整后的轮询周期值的该变量会降低,轮询频率的增加量会降低。同时为了防止调整后周期值太小,我们设置了最小轮询周期tmin,确保调整后周期具有实际应用意义
图3 轮询触发流程
图4 轮询的触发时间
表1 算法性能比
本文对改进的算法进行了仿真验证,仿真结果如图5所示,图5中曲线为一段时间内某型设备的CPU利用率,图5(a)为以固定周期30s的数据采集点,图5(b)为改进前算法采集的数据点(初始周期为30s),图5(c)为改进后算法采集的数据点(阈值设置为85%)。算法性能比较如表1所示,从分析可以看出,改进的算法以牺牲7.6%流量的代价使轮询灵敏度提高了33.4%。从图5中可以看出,图5(a)中有26个数据采集点,图5(b)中有16个数据采集点,其中超出阈值时采集点的个数为4个,图5(c)中有19个数据采集点,超出阈值时有5个数据采集点。改进后的算法能显著降低轮询频率的同时,在超出阈值的情况下,采集点的密度增加较明显,增加了系统的监测灵敏度,同时能够为ICMP系统扫描提供较为准确的始发点。
图5 改进算法前后的监测方法仿真对比
4 结束语
在指挥控制系统这一特定的应用背景下,针对目前网络设备监测面临的问题,我们提出了基ICMP和SNMP协议的综合监测方法。该方法继承了SNMP协议智能化和ICMP协议通用性、可靠性的优点。通过构造一种事件触发与轮询相结合的模型,可以有效地克服传统方法的缺点,提高准确度和监测的可靠性,增加实时性并减少对系统资源的占用,对于指挥控制系统网络及设备的维修保障具有重要意义。
[1]QUAN Houde,WU Guoqing,LI Zhaorui,et al.The test technologies of command and communication system[M].Shijiazhuang:Ordnance Engineering College,2009(in Chinese).[全厚德,吴国庆,李召瑞,等.指挥控制系统测试技术[M].石家庄:军械工程学院,2009.]
[2]ZHANG Qunxing,BAI Daijun.The design of network devices detector of ordnance equipment[J].Journal of Sichuan Ordnance,2009,30(8):20-22(in Chinese).[张群兴,柏代军.军械电子装备网络设备检测仪设计[J].四川兵工学报,2009,30(8):20-22.]
[3]WANG Nuan,PAN Weiwei,LI Weizhou.The fault detection of network devices based on SNMP[J].China Water Transport,2009,9(1):113-114(in Chinese).[王暖,潘伟伟,李维洲.基于SNMP的网络设备故障实时检测[J].中国水运,2009,9(1):113-114.]
[4]PANG Zhenyuan.Research and implementation of the network node status monitoring system[D].Xi'an:Changan University,
2012(in Chinese).[庞振源.网络节点状态监测系统的研究与实现[D].西安:长安大学,2012.]
[5]LI Yongzhong,DUAN Xu.The test and maintance of computer network[M].Xi'an:Xi'an Electronic and Science University Press,2011(in Chinese).[李永忠,段旭.计算机网络测试与维护[M].西安:西安电子科技大学出版社,2011.]
[6]DU Shujie.ICMP protocol based on Ping host detection[J].Application of Computer System,2009(12):212-214(in Chinese).[杜树杰.基于ICMP协议的Ping主机探测[J].计算机系统应用,2009(12):212-214.]
[7]WU Mengjun.Proficient SNMP[M].Posts &Telecom Press,2010(in Chinese).[武孟军.精通SNMP[M].人民邮电出版社,2010.]
[8]WU Mengjun.Development of SNMP network management software based on Visual c++[M].Beijing:Posts &Telecom Press,2009(in Chinese).[武孟军.Visual C++开发基于SNMP的网络管理软件[M].北京:人民邮电出版社,2009.]
[9]SU Limin,YANG Yansong,CHEN Xiaodan.Design and implement of an online monitoring scheme in communication network[J].Journal of Transportation System Engineering and Information Tech-nology,2006,6(5):50-55(in Chinese).[苏利敏,杨延嵩,陈晓丹.指挥控制系统通信网络在线监测方案的设计与实现[J].交通运输系统工程与信息,2006,6(5):50-55.]
[10]LIU Qiang,YANG Yuexiang,TANG Chuan.Network fault monitoring algorithm based on dynamic polling scheme[J].Computer Engineering and Design,2009,30(9):2164-2166(in Chinese).[刘强,杨岳湘,唐川.基于动态轮询策略的网络故障监视算法[J].计算机工程与设计,2009,30(9):2164-2166.]
[11]YANG Zhihui,WANG Yong,SU Rui.Intelligent polling strategy for nerwork management system[J].Computer Engineering,2009,36(9):106-108(in Chinese).[杨指挥,王勇,苏瑞.用于网络管理系统的智能轮询策略[J].计算机工程,2009,36(9):106-108.]