下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、常见的包捕获机制研究摘要:包过滤机制是对所捕获到的数据包根据用户的要求进展挑选,最终只把满足过滤条件的数据包传递给用户程序。重点对两种常见的包捕获机制进展了分析。关键词:包捕获;bpf;npf包捕获机制是依赖于操作系统的,从广义的角度上看,一个包捕获机制包含三个主要部分:最底层是针对特定操作系统的包捕获机制,最高层是针对用户程序的接口,第三部分是包过滤机制。不同的操作系统实现的底层包捕获机制可能是不一样的,但从形式上看大同小异。数据包常规的传输途径依次为网卡、设备驱动层、数据链路层、网络层、传输层、最后到达应用程序。而包捕获机制是在数据链路层增加一个旁路处理,对发送和接收到的数据包做过滤、缓冲
2、等相关处理,最后直接传递到应用程序。1常见的包捕获机制不同的操作系统上有不同的包捕获机制:suns系统中有nit接口;在de的uhrix环境下有uhrixpaketfilter;在sii的irix中有snp;linux系统为用户提供了一种工作在数据链路层的套接字skpaket;bsdunix系统下的bpf(bsdpaketfilter);在inds平台上,近几年也陆续有多种捕获应用工具面世,如netnnapi,pausa等,与bpf不同的是,这些产品是商业性质的。inpap那么是ind平台上为数不多的功能强大且可免费获得的包捕获接口软件之一,来源于bsd的网络数据包过滤器npf是inpap的核
3、心部分。bpf和npf是效率较高、应用广泛的包捕获机制,在下一节的包捕获过滤模型中将对其进展详细介绍,常用的包捕获机制如下表所示:2包捕获过滤模型通常,网络信息中会存在假设干用户不关心的数据,或者称为垃圾数据,假设此所占比重较大,将严重影响捕包系统的工作效率,造成系统丢包。为理解决此问题,人们引入了包过滤机制,包过滤机制在包捕获机制中占有重要的地位。实际上在理论研究和实际应用中,包捕获和包过滤从语意上并没有严格的区分,关键在于认识到捕获数据包必然有过滤操作。unix和inds系统下的包捕获过滤机制分别是bpf和npf,由于这样基于软件的数据包捕获机制便于发布且灵敏性强,晋级方便,因此,许多提供
4、网络监视和分析的专业软件都是使用这种方式来实现的。我们之所以研究bpf和npf的捕获过滤模型,就是为了通过深化地理解和运用模型的工作机制进展数据包的采集和过滤,从而开发出高效可靠的网络协议分析系统。下面将详细介绍这两种机制的参考模型。2.1bpf参考模型bpf(berkeleypaketfilter)是基于bsd系统的包过滤模型,它使用了新的基于存放器的过滤算法,效率比旧的算法进步了20倍,它的缓存机制对整体效率的进步有很大作用。bpf有两个主要部件,网络包监视(netrktap)和网络包过滤(paketfilter)。netrktap从网络设备驱动程序中搜集数据拷贝并转发给过滤器。过滤器决定
5、是否接收该数据包,以及接收该复制数据包的哪些部分(slie技术)。bpf过滤器的过滤功能是通过虚拟机(pseudahine)执行过滤程序来实现的。过滤程序(filterprgra)实际上是一组过滤规那么。过滤规那么由用户定义,以决定是否接收数据包和需要接收多少数据。过滤过程可描绘如下:当数据包到达网络接口时,链路层驱动程序将其提交到系统协议栈;假设bpf正在此接口监听,驱动程序将首先调用bpf,bpf将数据包发送给过滤器,过滤器对数据包进展过滤,并将数据提交给过滤器关联的上层应用程序;然后链路层驱动将重新获得控制权,将数据包提交给上层的系统协议栈处理。系统主要由三部分组成:netrktap,b
6、pf和libpap。netrktap监视共享网络中的所有包,bpf用过滤条件匹配所有由netrktap监视到的包,假设匹配成功那么将之从网卡驱动的缓冲区中复制到核心缓冲区。libpap是一个系统无关、采用分组捕获机制的分组捕获函数库,用于访问数据链路层。这个库为不同的平台提供了一致的编程接口,在安装了libpap的平台上,以libpap为接口写的程序、应用,可以自由的跨平台使用。大多数监听程序都使用它和内核部分进展通信。2.2npf参考模型inpap是针对in32平台上的抓包和网络分析的一个架构,npf那么是inpap的重要组成部分之一。npf的主要思想就是来源于unix中的bpf,它的设计目
7、的是要为in32平台提供一个功能强大的开放式数据包捕获架构,使用户可以在inds环境下直接开发高性能的网络分析与管理软件,也可以把原来运行在unix系统中的许多分析工具经过简单的重新编译移植到inds中。npf作为bpf在inds环境下的演化版继承了bpf的以下重要模块:过滤器,两级缓冲(核心和用户)以及用户级的一些函数库。最底层的是网络接口,用来收发网络数据包。在捕获过程中,网络接口工作在混杂形式,接收网段中的所有数据包。数据包捕获驱动器是整个捕获栈中最底层的软件模块,它工作在系统内核层,通过ndis网络驱动程序接口标准与网络接口的驱动程序进展通信,获得网络数据包,并向高层应用程序提供来自数
8、据链路层数据的接口。npf参考模型由三个模块所组成,一个在内核级,另外两个以dll的形式处于用户级:(1)内核级的网络捕包过滤器(npf)。npf是一个经过优化的内核形式驱动器,用于对数据包进展过滤,将接收的数据包提交给用户级。npf采用循环缓冲区作为内核缓冲区,循环缓冲区就像一个队列一样,它的“头和“尾是不固定的两个指针,指针可以随着数据的进人或者复制到用户缓冲器而变动,运行过程中它会随时释放那些已复制的数据空间,通过这样的方式来保存数据包可以进步数据的存储效率。(2)数据包底层动态链接库(paket.d11)。数据包驱动程序库是与libpap相兼容的一组用户级的函数库。paket.dll用于在in32平台下为数据包驱动程序提供一个公共的接口。由于不同的inds版本在用户级和内核级之间提供各不一样的接口,而paket.dll可以屏蔽这些区别,提供一个与系统无关的api,因此基于paket.dll开发的数据包截获程序可以运行于不同的in32平台而不必重新进展编译。(3)数据包高层驱动程序库(pap.dll)。pap.dll是与操作系统无关的,它含有诸如产生过滤器、用户级缓冲以及包注入等高级功能。它提供了更加高层、抽象的函数,同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2031年中国标准紫铜管行业投资前景及策略咨询研究报告
- 2025至2031年中国定中心螺钉行业投资前景及策略咨询研究报告
- 大气污染源解析技术-第1篇-深度研究
- 工程监理法律法规研究-深度研究
- 二零二五年度绿色家居装饰装修工程承包合同
- 2025年度高管离职补偿与聘用关系解除合同
- 2025年度防火门安装与消防系统维护服务合同
- 2025年度影视短剧拍摄制作与独家播出合同
- 2025年外卖美食分期付款合同
- 2025年保密合同法律协议
- 九年级上册-备战2024年中考历史总复习核心考点与重难点练习(统部编版)
- 健康指南如何正确护理蚕豆病学会这些技巧保持身体健康
- 老客户的开发与技巧课件
- 2024建设工程人工材料设备机械数据分类和编码规范
- 26个英文字母书写(手写体)Word版
- GB/T 13813-2023煤矿用金属材料摩擦火花安全性试验方法和判定规则
- DB31 SW-Z 017-2021 上海市排水检测井图集
- 日语专八分类词汇
- GB/T 707-1988热轧槽钢尺寸、外形、重量及允许偏差
- GB/T 33084-2016大型合金结构钢锻件技术条件
- 高考英语课外积累:Hello,China《你好中国》1-20词块摘录课件
评论
0/150
提交评论