摘 要
本文设计与实现了一个基于Linux下Libpcap库函数的网络数据包协议分析程序。程序的主要功能包括网络数据包捕获和常用网络协议分析。程序由输入/输出模块、规则匹配模块、数据捕获模块、协议分析模块组成。其中数据捕获模块和协议分析模块是本程序最关键、最主要的模块。
本文的主要内容如下:首先介绍了网络数据包协议分析程序的背景和概念。其次进行了程序的总体设计:确定了程序的功能,给出了程序的结构图和层次图,描述了程序的工作流程,对实现程序的关键技术做出了分析。接着,介绍完数据包捕获的相关背景和Libpcap函数库后,阐述了如何利用Libpcap函数库实现网络数据包捕获模块。然后对协议分析流程进行了详细的讲解,分析了常用网络协议。最后进行了程序的测试与运行:测试了程序能否按照预期的效果正确执行,印证了预期结果。
关键词:Libpcap;Linux;数据包捕获;应用层;协议识别
目 录
论文总页数:23页
1 引言 1
1.1 课题背景 1
1.2 网络数据包协议分析程序简介 2
1.3 国内外研究现状 2
2 网络数据包协议分析程序的总体设计 3
2.1 网络数据包协议分析程序的功能分析 3
2.2 系统的组成结构和工作流程 3
2.2.1 系统的结构框图 3
2.2.2 系统的结构和功能 4
2.2.3 程序的工作流程 5
2.3 系统实现的关键技术分析 6
3 网络数据包捕获模块的实现 7
3.1 网络数据包捕获简介 7
3.2 基于LIBPCAP的网络数据包捕获的实现 8
3.2.1 Libpcap安装 8
3.2.2 Libpcap中基本的数据结构和函数 8
3.3 数据捕获模块的实现 11
4 协议分析模块的实现 11
4.1 网络协议分析的总体流程 12
4.2 对TCP/IP模型中各层协议的分析 14
4.2.1 以太网首部的分析与提取 14
4.2.2 IP首部的分析与提取 15
4.2.3 TCP/UDP首部的分析与提取 16
4.2.4 应用层协议的识别与分析 18
5 程序运行与测试 20
5.1 测试环境 20
5.1.1 硬件环境 20
5.1.2 程序运行环境 20
5.2 测试步骤 20
5.3 测试结果评价 20
结 论 20
参考文献 21
致 谢 22
声 明 23