1、 课课 程程 设设 计计 书书 学院学院 计算机学院计算机学院 专业专业 计算机科学与技术计算机科学与技术 班级班级 题目题目 监控监控 IP 数据数据包流量包流量 教师教师 学生学生 课程设计小组成员及分工课程设计小组成员及分工 本小组成员本小组成员: xxx yyy zzz 分工分工: xxx 做本课程设计的目的,本课程设计的要求做本课程设计的目的,本课程设计的要求 及本课程设计的一些内容及本课程设计的一些内容 yyy 做本课程设计的一些基础知识,本课程设做本课程设计的一些基础知识,本课程设 计的分析,本课程设计的结果,本课程设计的总计的分析,本课程设计的结果,本课程设计的总 结结 zzz
2、 做本课程设计的代码,本课程设计的框架做本课程设计的代码,本课程设计的框架 设计,本课程设计的结果验证,本课程设计的逻设计,本课程设计的结果验证,本课程设计的逻 辑分析。辑分析。 目目 录录 一、一、 课程设计目的和要求课程设计目的和要求 . 1 1.课程设计目的:课程设计目的: 1 2.课程设计要求:课程设计要求: 1 二、二、 课程设计的内容课程设计的内容 . 2 三、三、 课程设计核心知识课程设计核心知识 . 4 四、四、 课程设计框架课程设计框架 . 6 五、五、 课程设计详细分析课程设计详细分析 . 8 六、六、 实验源代码实验源代码 16 七、七、 课程设计总课程设计总结结 . 3
3、1 1 一、一、 课程设计目的课程设计目的和和要求要求 1.课程设计目的:课程设计目的: 随着internet技术的发展,基于IP协议的网络应用成为网络技术研 究与软件开发的一个重要基础,因此学习网络层的基本概念,了解 IP 协议 的基本内容,对于掌握 TCP/IP 协议的主要内容和学习网络课程是十分重要 的。通过本次课程设计,有助于熟悉 IP 包格式和加深对 IP 协议的理解。 2.课程设计要求:课程设计要求: 编制程序,监控网络,捕获一段时间内网络上的 IP 数据包,按 IP 数据 包的源地址统计出在该时间段内发出的 IP 包的个数,将其写入日志文件中 并用图形表示出来。 程序的具体要求如
4、下: 1.在图形窗口界面下, 根据用户输入的捕获时间和选择的网卡输出该段 时间内的 IP 数据包流量分析 2.能够将捕获的信息写入日志文件 2 二、二、 课程设计的内课程设计的内容容 1.课程设计的内容: 1) 使用 Winpcap, Winpcap 的主要功能在于独立于主机协议 (如 TCP/IP) 发送和接受原始数据包; 2)列出网卡列表,让用户选择可用的网卡; 3)使用过滤器捕获 IP 包,别的包都过滤掉; 4)捕获 IP 包并按包的源地址进行统计(用链表结构进行实现) 。 5)将统计结果输出到图形窗口界面或输出到日志文件 程序流程如图 8-1 所示。 2.一些必要的基础知识 1. 熟悉
5、 IP 首部格式 2. 使用 Winpcap 工具 WinPcap 是一个基于 Win32 平台的, 用于捕获网络数据包并进行分析的 开源库. WinPcap 产生的目的,就是为 Win32 应用程序提供这种访问方式; WinPcap 提供了以下功能 a) 捕获原始数据包,无论它是发往某台机器的,还是在其他设备 (共享媒介)上进行交换的 3 b) 在数据包发送给某应用程序前,根据用户指定的规则过滤数据 包 c) 将原始数据包通过网络发送出去 d) 收集并统计网络流量信息 使用 Winpcap 工具主要需要三个步骤: 1).安装底层驱动:在 Winpcap 官网(www.winpcap.org)
6、下载并 安装 Winpcap.exe 即可 2).导入库文件:下载 wpdpack 开发包,并在开发环境(VC)中导 入 Lib 和 Include 文件夹路径。VC 导入步骤(工具-选项-目录, 分别在 Include Files 和 Library Files 中加 入/wpdpack/Include 和/wpdpack/Lib) 3).在应用程序中导入需要的 DLL 和头文件: 方法一:VC 下:工程-设置-链接 在 Object/Library modules 下添加 ws2_32.lib wpcap.lib(注意中间的空格) 方法二:在源文件中添加命令处理: #pragma comment(lib, “ws2_32.lib”) #pragma comment(lib, “wpcap.lib”) 本程序将会用到的 Winpcap 功能有: 获取本机所有适配器信息 pcap_findalldevs 以混杂模式打开适配器 pcap_