WinPcap

什麼是WinPcap

WinPcap是一個基於Win32平臺的,用於捕獲網絡數據包並進行分析的開源庫.


大多數網絡應用程序通過被廣泛使用的操作系統元件來訪問網絡,比如sockets。  這是一種簡單的實現方式,因爲操作系統已經妥善處理了底層具體實現細節(比如協議處理,封裝數據包等等),並且提供了一個與讀寫文件類似的,令人熟悉的接口。 


然而,有些時候,這種“簡單的方式”並不能滿足任務的需求,因爲有些應用程序需要直接訪問網絡中的數據包。也就是說,那些應用程序需要訪問原始數據包,即沒有被操作系統利用網絡協議處理過的數據包。


WinPcap產生的目的,就是爲Win32應用程序提供這種訪問方式; WinPcap提供了以下功能 


捕獲原始數據包,無論它是發往某臺機器的,還是在其他設備(共享媒介)上進行交換的 

在數據包發送給某應用程序前,根據用戶指定的規則過濾數據包 

將原始數據包通過網絡發送出去 

收集並統計網絡流量信息 

以上這些功能需要藉助安裝在Win32內核中的網絡設備驅動程序才能實現,再加上幾個動態鏈接庫DLL。


所有這些功能都能通過一個強大的編程接口來表現出來,易於開發,並能在不同的操作系統上使用。這本手冊的主要目標是在一些程序範例的幫助下,敘述這些編程接口的使用。   如果您現在就想開始摸索這些功能,您可以直接進入 WinPcap用戶手冊.


哪些程序在使用WinPcap

WinPcap可以被用來製作許多類型的網絡工具,比如具有分析,解決紛爭,安全和監視功能的工具。特別地,一些基於WinPcap的典型應用有:


網絡與協議分析器 (network and protocol analyzers) 

網絡監視器 (network monitors) 

網絡流量記錄器 (traffic loggers) 

網絡流量發生器 (traffic generators) 

用戶級網橋及路由 (user-level bridges and routers) 

網絡***檢測系統 (network intrusion detection systems (NIDS)) 

網絡掃描器 (network scanners) 

安全工具 (security tools) 

什麼是WinPcap做不到的

WinPcap能 獨立地 通過主機協議發送和接受數據,如同TCP-IP。這就意味着WinPcap不能阻止、過濾或操縱同一機器上的其他應用程序的通訊:它僅僅能簡單地"監視"在網絡上傳輸的數據包。所以,它不能提供類似網絡流量控制、服務質量調度和個人防火牆之類的支持。 


本手冊的目標

本手冊的目的是提供一個全面而簡單的方法來讓您瀏覽WinPcap的設計文檔。你會找到兩個主要部分: WinPcap用戶指南 和 WinPcap核心資料.


第一部分內容主要適合那些需要利用WinPcap開發應用程序的編程人員: 它包含了WinPcap API的所有函數和數據結構的信息, 說明部分解釋瞭如何編寫一個數據包過濾器,而另一個頁面則解釋瞭如何將它包含到應用程序中。一個教程也提供了若干個程序範例,您可以使用它來循序漸進地學習WinPcap API的基本使用方法,不過有時候,它也會提供一些高級應用的代碼片斷。 


第二部分內容主要爲WinPcap的開發、維護人員,以及那些希望瞭解系統工作原理的人士而準備。它描述了WinPcap的主要設計方法,並解釋了它是如何工作的。另外,它闡述了完整的設備驅動的數據結構及源代碼,packet.dll的接口以及底層的WinPcap的API。如果您想了解WinPcap內部發生了什麼,或者您想去擴展它,那麼請您閱讀此部分內容。 


附加文檔

最新最及時的文檔,請訪問  http://www.winpcap.org/docs/ 


特別地,如果您對WinPcap的系統結構和核心內容感興趣,我們建議您閱讀下列內容


Fulvio Risso, Loris Degioanni, An Architecture for High Performance Network Analysis, Proceedings of the 6th IEEE Symposium on Computers and Communications (ISCC 2001), Hammamet, Tunisia, July 2001 

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

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

術語

爲了文獻的一致性, 我們會使用術語 數據包(packet) ,儘管用術語 幀(frame) 會更加準確,因爲捕獲過程是在數據鏈路層完成的,並且數據鏈路首部也包含在被捕獲的數據中。 

本文檔中使用的術語 Win9x 表示與Windows95同一體系的微軟操作系統,如Windows 98和Windows ME。 術語 WinNTx 表示基於NT內核的操作系統,從Windows NT 4開始,包含了Windows 2000,Windows XP,Windows Server 2003等 

附註

我們主要會致力於開發基於Windows NT/2000/XP/2003版本的WinPcap及其相關文檔。這一選擇是基於這樣一個事實,大多數WinPcap用戶都工作在NTx系統上,而且9x技術已經被微軟放棄。此外,我們假定,使用PC機來完成類似網絡分析這樣高級任務的用戶,都會安裝高級的操作系統。鑑於這個原因,本文檔將參考WinNTx的驅動和API。Win9x版本在概念上很類似,不過有時在執行上有些不同。在有些場合,Win9x版本的API缺少一些高級功能。這本手冊會給出一個完整的API描述,並會指出那些只有WinNTx纔得到支持的函數。 

wKioL1gPCQSDF0EtAAAgU_wFZNg662.png-wh_50

wKiom1gPCQXBkxz3AAEzYRDQhIE932.png-wh_50

wKioL1gPCQXz4ky5AAAwK8DPuaI089.png-wh_50


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章