總結一下WinPcap編程(基礎知識且不含代碼例程)

        Windows Sockets是Windows平臺上很成熟的編程框架吧,當時學習網絡編程入門都是接觸的套接字,確實也能夠滿足大多數網絡應用程序設計的需求,並且與Windows系統的消息、事件等機制想結合的高效的I/O處理模式。

        但是當面對更加深入的網絡數據分析和更加靈活的數據構造需求時,比如統計局域網中的流量分佈、識別特定應用的數據流以及構造滿足特殊含義的探測報文等等,由於協議棧底層細節的封裝,另加安全性的考慮,Windows操作系統對原始套接字和Sockets編程都有限制。

        WinPcap編程爲Windows環境下靈活控制數據接收和發送提供了便利的開發框架。屬於開源庫!!!(這也是我很喜歡的原因)   能夠應用於網絡數據幀的構造,捕獲和分析。

        當然,這裏還得提一下:C語言的網絡工具開發API庫有libnet、libpcap、libnids和libicmp等。    不止是伯克利實驗室的sockets編程的那些函數(我開始也是認爲就只有sockets)。

        WinPcap是Windows Packet Capture的縮寫。是linux下的libpcap移植到Windows平臺下爲實現數據幀捕獲而設計的開發框架。

        這裏說一下(乾貨和術語):WinPcap的官方主頁是www.winpcap.org    ,          下載WinPcap驅動,源代碼和開發文檔

                NPF(Netgroup Packet  Filter,網絡組幀過濾)模塊是WInPcap的核心部分

                NIC(Network Interface Card,網絡接口卡,簡稱網卡)驅動程序。

                NDIS(Network Driver Interface Specification,網絡驅動程序接口規範)是定義網卡和協議驅動(TCP/IP實現)之間的通信的標準。是Windows內核中最底層的網絡部分!!操作系統中有NDISLib或者NDISWrapper哦(我以前也不知道)。

        WinPcap包含Packet.dll和wpcap.dll兩個動態鏈接庫

        WinPcap可以獨立於TCP/IP協議棧進行原始數據幀的發送和接收,直接在網卡上捕獲原始數據幀,這樣,應用程序還可以進行數據幀的過濾,當然,也可以通過網卡直接發送原始數據幀。

       基於WinPcap的典型應用很多,很多有數據幀捕獲功能的軟件都使用了這一開源庫。   當然,它也僅僅能監視網絡上傳輸的數據幀。   不能提供類似網絡流量控制和個人防火牆類的應用開發(比較遺憾這些居然不能)。

       網絡組幀過濾模塊的功能:數據幀捕獲、監控、拷貝到磁盤、數據幀發送等。其中數據轉儲功能相比傳統的sockets的應用程序要少兩次數據的複製,效率更高。

      另外,有兩個例程的代碼分別是使用wpcap.dll編寫的UDP流量捕獲程序和基於Packet.dll實現的對原始數據幀的構造和發送。


        

       

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