网络数据包捕获工具的设计与实现
摘 要
网络数据包的捕获对于网络安全有着巨大的作用,为我们更好的分析网络中的数据流提供了帮助。
本论文是基于Windows下开发一个网络监听工具,侧重点在于实现网络数据包的捕获,然后分析并显示捕获到的数据包信息这部分功能的实现,如分析:IP首部协议类型、源IP、目的IP和端口号等。数据包的捕获是实现防火墙、网络协议的分析或者网络监听等等功能的核心内容,一般可以采用Winsock编程、Winpcap或者NDIS网络接口驱动来实现。
采用的是Winpcap(Windows Packet Capture)来实现的抓包功能。Winpcap是Windows平台下一个专业网络数据包捕获开发包,是为Libpcap在Windows平台下实现数据包捕获而设计的。Winpcap功能更加强大,不仅具备了Libpcap的功能,还具有一些其他功能。
通过VC++6.0中MFC编程实现通过一个完整界面来控制调用Winpcap中的函数来实现对网卡信息的捕获和循环捕获数据包,然后通过预先对于IP、TCP、UDP等数据包的定义和TCP/IP等协议来解析其中包含的内容并返回显示捕获到数据包的信息,当然也可以保存捕获到的数据包到指定地点以便进一步分析。
关键词:Winpcap;NPF;VC++6.0;TCP/IP;计算机网络;目 录
论文总页数:27页
1 引言 1
1.1 课题背景 1
1.2 国内外研究现状 1
1.3 课题研究的意义 1
2 设计理论依据 2
2.1 OSI与协议族 2
2.2 面向对象和可视化编程 4
2.3 WINPCAP开发技术详解 5
2.3.1 Winpcap介绍.5
2.3.2 Winpcap 的组成5
2.3.3 Winpcap 数据结构7
2.3.4 Winpcap 函数8
3 设计方案与系统功能描述 10
3.1 设计方案 10
3.2 功能描述 11
3.3 系统流程图 12
4 编码实现 12
4.1 WINPCAP环境设置 12
4.2 MFC控件相关 14
4.3 定时器和系统时间的获得 15
4.4 捕获并显示本机信息 16
4.5 捕获数据包及相关操作 17
5 软件测试与结果 22
5.1 网卡信息获取 22
5.2 整合到MFC界面中的程序测试 23
结 论 24
参考文献 25
致 谢 26
声 明 27
1.1 课题背景
随着网络技术的飞速发展,网络的普及,给我们带来了巨大的社会和经济效益,同时网络安全问题变得日益严重,计算机网络的设计、维护难度日益增加,安全问题正威胁着每一个网络用户,对网络安全的研究也越来越重要。因此,人们迫切的需要能够分析、诊断和测试网络的工具,以及保护我们的电脑尽可能的减少收到侵害的堡垒――防火墙。对于网络数据包的捕获现在也有着很多的实现方法,存在着许多开源的sniffer软件供我们参考,但是其中的某些细节上还是有一些问题的存在,在效果和效率上都有一些问题,分析上也并不是很方便。所以尝试选择了这个课题。
1.2 国内外研究现状
现在不论是网上的一些开源的Sniffer软件还是市面上出售的网络监听软件,其实其基础功能都是基于网络数据包捕获功能后扩展开的。所以我们可以清晰的认识到网络数据包捕获功能的巨大作用和广泛的应用范围。目前sniffer软件种类繁多,但是很多都存在一些问题,比如说:效率低,效果差,分析困难等等。有些sniffer软件往往嵌入许多并不怎么使用的功能在里面,增加了操作的复杂性,使用起来反而不便。所以真正想要找到一款操作简单使用方便的数据包捕获软件并不容易。作为一名网络工程专业的学生,熟悉常用的各种计算机相关软件,特别是和网络相关的软件是应该的。现在市场上的国内外的各种防火墙软件、网络监听软件和协议分析软件等软件种类繁多,让人有点眼花缭乱。这些产品大多数品质都不错,各有各的特点,所以选择起来的难度也挺大。我总是在一些比较著名的软件下载网站上获取一些比较受好评的软件来使用,然后从中选择适合自己的。通过一系列的使用和学习,我希望能够自己完成一款功能适合自己使用的操作简单让人可以轻易上手的网络数据包捕获和简单分析的软件。
1.3 课题研究的意义
随着网络的飞速发展,Internet的迅速普及,网络已经深入到了我们的生活,跟我们息息相关。伴随着网络带来的便利,网络安全问题也越来越受到人们的关注和重视。防火墙也成了一个非常热门的课题,带来巨大的社会经济效益,保护我们的合法权益不受到侵害。我选择的课题是windows下的网络数据包的捕获工具的开发和实现,所以主要的研究方向和侧重点是在于最基本也是最核心的网络数据包的捕获和分析等功能上。网络数据包的捕获在于网络安全领域有着无可代替的重要作用,不论是防火墙技术,网络监听技术或者是网络测试都离不开数据包的捕获,这是一切的基础,其他的功能都要基于这个功能才能实现。