基于SNM的网络实时监控技术研究

时间:2022-04-07 09:19:06

基于SNM的网络实时监控技术研究

【摘要】随着因特网的快速发展,仅凭人力很难做到对网络的高效管理,一个复杂的网络系统需要高效自动的网络管理机制。通过SNMP协议,设计了一种有效方法进行网络性能的实时测量,可以用来监测网络设备CPU利用率、可用内存和网络带宽信息,并利用Visual C++集成开发环境和SNMP++开发包对该方法的有效性进行了实验分析。实验结果证明该方法能够以较低的网络开销实现网络实时监控。

【关键词】简单网络管理协议;网络监控;实时监控

1.引言

近年来,随着网络应用和规模的不断增加,网络管理工作越来越繁重。由于缺乏必要的网络监控手段,有时甚至无法及时发现网络故障的发生。而网络管理的目标是最大限度的保证网络运行的稳定性,提高网络设备的利用率、网络性能、服务质量和安全性。因此,先进的网络管理手段对于保持良好的网络运行状态显得尤为重要。目前多数网络设备都支持SNMP(Simple Network Management Protocol,简单网络管理协议),所以可以通过SNMP协议,对网络设备及参数进行实时测量,及时了解网络设备的性能及带宽使用情况,以便实时了解网络当前的运行状态。

2.SNMP

SNMP的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB,改进后的协议就是著名的SNMP。基于TCP/IP的SNMP网络管理框架是工业上的现行标准,由3个主要部分组成,分别是管理信息结构SMI(Structure of Management Information)、管理信息库MIB和管理协议SNMP。SMI定义了SNMP框架所用信息的组织和标识,为MIB定义管理对象及使用管理对象提供模板;MIB定义了可以通过SNMP进行访问的管理对象的集合;SNMP协议是应用层协议,定义了网络管理者如何对进程的MIB对象进行读写操作。SNMP中的MIB是一种树状数据库,MIB管理的对象,就是树的端节点,每个节点都有唯一位置和唯一名字。IETF规定管理信息库对象识别符(OID,Object Identifier)唯一指定,其命名规则就是父节点的名字作为子节点名字的前缀。

根据OSI网络协议参考模型,SNMP属于应用层协议,在运输层使用UDP协议进行封装。由于UDP只提供无连接的服务,因此SNMP不需要在和管理器之间保持联接。SNMP实体发送消息后不需等待应答,仍然可以继续发送其他消息。SNMP并不要求消息传输的可靠性,消息可能被下层的传输服务丢失,因此可靠性的实现应由SNMP发送实体根据消息的重要性自行决定。

3.SNMP++开发包

3.1 SNMP++开发包简介

SNMP++是一套C++类的集合,为网络管理应用的开发者提供了SNMP服务。SNMP++并非是现有的SNMP引擎的扩充或者封装,它通过提供强大灵活的功能,降低管理和执行的复杂性,把面向对象的优点带到了网络编程中。SNMP++开发包源代码公开,免费提供,具有如下特点:

(1)内存管理方面。在创建或销毁一个对象时,SNMP++类负责该对象使用资源的申请和释放。SNMP++的对象可以静态或动态创建,程序员不用担心由于使用SNMP++对象而引起资源或内存泄漏问题。

(2)可移植性强。除了SNMP类的实现随操作系统不同有所区别,SNMP++中所有的类都是由可移植性极强的C++代码编写的,因此使用SNMP++软件包编写的网络管理程序具有很好的可移植性。

(3)提供超时和重传机制。SNMP++在Target类中提供了超时和重传服务,程序员只需要设置参数就可以实现超时和重传功能,而不必去费力编写超时和重传功能的代码。对于不同的Target,可以很容易地实现不同的超时和重传机制。

(4)阻塞模式与非阻塞模式的网络请求。SNMP++提供了两种模式的网络请求:阻塞与非阻塞模式。阻塞模式是一个请求发出后,程序等候回应包的到来,直到超时。非阻塞模式则是在请求发出后,控制返回继续执行,等回应包到来后,再去做处理。非阻塞模式的实现要复杂一些,但较为灵活。

(5)支持Trap的发送和接收。使用SNMP++,可以很方便地实现Trap的发送与接收功能,并且可以调整Trap发送与接收时所使用的UDP端口。

3.2 SNMP++软件包的相关类

SNMP++使用C++语言编写,充分利用了面向对象的编程技术,SNMP编程涉及的所有数据结构,全部被封装在相应的类中。所有的底层操作细节,对使用者来说是完全透明的,使用者只需要设置好相应的参数,调用对象的方法,就可以完成各种SNMP操作。

SNMP++包括了大约70个类,大致可分为:数据类型类,主要封装了SMI中定义的ASN.1,数据类型以及SNMP中定义的数据类型;变量绑定类,封装了SNMP消息中的变量绑定数据结构;PDU类,封装了SNMP消息中的PDU部分;Target类,封装了构成一个SNMP消息所需要的全部信息;SNMP类,主要用来完成建立网络连接、发送消息、接收Trap等操作;另外还有用于支持上述类功能的支持类以及SNMPv3消息加密、用户认证类等。

4.一种实时网络运行状态的轮询及改进方法

4.1 实时网络运行状态的轮询方法

在SNMP中,有很多MIB对象提供了大量的网络信息。可以通过SNMP轮询(polling)的方式,从主机或网络设备中来定期获取MIB信息并进行统计分析,从而获知网络的实时性能状态。然而受网络规模、数量、管理终端的处理速度、网络阻塞状况等因素的影响,轮询的频率较难确定。为简化问题,假定网络管理工作站(NMS)一次只处理一个(即只有当一个处理完,其他才可以工作)。

上一篇:信息技术驱动下的图书馆发展 下一篇:高校保卫部门工作网站建设