陶國喜
(黃岡職業(yè)技術(shù)學院 黃岡 438002)
隨著無線技術(shù)的進一步發(fā)展,Ad Hoc網(wǎng)絡以其方便靈活的特點越來越受到人們的重視,關(guān)于該網(wǎng)絡上的路由協(xié)議及其性能的評價也成為了當前的一個研究熱點。Ad Hoc網(wǎng)絡是一種不需要任何提前給定的基礎(chǔ)設(shè)施就能進行組網(wǎng)的網(wǎng)絡形式。為了實現(xiàn)網(wǎng)絡節(jié)點之間的通訊,IETF的MANET小組給出了多種可以組成移動Ad Hoc網(wǎng)絡的路由協(xié)議,如DSR、AODV、DSDV和TORA等。當前已經(jīng)有很多人針對這些協(xié)議做了大量的性能分析和研究。
一般認為,沒有基礎(chǔ)設(shè)施的網(wǎng)絡出現(xiàn)在20世紀70年代,在最初開發(fā)報文交換技術(shù)(后來發(fā)展成因特網(wǎng))不久,美國國防部高級研究規(guī)劃署(DARPA)資助了一項特別的研究即分組無線網(wǎng)絡(Packet RadioNetwork),即讓報文交換技術(shù)在不受固定或有線的基礎(chǔ)設(shè)施限制的環(huán)境下運行。90年代中期,隨著一些技術(shù)的公開,Ad Hoc網(wǎng)絡開始成為移動通信領(lǐng)域一個公開的研究熱點。90年代以來,移動Ad Hoc網(wǎng)絡的研究在世界范圍內(nèi)方興未艾,已經(jīng)從無線通信領(lǐng)域中的一個小分支逐漸擴大到相對較獨立的領(lǐng)域。無論在國際上,還是在區(qū)域上(歐洲和亞洲等地區(qū)),周期性的Ad Hoc網(wǎng)絡學術(shù)會議日益增多。目前,路由協(xié)議的研究仍然是Ad Hoc網(wǎng)絡成果最集中的部分。研究Ad Hoc網(wǎng)絡的相關(guān)技術(shù),以適應未來高技術(shù)民用和軍事發(fā)展的需要,這項研究不僅具有重要的社會和經(jīng)濟意義,也具有十分重要的戰(zhàn)略意義。
動態(tài)源路由協(xié)議(DSR)中,每一個被傳輸?shù)陌紨y帶一個到達目的地所必經(jīng)的節(jié)點的完整序列,即要求發(fā)送者知道到達目的節(jié)點的完整路徑,這個特性就是源路由。DSR協(xié)議就是采用了這種源路由的方法,將路徑信息直接記錄在每一個包中。此協(xié)議由兩個基礎(chǔ)過程組成:(1)路由發(fā)現(xiàn)過程(2)路由維護過程。其中路由發(fā)現(xiàn)和路由維護都是按需的(on-demand),按需的路由發(fā)現(xiàn)是只有當將發(fā)送一個包到某個節(jié)點但是在路由緩存中沒有找到到達該目的節(jié)點的路由時才發(fā)起一個路由發(fā)現(xiàn)。路由發(fā)現(xiàn)過程是從源端以廣播的方法來動態(tài)發(fā)現(xiàn)路徑。按需的路由維護過程主要的工作是根據(jù)路由信息來通知各個節(jié)點整個網(wǎng)絡拓撲的變化讓節(jié)點更新路由緩存。當節(jié)點使用某一條路徑的過程當中,就靠著路由維護機制對該路徑的正確性進行監(jiān)控,當路由維護探測到正在使用的路徑出現(xiàn)問題時,路由發(fā)現(xiàn)過程就可能被啟動,以發(fā)現(xiàn)新的正確路徑。
1、 Windows網(wǎng)絡協(xié)議架構(gòu)
Windows操作系統(tǒng)的總體架構(gòu)分為兩個層次,上面的為應用層,下面的為核心層。其結(jié)構(gòu)如表3-1所示:
這種分層結(jié)構(gòu)可以實現(xiàn)代碼共享,還可以實現(xiàn)安全保護。因為像協(xié)議驅(qū)動程序之類的程序?qū)Τ绦虻膱?zhí)行效率和代碼的嚴謹性、強壯性要求都非常高,一旦程序出問題就可能使系統(tǒng)癱瘓,因此將操作系統(tǒng)分為兩層,可以分別賦予她們不同的操作權(quán)限。
2、 Passthru對DSR分組操作
(1)Passthru接收DSR包
Passthru通過ProtocolReceivePacket函數(shù),從低層NIC驅(qū)動程序以完整數(shù)據(jù)包形式接收內(nèi)入數(shù)據(jù),該數(shù)據(jù)包由NDIS_PACKET類型的包描述符指定,也能夠通過將內(nèi)入數(shù)據(jù)指示給ProtocolReceive函數(shù),并將數(shù)據(jù)復制到中間層驅(qū)動程序提供的數(shù)據(jù)包中。下邊界面向連接的中間層驅(qū)動程序總是調(diào)用ProtocolCoReceivePacket函數(shù),從低層NIC驅(qū)動程序接收數(shù)據(jù)作為一個完整的數(shù)據(jù)包。所以本論文處理動態(tài)源路由(DSR)分組是放在ProtocolReceivePacket函數(shù)里,先對分組進行判斷,然后針對不同的分組根據(jù)動態(tài)源路由算法做不同的處理,最后把處理后的分組提交給上層程序,在程序里數(shù)據(jù)分組體現(xiàn)的是數(shù)據(jù)包描述符Packet,數(shù)據(jù)包描述符記載著數(shù)據(jù)分組所在內(nèi)存的地址的地址,Packet指示著buffer的地址,而buffer指示著數(shù)據(jù)包所在內(nèi)存的地址PacketContent,關(guān)鍵的程序代碼略。
表3-1 Windows操作系統(tǒng)總框架
(2)Passthru發(fā)送DSR包
在Passthru截獲網(wǎng)絡數(shù)據(jù)包函數(shù)里的必須建立一個包描述符(packet)指示要傳輸?shù)臄?shù)據(jù),并且在協(xié)議層之間傳遞數(shù)據(jù)時,需要添加不同的協(xié)議頭。此外,在DSR協(xié)議中,IP層利用路由緩存來解析目標IP地址的路由。對每個可從路由表中找到路由的目標IP地址,路由表返回一個DSR_SOURCE_ROUTE_ENTRY數(shù)據(jù)結(jié)構(gòu)來描述達到目的節(jié)點路由的入口,然后通過入口得到到達目的節(jié)點的源路由,如果在路由表中沒有找到到達目的節(jié)點的路由,則發(fā)起一個路由發(fā)現(xiàn)來偵探到達目的節(jié)點的路由。
由于動態(tài)源路由是單徑的,所以通過對Ad Hoc網(wǎng)絡的動態(tài)源路由進行擴展,即在Ad Hoc網(wǎng)絡中實現(xiàn)一種多路徑路由方法,得到一種多路徑協(xié)議稱為MSR(Multi-path Source Routing)。MSR是在DSR基礎(chǔ)上改進而成的,MSR對DSR的主要改進就在于使用多徑源路由和負載平衡,同時使用MSR只需對DSR的路由選擇機制進行相應的修改而可以直接使用DSR的路由發(fā)現(xiàn)和路由維護機制。
隨著無線Ad Hoc網(wǎng)絡的進一步發(fā)展,人們對于網(wǎng)絡協(xié)議的性能研究已經(jīng)不在滿足于仿真手段,而是要求在實際的系統(tǒng)中去實現(xiàn)并通過實際測量來評價協(xié)議的性能好壞,因此,路由協(xié)議的研究將會越來越受到人們的重視。
[1]劉元安.《Ad Hoc網(wǎng)絡中的路由算法》[M].北京郵電大學報,2004年.
[2]朱雁輝.《Windows防火墻與網(wǎng)絡封包截獲技術(shù)》[M].電子工業(yè)出版社,2002年.