天天看點

WinPcap 中文技術文檔(4.1.2) 第一章

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.  附注

繼續閱讀