版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、96工矿自动化基于Windows下的网络监控软件设计与开发黄兴王献伟顾军(中国矿业大学信息与电气工程学院江苏徐州221008【摘要】基于以太网包捕获原理以及Winpcap软件包的体系结构和功能,设计了一种基于Windows下的网络监控软件,利用Winpcap直接对网卡进行操作来捕获数据,并对捕获到的数据进行协议分析,实现对网络的监控。【关键词】网络监控包捕获Winpcap协议分析1前言随着Internet技术的不断发展,网络中出现的不安全因素越来越多.从病毒的出现到人为的恶意攻击。网络中的合法用户受到的危害越来越大,网络管理及安全越来越为人们所重视,网络技术人员开始对网络的安全管理进行研究.在
2、抵御网络上的病毒和恶意攻击中,网络监听成为网管人员必须掌握的技术。监听,指利用计算机网络接口截获目的地为其他计算机的数据报文的技术。它为网络管理员提供一类管理工具,使用这类工具可以监视网络的状态、数据流动情况以及网络上传输的信息并利用这些信息来排除网络故障、发现病毒、检测恶意攻击等等。2数据包的采集技术2.1数据包的采集在共享式以太网中,所有的通信都是广播,也就是说通常在同一网段中的所有网络接口都可以访问在物理媒体上传输的数据,使用ARP 和RARP协议进行相互转换。在正常情况下,一个网络接口应该只响应两种数据帧:1帧的目标地址具有和本地网络接口相匹配的硬件地址,2帧的目标地址是“广播地址”。
3、在一个实际的系统中,数据的收发都由网卡来完成。每张以太网卡拥有一个全球唯一的以太网地址。它是由48位的二进制数组成(如000AEB09BB一02。在网卡中内建了一个数据包过滤器.该数据包过滤器的作用是保留以自身网卡的MAC地址为通信目的的数据包和广播数据包.丢弃所有其他无关的数据包,以免除CPU对无关的数据包做元谓的处理。这是以太网卡在一般情况下的工作方式。数据包过滤器是可以编程禁用的。禁用数据包过滤器后,即网卡处于混杂模式时,该网卡具备“广播地址”,绕过系统正常工作的处理机制。直接访问网络底层。它对所有收到的每一个数据帧都产生一个硬件中断以提醒操作系统处理每一个报文包。然后直接访问数据链路层
4、,截获相关数据。由应用程序而非上层如IP层TCP 层协议对数据过滤处理,这样就可以采集到流经网卡的所有数据。2.2Winpcap分析目前大多数操作系统都为应用程序提供了访问数据链路层的手段,它使得应用程序可以监视数据链路层上的所有分组。但遗憾的是Windows系统并没有提供内置的分组捕获机制,这一功能必须由应用系统提供,Winpcap使用BPF虚拟机(在Windows中通常称为NPF*I,充了这一机制。它提供了一整套标准的函数集,可以完整的截获网络数据包。Winpcap的体系结构如图1所示。(11数据包监听设备驱动程序可把设备驱动增加在Windows2000/XP上,它直接从数据链路层取得网络
5、数据包并不加修改地传递给运行在用户层的应用程序,也允许用户发送原始数据包。数据包监听设备驱动程序支持NPF过滤机制,可以灵活地设置过滤规则。(2低级的动态链接库(packet.d11运行在用黄兴等:基于Windows下的网络监控软件设计与开发97应用程序f User bufferI手. 1/Packet.dll -。/.。-一一士一/内核缓存区嗡篓鬈瓢l NIc驱动程序再户层内核层网络数据包网络图1Winpcap体系结构户层,把应用程序和数据包监听设备驱动程序隔离开来,使得应用程序可以不加修改地在不同的Windows系统上运行。通过packet.dll提供的能用来直接访问BPF驱动程序的包驱动
6、API,利用“raw”模式发送和接收包。不同Windows系统上的packet.dll并不相同,但它们提供了一套相同的调用接口,使库不依赖于Windows平台。(3高级系统无关库(wpcap.d11和应用程序编译在一起,它使用低级动态链接库提供的服务,向应用程序提供完善的监听口。3协议解码分析3.1数据包解码经过内核过滤后获得的数据包存放在包获取组提供的缓冲区中,此时获得的数据包是数据链路层的帧,因此需要对数据包进行解码。当主机接收到一个以太网数据帧时,数据从协议栈中由底向上升,同时去掉各层协议加上的报文首部,每层协议都要检查报文首部的协议标识.以确定接收数据的上层协议。我们把不符合条件的数据
7、包丢弃,只保留运行TCP/P协议的数据包。协议分析过程如图2所示。3.2协议分析在数据链路层,网卡的驱动程序会自动计算校验和,并取走帧中的前同步码字段和校验和字段,因此Winpcap接收的数据包仅仅是其中的帧头和载荷部分。我们从帧头数据可以得到数据包发送和接收的机器网卡的MAC地址.并TCP首部应用数据卜TCP段一IP首部TCP首部应用数据色TD黼撼掘、Jf姒搬,K,I以太网首部IP首部TCP首部应用数据以太网尾部J 陪一以太网帧461500字节一I图2数据出栈的解析过程根据帧类型来判断上一层(网络层的协议类型, IP协议为Ox0800,不是IP协议的数据包则丢弃,如果是IP协议,则调用相应的
8、解析函数,载荷部分进入下一层协议分析。图3描述了以太网数据链路层的帧格式。÷一帧头_十载荷÷十帧尾÷图3以太网数据链路层的帧格式在网络层,IP包头主要包含以下内容:版本号、首部长度、服务类型、总长度、标识符、标志、分片偏移量、寿命、协议类型、首部校验和、源IP 地址、目的IP地址。利用解析函数,对IP包头信息进行解析,根据IP包内的协议类型指明该IP 包负载的协议类型,即TCP、UDP或ICMP。最后根据传输层所用的协议类型调用相应的解析函数,载荷部分进入下一层协议分析。在传输层,TCP包头主要包含源端口、目的端口、标志位、包序列号及ACK等域。利用解析函数解析T
9、CP包,根据解析的TCP包中的源和目的端口号就可以得到该包的应用类型.比如FTP的端口为21,Telnet为23.SMTP为25,从而可以实现监控不同的应用程序。对UDP包也可作类似分析。在应用层.包含的协议很多。常用的一些应用层协议有WWW、FTP、SMTP、Telnet 等。对数据包的包头进行分析,可以确定该包中应用层的协议。同时对包头的控制域及选择项进行说明和文字描述,将协议可视化,为用户提供直观的监视手段。4系统设计与实现本系统在windows2000环境下采用Visual c+6.0工具开发。整个系统主要由数据包的捕捉模块、协议分析模块、统计分析模块组成。4.1数据包采集模块98工矿
10、自动化要获得网络上的所有数据包,必须直接访问数据链路层。目前大多数操作系统都为应用程序提供了访问数据链路层的手段,使应用程序可以监视数据链路层的所有分组。如果结合使用网络接口的混杂模式,则可以接收本地网络上的所有分组。在程序中使用了Winpcap.dll提供的一些函数设置来捕获网络设备上传输的数据。这些函数在Libpcap.h文件中都有定义。首先调用函数pcap_lookupdev(char*errbuO获得主机上的网络设备。该函数返回一个指向主机上网络设备(如网卡的指针;然后调用函数pcap_ipen_live(char木device,int snaplen,int promisc,int
11、to_ms,char*ebu0打开一个网络设备,该函数返回一个包捕获描述符pcap_t。其中, device是要打开的网络设备字符串,snaplen设定捕获的包的最大长度。promisc确定接口是否被设为混杂模式。在系统中,将promisc参数设为混杂模式,以捕捉本地网络上的所有包。to_ms设定读超时的毫秒数,ebuf用于返回错误文本。最后用函数pcapnext(pcap_t水p,struct pcap_pkthdr卑h或pcap_loop(pcap_t木p,int cnt, pcaphandler callback,u_char*user捕获网络上所有的数据包,以供应用程序分析。4.2协议
12、分析模块协议分析模块是系统的核心。根据系统的要求和用户的选择,该模块对捕获的数据包进行协议解码和分析。解码和分析主要是按照相关协议,对数据包的包头进行处理。网络协议分析系统的层次结构如图4所示。网段上的数据捕获模块圜0DBC数据源IP层数据处理模块F/圜图4网络协议分析系统的层次结构4.3统计分析模块通过对应用和协议的分析与识别以及对数据包中相应的数据进行分析,可以得到所需参数的值.从而能对该网段的运行及使用情况有一个全面的掌握和了解。5总结本文根据以太网中同一网段上的数据包以广播方式发送的原理,利用Winpcap开发包,通过将网卡设为混杂模式,采集数据包,然后利用解析函数对采集到的数据包进行
13、多种协议族的底层和高层协议的解析,从而实现对网络进行实时监视的功能。Winpcap功能强大,如果需要的话,可以按照自己的意图构造帧,直接写向数据链路层发送到以太网上。在某种程度上不光可以监视也可以控制本地网上的活动。参考文献:1.庄春兴,彭奇志.基于Winpcap的网络嗅探程序设计.计算机与现代化,2002,52.Fulvio Risso,Loris Degianni.Development of an Architecture for Packet Capture and Network Traffic AnalysisDB/OL.http:/netgroup2serv. pohto.it/winpcap.2000050213
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生产科科长考试题及答案
- 生理学输血试题及答案
- 瑞昌小学毕业考试题目及答案
- 辅警制度培训课件
- 2026 年初中英语《语法填空》专项练习与答案 (100 题)
- 2026年深圳中考语文阅读提分专项试卷(附答案可下载)
- 游戏题目及答案大全
- 2026年深圳中考数学中等生提分试卷(附答案可下载)
- 基本逻辑考题题库及答案
- 2026年深圳中考历史考场实战模拟试卷(附答案可下载)
- 2026年春苏教版新教材小学科学二年级下册(全册)教学设计(附教材目录P97)
- 2026年基因测序技术临床应用报告及未来五至十年生物科技报告
- 服装销售年底总结
- 文物安全保护责任书范本
- 风机系统巡检内容及标准
- 新生儿高血糖护理课件
- 热食类食品制售管理制度
- 香精概论第四章-芳香疗法课件
- 车辆考核制度6篇
- JJF 1487-2014超声波探伤试块校准规范
- GB/T 39253-2020增材制造金属材料定向能量沉积工艺规范
评论
0/150
提交评论