前言:中文期刊网精心挑选了网络流量监控分析范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
网络流量监控分析范文1
关键词:计算机网络;流量;监控技术
现阶段的网络结构更加复杂,其异构性也越来越高,网络系统平台也来越多,这对网络要保持稳定的运行提出了更高的要求。网络流量的监控是网络管理中的一个重要组成部分,到目前为止,根据网络流量的不同采集方式出现了三种不同的网络流量监控技术。第一种是基于Netflow的流量监控技术,这种监控技术能够对高速转发IP数据流量进行测量和统计的同时对网络设备的数据交换具有一定的加速作用。第二种是基于网络流量全镜像的一种流量监控技术,这种监控技术是IDS主要的网络流量监控技术,其监控的原理是对镜像流量进行分析,对网络流量的分布状况进行探测,能够为网路的管理提供参考。第三种是基于SNMP的流量监控技术,其监控的实质是收集网络设备Agent中所提供的管理对象信息库中与流量信息相关的一些变量,这些流量信息包括了输入字节数、输入非广播包数等,其主要的不足之处在于这种监控技术的监控范围和对象十分有限。
目前最为有效的反映网络真实状态的一个指标就是网络流量,对网络流量进行检测具有以下几个方面的作用。①满足了复杂网络维护的需要,随着网络用户规模的不断扩大和网络结构的日益复杂,网络设备的数量逐渐增加使得网络的维护难度也随之增加,要维护网络稳定的运行状况,对网络流量进行检测是最重要的手段之一;②随着网络用户的增加和越来越广泛的网络覆盖范围,不同地区和不同网络用户对带宽需求各不相同,进行网络流量的检测能够对用户网络的使用行为进行分析,对网络的改善具有十分重要的意义;③为网络运营商进行网络的改造和扩大容量提供依据,网络用户数量和规模的不断扩大使得网络各个端口的流量需求也越来越大,从而极大的增加了网络设备的压力,通过流量监测能够对现有的中继容量进行分析,从而确定如何进行网络的改造与扩容;④由于不同网络用户的使用习惯,不同的网络带宽需求和不同的网络安全保障需求,通过流量的检测对用户的习惯和需求进行分析,从而使得运营商可以根据用户的需求发展针对性的业务。
2 网络流量的采集与测量
网络流量的采集主要有四种方式:①从一个端口到另一个端口的IP流量,这个IP流量中包含了大量的信息,主要的采集方法有NetFlow;②完整的用户业务数据流量,可以采用Net Detector进行采集;③网络节点端口的流量,这个流量中包含着个数、字节数、包的大小和分布状况等信息,可以采用MRTG 进行采集和监控;④业务层流量,可以采用Sniffer进行采集。对于网络流量的测量
对计算机网络的流量进行测量主要有主动测量和被动测量。主动测量主要是通过向被测流量网络中注入附加的“探测流量”,并采集其返回数据的一种测量方式。被动测量,就是在网络的某一点对网络的流量信息进行采集、记录与分析。被动测量的优势在于能够将附加的“探测流量”以及Heisenburg效应完全的消除,其不足之处在于对用户的隐私和网络安全具有一定的影响。
3 网络流量监控的设计与实现
3.1 系统设计
一般来讲,网络流量的监控必须要对路由器、交换器等各种网络主干设备接口的进出口原始流量进行采集和监控,为网络管理员和监控部门提供不同时间段的流量情况,要求网络流量的监控系统需要有数据采集子系统和Web管理子系统两个部分。首先对网络流量采集子系统进行分析和设计。该网络流量监控系统是建立在SNMP协议的基础之上的,因此,获取不同类型的变量值时通过网络设备中的SNMP响应报文来实现。在这个监控系统中,流量采集子系统拥有包括配置信息在内的各个网络物理层接口的信息,对各个接口的进出口流量统计方式如公式1和公式2所示。
公式1:入口实时网络流量=(ifInOctetsy-ifInOctetsx)÷(y-x)
公式2:出口实时网络流量=(ifOutOctetsy-ifOutOctetsx)÷(y-x)
其次对Web管理端子系统,在这个网络流量监控系统当中,只要连接成功被监控的网络设备,监控系统就能够通过SNMP协议的每个接口,并将这些接口添加到流量库当中,最后由网络管理员根据每个接口的实际情况进行链路带宽和报警阀值等进行重新配置,从而实现系统对网络流量的监控。
网络流量监控分析范文2
【关键词】网络流量监控;C#;SNMP协议;网络数据
0.引言
空管信息网络承担着包括OA系统、共享服务以及相关业务系统在内的重要网络业务,提供信息化的同时,给技术保障维护人员带来一定的保障压力。根据相关工作经验及实际实验数据,网络设备端口流量异常是导致故障发生的重要原因,因此,对于网络流量的监控显得更加重要。随着空管信息化要求的逐日提高,网络规模也日益变大,对于网络流量监控的工作也更加繁重。本文从空管网络流量监控的实际情况出发,提出一种基于C#的网络流量监控,能够实现对网络数据进行获取、流量记录与分析。系统在实际运行中效果良好,可以为相关网络监控设计提供一种可行的借鉴。
1.总体设计
SNMP即网络管理协议(Simple Network Management),在TCP/IP协议族中可以对网络进行管理,这种管理既可以是本地的也可以是远程的。而基于SNMP网络协议的本系统,可以实现对网络数据的获取与实时监控的功能,实现上具有通用、实时、多线程、维护性强及扩展性强的特点。实现在数据链路层和网络层上任意节点的数据获取。加之记录功能的辅助,系统能实现在应用层的数据回放,以满足空管安全事件调查以及系统维护对历史工作状况的评估。
SNMP协议中,一个网管基站可以实现对所有支持SNMP协议的网络设备的监控(随着网络技术的发展,目前绝大部分网络设备是可支持的),包括监视网络状态、修改网络配置、接收网络事件告警等等网络监控功能。在实现上主要包括远程文件访问、流量数据记录、流量监视以及系统的IP定位。其中流量监视是系统实现的核心,将在下一部分进行介绍。另外,系统还提供了日志文件记录实现对系统操作、监控数据以及告警信息的记录。
2.C#的实现
对于系统的C#实现,主要采用的C/S模式,因此在系统的实现上尽量简单、快捷、高效为主。因此自定义相关函数与类,在记录数据和日志方面采用文本文件记录。
2.1网络监控类与网络适配类的设计
为了提高系统的模块化程度及软件的封装性,系统在实现过程中定义了两个主要的类。分别是用于网络监控的NetWorkMonitorClass以及网络适配类NetWorkMatch,网络监控类主要实现系统的网络监控功能,而网络适配类则提供了一个安装在计算机上的网络适配器,该类可用于获取网络中的流量。两者功能及结构如下:
在实际工作中网络监控类NetWorkMonitorClass通过定义一个Timer计时器进行计时器时间执行,以每隔2S刷新适配器,并与此同时刷新上传下载速度。与此同时通过ArryList列表定义了所监控设备的适配器以及当前控制的适配器。在构造函数NetWorkMonitorClass()中则通过,定义两个ArrayList(),其中一个(adapterlist)来保存获取到的计算机的适配器列表,一个(monitoradapters)代表有效的运行的适配器列表。
NetAdapterShow ();
Timer = new System.Timers.Timer(2000);
Timer.Elapsed += new ElapsedEventHandler(timer_ElapsedClick);
其中,NetAdapterShow ()为列举出安装在该计算机上面的适配器,具体实现可以通过C#的foreach()语句进行编写如下:
PerformanceCounterCategoryPCCCategory=new PerformanceCounterCategory("Network Interface");
foreach (string InstanceName in PCCCategory.GetInstanceNames())
{
if (InstanceName == "MS TCP Loopback interface")
continue;
// 创建一个实例Net workAdapter类别,并创建性能计数器它
MyNetWorkMatchClassmyMNWMadapter=new MyNetWorkMatch
Class(InstanceName);myMNWMadapter.m_Performance_Down=new PerformanceCounter("Network Interface", "Bytes Received/sec", InstanceName);
myMNWMadapter.m_Performance_Up=newPerformanceCounter("Network Interface", "Bytes Sent/sec", InstanceName);
m_AdaptersList.Add(myMNWMadapter);
}
当然,在类中也定义了StartWorking以及StopWorking等控制函数对类的工作状态进行控制。另外timer事件也通过构造函数进行加入,如上所述。
网络适配类NetWorkMatch则主要计算网络的各种数据,如计算上传速度、下载速度、控制适配器等函数的封装,减少网络监控类的功能耦合度。
2.2具体实现
在窗体加载函数中,系统首先做自我初始化如下:首先定义上述设计的网络监控类,并实例化monitor = new NetWorkMonitorClass();与此同时通过类函数遍历获取所有计算机适配列表,m_MNWMadapters = monitor.Adapters; ,Adapters()为网络监控类封装好的函数。并将函数返回结果通过Items.AddRange()函数将其显示在listbox控件中,以实现友好的人机交互界面。其次,在timer定时器中对选中监控的适配器进行独立监控。至此,系统实现了独立监控与全面监控的所有设计。
3.结语
本文提出一种基于SNMP协议分析的网络监控系统,该系统应用于空管信息网络。在实现过程,主要采用C#进行开发,通过编写自我的网络监控类和网络适配类进行网络数据的流量监控,可以推广应用于信息网络维护工作较为繁重的行业,提供一种智能网络流量监控手段。
【参考文献】
[1]宫婧,孙知信,陈二运.一种基于流量行为分析的P2P流媒体识别方法[J].计算机技术与发展,2009(09).
[2]王珊,陈松,周明天.网络流量分析系统的设计与实现[J].计算机工程与应用,2009(10).
网络流量监控分析范文3
论文关键词:多媒体,网络,流量,分析
1 多媒体流量分析的基础
多媒体在应用层面对于用户的强大支持,映射到其数据层面,必然是不容忽视的大量不同数据格式。而在这样的环境之下,想要展开有效的网络流量分析,实现对于通信资源的优化利用,首先必须展开对于多媒体报文的有效分类。每一个报文都会在这个过程中被分类到对应的类型,而后进一步依据运营商制定的传输优先策略对其展开传输处理。
多媒体流分类问题可抽象成从多媒体报文映射到流类型的过程,多媒体报文流经流分类器,即展开对于其的辨别并且添加相关的类型标识,通常会将该标志写入报文头部字段中,便于后续识别和处理。在识别的过程中,可供识别多媒体流的方法主要有三种,即基于报文头部信息的分类方法、基于数据包载荷内容的分类方法以及基于流量统计模型的分类方法。其中基于报文头部信息的分类方法,即依据报头中的多元组信息展开工作,将其与预先定义的规则集进行比对匹配,并且确定出媒体流的对应分类进行标识。此种工作方式相对简单,因此发展也趋于成熟,效率较高,但是在识别过程中由于多媒体应用使用的端口通常并不固定,因此针对而言准确率比较有限。而基于数据包载荷内容的分类方法则面向报文载荷信息展开识别和工作,进一步又可以针对应用层协议展开解析或针对载荷内容展开特征解析。此种识别方式工作准确率基本有所保证,但是对于某些私有协议以及加密数据流,会因为无法有效提取特征信息而导致识别失败。最后,基于流量统计模型的分类方法主要是关注多媒体流量特征,通过流量来判断多媒体数据的传输行为模式,诸如数据包的大小以及包与包之间的间隔时间等方面特征。此种方式能够实现系统的自主学习,但是会存在一定的分类延时。
2 网络流量分析技术浅议
对多媒体进行标识之后,可以在网络环境中展开更为有效的网络流量分析。已经被标记的信息流在传输过程中能够表现出不同的对于资源的占用,以此作为依据展开更具有针对性的网络流量分析,对于整体网络数据传输资源和功能的优化都必然有着积极价值。
随着计算机技术的不断成熟,网络流量分析技术也呈现出不断发展的特征。当前的流量分析技术,主要是在传统的数据库技术基础之上,以一种开放的态度构建起支持自学习的网络流量分析系统,从而实现整个体系的智能化。就目前的状况看,常见的几种流量分析技术有以下几种。小学德育论文
1)SNMP技术。此种技术主要用于实现面向网络环境中多种类型设备展开监控和管理,并且对既有问题进行定位。该技术系统包括SNMP协议、管理信息结构以及管理信息库三个部分构成,其中SNMP协议用于实现在应用程序和设备时间交换信息,而管理信息结构用于指定一个设备维护的管理信息的规则集,最后管理信息库用于明确设备所维护的全部被管理对象的结构集合。
2)RMON技术。该项技术由IETF定义,本身是对于SNMP技术的一种深入。其对于标准功能以及网管站远程监控器之间的接口进行了重新定义,使得其能够实现更为顺畅的数据交换,从而有助于展开对于网络环境数据流量的更为有效监视。在RMON系统中,当探测器发现了一个非正常态的网络段之后,会主动与网络维护管理控制台接通联络,并将对应的网络信息进行发送,实现对于整体网络流量的监控和分析。
3)SFlow技术。此种技术以随机采样作为主要的研究方式,并且能够提供从第二层到第四层的相对完整的网络流量分析信息,这种分析甚至可以扩展到整个网络环境中,能够实现面向大数据流量的适应,尤其是在面向以流媒体作为主要流量资源占用的网络环境时,仍然能够保持稳定的表现。此种技术成本较低且不会因为引入其技术为网络环境带来新的冲突,同时数据信息量大,能够实现更为完善的网络分析。
4)NetFlow技术。此种技术主要用于实现网络层高性能交换,首先被用于对网络设备的数据交换进行加速。但是其核心是对于流缓存进行进一步的整理,因此在工作的过程中必然会能够得到很多依据汇聚方法而统计的数据,其中包括诸如源IP、目的IP以及源端口和目的端口以及相关传输协议与包数量等,这些信息和统计数据对于深入展开网络流量分析有着不容忽视的积极价值。
3 结论
在多媒体应用的网络环境中,深入可靠的网络流量分析系统,对于切实提升网络自身的数据传输能力,为多媒体用户提供更为稳定的数据传输服务有着积极价值。实际工作中唯有不断深入发现自身网络环境特征,才能有的放矢展开有效的流量分析,实现网络环境优化。
参考文献
网络流量监控分析范文4
关键词:网络安全,流量监控,数据备份,远程同步
1.引言
在互联网飞速发展的今天, 越来越多的公司关和企事业单位拥有了自己的网站。 网站不但是信息传播的工具, 也是非常好的商业运营方式。但由于互联网在安全方面的脆弱性,以及黑客对网站的攻击,使得网站的运行安全是我们设计网站时需要解决的问题。网站的安全不应仅依赖于防火墙和入侵检测, 也需要使用对网站的监控和恢复技术,力争使损失达到最小。而一些大型网站更是会在很多不同的地点建立分站点,一方面能提高用户的访问速度,分担负载,另一方面也是为了使得各分站的数据能够实现同步传输,防止因为各种原因造成的数据丢失所产生的损失。本文正是基于此目的,以12530网站系统为基本构架 ,Linux为操作系统 ,规划配置出一套能够对网站日常的运行进行监控与保护的相对安全的网络系统的方案。
2.网页监控和保护系统基本构架
如图1 所示 ,在本次12530网站建设中,我们将网站监控和保护系统基本构架设计成主要的三部分:(1)网络服务器。系统的主控台 , 拥有良好的人机界面 ,对静态网页和动态脚本进行校验。(2)备份服务器。对静态页面、动态脚本、静态网页和动态脚本的校验值及数据库数据进行备份。(3)Rsync-server服务器。将产生的数据与其他分站进行远程双向同步。
图1 网页监控和保护系统基本组成
3.实现对网络流量实时监控与异常报警
随着网络规模的不断扩大,容量不断增加,新的应用不断出现,网络环境变得更加复杂、多变和异构,对网络流量进行监控与分析已成为对网络行为分析的主要可行途径。通过对整个网络进行流量监测,获得网络设备及骨干网每时每刻的流量数据,并对其进行分析和研究,才能发现整个网络运行的规律,不断提高网络安全性能。目前在世界各地有许多公司和学术团体 , 根据不同的计算机系统与需要开发出不同的网络流量监控工具如Cacti, Sniffer Pro, ROM II, NetDetector,Netxray等相关软件。表1 列出了五种流量采集工具的主要性能比较。
网络流量监控分析范文5
随着网络应用的不断发展,以因特网为代表的IP网络规模不断扩大,各种各样的网络设备、流量规模不同的业务应用的创造性出现使得网络拓扑结构、网络流量及网络管理日益纷繁复杂,网络通信、网络规划、网络流量设计、故障诊断和性能优化是保障网络稳定可靠、低延时、低丢包、高命中和降低人工操作劳动强度的基础。
1网络流量分析的内容
网络通信流量分析的目的是了解网络工况,及早发现可能存在的数据流量问题和应对措施。需明确的是,计算机网络通信的核心作用是传输数据,而网络流量的分析就是采集和分析计算机网络中传输的海量数据流,网络数据流的分析从计算机及传输相关的物理硬件底层的数据流到应用层的数据流分析,也称为网络通信协议分析。网络管理人员若想了解和管控好一个网络,其最重要的就是对网络的了解,所谓知己知彼,包括并不限于了解网络的拓扑结构、配置参数和设备类型等,但要保证网络通信的服务质量,这样的认知是还是远远不够。对网络通信流量的分析能使网管更深入地了解计算机网络,包括计算机网络运行规律、网络运行模式和用户的上网行为。
2网络异常的行为
计算机网络异常的发现是建立在充分认知和网络阀值为基础的,一旦网络流量突破了网管人员预设的网络流量阀值,就需要通过发现、询因、流控等技术手段,以防止网络流量的无限暴增,进而能为网络通信保持一定的高性能运行提供重要的保障。通常的网络异常情况如下:(1)网络运行异常:网络中流量的异常,包括资源利用率、数据包数的异常。(2)网络应用异常:进程连接数量、用户应用响应、应用程序流量的异常,都能通过长期的主动分析来及时预警和发现。(3)用户的异常上网行为:异常的上网行为也有鲜明的流量特征,如被蠕虫病毒感染、不知情的情况下安装了后门程序等,长期的数据流量分析能及时发现上网用户的这些异常网络行为,如何及时发现网络用户的异常上网行为是解决其影响网络正常高效运行的关键。
二建立机器学习的计算机网络通信流量分析
模型计算机网络流量的突变性、弱耦合性和影响的非线性等特性,对传统计算机网络通信理论提出了新的挑战,导致对网络流量和协议概率分布的准确建模变得异常困难。
1模型拟解决的问题
针对计算机网络通信流量分析的特点,提出了一个基于机器学习的计算机网络通信的流量分析概念模型。提出该模型的真正目的在于:最大限度地利用获得的流量数据和网管人员的监测信息,自动完成流量分析的各个任务,自适应各种上层应用及对网络的性能优化。同时,模型通过计算机主动学习,指导主动式监测的进行。从通信流量分析的具体任务而言,如果已经较好地获得了数据流量的概率分布特性,有两个基本的问题:(1)正常情况,计算机监控程序能否利用已得到的概率统计特性来预测可能发生未知的数据流量情况;(2)数据流量的特性突变之时,计算机监控程序能否快速、有效地发现这种流量突变。这分别对应于网络数据流量预测和异常网络数据流量检测,可以通过具有自学习能力的计算机程序自动实现上述预测和检测。
2机器学习的概念
模型所谓机器学习的本质是计算机程序的性能随着经验的累积能自我完善。恰当选择计算机的机器学习算法,可最大限度地使用上述经验和监测信息,从而完成流量分析各任务的自动化处理,并根据应用环境对网络的性能进行优化。为此,机器算法是处理上述问题的理想选择。首先给出基于机器学习的网络流量分析模型,接着从机器学习的角度,阐明基于改进Boosting的机器学习算法。机器学习的本质是将人类的经验积累和长期的监测到的统计数据通过计算机程序以自动提高其性能,根据计算机通信网络分析的一般流程,提出机器学习模型。此类模型利用网络监测算法测量获得的流量数据,然后利用机器学习的方法,自动完成流量分析的各项作业任务,支持各种上层应用对网络的性能优化。当网络管理人的监督信息可以获得的时候,该数据信息可以作为机器学习算法的储备和先验知识,结合人类的智慧以进一步提高算法的性能,如此往复,循环提升,不断提高系统的数据流量分智能。
3改进Boosting算法
改进Boosting算法是一类使得学习算法的性能得以提高的学习策略。基于Boosting的学习算法的思路:找到许多简单粗略的判断准则要比找到一条非常准确的准则容易得多。通过不断调用这种算法,每次用训练样本的不同子集对它进行训练,循环多次后,这些准则就会结合成一条基本学习规则。
三计算机网络通信流量分析的意义
网络流量监控分析范文6
关键词:流量;面向应用;WinPcap
中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)03-593-04
The Design and Implementation for Application Intranet flow Monitoring System
MA Xiang
(Pianzhuan Group Information Center, Xianyang 712000, China)
Abstract: To deal with the Intranet flow monitor prpblem,after comparing several popular flow data collection methods and analysising netwrok's business characters, this paper resents a novel framework data collection model. Based on this modle, using the WinPcap's library, we give a detial introduction of the system's design and Implementation.
Key words: flow; application-oriented; winpcap
随着Internet的迅速普及和广泛使用,Intranet的部署和使用也不断发展。Intranet即内部网络,也叫内联网,是将Internet的成熟技术如TCP/IP、SMTP、HTML、HTTP、WWW等应用于企业或政府部门的内部专用网络。以Intranet为基础,一方面,可以将基于Internet成熟技术的服务如Web服务、Mail服务、FTP服务等网络应用迁移到企业内部;另一方面,企业根据自己的业务特点,针对企业内部人员或客户,开展新的网络应用业务,如企业内部数据库系统、办公自动化系统及MIS应用等。
随着Intranet中多种网络应用业务的开展,对网络的承载能力是一个考验。如何清楚地了解不同网络应用业务网络的使用情况;如何为每种网络应用业务分配合理的网络带宽,逐渐成为众多企业开展网络应用业务后关心的一个问题。
1 常用的流量数据采集方法
实现对Intranet流量的监测,就要选择流量数据采集点,并且采集的流量数据完整且不重复。下面对常用的流量数据采集方法[1]进行分析。
1.1 基于SNMP的网络流量统计分析模式
根据SNMP[2]的工作原理,需要流量统计服务器和路由器相配合来完成网络流量的采集和统计,如图1所示。流量统计服务器和路由器分别扮演SNMP的Manager和Agent角色,服务器定期向路由器发送SNMPWALK(SNMP请求),当路由器接收到请求后将所要采集的数据发送给流量统计服务器。这一“请求-响应-处理-发送”的过程每隔一段指定的时间执行一次。
实现基于SNMP模式的网络流量数据采集对所使用的路由器也有一定的要求。首先,路由器必须是企业网中心节点的路由器,这样采集的网络流量数据才会完整;其次,路由器除了拥有一般路由器的路由选择和数据包转发功能外,还须提供过往包的统计功能。这种模式原理简单,容易实现。但工作效率较低,对网络带宽有影响且会加重路由器的负担。另外,流量采集的时间间隔比较难把握,容易造成数据的丢失。
1.2 基于安插网络探针技术的流量数据捕获模式
探针(PROBE)技术是依靠传统的以太网(Ethernet)总线结构的通信原理,在靠近出口路由器的网段上安插网络探针,以监听其他的通信,并记录通过该网段的每一次通信,进而整理成流量统计数据。
这种模式最大的优点就是不需要路由器的参与,对路由器的影响很小;且占用很少的带宽,不需要额外的网络开销。但要实现这种基于PROBE技术的流量采集统计,必须有很大的缓存器(Cache),以便记录下所有的网络通信。这给流量统计主机的性能和硬件配置提出了很高的要求。
网络探针截获的是网络上的数据流,通过对这些数据进行分析,可以统计出对应IP地址的流量数据或者是基于某种协议的网络应用业务的流量数据。
1.3 基于网络数据流(NetFlow)技术的IP数据流捕获模式
它是采用流作为网络数据传输的单位。网络设备(路由器和带三层交换的交换机)为其提供一个专有的缓存器。在数据转发期间,对于属于同一个数据流的数据包,交换机只处理其第一个包,并根据第一个包的情况在netflow cache中建立一个记录,属于同一个流的数据包将根据netflow cache中的记录直接作二层转发而不再作三层处理。这样,便可以大大加快网络设备的数据处理速度。
在NetFlow[3]方法中,流量监控统计服务器使用专门的软件,每时每刻处于监听状态。路由器和带三层交换的交换机待某个流传输完毕后,把netflow cache中对该流的统计信息一次性地发送给流量监控统计服务器的监听进程,并由流量统计分析程序进行整理,生成流量统计记录,NetFlow技术的流量采集模型如图2所示。
基于NetFlow的流量采集模型可以有效地节省网络带宽,减少网络设备的额外负担。但对网络设备的要求较高,并且不适合用于某个精确时段的网络流量统计。
基于NetFlow技术的网络流量监控,可以根据源和目的IP地址及其子网掩码,甚至TCP/UDP端口号进行流量数据统计,并且可以列出指定时间内的IP包数、字节数、IP包大小分布情况等流量信息。
2 面向应用的流量数据采集模型
通过对常用的网络流量数据采集方法的分析和比较,结合Intranet中网络应用业务的特点,提出了面向应用的流量数据采集模型,如图3所示。
本模型需要网络流量监控服务器(运行管理进程)和安装在网络应用业务服务器上的流量统计程序(即进程)相配合来完成流量数据采集工作。具体实现中,管理进程根据WinPcap的过滤表达式语法对进程需要进行流量统计数据采集的网络应用业务信息和流量数据采集的周期进行配置。进程根据配置的参数信息,进行周期性的流量数据的采集工作,并随时将采集的流量数据以一定的格式发送给管理进程。管理进程一直运行接收流量数据的监听线程,将接收到的流量数据存入数据库中,用于实时流量数据显示和历史流量数据分析。
面向应用的流量数据采集模型具有以下特点:
1)数据采集的完整性
Intranet中运行的网络应用业务根据其实现模式可以归为C/S模式和B/S模式,无论是何种模式,Server端处理所有Client的请求,并作相应的响应处理。因此对某种网络应用业务而言,Server端是此种网络应用业务流量的汇接点。从网络应用业务的Server端采集此种网络应用业务的流量数据具有完整性。
调用pcap_lookupdev(),获取可用设备,再调用pcap_open_live()获得唯一的包捕获实例描述,并且设置回调函数的执行周期。
2)设置过滤规则
给定过滤表达式,调用pcap_compile()进行编译,并用pcap_setfilter()设置包捕获实例描述的内核过滤器。
3)设置数据采集模式
调用pcap_setmode()设置该包捕获实例描述为统计模式。
4)获取数据
执行pcap_loop()函数,利用回调函数dispatcher_handler()处理采集的流量数据。
回调函数dispatcher_handler()中,具体实时流速的计算和流量的计算如下代码所示。dispatcher_handler()的参数一传递时间戳,用于计算此次调用与上一次调用之间的延时delay,Kbps表示实时流速,单位是K比特每秒,KB表示实时流量,单位是K字节。
struct timeval *old_ts = (struct timeval *)state;
u_int delay;
LARGE_INTEGER Kbps,KB;
delay = (header->ts.tv_sec - old_ts->tv_sec) * 1000000 + (header->ts.tv_usec - old_ts->tv_usec);
Kbps.QuadPart = (((*(LONGLONG *)(pkt_data + 8)) * 8 * 1000000) / (delay) /1024);
KB.QuadPart = ((*(LONGLONG *)(pkt_data + 8)) / 1024)
old_ts->tx_sec = header->ts.tv_sec;
old_ts->tv_usec = header->ts.tv_usec;
流速Kbps和流量KB是本系统需要的数据,因此计算出这两个数据后,直接将采集的流速和流量数据发送给管理进程。
5 结束语
面向应用的Intranet流量监测系统应用于Intranet中不同网络应用业务流量的监测。通过对以网络应用业务为单位的流量数据的监测和分析,为Intranet中不同网络应用业务网络带宽的合理利用和分配提供了重要参考依据。
参考文献:
[1] 刘特,徐迎晓,吴建军,等.基于Java Servlet的网络流量采集与监控技术[J].计算机工程,2002,28(5):167-170.
[2] 曾凡锋.基于SNMP的网络流量统计分析系统[J].北方工业大学学报,2003,15(1).
[3] 梦学军,吴黎兵,石岗.基于NetFlow网络流量分析的研究及应用[J].华中科技大学学报(自然科学版),2003,31(234):253-255.