基于SNMP的网络流量系统的设计

时间:2022-09-21 08:02:01

基于SNMP的网络流量系统的设计

摘要:随着计算机网络在人类生活中的地位越来越重要,网络安全被放在了网络研究的一个重要的位置。文章简要介绍了SNMP协议,提出了实现测量的所需要的系统模型,并对其中的关键技术进行了阐述。

关键词:SNMP;数据流量

计算机网络在现代人类生活中的地位越来越重要。随着网络管理的发展,网络流量的监测是整个网络管理的一个重要的组成部分。有效的网络流量监控数据不仅能够让网络管理人员及时获得网络运行的最直接信息,从而让网络管理员最清楚的了解网络的运行状态;同时,完成对流量的监控,也是完善网络管理的一个必要的方法。

因此,加强网络流量监控技术的研究意义就显得格外重要。在分析了现在网络流量监测技术的基础上,采用基于SNMP的流量监测技术实现对网络流量的监测。

一、简单网络管理协议SNMP

简单网络管理协议(simple network management protocol)――SNMP,是目前TCP/IP网络中应用最为广泛的网络管理协议。SNMP的基本功能包括监视网络性能、检测分析网络差错和配置网络设备等。在网络正常工作时,SNMP可实现统计、配置和测试等功能。当网络出故障时,可实现各种差错检测和恢复功能。

SNMP是基于管理工作站/模式的。运行管理程序的计算机被称为管理工作站(Network Manage Station,NMS),是运行在网络设备上的进程。

SNMP规定了5种协议数据单元PDU(也就是SNMP报文),用来在管理进程和之间的交换。

get-request操作:从进程处提取一个或多个参数值。

get-next-request操作:从进程处提取紧跟当前参数值的下一个参数值。

set-request操作:设置进程的一个或多个参数值。

get-response操作:返回的一个或多个参数值。这个操作是由进程发出的,它是前面三种操作的响应操作。

Trap操作:进程主动发出的报文,通知管理进程有某些事情发生。

前面的3种操作是由管理进程向进程发出的,后面的2个操作是进程发给管理进程的,为了简化起见,前面3个操作今后叫做get、get-next和set操作。图1描述了SNMP的这5种报文操作。

二、利用SNMP测量数据流量

目前广泛使用的广域网通信线路大致可以分为两类――具有交换功能的通信线路和不具有交换功能的点对点通信线路。前者主要有X.25、帧中继、线路以及ATM,后者有DDN、数字电路(SDH)等。其中X.25属于比较早期的技术,目前使用的比较少,ATM也不广泛。本文主要针对DDN线路和帧中继线路。

在MIB-II中,接口组中有三个对象和测量一个接口的数据流量有关:ifInOctets、ifOutOctets和ifSpeed。它们分别指一个物理接口的流入字节数、流出字节数和最大速率。前两个计数器时累加计数器,4字节非负整数。接口速率就是带宽。

对于ifInOctets,描述的是本接口接收的总字节数,包括成帧字符。

对于ifOutOctets,描述的是本接口发送的总字节数,包括成帧字符。

对于ifSpeed,描述的是接口当前带宽的估计值,单位是位/秒。对于带宽固定或不能准确估值带宽的接口,这个值就是名义上的带宽。

同样,对于帧中继的每条PVC,在RFC-1315MIB中定义有两个对象:frCircuitSentOctets和frCircuitReceivedOctets。它们分别表示PVC发送、接收的字节数。如果没有帧中继的压缩功能,那么这个值是准确的。

对象frCircuitSentOctets和frCircuitReceivedOctets是和帧中继PVC收、发数据统计数据有关的MIB对象定义。它们被定义在frCircuitTable表中,对象frCircuitSentOctets描述的是该虚电路自创建以来发送的字节数;frCircuitReceivedOctets是指该虚电路自创建以来接收的字节数。

三、计算公式计算流量和带宽利用率

根据设计的需要,在测量过程中,要统计的值有两个:实时的数据流量数值,即当前的传输数据量大小;线路带宽利用率,即每个时段线路带宽使用情况。

对于这两个参数,只能以一段时间得平均值来表示。

用Input表示线路输入实时数据流量,Input_Utilization表示输入线路带宽利用率,ifInOctets表示两次取回的输入字节计数器值的差,假设取数时间间隔为60s,线路带宽为64kbit/s,那么,60s的平均实时数据流量就是:

Input=(ifInOctets×8)/60

输入线路带宽利用率:

Input_Utilization=(Input/(64×1024))×100

对输出数据也是一样。

四、系统的体系结构和模块设计

系统最初设计的体系结构如图2。

但要说明的是,本着简单易于实现的原则,最终系统对数据库服务器简化处理――不提供数据库,只是使用了一个简单的文本文件。同样,也要求一次测量的是一条线路的情况。这个简易的“数据库服务器”只提供实时的图像显示和简单的分析,只能让用户观察流量曲线是否异常、流量的最大值、最小值和平均流量数据有多大以及某一个时刻的数据流量有多大,并考虑利用率的问题,进而分析网络是否遇到瓶颈,或者是否需要考虑对于网络进行升级。

根据实际需要,为了能更好的实现网络流量的监测,主要设计出如下五个模块,分别是:扫描设备模块、采集流量数据模块、数据显示模块、数据分析模块(如图3)。

其中,扫描设备的模块主要是对指定的设备进行扫描。取回设备中所有物理接口、帧中继PVC的相关信息并显示,以供选择,并对选中的接口(或PVC)进行数据流量测量。

采集数据流量模块核心功能是从网络设备中读回流量数据并进行计算。要求出两次数据之间的差值,并由字节换算成位,再除以时间间隔,就能得到这段时间内的平均流量。

流量数据显示模块将计算得到的数据实时用图表显示出来,动态显示数据流量曲线会使得程序界面更专业,使用一个图表,用两根曲线分别表示一条线路上得的输入、输出数据。

数据分析模块对取回的数据要进行分析。比如流量是否正常,是否有异常侵入等。通过让用户观察流量曲线是否异常、流量的最大值、最小值和平均流量数据有多大以及某一个时刻的数据流量有多大,并考虑利用率的问题,进而分析网络是否遇到瓶颈,或者是否需要考虑对于网络进行升级。

五、结束语

本文通过对SNMP的研究,本着简单、易于操作的原则,结合现有条件进行设计,得到了一个能够进行简单的广域网数据流量测试的系统。基于简单的原则,本文不使用后台数据库。这也为降低了对主机系统的资源的占用。

参考文献:

1、丁君.浅析SNMP协议[J].电信交换,2006(3).

2、武孟军,任相臣.Visual C++开发基于SNMP的网络管理软件[M].人民邮电出版社,2007.

3、厉铁帅,陈鸣.基于SNMP的IP网络流监测系统的设计与实现[J].军事通讯技术,2006(2).

(作者单位:湖北工业大学计算机学院)

上一篇:浅谈轻钢结构中屋面系统的若干问题 下一篇:公办中小学创建节约型学校的思考