欢迎来到天天文库
浏览记录
ID:50030832
大小:1.33 MB
页数:77页
时间:2020-03-07
《Windows网络编程 教学课件 作者 罗莉琴 詹祖桥 第9章.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Windows网络编程实用教程授课教师:职务:第9章基于WinPcap技术的网络数据包捕获、过滤和分析技术课程描述本章介绍基于WinPcap技术的网络数据包捕获、过滤和分析技术。如果在网络出口位置对网络中的数据包进行捕获和分析,就可以统计出哪个IP地址的流量最大、这些流量都是基于哪些协议和应用的、产生这些流量的时间等,有了这些“铁证”,对违规行为进行管理也就变得简单多了。本章知识点9.1WinPcap技术基础9.2下载和安装WinPcap开发包9.3在VisualC++中使用WinPcap技术9.1WinPcap技术基础9.1.1WinP
2、cap的体系结构9.1.2NIC驱动器和NDIS9.1.3网络组包过滤(NPF)模块9.1.4捕获数据包的原理和步骤9.1.1WinPcap的体系结构WinPcap是WindowsPacketCapture的缩写,即Windows平台下的网络数据包捕获库。它可以独立于TCP/IP协议发送和接收原始数据包,其主要功能如下:绕开网络协议栈捕获网络数据包,支持远程数据包捕获功能。在数据包发送到应用程序之前,按照指定的规则实现核心层数据包过滤。在网络上发送原始数据包。收集网络通信过程中的统计信息。WinPcap体系结构WinPcap的体系结构包含
3、3个层次WinPcap的体系结构包含3个层次,即网络、核心层和用户层。网络:代表网络中数据包。核心层:其中包含NPF模块和NIC驱动器。NPF(NetgroupPacketFilter,网络组包过滤)是WinPcap的核心部分,它用于处理网络上传输的数据包,并对用户级提供捕获、发送和分析数据包的能力;NIC(NetworkInterfaceCard,网络适配器)驱动器直接管理网络接口卡,NIC驱动器接口可以直接从硬件控制处理中断、重设NIC、暂停NIC等;NDIS(NetworkDriverInterfaceSpecification,网
4、络驱动接口规范)是定义网络适配器和协议驱动(TCP/IP实现的)之间的通信的标准。用户层:其中包含用户代码以及wpcap.dll和packet.dll两个动态链接库。以简洁方式来描述WinPcap体系结构9.1.2NIC驱动器和NDIS网络接口卡和NIC驱动器中间层驱动器传输驱动器或者协议驱动器1.网络接口卡和NIC驱动器NIC驱动器可以直接管理网络接口卡。它的下端接口与硬件关联,而其上端接口允许高层向网络中发送数据包、处理中断、重置网络适配器、中止网络适配器以及查询和设置驱动器的操作属性。NIC驱动器可以是微端口,也可以是传统的完全NI
5、C驱动器。微端口仅实现硬件指定的、用于管理网络适配器的必要操作,包括在网络适配器上发送和接收数据。大多数最低层NIC驱动器的操作(例如同步操作)都是由NDIS操作的。微端口不会直接调用操作系统例程,NDIS是微端口访问操作系统的接口。微端口将数据包传送到NDIS,而NDIS确保这些数据包会传送给正确的网络协议。完全NIC驱动器用于执行硬件指定的操作以及所有由NDIS完成的同步和队列操作。2.中间层驱动器中间层驱动器接口位于高层驱动器(例如协议驱动器)和一个微端口之间。对于高层驱动器而言,中间层驱动器就像微端口一样;而在微端口看来,中间层驱
6、动器就像是协议驱动器。一个中间层协议可以在另一个中间层驱动器之上,尽管这种分层方法可能给系统性能带来副作用。开发中间层驱动器的主要原因是实现已有传统协议驱动器和微端口之间的介质转换,这样就可以管理协议驱动器不知道的新介质类型的网络适配器。例如,中间层驱动器可以将LAN协议转换为ATM协议。中间层驱动器无法与用户模式应用程序进行通信,而只能与其他NDIS驱动器通信。3.传输驱动器或者协议驱动器协议驱动器用于实现网络协议栈,例如IPX/SPX或者TCP/IP,它可以为网络适配器提供服务。协议驱动器为其上层的应用程序层的客户端提供服务,并且与其
7、下层的NIC驱动器或者中间NDIS驱动器相连。NPF是协议驱动器的一种实现。从性能的角度来看,这并不是最佳的选择。但它允许独立于MAC层完全访问裸流量。9.1.3网络组包过滤(NPF)模块1.数据包的捕获和过滤捕获数据库是WinPcap的核心技术。在捕获时,驱动器使用网络接口嗅探数据包,并把它们完整地传送到用户层应用程序。可以看到,捕获数据包时使用了两个组件,即过滤器和核心缓冲区。2.监测和统计NPF中包含一个可编程的监测模块,它可以对网络流量进行简单的统计和计算。不需要把数据包复制到用户层应用程序,只要简单地接收和显示从监测引擎获得的结
8、果即可收集到统计信息。不需要捕获数据包,也就避免了捕获过程中可能耗费的CPU和内存资源。监测引擎由一个带有计数器的分类器构成。NPF中的一个过滤引擎对数据包进行分类,没有被过滤掉的数据会进入计
此文档下载收益归作者所有