APP下载

基于WinPcap的网络流量监控界面优化设计

2016-01-12徐敏,夏靖波

电子科技 2015年9期

基于WinPcap的网络流量监控界面优化设计

徐敏,夏靖波

(空军工程大学 信息与导航学院,陕西 西安710071)

摘要随着网络技术的发展,网络结构变得异常复杂,使得网络监管面临挑战。对此,文中基于WinPcap软件,选取库中各种函数编译,并根据系统的功能需求扩展,设计出易操作的网络流量监控界面。给出了设计方案的具体系统架构,以及各部分模块的优化流程图。完成了两种不同流量的大小、变化趋势、协议分析等的显示,为流量分析和IDS中的应用奠定基础。

关键词WinPcap;包截获;网络监控;协议分析;混杂模式

收稿日期:2015-03-10

基金项目:陕西省自然科学基金资助项目(2012JZ8005)

作者简介:徐敏(1990—),女,硕士研究生。研究方向:网络流量测量。E-mail:376748496@qq.com

doi:10.16180/j.cnki.issn1007-7820.2015.09.008

中图分类号TP393

Interface Design and Optimization of Network Traffic Monitoring Based on WinPcap

XU Min,XIA Jingbo

(School of Information and Navigation,Air Force Engineering University,Xi’an 710077,China)

AbstractWith the development of network technology,it is more difficult to monitor and manage network because of the ever more complicated network structure.Aiming at this problem,this paper designs an easily manipulated interface of network traffic monitoring by WinPcap based on the system functional requirements.Specific system architecture is given with the function of each part optimized and the flow chart and operation interface given.The display of the size,change trend,protocol analysis and so on,of two flows is realized,laying a foundation for the application of flow analysis and IDS.

KeywordsWinPcap;packet capture;sniffer and control;protocol analysis;promiscuous model

当今是一个信息迅速发展的时代,网络必然成为人类生活不可或缺的一部分。网络应用蓬勃发展的同时对已有网络带宽、流量的影响也日益突出,骨干网络中的语音、视频、点到点的传输流量占据了大量的网络带宽。据美国商务部的调查,Internet上的数据流量平均每100天就要翻一番,网络带宽则以每年一倍的速度增长,现有网络带宽的增长速度已经无法达到网络流量的增长速度,矛盾已经日益凸显。总之,随着网络应用程序应用范围扩大,网络结构越来越复杂,且用户对网络运行特性的知胜甚少,所以使得用户对网络的管理和分析困难较大。另一方面,各种P2P应用占用了大量的网络空间,此外还有大量的资源安全问题:非法入侵个人账户,泛滥的垃圾信息,DDos攻击,以及蠕虫泛滥对网络速度的影响越来越严重,破坏计算机系统,同时使网络上其他系统开始拒绝服务,导致占据大量网络空间资源,甚至整个网络面临瘫痪。

为保障网络资源的有效应用、降低网络带宽不断扩容带来的经济压力、资源安全,且网络流量能直接反映网络性能的优劣,能更有效地为网络管理员提供准确实时的网络安全状况。因此,必须对网络流量进行有效的管理。网络流量测量到监控的过程就是互联网内部原理从抽象落实到具体的过程,进而,成为理解网络行为最有效的途径。本次界面优化设计旨在提升整个网络的运营能力,保障核心网络应用的有序进行的同时终端用户可更加科学的管理和控制,最终营造一个安全、高效、畅通的网络环境。

1WinPcap

由于使用操作系统原件来访问网络的方式不能满足特定业务的需求,即有些应用程序需直接访问网络中的数据包,所以开发了WinPcap软件,其为Windows平台的应用程序提供直接访问网络中数据包的方式[1]。其结构包括NPF(包过滤器),动态链接库(packet.dll)和不依赖于系统的库(wpcap.dll),提供了捕获、过滤、发送数据包,收集、统计信息等功能,另外,其遵循BSD开源协议,使得应用程序可自由修改与使用该软件,本文利用此优点及自带的完备开发软件包进行编译,增加所需的网络功能。

2软件界面设计总体架构

本文所设计的网络流量监控优化界面如图1所示,共有4个主要组成部分:采集、监控、分析和显示。采集主要是通过wpcap.dll库中的接口函数过滤、读取数据包;监控主要负责网络中数据包统计与存储并且形成所规范的网络流量;分析主要从收集或直接读取的数据包中提取反应各流网络性能的指标参数,例如:网络流量的类型、大小;显示主要是以适当的形式直观实时地显示流量的性能指标;最终反馈给控制层面,其负责配置被监测数据包的采集粒度、种类、获得不同指标的程度等。

图1 软件界面设计总体架构图

2.1 网络流量采集

如图2所示的网络流量采集主要通过网卡选择、过滤数据包、流抽样方式选择、以及存储位置等条件,来扩展此界面的功能。网络信息是以明文的形式在具有共享介质的以太网上传输。网卡具有4种工作模式:直接模式、多播传送模式、广播模式和混杂模式。通常计算机运行在非混杂模式下,只能监听派发给自身内部的信息。当网卡被设置为混杂模式时,可捕获任何一个在同一冲突域上传输的数据包,函数库为获取当前机器上所配置网络接口的内容提供了pcap_findalldevs()函数[2]。定义宏变量:pcap_openflag_promiscuous(混杂),将函数pcap_open_live(const char *device,intsnaplen,intpromisc,intto_ms,char *ebuf),第3个参数设置为1,则代表将网卡设置为混杂模式[3]。运用这一原理可以达到对所有数据包进行捕获的目的,能够捕获到所设置条件的网络信息。

图2 网络流量采集流程图

2.2 网络流量监控

WinPcap提供一个内核空间的模块,能够对网络流量进行统计,统计信息无需复制数据包到应用程序就被收集,简化接收与显示过程,避免消耗计算机内存。如图3所示网络流量监控主要通过上一层所采集的数据包进行过滤,到达计数器,计数器保存变量,并根据网络所接收数据包的数据更新变量。在每个用户设定的固定时间点,这些所保存的变量被传递给应用程序。本次优化设计是在对网络流量进行简单统计的统计模块基础上扩展的,主要实现了流量大小的实时显示、函数曲线的绘制以及可调节分辨率图形选择等。

图3 网络流量监控原理图

2.3 网络流量分析

对于网络流量的分析对象可分为两类:历史流量以及实时监测的流抽样。网络流量分析部分主要有历史查询模块,原始流量数据模块,流量统计模块。历史查询模块提供了对历史流量信息的查询,相对于实时监测[4],其是一种静态数据。原始流量数据模块提供了对最原始、未经分析的流量信息查询的功能。网络流量分析可对任意的流量存储文件进行分析,其中流量表模块提供了对流量详细信息汇总的功能,这里的详细信息包括标识符相同的数量、平均流量、协议类型和业务应用等[5]。流量统计模块提供了查看各种业务所占比例的功能,其能以饼状或柱状图形式进行展现,并及时将信息传输给下一层的显示界面,将分析所得结果通过图形直观地表现出来,本设计选用饼状图,网络流量分析与实时监测并行工作,并不会互相影响。以上各部分的功能都可以在界面上进行条件设置,可设置的条件包括:抽样方式、开始时间、结束时间、目的IP和目的IP掩码、源IP和源IP掩码等[6]。简言之,网络流量分析部分完成两种不同对象的状态、网络层协议、应用层协议的分析。

2.4 显示界面

该设计界面是面向用户为中小型网络管理员和普通网络使用者,直观、人性化的用户界面是必要的。实现程序主要采用C++语言编写,使其界面与Windows保持兼容性。如图4所示为显示界面工作流程图,全局工作时首先启动一个定时器,一方面定时器固定地向设置好的时间段发送一个时钟脉冲,一个时间的上升沿到达,显示界面指令会从全局计数器中取得实时捕获流量的大小,以便及时地显示在界面上,并绘制出反映网络流量大小变化趋势的曲线;另一方面,当收到来自上一层流量分析的信号时,显示界面会显示当前流量分析的状态,若是流量分析预处理已经完成,则其还会用饼状图的方式来呈现分析结果,这两方面的显示过程是并行的,在一个时间段内,两个进程完成之后,显示界面模块再次变成等待消息的状态。

图4 显示界面运行图

3显示界面运行效果

此显示界面设计在Windows平台上开发完成,图5是整个界面。为了提高软件界面的可操作性,设计采用对话框的形式,如图5左部用户可通过界面上的选项按钮设置参数,例如选择网卡接口模式,设置过滤关键字,选取流抽样方法等。在对流量大小进行监测时,图6是实时采集校园网某一时段的流量,在Windows系统上安装此界面用户可随时观测实时监控的流量,设置“Division选项”可缩放流量变换曲线,得到较为精确的流量。如图7所示,在对已形成存储文件的流量进行分析时,点击相应的功能键就能以饼状图的方式直观地得到网络流量分析结果。

图5 设计显示界面图

图6 实时采集流量图

图7 当前流量分析图

4网络流量监控的应用

数据包采集是进行网络分析的基础,具体来说,要完成诸如网络流量监测,非法操 作、入侵检测等网络故障分析,网络设备仿真等工作,就必须对网络流量有定量的分析,网络流量监控的应用主要在以下两方面[7]:

(1)网络流量统计及分析。WinPcap最主要是提供了流量统计与分析的功能,其能够将网络所运行流量的大小、带宽等进行定量的统计,在混杂模式下工作的WinPcap可捕获任何一个在同一冲突域上传输的数据包,从而高效快速地获得该数据包的大小,进而可通过WinPcap的这个功能统计出网络流量传输速度即单位时间中网络上数据包数目及数据字节数。

(2)IDS中的应用[8]。随着网络的发展,入侵检测系统是维护网络安全的重要保证,其基础是获得网络上不同流量的解析,就是要求能深刻地了解和掌握网络上所运行数据包的情况。例如:恶意软件会干扰嗅探器的正常工作,最好的办法是端口映射,识别病毒或蠕虫网络流量最好的办法是查看网络间的原始数据,在每个所捕获的数据包中查找是否对系统目录进行引用,蠕虫病毒会在未知数据包里产生一个问题提示。蠕虫泛滥危害较大,可在整个网络快速传播,在短时间内造成网络瘫痪。因此,只有对数据包的详细分析才能发现和阻止蠕虫冲击行为,使得网络安全有效地运行。

5结束语

WinPcap在Win32平台下开发,是一种高效的网络数据包捕获网络工具,在网络流量统计及分析、IDS等中应用广泛。本文是基于WinPcap软件对网络流量监控设计出优化界面,提供了对底层网络数据包进行操作的新途径[9]。本次界面优化设计在流量捕获部分,采用了流抽样技术来决定一个数据包是否被存储,这样不但降低高速IP链路对测量硬件的要求,而且降低存储流量空间的同时保持网络流量的统计特性[10];在流量分析部分,流量大小实时监测、流量数据分析等功能均已实现,该设计界面具有较高的可操作性,通过界面设置键可更加方便、快捷地达到需求。该设计安全性高,真正实现了在安全级别不同的网络之间进行单向、实时、高效、安全的数据传输。

参考文献

[1]张会勇.WinSocket网络编程经络[M].北京:电子工业出版社,2012.

[2]李斓,何永忠,冯登国.面向XML文档的细粒度强制访问控制模型[J].软件学报,2004(10):1528-1537.

[3]梁彬,孙玉芳,石文昌,等.一种改进的以基于角色的访问控制实施BLP模型及其变种的方法[J].计算机学报,2004(5):636-644.

[4]李捷,刘瑞新,刘先省,等.一种基于混合模型的实时网络流量预测算法[J].计算机研究与发展,2006,7(5):3-8.

[5]沈辉,张龙.基于WinPcap的网络数据监测及分析[J].计算机科学,2012,39(10):15-18.

[6]张伟,王韬,潘艳辉,等.基于WinPcap的数据包捕获及应用[J].计算机工程与设计,2008,29(7):1649-1651.

[7]康晓东,裴昌幸.基于WinPcap库的网络封包嗅探器实现[J].电子科技,2005,5(2):34-50.

[8]吕雪峰,彭文波,宋泽宇.网络分析技术揭秘:原理、实践与WinPcap深入解析[M].北京:机械工业出版社,2012.

[9]于天予.基于WinpCap的网络流量统计分析系统设计与实现[D].石家庄:河北科技大学,2013.

[10]徐敏,夏靖波,申健等.基于LEAST的高速网络大流检测算法[J].空军工程大学学报,2015(8):25-30.

欢 迎 订 阅 2015 年《电子科技》杂 志

邮 发 代 号 52-246