2024年5月5日发(作者:)

第21卷第1期 

计算机技术与发展 

Vo1.21 No.1 

2011年1月 

COMPU FER TECHN0L0GY AND DEVEIJ0PMENT 

Jan. 2O1l 

基于SN M P计算机网络流量监控系统研究 

张彤,吴世荣 

(华北电力大学数理学院,河北保定071003) 

摘要:针对一般网络流量监控商业软件普遍存在兼容性差,难于满足特定局域网络监控要求,网管人员很难有效监控网 

络的数据流走向、各个网络结点间的数据流状况及其他网络异常情况,并且软件价格昂贵。根据局域网线路数据流量测 

量和分析的实际需求,设计了基于SNMP的计算机网络流量监控系统通用方案,介绍了在VC++6.0平台下利用SNMP++ 

技术和管理对象库MIB开发网络流量监控系统的过程,较好地解决了流量数据采样中遇到的技术问题。通过仿真测试, 

该系统所生成的流量图与MRTG生成的流量图基本一致,而且该系统实现简单、工作可靠稳定,可以作为开发局域网络监 

控系统软件的范例。 

关键词:网络管理;流量监控;数据分析 

中图分类号:TP393.02 文献标识码:A 文章编号:1673—629X(2011)01—0088—04 

Research on Computer Network Trafifc Monitoring System 

Based on SNMP 

ZHANG Tong.WU Shi-rong 

(School of Mathematics and Physics,North China Electric Power University, 

Baoding 071 003,China) 

Abstract:The compatibility of general commercial software of network traffic monitoring is poor,hard tO meet a speciifc local area net— 

work monitoring requirements.Network managers are very diifcult tO monitor effectively the network data flow direction.the state of da— 

at lfow among every network node and other network abnorma1.In addiiton,the software is expensive.In this paper,according tO hte ac— 

tual requierment of hte measurement and analysis of hte local area network data rtaffic,design a universal program of network traf ̄c mo— 

nitoring system which is based on SNMP.The paper also detailed describes the development process of hte network trafifc monitoring 

system by using SNMP++technology and Management Object Library MIB in the VC++6.0 platform.It solves well the technical prob- 

lems in data sampling.By simulation testing,the rtafifc chart generated by this system is essentially sanle wiht the traffic chart generated 

by MRTG,the implementing process of this system is simple.Furthermore,system run is reliable and stable.This system can be used 

as an example of hte software development of the local area network monitoring system. 

Key words:network management;traffic monitoring;data analysis 

O 引 言 

威胁,在第一时问进行分析,通过流量分析来确定攻 

进行流量监控和流量分析是整个网络管理的重要 

击,然后发出预警,快速采取措施 。近年来,许多学 

环节,网络流量监测提供了一种在实际环境中探索网 

者对于网络流量监控以及网络安全管理等方面进行了 

络特性的手段。网络流量监测是一个从网络设备上采 

较深人的研究,并取得许多有意义的结果。文献[2] 

集数据、解码数据、分析数据的过程,它从网络中采集 

引进了一种异常故障容错多阶段交互网络,用于并行 

些具体的指标性数据,反馈给监测者,这些数据为网 处理大量的信息流,提高信息处理效率;文献[3]研究 

络的运行和维护提供了重要信息,对于网络的资源分 

了基于着色Petri网的信息流安全模型,用于防止信息 

布、容量规划、网络性能分析、异常监测与隔离、安全管 

泄露;文献[4]给出了一种目录访问协议,为用户登录 

理等都是十分重要的。它能在最短的时间内发现安全 或检索数据进行认证。 

开发计算机网络流量监控软件,比较传统的方法 

收稿日期:2010—05—12:修回Et期:2010—08—10 

基金项目:国家自然科学基金资助项目(50971059) 

是利用MRTG这款监控网络流量负载软件进行二次 

作者简介:张彤(1959一),女,河北保定人,高级工程师,研究方向 

开发,它是一个支持多个路由器的网络流量图形显示 

为计算机网络管理与信息处理技术;吴i垃荣,浙江台州广播电说总 

软件 ’。 。但利用MRTG软件开发有特殊要求的局域 

台工程师。 

网络数据流量监控系统有一定的局限性 文中采用了 

第1期 张彤等:基于SNMP计算机网络流量监控系统研究 89・ 

在Windows XP平台上利用VC++6.0语言进行开发, 

无需对现有网络结构进行改动即可运行,系统本身不 

加重网络的负荷,可适用于任何拓扑结构的网络,具 

有很好的移植性和灵活性。另外,在VC++6.0平台 

下,将s ++技术和管理对象库MIB很好地结合开 

发了网络流量监控系统,实现了设备扫描、数据采样、 

数据实时显示、流量图形显示和数据分析等模块功能。 

1 SNMP工作原理 

1.1 SNMP网络管理协议 

简单网络管理协议 (Simple Network Manage— 

merit Protocol,简称SNMP)已经成为事实上的标准网 

络管理协议。SNMP是由一系列协议和规范组成的, 

它提供了一种从网络设备中收集网络管理信息的方 

法。 

SNMP的体系结构分为SNMP管理者(SNMP Man— 

ager)和SNMP代理者(SNMP Agent),每一个支持 

SNMP的网络设备中都包含一个代理,此代理随时记 

录网络没备的各种情况,网络管理程序通过SNMP通 

信协议查询或修改代理所记录的信息。 

在使用TCP/IP协议的互联网环境中,管理协议标 

准是SNMP,它定义了传送管理信息的协议消息格式 

及管理站和设备代理相互之间进行消息传送的规程。 

1.2 S P工作原理 

SNMP网络管理系统主要由管理者、代理和被管 

理者三个基本组件构成 。管理者通常是网络中的一 

台安装网络管理软件的工作站或服务器;代理是驻留 

在被管理设备上的一个模块,通过SNMP协议与管理 

者进行通信。管理者按一定时间间隔向各个设备的代 

理发送查询请求管理信息,并根据管理信息来跟踪各 

个设备的状态,判断是否有异常事件发生。当管理对 

象即设备出现发生紧急情况时,设备代理可以使用 

Trap信息的报文主动向管理者发送陷阱消息,汇报出 

现的异常事件。这些轮询消息和陷阱消息的发送和接 

受规程及其格式定义都是由SNMP协议定义的;被管 

理设备将其各种管理对象的信息都存放在管理信息库 

(Management Information Base) “ 中。 

2 基于SNMP++的Windows环境下SNMP 

编程技术 

在文中,SNMP管理技术的实现主要采用SNMP++ 

技术¨ ・”]。该技术把WinSNMP API函数等核心部分 

面向对象封装成相关的c++类。开发关键步骤主要有 

两点:①构造并组建正确的用户数据报协议(UDP)和 

SNMP报文;②对发送或接收的SNMP报文进行BER 

编码解码。 

将BER编码处理后的SNMP报文提交给用户数 

据报协议,并指定工作站或服务器端(SNMP代理)IP 

地址和端口号即可;当接收到返回的应答信息包后,再 

对SNMP报文进行解码处理、分析。 

3计算机网络流量监控系统的总体设计与 

实现 

3.1总体设计方案 

测量网络流量首先要获取网络设备接口流量的原 

始数据;然后按一定的时间间隔连续地取出设备中接 

口的相关SNMP变量的值;最后将获取的结果以图形 

方式显示在屏幕上,并将数据以文本文件形式保存或 

存到数据库中,以便进一步分析、处理。 

3.2系统开发环境 

系统开发环境:采用Visual c++6.0,基于SNMP+ 

+包。 

3.3程序实现 

3.3.1模块设计 

系统包括设备扫描模块、数据采样模块、数据实时 

显示模块和数据分析模块。 

3.3.2设备扫描模块 

首先要对给定的设备进行系统扫描,然后将设备 

中所有物理接口的相关信息取回并显示。这里要用到 

OID,如表1所示。 

表1设备扫描模块使用的OID 

OID 描述 

1.3.6.1.2.1.2.2.1.1 接口索引 

1.3.6.1.2.1.2.2.1.2 接口名称 

1.3.6.1.2.1.2.2.1.8 接口工作状态 

1.3.6.1.2.1.2.2.1.5 接口最大速率 

1.3.6.1.2.1.4.20.1.2 接口IP地址 

1.3.6.1.2.1.31.1.1.1.18 备注 

3.3.3流量数据采样模块 

流量数据采样模块是从网络设备接口中读取流量 

数据并进行计算。取回的数据是设备接口在某一时刻 

发送或接收的累计信息流总字节数,因此,需要计算出 

两次数据之间的差值,并由字节数换算成位,再除以时 

间间隔(以秒为单位),就可得到这段时间内的平均流 

量。 

在编写程序时需要注意下面四个问题: 

(1)选择适合的数据类型。 

MIB规定计数器是Counter类型,且为四字节无符 

号整数,其取值范围是0~4 294 967 295。而C++中的 

9O・ 计算机技术与发展 第2l卷 

int类型为带符号位的四字 整数,因此不能用它来存 

储读取数据,需要使用unsigned int类型。lnt类型的 

长度由实际设备的操作系统和编译系统而定。 

(2)确定采样时间间隔。 

从理论上讲采样时间间隔越小,取到的数据越多, 

得到结果也越准确。但实际上并不是取样时间间隔越 

小越好,频繁的读取数据操作会影响网络设备的性能, 

同时还会产生更多的网络流量。因此,本文采样时间 

间隔定为5分钟。 

(3)除数的选择。 

网络系统繁忙时产生的延时会影响数据的准确 

性,因此在读取流量数据的同时,应注意读取网络设备 

的系统时间,并将两次获得的流量数据差值除以时间 

差值。 

(4)计数器归零问题。 

监测系统计数器达到最大值时,计数器会从零重 

新累加计数,那么流量数据计算结果一定是一个负数, 

应该避免这种情况出现。在网络带宽比较低的情况 

下,这种问题较少遇到。但在高带宽的情况下,就要考 

虑在程序中加以处理。处理方法是将每次读取的数据 

与上次的数据相比较,若小于上次的数据,说明出现了 

计数器归零的问题,此时应该将得到的结果再加上 

4 294 967 295。 

表2是带宽不同的情况下,计数器从0开始计数, 

达到最大值归零所需的大概时间。 

表2带宽与计数器归零的时间关系 

带宽 计数器归零时间(分) 

1Mbps 54J6.1 

10Mbps 54.61 

100 Mbps 5.46 

155 Mbps 3.52 

1Gbps O.55 

3.3.4流量数据实时显示漠块 

流量数据实时显示模块功能是将取回的信息流经 

计算后得到的数据实时地用图表显示出来,动态地显 

示流量数据曲线。其中两根曲线分别表示一条线路上 

的输入、输出数据。 

根据系统的需要,该模块应有如下的特点: 

①有一个对应的窗口,以方便我们在上面画曲线 

图; 

②能接收输入的数据,并将这些数据以图形方式 

按比例显示出来; 

③显示的图形能够左右移动,以显示更多的数据; 

④在显示新输人数据的时候,以前显示的数据也 

不消失,要同时显示; 

⑤带有坐标系,横坐标表示时间,纵坐标表示数 

据; 

⑥横坐标的标注显示能够调整,以避免过多的显 

示使标注相互叠加,模糊不清; 

⑦纵坐标刻度值能够根据显示数据的最大值自动 

调整到一个合适的值,而不应该固定不变。 

根据本程序的特点,一个时间点对应显示的数据 

有流出、流人的数据,还要保存此时的流出利用率、流 

人利用率等数据。这些数据被存放到一个结构类型的 

变量中,所有被显示的数据存放在以该种结构类型数 

据为元素的一个数组中。 

采样数据时间间隔为5分钟,为能显示一天时问 

采集的数据,横轴显示数据区为12 ̄24=288个显示位 

置。数组大小也为288个元素,以保存这些数据。当 

数据多于288个时,以前的数据被依次丢弃,只显示、 

保存最新的288个数据。 

新添加的数据显示在曲线的最右边,以前显示的 

数据依次向左移动一个显示位置。为使曲线看起来更 

流畅,横坐标一个显示位置定为屏幕坐标的一个像素。 

横轴每隔36个显示位置显示一下时间标记。 

图形中有两条曲线,第一条曲线采用根据数组中 

的数据,计算出该数据在坐标系中的伫置,然后将相邻 

的点连接起来,形成一条曲线;另外一条曲线采用从数 

据点向横轴画直线的方式,因为一个显示位置在屏幕 

上是一个像素坐标,因此看起来的效果是被填充覆盖 

区域的曲线。 

3.3.5数据分析模块 

网络流量测量结束后,还要对取回的数据进行分 

析。主要是通过观察流量曲线有无异常,流量数据的 

最大、最小值,平均流量数据有多大以及某一时刻的数 

据流量有多大等几方面进行分析,并通过与流量历史 

数据对比来判断当前网络是否安全、可靠、正常,为提 

供一个具有全网动态实时监测与自校正能力的拓扑的 

优化设计与管理方案奠定基础。 

数据分析状态时,控件中的数据从一个数据文件 

中读入。当数据个数超过显示数据数组大小时,增加 

数组中的元素个数以保存更多的数据。分析数据时, 

随鼠标的移动,在显示区画十字线,同时显示鼠标所在 

位置数据的最大值、最小值等数据。同时还可以向左 

右移动。 

4 系统调试与仿真结果分析 

4.1程序主界面 

程序主界面如图l所示,程序在初始化时随机生 

成一个日流量图和周流量图。 

第1期 张彤等:基于SNMP计算机网络流量 控系统研究 ・91・ 

监控。 

为简单起见,所编制的程序在同一时间 

只能对一台设备的一个物理端口进行监控, 

如果要对核心交换机以及下联的接人交换机 

的每个端口进行监控,即同时监控整个网络 

的多个端口,还需要对程序在多线程监控方 

向做些修改。本论文将理论和实践进行了很 

好的结合。 

参考文献: 

[1]杨晓宇.浅谈企业网络管理的重要性[J].油气 

田地面工程,2005,24(11):57-57. 

[2] Sharma S,Bansal P K,Kahlon K S.On a class of 

Multitistage Interconnection Network in Parallel 

4.2本系统与MRTG生成的流量图对比 

Processing[J].International Journal of Computer 

用本程序生成的流量图,如图2所示。 

Science and Network Security,2008(5):287— 

MRTG生成的流量图,如图3所示。 

291. 

[3] Wu Ruoyu,Li Weiguo,Huang He.Colored Petri 

Nets Based Modeling of Information Flow Security 

[C]//Proceedings of Second International work— 

shop on Knowledge Discovery and Data Mining. 

Moscow,Russia:[s.n.],2009:681-684. 

[4]Salim M,Akhtar M S,Qadeer M A.Data Retrieval 

and Securiyt using Lightweight Directory Access 

Protocol[C]//Proceedings of Second International 

workshop on Knowledge Di ̄overy and Data Min— 

ing.Moscow,Russia:[s.n.],2009:685—688. 

[5]赵・英,黄九梅,董小国,等.网络流量监控系统 

的设计与实现[J].计算机应用,2004,24(s1): 

图2本程序生成的流量图 

32-33. 

. 

 赵永胜.MRTG在网络管理中的应用[J].铁路通 

一 

U科 。 K 

[6]

1560

0 k 

I 

信信号工程技术,2005(12):43-45. 

J 

1040.0 k 

[7] IETF.Simple Network Management Protocol(S— 

2 520.0 k ^ i 6 

lf i 、垒 l j 

NMP)[S/OL].[2007—06—01].http:// ̄-uw. 

. 

醯 

 :

faqs.org/rfes/rfe1157.htm1. 

。.。k 

iO0 8 6 4 2 ( ,22 20 18 15“12 1 3 8 6 4 2 

[8] IETF.Structure of Management Information for Vet— 

图3 MRTG生成的流量图 

sion 2(Jf the Simple Network Management Protocol 

MRTG生成的流量图最新的数据显示在左边,本 

(SNMPv2)[S/OL].[2007一’06—01].http:// 

wvc ̄q.faqs.org/rfes/rfe1902.htm1. 

程序的最新数据显示在右边。如果将图3水平翻转, 

[9] 田增国,刘晶晶,张召贤.组网技术与网络管理[M].北 

再与图2比较,容易看出:两个程序的监测结果图形是 

京:清华大学出版社,2009. 

十分相似的。然而,因为两个程序启动时间不同,使得 

[1O]李霞.简单网络管理协议及其实现方法的比较[J].淮阴 

它们采样的时间段不同,因此所生成流量图并不完全 

工学院学报,2005,14(1):54—55. 

致。显然,线路上的流量越大、越不均匀,不同时间 

[11]高阳,王坚强.计算机网络原理与实用技术fM].北京: 

段采样得到的结果相差越大。 

清华大学出版社,2009. 

[12]吴吴,杨凯,胡术,等.SNMP跨平台移植和交换机端 

口IP探测[J].计算机技术与发展,2008,18(11):18—21. 

5 , 束语 

[13]蔡琳.在VC++6.0平台下基于SNMP网络管理软件的 

该软件在华为交换机和路由器测试通过,从理论 

开发[J].信息与电子工程,2005,3(3):224-227. 

上讲能够对任何支持SNMP协议的网络设备进行流量