WinPcap英文技术文档(4.1.2版本)的网址位于​​http://www.winpcap.org/docs/docs_412/html/main.html​​,接下来将会对该文件进行翻译,希望对大家有所帮助,有不正确的地方请多多指正,非常感谢大家的支持。


WinPcap 中文技术文档(4.1.2)


作者: The WinPcap Team


作者主页: http://www.winpcap.org


1.  介绍


本手册描述了WinPcap的编程接口及其源代码。它与完整的WinPcap核心文档一起,为编程人员提供了函数与结构的详细描述,同时也提供了几个教程和程序范例。


您可以点击页面顶部的导航链接,或者使用页面左边的树形控件来跳转到您感兴趣的内容。


本文档使用Doxygen文档系统创建,您可以登录http://www.doxygen.org 阅览相关内容。


1.1.  什么是WinPcap


WinPcap是一个基于Win32平台的开源库,用于数据包捕获和网络分析。


大多数网络应用程序通过被广泛使用的操作系统组件来访问网络,例如:sockets。使用这种方式你可以很容易的访问网络上的数据,因为操作系统已经为你妥善处理了底层具体实现细节(比如:协议处理,封装数据包等等),并且提供了一个与读写文件类似的简单接口。


然而,有些时候,这种“简单的方式”并不能满足任务的需求,因为有些应用程序需要直接访问网络中的数据包。也就是说,他们需要访问网络中的原始(没有被操作系统进行网络协议处理)的数据包。


WinPcap的目的就是为Win32应用程序提供这种访问方式;它提供了以下功能:


l  捕获原始数据包,无论它是发往某台机器的,还是在其他设备(共享媒介)上进行交换的;


l  在数据包发送给某应用程序前,根据用户指定的规则过滤数据包;


l  将原始数据包通过网络发送出去;


l  收集并统计网络流量信息;


以上这些功能需要通过设备驱动程序获得,它们安装在Win32内核中网络接口的内部,再加上几个动态链接库DLL。


所有这些功能都能通过一个强大的编程接口来表现出来,易于开发,可以在不同的操作系统上使用。本手册的主要目标是在一些程序范例的帮助下描述这些接口的使用。如果您现在就想开始探索这些功能,您可以直接进入“WinPcap用户手册”章节。


1.2.  哪些程序使用WinPcap


WinPcap编程接口已经被许多类型的网络工具使用,包括数据分析、故障排查、安全和监控等。特别的,一些基于WinPcap的典型应用有:


l  网络与协议分析器(network and protocol analyzers)


l  网络监视器(network monitors)


l  网络流量记录器(traffic loggers)


l  网络流量发生器(traffic generators)


l  用户级网桥及路由(user-level bridges and routers)


l  网络入侵检测系统(network intrusion detection systems (NIDS))


l  网络扫描器(network scanners)


l  安全工具(security tools)


1.3.  什么是WinPcap做不到的


WinPcap可以独立地通过主机协议发送和接收数据,例如:TCP-IP。这就意味着它不能阻止、过滤或操作同一机器上由其他应用程序产生的流量:它仅仅能简单地“监视”网络上传输的数据包。所以,它不能提供类似于网络流量控制、服务质量调度和个人防火墙应用程序之类的支持。


1.4.  本手册的目标


本手册的目的是提供一个完整和简单的方法,让您浏览WinPcap结构的文档。你会发现两个主要部分: WinPcap用户指南和WinPcap核心资料。


第一部分内容主要适用于那些需要使用WinPcap开发应用程序的编程人员:它包含WinPcap API导出的所有函数和数据结构的信息,这一部分解释如何编写一个数据包过滤器,而另一个页面则解释了何将它包含到应用程序中。本教程也提供了若干个程序的范例,您可以使用它来循序渐进地学习WinPcap API的基本使用方法,但是它也会提供一些高级应用的代码片断。


第二部分内容主要为WinPcap的开发者和维护人员,以及那些希望了解系统工作原理的人士而准备的。它提供WinPcap架构的通用描述,并且解释了它是如何工作的。另外,它说也明了完整的设备驱动的数据结构及源代码,Packet.dll的接口以及底层的WinPcap的API。如果您想了解WinPcap内部发生了什么,或者您需要扩展它,那么请您阅读这一部分的内容。


1.5.  附加文档


其他文档和最新的文档,我建议你请访问​​http://www.winpcap.org/docs/​​。


特别地,如果您对WinPcap的结构和核心内容感兴趣,我们建议您阅读下列的文档:


l  Fulvio Risso, Loris Degioanni, An Architecture for High PerformanceNetwork Analysis, Proceedings of the 6th IEEE Symposium on Computers andCommunications (ISCC 2001), Hammamet, Tunisia, July 2001


l  Loris Degioanni, Mario Baldi, Fulvio Risso and Gianluca Varenni,Profiling and Optimization of Software-Based Network-AnalysisApplications,  Proceedings of the 15thIEEE Symposium on Computer Architecture and High Performance Computing(SBAC-PAD 2003), Sao Paulo, Brasil, November 2003


l  Loris Degioanni, Development of an Architecture for Packet Captureand Network Traffic Analysis, Graduation Thesis, Politecnico Di Torino (Turin,Italy, Mar. 2000)


1.6.  术语


l  为了文献的一致性, 我们会使用术语“数据包(packet)”,尽管用术语“帧(frame)”会更加准确,因为捕获过程是在数据链路层上完成的,并且数据链路首部也包含在被捕获的数据之中。


l  本文档中使用的术语“Win9x”表示与Windows95同一体系的微软操作系统,例如:Windows 98和Windows ME。术语“WinNTx”表示基于NT内核的操作系统,从Windows NT 4开始,包含Windows 2000,Windows XP,Windows Server 2003等。


1.7.  附注


我们主要会致力于开发基于WindowsNT/2000/XP/2003版本的WinPcap及其相关文档。这一选择是基于这样一个事实,大多数WinPcap用户都工作在NTx系统上,而且9x技术已经被微软放弃。此外,我们假定,使用PC机来完成类似网络分析这样高级任务的用户,都会安装高级的操作系统。鉴于这个原因,本文档将参考WinNTx的驱动和API。Win9x版本在概念上很类似,不过有时在执行上有些不同。在有些场合,Win9x版本的API缺少一些高级功能。这本手册会给出一个完整的API描述,并会指出那些只有WinNTx才得到支持的函数。


​​fan_hai_ping​​