Winpcap 原理詳細介紹

winpcap(windows packet capture)是windows平臺下一個免費,公共的網絡訪問系統。開發winpcap這個項目的目的在於爲win32應用程序提供訪問網絡底層的能力。它提供了以下的各項功能:

  1. 捕獲原始數據報,包括在共享網絡上各主機發送/接收的以及相互之間交換的數據報;
  2. 在數據報發往應用程序之前,按照自定義的規則將某些特殊的數據報過濾掉;
  3. 在網絡上發送原始的數據報;
  4. 收集網絡通信過程中的統計信息。

winpcap的主要功能在於獨立於主機協議(如TCP-IP)而發送和接收原始數據報。也就是說,winpcap不能阻塞,過濾或控制其他應用程序數據報的發收,它僅僅只是監聽共享網絡上傳送的數據包。因此,它不能用於QoS調度程序或個人防火牆。

目前,winpcap開發的主要對象是windows NT/2000/XP,這主要是因爲在使用winpcap的用戶中只有一小部分是僅使用windows 95/98/Me,並且M$也已經放棄了對win9x的開發。因此本文相關的程序T-ARP也是面向NT/2000/XP用戶的。其實winpcap中的面向9x系統的概念和NT系統的非常相似,只是在某些實現上有點差異,比如說9x只支持ANSI編碼,而NT系統則提倡使用Unicode編碼。

Wincap有三部分組成:一個數據包監聽設備驅動程序,一個低級的動態連接庫和一個高級的靜態連接庫。數據包監聽設備驅動程序直接從數據鏈路層取得網絡數據包不加修改地傳遞給運行在用戶層的應用程序,他在不同的WINDOWS系統下是不同。數據包監聽設備驅動程序支持BPF過濾機制,可以靈活地設置過濾規則。低級的動態鏈接庫運行在用戶層,他把應用程序和數據包監聽設備驅動程序隔離開來,使得應用程序可以不加修改地在不同的WINDOWS系統上運行。高級的靜態鏈接庫和應用程序編譯在一起,他使用低級動態鏈接庫提供的服務,嚮應用程序提供完善的監聽接口。

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