- 实训目的
设计并实现一个网络流量的分析系统。该系统具有以下功能:(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)编译环境为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文件,下载到本地,同样复制粘贴到和上述一样目录下如图: