莫金旺, 蔣文芳, 趙 利
(①桂林電子科技大學 信息科技學院,廣西 桂林 541004;②桂林電子科技大學 信息與通信學院,廣西 桂林 541004)
無線網狀網(WMN)本質上屬于移動自組織網絡(Ad hoc網絡),它與后者的最大區別在于前者的用戶終端相對來說移動性較低,WMN一般不是作為一個獨立的網絡形態存在,而是因特網核心網的無線延伸。通常,會有一個或多個網關節點與因特網高速相連,家庭或辦公室等用戶通過自身的無線接入點與網關節點相連。對于網關節點信號覆蓋之外的區域,用戶節點負責來往業務的中繼或轉發,從而實現大范圍的廉價和快速信號覆蓋。顯然,這種方式的組網省去了網絡建設初期昂貴的基礎設施建設投資,比傳統的點到多點方式的無線接入有很多無可比擬的優點[1]。
自組網路由協議是目前無線網絡研究的熱點之一,互聯網工程任務組(IETF)特別成立了移動自組織網絡工作組(MANET工作組)來研究無線自組網中的路由協議。路由協議是自組網體系結構中不可或缺的重要組成部分,其主要作用是發現和維護路由。近年來人們對自組網技術持續增長的興趣導致了許多路由協議方案的提出[2]。現對目前幾種典型的路由協議的性能進行了仿真比較,并通過對按需平面距離矢量路由協議(AODV)吞吐量的分析,得出網絡最佳容納的節點數,具有重要的應用價值。
AODV實質上就是動態源路由協議(DSR)和目的序列距離矢量路由協議(DSDV)的綜合,它借用了DSR中路由發現和路由維護的基礎程序,及DSDV的逐跳(Hop-by-Hop)路由、順序編號和路由維護階段的周期更新機制,以DSDV為基礎,結合 DSR中的按需路由思想并加以改進。AODV有別于其他協議的最顯著的特點是路由表中每個項都使用了目的序列號,使用目的序列號可以避免環路的發送,并且很容易用編程實現。
AODV當有源節點需要和目的節點通信時,如果路由表中已經存在了對應的路由時,AODV就不會進行任何操作。當源節點需要和新的目的通信時,它就會發起路由發現過程,通過廣播路由請求(RREQ)信息來查找相應路由[3]。AODV路由建立過程如圖1所示。當源節點S1需要到目的節點S5的路由時,如果沒有到目的節點的有效路由,便在節點間建立路由。源節點S1將廣播一條RREQ消息,節點S2、S6收到RREQ分組后,首先建立一條到源節點 S1的反向路由,若節點S2、S6有到目的節點的有效路由,則向源節點S1回發路由回復路由確認(RREP)分組,否則繼續廣播RREQ分組,直到RREQ分組傳送到目的節點S5。目的節點S5收到RREQ分組后,將沿著之前建立的反向路由的路徑向源節點S1回發路由回復RREP分組,RREP沿最先到達的路徑傳回源節點,即沿S5-S7-S6-S1的路徑傳回源節點S1。當源節點S1收到該RREP分組后,從S1到S5的路由便建立了,正向路由路徑為S1-S6-S7- S5。

圖1 AODV路由建立過程
使用網絡仿真器(NS2)進行網絡模擬的基本操作流程如圖2所示,用戶首先要進行問題定義,考慮自己要模擬什么內容,大概的拓撲結構應該怎樣,是否需要對源代碼進行修改或添加等。如果需要添加或修改代碼,如圖中右邊方框中所示,有一個對NS2源碼進行修改、重新編譯和調試的過程;如果不需要修改代碼,即采用NS2已有構件即可完成模擬工作,那么用戶的主要任務就是編寫工具命令語言/具有面向對象特性的工具命令語言(Tcl/OTcl)模擬代碼,生成.tcl腳本文件,并在NS2環境下執行該腳本進行模擬,模擬程序結束后會生成相應的跟蹤文件(Trace文件),即模擬結果文件,用戶使用不同的工具對該腳本中的內容進行分析得到想要的結果圖表[4]。如果結果是所預期的,那么整個模擬過程即可順利結束,否則,應該分析問題所在,并重新考慮問題定義、源碼及工具命令語言(Tcl)腳本的修改。

圖2 NS2進行網絡模擬的基本流程
整個模擬過程主要有三個部分的工作量:①修改源代碼;②編寫Tcl模擬腳本;③分析結果。下面對這三個步驟中需要注意的問題做進一步的描述。
源碼修改:這一步只有在模擬需要修改源代碼時才進行考慮,修改源代碼是一項比較具有挑戰性的工作,這需要一定的編程和調試水平。特別需要注意的是,由于NS2是采用C++和具有面向對象特性的工具命令語言(OTcl)兩種語言編寫的,因此在修改源代碼時,需要記著修改相應的 OTcl代碼。
Tcl/OTcl模擬代碼編寫:這是NS2模擬中最重要和必不可少的一環,大部分NS2的模擬工作實際就是編寫Tcl代碼來描述網絡結構、網絡構件屬性和控制調度網絡模擬事件的啟停過程。因此,這需要對NS2中的網路構件非常熟悉。
模擬結果分析:結果分析是真正體現模擬工作成效的重要一環,模擬結果分析要求熟悉NS2的Trace文件的結構,并且能夠使用一些小工具對該結果文件進行分析以及根據分析結果數據繪制一些匯總圖表等。
由于AODV、DSR和DSDV是NS2組件庫里的自帶協議,故仿真過程直接從編寫腳本文件開始。這里使用NS2.31版本對路由協議AODV、DSR和DSDV進行了仿真比較。50個節點隨機分布在500 m×500 m的矩形區域,仿真時間為100 s,傳送固定碼率(CBR)業務, 最大移動速度為20 m/s,令節點停留時間分別為0 s,20 s,40 s,60 s,80 s,100 s進行測試。利用NS工具cbrgen.tcl生成業務場景文件, 利用NS工具setdest生成移動場景文件[5]。在NS目錄下執行命令:ns wireless.tcl,執行完后在腳本文件同一目錄下會出現wireless.tr和wireless.nam 2個文件。仿真數據結果保存在wireless.tr中,用自編的gawk程序對trace文件進行統計分析,得出相應的數據,并用matlab繪出AODV、DSR和DSDV的端到端的平均時延比較圖如圖3所示,分組投遞率比較圖如圖4所示。

圖3 端到端的平均時延比較

圖4 分組投遞率比較
節點移動速度大小反應了網絡拓撲變化快慢。從圖3可看出,對于端到端的延時,AODV和DSR的端到端平均延時高于DSDV的端到端平均延時,DSDV隨著節點停留時間的變化波動較大。從圖4可看出,AODV和DSR的分組投遞率明顯優于DSDV的分組投遞率,AODV的分組投遞率整體上高于DSR的分組投遞率。
可以看到,AODV路由協議具有擴展性好,增加節點,擴大場景來說相對簡單,而且分組投遞率高等綜合性能較好的優點。通過綜合比較,結合課題的具體應用環境,決定采用AODV路由協議。
網絡的吞吐量是網絡性能的一個重要參數,是指在不丟包的情況下單位時間內通過的數據包數量,單位是字節每秒或比特每秒。在仿真的過程中,使用不同的參數來進行測試。網絡的拓撲范圍設為1000 m *400 m,傳輸帶寬為54 Mb,仿真時間為300 s ,傳送傳輸控制協議(TCP)業務。在同一仿真場景中,令節點的個數分別為2,3,4,5,6,測得網絡吞吐量如圖5所示。把網絡的節點數量設為5個,節點號從0開始,測得節點號1,2,3,4的吞吐量如圖6所示。

圖5 各節點個數對應的網絡吞吐量

圖6 各節點對應的網絡吞吐量
從圖5可看出,隨著節點個數的增加,網絡吞吐量依次在減小,當節點個數為6時,網絡吞吐量急劇減小,即網絡最佳容納的節點個數為5個。從圖6可看出,節點號1,2,3,4的吞吐量在依次減小,節點號4的吞吐量已接近0。
采用面向對象的網絡仿真工具NS2,對無線Mesh網絡中AODV、DSR和DSDV三種協議的性能進行了比較分析。當網絡拓撲變化不頻繁,網絡負載輕時,三個協議均表現出較好性能;當網絡拓撲變化加劇時,DSDV性能明顯變差,AODV與DSR性能仍保持良好,相較而言,AODV性能要更好些。最后,通過對AODV路由協議吞吐量性能的分析,得出AODV協議正確性測試時所需要的最佳節點個數,研究成果對無線Mesh網絡的設計和開發具有重要的應用價值。
[1] AKYILDIZ I F, WANG X D.A Survey on Wireless Mesh Network[J].IEEE Communications Magazine,2005,43(09):23-30.
[2] 秦裕斌,陳建華,黃曉.無線Mesh網絡技術及其應用[J].通信技術,2009,42(12):152-154.
[3] 謝世歡,郭偉.實現Ad-hoc按需路由協議的關鍵技術[J].計算機應用,2006,26(03):11-13.
[4] 黎方正.基于NS2的航空自組網節點移動模型仿真研究[J].通信技術,2009,42(01):186-188.
[5] 劉勃蘭,宋玲.基于NS2的移動自組網路由協議的仿真與實現[J].計算機工程與應用,2007,43(06):162-164.