網絡驅動應用開發

關鍵詞 DDK  NDIS  TCP/IP
    

       本文主要講的是使用Microsoft提供的DDK(Windows Driver Development Kit )來開發基於網絡應用包括數據包抓取,過濾,及其防火牆實現。同時涉及到其他方面如VPN,VLAN,NAT方面的應用有興趣的朋友可以參考相關文檔。在這裏闡述的是基於 XP環境下開發的。使用Windows Driver Development Kit XP. 其DDK應用的方面還包括USB驅動,文件系統驅動,流煤體方面的等。他們都是基於內核模式的驅動。

首先簡要介紹下各個工具及其作用如下:
     1 Windows Driver Development Kit for XP主要用來編寫內核模式驅動。在以下我們就用DDK來簡稱。Microsoft DDK提供的有基於Windows98,Windows 2000 WindowsXP 平臺的版本。適合於不同系統環境下的開發。他們之間幾乎不做改動,實現原代碼兼容的跨越平臺性,只要在不同環境下,重新編譯既可。詳細描述參考相關的DDK Doc.

    2 NDIS 它的英文全稱爲 Network Driver Interface Specify(網絡驅動接口標準)。是Microsoft定義的一套關於網絡方面驅動開發的接口標準。開發者使用它,可以開發出需要的網絡應用,比如防火牆,包過濾 數據加密,VPN,VLAN等應用。在一般的包過濾的網絡應用軟件中,它使用的是winsocket的接口來實現。但是它的缺點是不能過濾所有的。防火牆也是如此。通過NDIS提供的接口,它可以編寫基於內核的驅動。來實現數據包抓取。具體的原理請有興趣的朋友參考 NDIS的相關部分。我們在以下的文章介紹中會給出實際的事例來實現低層的數據包過濾等。如卡巴7.0在安裝後,在網絡協議中使用了NDIS的 Intermediate Driver中間層過濾驅動。

    3 TCP/IP協議,我想這個就不用我在此多敘述了。對整個協議族的瞭解,每層數據封裝的格式,都有個比較清楚的瞭解。是爲我們後邊實現相關數據結構,極其Packet的解析重中之重。

    4 數據結構主要用來定義操作過程中需要用到的數據結構。如鏈表,堆棧等

    5 C language,VC6.0,C++的熟悉。C主要用來編寫內核驅動,以便實現平臺的移植性。VC6.0主用用來開發與用戶接口部分。

    6 Windows系統體系結構,操作系統基礎理論。分層驅動結構,驅動的體系結構都有大致的瞭解。

在此,我們把開發需要的大部分需要的重點極其相關技術都已經介紹拉。以下我們會深入的介紹,並通過具體的一個Sample來貫穿我們的整個開發過程。並對每個細節部分涉及到的其他方面的知識,技術都會做比較詳細的介紹與分析。
我們會在接下來不段的深入探索其中的原理極其實現,如果你做好了準備或者有興趣可以隨時關注。由於時間和工作的需要,有可能在文章結構,邏輯上有些不是很盡人意的地方,望多多包含。同時讓我們一起探討,互相學習。同時有很多闡述不對的地方望大家能提出,批評指正。


Msn:[email protected] 
 

發佈了24 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章