网络数据包的协议分析程序的设计开发
摘 要
本文设计与实现了一个基于Linux下Libpcap库函数的网络数据包协议分析程序。程序的主要功能包括网络数据包捕获和常用网络协议分析。程序由输入/输出模块、规则匹配模块、数据捕获模块、协议分析模块组成。其中数据捕获模块和协议分析模块是本程序最关键、最主要的模块。
本文的主要内容如下:首先介绍了网络数据包协议分析程序的背景和概念。其次进行了程序的总体设计:确定了程序的功能,给出了程序的结构图和层次图,描述了程序的工作流程,对实现程序的关键技术做出了分析。接着,介绍完数据包捕获的相关背景和Libpcap函数库后,阐述了如何利用Libpcap函数库实现网络数据包捕获模块。然后对协议分析流程进行了详细的讲解,分析了常用网络协议。最后进行了程序的测试与运行:测试了程序能否按照预期的效果正确执行,印证了预期结果。
关键词:Libpcap;Linux;数据包捕获;应用层;协议识别
目 录
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
1.1 课题背景
随着计算机网络的不断发展,全球信息化已成为当今社会发展的趋势。但由于计算机网络自身所特具有的特点,比如联结形式多样性和网络的开放性、互连性等特征,所以导致网络易受黑客还有一些病毒的攻击。所以网上信息的安全和保密是一个至关重要的问题。对于军用的自动化指挥网络和银行等传输敏感数据的计算机网络系统而言,其网上信息的安全和保密尤为重要。因此,网络必须有足够强的安全措施,否则该网络将是个无用、甚至会危及国家安全的网络。在计算机网络的世界里,存在着很多潜在的威胁,因此网络的安全措施应能全方位地应对各种不同的威胁,这样才可以真正的做到网络服务于社会,体现网络的先进性。
计算机网络所面临的威胁大体可分为两种:一是对网络中信息的威胁;二是对网络中设备的威胁。影响计算机网络的因素很多,有些因素可能是有意的,也可能是无意的;可能是人为的,也可能是非人为的;可能是外来黑客对网络系统资源的非法使有,归结起来,针对网络安全的威胁主要有三种:
(1)人为的无意失误:如操作员安全配置不当造成的安全漏洞,用户安全意识不强,用户口令选择不慎,用户将自己的帐号随意转借他人或与别人共享等都会对网络安全带来威胁。
(2)人为的恶意攻击:这是计算机网络所面临的最大威胁,敌手的攻击和计算机犯罪就属于这一类。此类攻击又可以分为以下两种:一种是主动攻击,它以各种方式有选择地破坏信息的有效性和完整性;另一类是被动攻击,它是在不影响网络正常工作的情况下,进行截获、窃取、破译以获得重要机密信息。这两种攻击均可对计算机网络造成极大的危害,并导致机密数据的泄漏。
(3)网络软件的漏洞和“后门”:网络软件不可能是百分之百的无缺陷和无漏洞的,然而,这些漏洞和缺陷恰恰是黑客进行攻击的首选目标,曾经出现过黑客攻入网络内部的事件,这些事件的大部分就是因为安全措施不完善所招致的苦果。另外,软件的“后门”都是软件公司的设计编程人员为了自便而设置的,一般不为外人所知,但一旦“后门”洞开,其造成的后果将不堪设想。
为了及早发现并制止网络上的各种攻击,我们需要通过对网络上的数据进行分析来发现并找出问题,提前预防。这也是本论文的一个重要目的。网络安全管理员运用网络封包截获技术,抓取网络中有用的数据包,然后通过对数据包内容进行分析,确定哪些是有害的或者含有攻击企图的包,以此来达到对网络攻击的预防。同时许多防火墙也是基于包过滤技术的。本文将介绍网络数据包协议分析程序的工作原理以及它的实现。