基于WinPcap的网络流量在线分析系统的设计与实现

本文介绍了一个基于WinPcap设计的网络流量分析系统,该系统能实时抓取数据包,分析协议,存储和统计网络连接的统计信息,用于分析不同网络应用的流量特征。系统使用C/C++编写,集成在Code::Blocks环境中,通过WinPcap库实现网络数据捕获,并展示了详细的配置、设计和实现步骤。
摘要由CSDN通过智能技术生成
  • 实训目的

    设计并实现一个网络流量的分析系统。该系统具有以下功能:(1)实时抓取网络数据。(2)网络协议分析与显示。(3)将网络数据包聚合成数据流,以源IP、目的IP、源端口、目的端口及协议等五元组的形式存储。(4)计算并显示固定时间间隔内网络连接(双向流)的统计量(如上行与下行的数据包数目,上行与下行的数据量大小等)。在这些统计数据的基础上分析不同网络应用的流量特征。

  • 实训内容

(1)能够实时抓取网络中的数据包。并实时显示在程序界面上。用户可自定义过滤条件以抓取所需要的数据包。

(2)分析各个网络协议格式,能够显示各协议字段的实际意义。例如,能够通过该程序反映TCP三次握手的实现过程。

(3)采用Hash链表的形式将网络数据以连接(双向流)的形式存储。

(4)计算并显示固定时间间隔内网络连接(双向流)的统计量(如上行与下行的数据包数目,上行与下行的数据量大小等)。例如,抓取一段时间(如30分钟)的网络流量,将该段时间以固定时长(如1分钟)为单位分成若干个时间片,计算网络连接在每一个时间片内的相关统计量。并在上述统计数据的基础上分析不同应用如WEB、DNS、在线视频等服务的流量特征。注意,可根据实际的流量分析需要自己定义相关的统计量。

  • 主要设备和环境

硬件设备:

(1)台式计算机或笔记本计算机(含网络适配器)

软件设备:

(2)Windows操作系统

(3)网络数据包捕获函数包,Windows平台为WinPcap

(4)编程语言选用C/C++。

(5)编程环境为Code::Blocks

  • 设计步骤
  1. 配置环境

(1)编译环境为Code::Blocks,由于Code::Blocks在大一就经常使用,具体安装步骤可以省去。

(2)因为开发的程序需要网络编程,所以需要获取实时网络数据流,需要抓包,因此Windows平台上需要安装WinPcap环境,并在Code::Blocks中配置WinPcap的库函数。配置WinPcap步骤如下:

A.需下载WinPcap的运行库和WinPcap的开发包

   WinPcap运行库下载网址:

   https://www.winpcap.org/install/default.htm

   下载后按默认选项直接安装

   WinPcap开发包下载网址:

   https://www.winpcap.org/devel.htm

   下载在一个英文路径下,并解压。

   至此的结果截图如下:

   

B.打开Code::Blocks通过Settings->Compiler 在其中文本框输入WPCAP 和HAVE_REMOTE

C.打开WinPcap开发包的解压文件将其中的名为“Packet”和“wpcap”的文件

复制粘贴到CodeBlocks文件的 ..CodeBlocks\MinGW\lib\ 目录下如图:

在网上搜索WS2_32.lib文件,下载到本地,同样复制粘贴到和上述一样目录下如图:

标 题: 【原创】基于WinPCap网络协议开发 - 炮王(超级打炮机)发送数据包(03) 作 者: 加百力 时 间: 2009-05-18,16:55:36 链 接: http://bbs.pediy.com/showthread.php?t=89175 【文章标题】: 基于WinPCap网络协议开发 - 炮王(超级打炮机)发送数据包(03) 【文章作者】: 加百力 【软件名称】: WinPCap 【下载地址】: http://www.winpcap.org/ 【内部编号】: MASSADA 0029 【编写语言】: C++ 【使用工具】: VS2005 【操作平台】: Windows 2003 -------------------------------------------------------------------------------- 【详细过程】 在第一篇文章中我们提到WinPCap的基本功能之一就是:  1> 在网络上发送原始的数据包。 发送原始数据包难度不大,只需要应用几个简单的函数就可以了。 我编写炮王程序的主要目的是为了测试WinPCap/libpcap的抓包能力,在不同网速和数据包大小的条件下libpcap的抓包率有多少。 炮王特点: 01、可以发送任意协议的数据包。TCP/IP等等。 02、针对每次发包,会返回状态,可以检测是否成功。在程序中如果失败会自动退出。 03、可以随机修改数据包的:源、目的MAC地址,IP地址,端口、数据内容等属性信息。 04、使用多线程发包,在XP下最多可以同时开2000个线程发包,发包速度快,流量大。在千兆网卡上可以超过15M/s的速度。 05、自动统计发包时间,计算每秒发包数量,流量。 06、可以设置发包的时间间隔,最少到1毫秒。 炮王使用方法: 首先直接运行pw.exe可以看到程序提示的参数信息和显示的当前可用网卡信息。可用网卡信息会保存在CardsInfo.txt文件中。 打开BAT脚本,修改网卡信息,即可。 运行脚本,脚本将数据包文件发送出去。 注意:总的发包数量等于每个线程的发包数量乘以线程总数。 实验的数据包文件都是MSN消息。 具体代码请看附件。 -------------------------------------------------------------------------------- 【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值