APP下载

Winpcap的体系结构与性能研究*

2012-02-28杨虹,陈威

网络安全与数据管理 2012年9期
关键词:用户功能实验

杨 虹,陈 威

(重庆邮电大学,重庆 400065)

网络分析软件通常依赖底层调用抓取数据包,进行数据包监视或流量分析等。大多数的Unix系统都提供这些功能(至少是数据包抓取),而Windows提供的这些功能却不令人满意。Windows提供了一些与各种内核组件相关的API,但这些API存在严重的缺陷,如并不是所有的Netmon API都可用,而且其扩展存在很多限制。IP过滤驱动程序(IP filterdriver)只存在 Windows 2000及以上系统中,而且它只支持IP协议,虽然它能够控制和丢弃数据包但却不能监测和构造数据包。PCAUSA提供了一个商业产品,该产品含有数据包捕获和BPF兼容的过滤器,然而它的用户接口处于底层且没有提供过滤器构造这样的抽象方法。随着原本在Unix系统上的应用不断转向Windows系统,这些特性的缺失成了不可忽视的问题。

本文主要介绍一个强大可扩展的Win32平台的网络监听框架系统Winpcap的结构及其功能。该体系结构填补了Unix和Windows间网络监听能力的间隔,使得Unix应用到Windows的移植更简单,而且Winpcap把性能放在最首位,使其能满足更苛刻的需求。

1 Winpcap的体系结构

Winpcap的基本结构如图1所示,由1个过滤引擎、2个缓冲区(内核层与用户层)以及一系列供开发人员使用的组件库组成。尽管Libpcap具有稳固的结构并且功能强大,但Winpcap在结构和数据捕获上仍然有自己独到的地方,而且甚至可以认为是对Libpcap的创新。

图1 Winpacp的体系结构

Winpcap的过滤可从用户层开始(与Libpcap兼容),开发人员可以自定义包过滤条件 (如picks up all udp packets);Winpcap会把它们编译成一些虚拟指令 (如 if the packet is ip and the protocol type field is equal to 17,then return true),同时把这些虚拟指令发送到过滤引擎,并且激活这些功能。……

登录APP查看全文

猜你喜欢

用户功能实验
也谈诗的“功能”
记一次有趣的实验
做个怪怪长实验
关于非首都功能疏解的几点思考
关注用户
NO与NO2相互转化实验的改进
实践十号上的19项实验
关注用户
关注用户
如何获取一亿海外用户