1. 研究目的与意义
网络嗅探器是一种常用的监听网络的工具。
所谓嗅探器( sniffer) ,是一种利用计算机网络接口截获网络数据的软件或硬件,可用于网络管理、网络协议分析以及网络安全等众多方面。
嗅探器不同于一般的键捕获工具,后者只能捕获当地终端控制台上的按键内容,而嗅探器所嗅到的是动态的以信息包形式( 如ip 数据包或者以太网包) 封装的信息流。
2. 国内外研究现状分析
在网络嗅探的研究方面,各网络管理员无不在关注这这些网络数据流量与网络数据报文信息,通过网络嗅探的实时监视网络,捕捉数据,识别网络配置,自动发现网络故障并进行告警,还能指出网络故障发生的位置,以及出现在OSI第几层;Sniffer可以在全部七层OSI协议上进行解码,它采用分层方式,从最低层开始,一直到第七层,甚至对ORACAL数据库、SYBASE数据库都可以进行协议分析。Sniffer还提供了专家配制功能,用户可以自已设定专家系统判断故障发生的触发条件。有了这个功能,就能更好的解决网络中出现问题。
3. 研究的基本内容与计划
本系统的基本功能为实现网络的捕获,并将其数据内容解析示。网络数据包捕获功能主要负责从网络中捕获和过滤数据这可以通过调用winPcap提供的丰富的API函数来实现;数据解析及显示部分主要负责界面数据转化、解析、处理、格式化、协议分析等,这一部分主要通过MFC来设计一个单文档图形用户界面GUI,解析结果将通过MFC的类库显示到GUI中。
网络嗅探器的整体设计由三个模块组成,自底向上分别是嗅探器设置模块,数据包捕获模块,解析和显示模块。嗅探器设置模块主要调用winPcaP提供的API,分为获取网络设备信息,设置并编译过滤器,打开网络设备三个步骤。数据包捕获模块创建了新的线程,利用了winPcap的非回调函数Pcap_next_ex()函数从winPcap底层驱动的数据缓冲区中读取数据包,并将数据包存储在系统临时文件中,以便之后的分析。用Pcap_open_offline()函数从离线文件中读取包。读取到的任意一个符合捕获条件数据包,将其内容解析,并显示本数据包。捕获完成后,进人解析和显示模模块。
4. 研究创新点
winpcap是一个在windows操作系统下的免费、公开的用于直接访问网络的开发工具包(编程api)。
大多数windows网络应用程序都是通过winsock api(windows套接口)这类高级编程接口访问网络的。
这种方法允许在网络上进行简单的数据传送,因为操作系统的tcp/ip协议栈实现软件会处理底层细节(协议操作、流程重组等等),并提供一个类似于读写文件的函数接口。
