1 引 言随着计算机技术和通信技术的不断发展,计算机网络的发展也呈爆炸性的趋势,网络上传输的数据量也越来越大,为此,迫切需要一种对网络性能进行分析、监控和诊断的工具,包括近来按照流量计费的方式越来越普遍,统计网络流量已经成为人们关注的一个问题。 2 流量统计方法综述流量统计主要包括两方面:数据采集和数据分析,其中以数据采集最为重要。现在网络流量统计方法很多,主要有以下几种: (1)使用代理服务器,由于代理服务器具有记录流量的日志功能⋯ ,因此可以通过读取代理服务器的日志文件来完成网络流量数据的采集。这种方法的优点在于实施起来比较方便,直接使用代理服务器的功能即可。然而在实际使用当中,代理服务器会出现丢包现象,也就是说代理服务器采集到的可能不是全部的流量信息,这就不能准确地反映网络的流量信息。 (2)直接使用路由器 2,通过路由器内部功能来

实现流量数据的采集和分析。路由器是局域网和因特网的连接通道,是流量数据出入的咽喉,局域网中所有到因特网的网络流量都必须经过路由器,反之也一样。因此,路由器充当了数据采集的角色,现在一般的路由器中都具有流量记载的功能,如Show ip ac— coating等命令,可以直接获得流量数据。当网络中的数据包通过路由器时,其流量信息都会在路由器的缓存( )中保留下来,它的记录格式由四个字段组成,分别为源 地址目标IP地址、包和字节数。流量监控系统所要完成的操作就是把这些流量信息从路由器中提取出来,对其进行分析,获得整个网络的流量情况。这种方法实施起来也比较方便,但是实际上我们是不采用的,原因在于:路由器的主要功能在于为 包选择路由,所以其计算功能不强,一般来讲,其CPU的主频还不及现在的中高档PC,一旦开启了流量记载功能,其路由选择功能将大打折扣。所以在实际的应用中大多不采用这种方法。从路由器取得上述数据又有以下几种方式:一是通过SNMP(Simple Network Management Protoco1),利用它的Get—Request和Get—NextReq 遍历所要监控的代理实体的MIB树。比如,统计交换机的端口进出流量,可以读取该交换机的S 代理的Mm —OID,如InOctets,OutOctets等。但这种方法由于其格式( .1)复杂,所以实现起来比较麻烦。然而,由于SNMP应用的广泛性,使得利用该协议开发的流量监控软件可以用于不同厂家的路由器。

采用SNMP实现流量数据采集的最广泛的应用就是 TG(Multi Router Traffie Graph),它是一种网络流量负荷的监测工具 3。MRTG 是由一个 Perl script和一个C程序组成的,其中Perl script使用SNMP来读取路由器上的Couter变量以获得购买流量;而C程序记录流量数据并产生一些生动的图表来形象地表示所检测的网络的流量,这些图表被嵌入到Web页面中去,用户可以通过Web Browser来查看。MRTG不仅可以看到每天的详细流量记录,还可以产生一周、一月和一年的流量的可视化图表,这是因为MRTG 可以保留从路由器上得到的所有数据的日志,但其所能保留的最大数据是过去两年的所有数据。使用SNMP进行专线采集是目前国内大多数ISP 所采用的,如上海热线。而对于专线采集来讲,采用协议的优越性在于保护了路由器的操作口令,但 MB r1采集速度比较慢,sNMP、 和S 8的采集速度比较快,如果要使用S /【P、,2和SNMPv3,就要更新相关设备,增加了系统实施的复杂性。第二个方法比较简单,就是使用Telnet程序,登陆到路由器上,获取其流量数据源。也就是说,通过编码模仿Telnet(借用它的23号端口),把Telnet 在终端屏幕上的输出(流量数据)重定向到一个临时文件中,通过对这个临时文件的分析,就得到流量清单。这种方法类似于读取代理服务器的日志文件来进行分析,不同之处在于其流量数据源是通过采用 Telnet从路由器得到的。采用Telnet来采集流量数据的优点在于速度快,实现起来比较简单,然而Tel— net的通用性不好,有很大的局限性。另外,还可以使用一些现有的流量统计仪器。如比较著名的协议分析仪,它能够提供网络流量的实时监控。还有流量分析仪,它包括硬件和软件两个方面,硬件用来测量所在链路的购买真实流量量,而软件根据硬件提供的流量信息自动生成详细的图表,从而实现对网络流量的实时检测。此外还有CISCO 的 NetFlow,Netflow 提供高性能的网络层交换,它能使你捕捉、显示和分析一系列从网络流量搜集来的统计数据信息。这些信息包括基于每个用户的统计、基于每种协议的统计、基于每个端口的统计和基于每种设备的统计。