面向应用的Intranet流量监测系统的设计与实现.doc

上传人:asd****56 文档编号:70343131 上传时间:2023-01-19 格式:DOC 页数:7 大小:352KB
返回 下载 相关 举报
面向应用的Intranet流量监测系统的设计与实现.doc_第1页
第1页 / 共7页
面向应用的Intranet流量监测系统的设计与实现.doc_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《面向应用的Intranet流量监测系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《面向应用的Intranet流量监测系统的设计与实现.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、面向应用Intranet流量监测系统的设计与实现马 翔1 (偏转集团 信息中心,咸阳 712000)Abstract: To deal with the Intranet flow monitor prpblem,after comparing several popular flow data collection methods and analysising netwroks business characters, this paper resents a novel framework data collection model.Based on this modle,using t

2、he WinPcaps library,we give a detial introduction of the systems design and Implementation. Kerywords: flow,application-oriented,winpcap摘要:论文着眼于Intranet流量监测,比较了几种常用的流量数据采集方法,分析了Intranet中网络应用业务的特点,从而提出了一种面向应用的流量数据采集模型。基于这一模型,利用WinPcap提供的函数库实现了面向应用的Intranet流量监测系统。介绍了系统的设计与实现。关键字:流量 面向应用 WinPcap 作者简介:

3、马翔(1968),男,陕西乾县人,学士,工程师,主要研究领域为图像推介随着Internet的迅速普及和广泛使用,Intranet的部署和使用也不断发展。Intranet即内部网络,也叫内联网,是将Internet的成熟技术如TCP/IP、SMTP、HTML、HTTP、WWW等应用于企业或政府部门的内部专用网络。以Intranet为基础,一方面,可以将基于Internet成熟技术的服务如Web服务、Mail服务、FTP服务等网络应用迁移到企业内部;另一方面,企业根据自己的业务特点,针对企业内部人员或客户,开展新的网络应用业务,如企业内部数据库系统、办公自动化系统及MIS应用等。随着Intrane

4、t中多种网络应用业务的开展,对网络的承载能力是一个考验。如何清楚地了解不同网络应用业务网络的使用情况;如何为每种网络应用业务分配合理的网络带宽,逐渐成为众多企业开展网络应用业务后关心的一个问题。1 常用的流量数据采集方法实现对Intranet流量的监测,就要选择流量数据采集点,并且采集的流量数据完整且不重复。下面对常用的流量数据采集方法1进行分析。(1) 基于SNMP的网络流量统计分析模式根据SNMP2的工作原理,需要流量统计服务器和路由器相配合来完成网络流量的采集和统计,如图1.1所示。流量统计服务器和路由器分别扮演SNMP的Manager和Agent角色,服务器定期向路由器发送SNMPWA

5、LK(SNMP请求),当路由器接收到请求后将所要采集的数据发送给流量统计服务器。这一“请求响应处理发送”的过程每隔一段指定的时间执行一次。图1. 1 基于SNMP的网络流量统计分析Fig.1. 1 Network flow statistic and analysis based on SNMP实现基于SNMP模式的网络流量数据采集对所使用的路由器也有一定的要求。首先,路由器必须是企业网中心节点的路由器,这样采集的网络流量数据才会完整;其次,路由器除了拥有一般路由器的路由选择和数据包转发功能外,还须提供过往包的统计功能。这种模式原理简单,容易实现。但工作效率较低,对网络带宽有影响且会加重路由器

6、的负担。另外,流量采集的时间间隔比较难把握,容易造成数据的丢失。(2) 基于安插网络探针技术的流量数据捕获模式探针(PROBE)技术是依靠传统的以太网(Ethernet)总线结构的通信原理,在靠近出口路由器的网段上安插网络探针,以监听其他的通信,并记录通过该网段的每一次通信,进而整理成流量统计数据。这种模式最大的优点就是不需要路由器的参与,对路由器的影响很小;且占用很少的带宽,不需要额外的网络开销。但要实现这种基于PROBE技术的流量采集统计,必须有很大的缓存器(Cache),以便记录下所有的网络通信。这给流量统计主机的性能和硬件配置提出了很高的要求。网络探针截获的是网络上的数据流,通过对这些

7、数据进行分析,可以统计出对应IP地址的流量数据或者是基于某种协议的网络应用业务的流量数据。(3) 基于网络数据流(NetFlow)技术的IP数据流捕获模式它是采用流作为网络数据传输的单位。网络设备(路由器和带三层交换的交换机)为其提供一个专有的缓存器。在数据转发期间,对于属于同一个数据流的数据包,交换机只处理其第一个包,并根据第一个包的情况在netflow cache中建立一个记录,属于同一个流的数据包将根据netflow cache中的记录直接作二层转发而不再作三层处理。这样,便可以大大加快网络设备的数据处理速度。在NetFlow3方法中,流量监控统计服务器使用专门的软件,每时每刻处于监听状

8、态。路由器和带三层交换的交换机待某个流传输完毕后,把netflow cache中对该流的统计信息一次性地发送给流量监控统计服务器的监听进程,并由流量统计分析程序进行整理,生成流量统计记录,NetFlow技术的流量采集模型如图1.2所示。图1.2 基于NetFlow的流量采集模型Fig.1.2 Flow collection model based on NetFlow基于NetFlow的流量采集模型可以有效地节省网络带宽,减少网络设备的额外负担。但对网络设备的要求较高,并且不适合用于某个精确时段的网络流量统计。基于NetFlow技术的网络流量监控,可以根据源和目的IP地址及其子网掩码,甚至TC

9、P/UDP端口号进行流量数据统计,并且可以列出指定时间内的IP包数、字节数、IP包大小分布情况等流量信息。2 面向应用的流量数据采集模型通过对常用的网络流量数据采集方法的分析和比较,结合Intranet中网络应用业务的特点,提出了面向应用的流量数据采集模型,如图2.1所示。图2.1 面向应用的流量数据采集模型Fig.2.1 model of application oriented flow collection本模型需要网络流量监控服务器(运行管理进程)和安装在网络应用业务服务器上的流量统计程序(即代理进程)相配合来完成流量数据采集工作。具体实现中,管理进程根据WinPcap的过滤表达式语法

10、对代理进程需要进行流量统计数据采集的网络应用业务信息和流量数据采集的周期进行配置。代理进程根据配置的参数信息,进行周期性的流量数据的采集工作,并随时将采集的流量数据以一定的格式发送给管理进程。管理进程一直运行接收流量数据的监听线程,将接收到的流量数据存入数据库中,用于实时流量数据显示和历史流量数据分析。面向应用的流量数据采集模型具有以下特点。(1) 数据采集的完整性Intranet中运行的网络应用业务根据其实现模式可以归为C/S模式和B/S模式,无论是何种模式,Server端处理所有Client的请求,并作相应的响应处理。因此对某种网络应用业务而言,Server端是此种网络应用业务流量的汇接点

11、。从网络应用业务的Server端采集此种网络应用业务的流量数据具有完整性。(2) 技术可行性在现有的研究中,已提供了具有网络数据采集和流量统计功能并用于开发的API,如Win32平台下有WinPcap,Unix平台下有libpcap等。WinPcap(Windows Packet capture)4是Windows平台下一个免费的,公共的网络访问系统。具有捕获原始数据包,收集网络通信过程中的统计信息等功能。并且WinPcap中定义了过滤表达式语法规则,通过在过滤表达式中对协议(如TCP、UDP)和端口的设定来标识不同的网络应用业务,进而可以统计不同网络应用业务的流量统计信息,从而为完整的采集各

12、种网络应用业务流量数据提供了技术上的保证。(3) 实施可行性面向应用的流量数据采集模型的数据源是网络应用业务的服务器,完成流量统计信息采集功能的是WinPcap驱动。WinPcap能独立于主机协议(如TCP/IP)发送和接收原始数据包,在发送和接收原始数据包的过程中,不阻塞、过滤或控制其他应用程序数据包的发收,并且具有流量统计功能。本模型中WinPcap的主要功能是完成统计功能,此功能在内核级完成,对网络应用业务服务器端的正常运行影响很小,因此在具体实施方面具有可行性。3 系统设计3.1 数据及配置信息的存储要实现面向应用的Intranet流量监测系统,首先就要有进行流量监测的网络应用业务的信

13、息,根据WinPcap3.0提供的过滤表达式语法可以标识不同的网络应用业务。Intranet中常用网络应用业务在WinPcap中的过滤表达式如表3.1所示。其中,Web服务会因为Web产品的不同,过滤规则会有所不同。不同的企业网还有根据其自身业务而开展的其他网络应用,这需要在具体实施过程中逐步补充。表3. 1 常用网络应用业务在WinPcap中的过滤表达式Table 3. 1 Filter expressions of common network applications in WinPcap网络应用业务WinPcap中过滤表达式FTP服务tcp port 21 or tcp port 20

14、Mail服务tcp port 25 or tcp port 110Web服务tcp port 80为了给网络管理员进行面向应用的Intranet流量分析和合理的带宽分配提供参考数据,需要存储网络应用业务不同时段的流量数据,因此管理端需要有数据库作为信息存储介质。面向应用的Intranet流量监测系统中代理进程Agent主要负责对不同网络应用业务启动流量数据采集线程进行流量数据的采集,同时将采集的数据发送给管理进程Manager。代理进程Agent需要保存网络应用业务信息,网络应用业务的过滤表达式,进行流量数据采集的周期等参数信息。对于这种初始化信息,采用Windows INI文件格式存储。3.

15、2 通信协议设计管理进程Manager和代理进程Agent之间互为客户/服务器。Agent作为服务器,时刻监听来自客户端Manager的控制命令,并做出相应的响应。Manager作为服务器,时刻监听并准备接收客户端Agent发送的流量数据。Manager和Agent之间需要进行控制命令和数据的传输,要保证二者之间进行明确的请求和响应操作,就要制定一些彼此都认可的规定,因此在管理进程和代理进程之间定义通信协议FMCP。FMCP协议规定了管理进程Manager用来监听代理进程发送流量数据的端口号,代理进程用来监听管理进程发送控制命令的端口号,以及管理进程Manager和代理进程Agent之间控制命

16、令和数据命令的具体消息定义。4 系统实现图4.1给出了系统总体结构。管理进程对代理进程和网络应用业务进行参数信息配置,参数信息存储到数据库中,操作人员发送控制命令(如初始化代理进程、修改应用业务等控制命令)到代理进程,代理进程接收控制命令,进行响应,并将接收的参数信息(如代理进程、网络应用业务参数信息)存入信息配置文件中,同时,代理进程根据信息配置文件和控制命令进行网络应用业务实时流量数据采集工作,代理进程采集流量数据并发送给管理进程,管理进程将接收的流量数据存入数据库,供操作人员进行网络应用业务实时流量监测和历史数据分析。图4. 1 系统总体结构Fig.4. 1 System general

17、 structure4.1 数据结构和函数说明网络应用业务流量数据的采集主要是通过调用WinPcap提供的函数和在WinPcap提供的回调函数中加入相关处理来实现的。下面对用到的WinPcap中的数据结构和函数5进行介绍。(1) 数据结构pcap_t数据结构pcap_t是WinPcap的核心数据结构,对用户来说是唯一的,实际是一个包捕获实例的描述,在程序的开始,调用pcap_open_live()将返回一个指向这个结构的指针。(2) char* pcap_lookupdev()获取可用设备,即网卡适配器。(3) pcap_t* pcap_open_live()返回包捕获实例的描述,其函数原型如

18、下:pcap_t* pcap_open_live(char * device, int snaplen, int promisc, int to_ms, char * ebuf)其中,第二个参数snaplen指定从每个包返回数据的长度,例如,如果指定1000,那么长度小于1000的包将返回其实际长度的全部数据;如果包长度大于1000,则返回包的前1000字节。返回的数据是链路层的数据帧。第三个参数promisc,是混杂标志,如果设定为1,将把网卡设置为混杂模式,监听全网段,但代理进程是安装在网络应用业务服务器上,不需要把网卡设置为混杂模式,因此promisc的取值是0。第四个参数to_ms,单

19、位是毫秒,是回调函数的执行周期。(4) int pcap_loop()收集和处理包,其函数原型如下:int pcap_loop(pcap_t* p, int cnt, pcap_handler callback, u_char* user)其中callback定义了处理包的回调函数。用户实现回调函数的具体功能,本系统实现了统计模式下的回调函数dispatcher_handler()。(5) void dispatcher_handler()统计模式下的回调函数,其函数原型如下:void dispatcher_handler(u_char *state, const struct pcap_pk

20、thdr *header, const u_char *pkt_data)其中参数一供用户传递变量;参数二pcap_pkthdr的格式定义如下:struct pcap_pkthdr struct timeval ts;bpf_u_int32 caplen;bpf_u_int32 len;WinPcap的内核过滤器每输出一个包,将在输出的数据前加上数据,就是struct pcap_pkthdr。Struct timeval ts是接收此包的时间戳;bpf_u_int32 Caplen是接收到包的长度;bpf_u_int32是实际包长度。参数三的数据格式定义如下。struct LARGEINTEG

21、ER AcceptedPackets;LARGEINTEGER AcceptedBytes;回调函数每隔to_ms(pcap_open_live()中的参数四)毫秒接收由驱动计算好的采样数据,采样数据封装在回调函数的参数二和参数三中,参数三存的是从上一次采样到此次采样间隔中接收到的包数和字节数。4.2 流量数据采集通过对WinPcap中的函数调用来说明流量数据采集过程。(1) 打开设备调用pcap_lookupdev(),获取可用设备,再调用pcap_open_live()获得唯一的包捕获实例描述,并且设置回调函数的执行周期。(2) 设置过滤规则给定过滤表达式,调用pcap_compile()

22、进行编译,并用pcap_setfilter()设置包捕获实例描述的内核过滤器。(3) 设置数据采集模式调用pcap_setmode()设置该包捕获实例描述为统计模式。(4) 获取数据执行pcap_loop()函数,利用回调函数dispatcher_handler()处理采集的流量数据。回调函数dispatcher_handler()中,具体实时流速的计算和流量的计算如下代码所示。dispatcher_handler()的参数一传递时间戳,用于计算此次调用与上一次调用之间的延时delay,Kbps表示实时流速,单位是K比特每秒,KB表示实时流量,单位是K字节。struct timeval *ol

23、d_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 =

24、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-1702. 曾凡锋基于SNMP的网络流量统计分析系统J,北方工业大学学报,2003,15(1)3. 梦学军、吴黎兵、石岗基于NetFlow网络流量分析的研究及应用J,华中科技大学学报(自然科学版),2003,31(234):253-2554. Loris Degioanni, NetGroup, Politecnico di TorinoWinPcap Documentation 3.0OL, http:/ winpcap.polito.it, 20035. 孙鹏、董玉华、韩正之基于数据链路层的局域网流量统计的实现J,计算机工程与应用,2002,5:150-152

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁