?

AdHoc網絡中AODV路由協議性能分析

2013-07-30 07:02李陽
中國信息通信 2013年6期
關鍵詞:仿真

李陽

摘 要 Ad Hoc 網絡(Mobile Ad Hoc Network,MANET)沒有任何的固定基礎設施,主機通過彼此無線電波通信,在軍事通信、野外通信、應急通信等領域有著廣泛的應用前景。

本文主要介紹用于Ad Hoc網絡的AODV路由協議的原理,利用NS2構建一個網絡模擬場景,對AODV協議的性能進行測試、分析。

從仿真來看,在相同的移動速度下,DSR和AODV協議的丟包率明顯低于DSDV協議,特別是在網絡拓撲較穩定時,DSR和AODV的丟包率相當低(接近0%),而DSDV的丟包率最高。隨著移動速度的增加,各路由協議的端到端平均時延都在增加,其中DSR的增加幅度最大;在相同速度下,3個協議中DSDV具有最小的端到端時延,而DSR和AODV的端到端平均延遲較大。由于Ad Hoc網絡的移動性使得AODV的性能有所下降,但總體來說,路由協議的總體性能很好,即使在節點的移動的情況下,網絡分組傳輸的丟包率、平均的端對端延時都保持在較好的水平上。事實上,算法的網絡性能隨著網絡參數的設計是不同的,受多方因素的影響,它們之間的關系還有待進一步研究。在具體規劃網絡結構時,應該對AODV參數作具體的設計,以確保網絡性能的最優。

關鍵詞 Ad Hoc 路由協議 仿真 AODV

1 課題背景及開展研究的意義

Ad hoc網絡是一種自組織的無線多跳網,它不需要固定的基礎設施作支撐。路由協議是Ad hoc網絡協議棧的重要組成部分,在無線環境下Ad hoc網絡的移動特性對路由協議提出了更高的要求。

(1)網絡中所有節點都是移動的,并且都能以任意方式動態地保持與其他節點的聯系,網絡節點可以隨處移動,也可以隨時開機和關機,這些都會使網絡的拓撲結構隨時發生變化。

(2)兩個無法直接進行通信的終端用戶可以借助其他節點進行分組轉發,每個移動節點兼備路由器和主機兩種功能。

(3)Ad hoc網絡通過分組轉發完成數據的交換,需要路由協議進行分組轉發決策。無線信道變化的不規則性和節點的移動、加入、退出都會引起網絡拓撲結構的動態變化。從而路由協議完成監控網絡拓撲結構的變化、路由信息的交換、尋找目的節點、產生、維護并優化路由,保持網絡數據傳輸的暢通。

Ad hoc網絡的路由協議大致可以分為先驗式(Proactive)路由協議(如:DSDV)、反應式(Reactive)路由協議(如:DSR/ /TORA/ARP)以及混合式路由協議(如:AODV)。

先驗式路由協議又稱為表驅動路由協議(Table-driven),在這種路由協議中,每個節點維護一張包含到達其它節點的路由信息的路由表。當檢測到網絡拓撲結構發生變化時,節點在網絡中發送更新消息,收到更新消息的節點將更新自己的路由表,以維護一致的、及時的、準確的路由信息,所以路由表可以準確地反映網絡的拓撲結構。源節點一旦要發送報文,可以立即獲得到達目的節點的路由。因此這種路由協議的時延較小,但是路由協議的開銷較大。

反應式路由協議,又稱為按需路由協議(On-Demand Routing),是一種當需要發送數據時才查找路由的路由算法。在這種路由協議中,節點不需要維護及時準確的路由信息,當向目的節點發送報文時,源節點才在網絡中發起路由查找過程,找到相應的路由。與先驗式路由協議相比,反應式路由協議的開銷較小,但是數據報傳送的時延較大。

在Ad hoc網絡中單純采用先驗式或反應式路由協議都不能完全解決路由問題。由此可見,應用結合先驗式和反應式路由協議優點的混合式路由協議是一種較好的折衷方案。下面對混合式的路由協議AODV(Ad hoc On demand Distance Vector Routing)進行具體的研究。

總之,AODV協議是一個比較好的路由協議,它能夠實現路由的所用基本功能。同時AODV能夠應對Ad hoc網絡的節點移動的要求,在設定的路由延遲的情況下,表現出良好的性能。但由于未能考慮業務的QoS需求,在對傳輸質量要求較高的網絡中,顯得力不從心,尚待進一步完善。

通過對AODV路由協議的證明,我們可以得到衡量網絡路由協議的標準。只有在理論分析和網絡仿真的基礎上對原有協議進行分析,才能改進原有的路由協議,不斷提出有利于網絡的性能提高的新的策略。

2 研究方法、內容 及預期目的

2.1 研究方法

在硬件條件不具備的情況下進行Ad Hoc網絡AODV路由協議的性能分析,要花費巨資去建立實際系統,這是不現實的。因此,我們采用網絡模擬(也稱網絡仿真)軟件NS-2進行模擬分析。

NS-2是指 Network Simulator version 2,NS(Network Simulator) 是一種針對網絡技術的源代碼公開的、免費的軟件模擬平臺,研究人員使用它可以很容易的進行網絡技術的開發,而且發展到今天,它所包含的模塊已經非常豐富,幾乎涉及到了網絡技術的所有方面。所以,NS成了目前學術界廣泛使用的一種網絡模擬軟件。在每年國內外發表的有關網絡技術的學術論文中,利用NS給出模擬結果的文章最多,通過這種方法得出的研究結果也是被學術界所普遍認可的,此外,NS也可作為一種輔助教學的工具,已被廣泛應用在了網絡技術的教學方面。因此,目前在學術界和教育界,有大量的人正在使用或試圖使用NS。

學習用于Ad Hoc網絡的AODV路由協議的原理,利用NS2構建一個網絡模擬場景,對AODV協議的性能進行測試、分析,并用NAM對網絡運行情況進行動畫演示。

2.2 研究內容

(1)在NS2中用setdest命令隨機生成一個無線網絡節點的運動場景,在500×500的區域中隨機分布30個節點,每個節點隨機選擇運動方向和速度,最大運動速度為20m/s,到達目的地后停留10s繼續運動,模擬時間是100s;

(2)對移動節點中各網絡構件的主要類型參數進行設置:無線信號傳輸模式為TwoRayGround,MAC層協議類型為802.11,接口隊列采用DropTail機制,采用全向天線;

(3)用cbrgen命令產生CBR業務,最大連接數是20,速率是每秒2個數據包,每個包的大小為512字節;

(4)用Gawk分析trace文件,并以端到端的延時和丟包率為指標評估AODV協議的性能。

端到端的延時定義為數據包接收過程的總延時與接收的數據包數目之比。

丟包率定義為丟失的數據包與發送的數據包之比。

3 仿真內容及結果分析

3.1 NS2仿真平臺的建立

NS2是一種事先驅動的面向對象的網絡仿真工具,它為用戶提供了擴展、配置和編程的工具。它所用的仿真語言是Tool Command Language(TCL)語言的一個擴展。仿真通過TCL語言進行定義,利用ns命令編寫腳本來定義網絡拓撲結構、配置網絡信息流量的產生和接收以及收集統計數據。NS2軟件配有仿真過程動態觀察器,可以在仿真運行結束后,動態察看仿真的運行過程,觀察跟蹤數據。軟件還有圖形顯示器,顯示從仿真中得到的結果數據,直觀而且清晰。

NS2是一個用C++編寫的面向對象仿真器,它的前端是一個OTCL解釋器。仿真器內核定義了有層次結構的多種類,稱為編譯類結構。在OTCL解釋器中有相似的類結構,稱為解釋類結構。從用戶的角度來看,兩種結構的類之間有一一對應的關系。用戶通過解釋器創立新的仿真對象之后,解釋器對它進行初始化,與編譯類結構中相應的對象建立映射。

NS2仿真器封裝了許多功能模塊,最基本的是節點、鏈路、代理、數據包格式等等,下面分別來介紹一下各個模塊。

(1)事件調度器:目前NS2提供了四種具有不同數據結構的調度器,分別是鏈表、堆、日歷表和實時調度器。

(2)節點(node):是由TclObject對象組成的復合組件,在NS2中可以表示端節點和路由器。

(3)鏈路(link):由多個組件復合而成,用來連接網絡節點。所有的鏈路都是以隊列的形式來管理分組的到達、離開和丟棄。

(4)代理(agent):負責網絡層分組的產生和接收,也可以用在各個層次的協議實現中。每個agent連接到一個網絡節點上,由該節點給它分配一個端口號。

(5)包(packet):由頭部和數據兩部分組成。一般情況下,packet只有頭部、沒有數據部分。

NS2軟件是一個軟件包,包括Tcl/Tk,OTCL,NS,Tclcl。其中Tcl是一個開放腳本語言;Tk是Tcl的圖形界面開發工具;OTCL是基于Tcl/Tk的面向對象擴展,有自己的類層次結構;NS2為本軟件包的核心,是面向對象的仿真器,用C++編寫,以OTCL解釋器作為前端;Tclcl則提供NS2和OTCL的接口,使對象和變量出現在兩種語言中。

NS2仿真分兩個層次:一個基于OTCL編程,NS2已有的網絡仿真元素實現仿真,無需對NS2本身作任何改動,只要編寫Tcl腳本便可;另一個層次是基于C++和OTCL的編程,用戶可以利用OTCL和NS2的接口,編寫C++程序,更新NS2來實現新的功能。

NS2定義了一個.tr格式的文件用于記錄仿真的結果,通過腳本配置,可以指定文件名并對仿真過程進行跟蹤,通過NS2中xgraph的解釋,此記錄文件可以以圖形的方式顯示仿真結果。為了使顯示結果更逼真,NS2提供了一個用于產生動畫效果的可視化工具:nam(NetworkAnimotar)。nam用于有線和無線網絡的可視化,在nam中,執行仿真的人可以控制動畫演示的速度,如正向播放、快速前進、快速后退停止運行等,以監視網絡的行為(如隊列的變化)。

3.2 生成運動場景

我們可以使用setdest來生成運動場景。setdest是CMU大學在NS中提供無線網模擬模塊時提供的一個工具,可以用來隨機生成無線網所需要的節點運動場景,即一定數量的節點在某個固定大小的矩形區域中隨機朝某個目的節點運動,在到達該目的地后做一段時間的停留(也可以不停留)后選擇另一個目的地隨機選擇一個速度繼續運動。setdest可以指定場景的節點數,節點運動區域的長度和寬度及模擬場景的持續時間,節點在運動到一個目的地后停留的時間,節點隨機運動速度的最大值等。最后還能指定生成場景的輸出文件。使用setdest生成的場景文件,可以在NS控制臺或者運行腳本中使用source命令調入。

實驗中我們生成的場景是構建隨機的節點運動場景,場景規模500m×500m,場景包括30個節點,信源采用CBR方式,在30個節點中隨機選擇20個節點,啟動20個cbr數據流,每個流每秒鐘產生2個512字節大小的數據包。這里節點運動的最大速率分別選擇為0,10 m/s ,20m/s,30m/s,40m/s,50m/s,100m/s,200 m/s,其中速度100m/s,200m/s表示整個場景運動很激烈。

對于在NS2中 用setdest命令隨機生成一個無線網絡節點的運動場景以及用cbrgen命令產生CBR業務。

3.3 生成傳輸負載

我們可以使用cbrgen來生成傳輸負載(traffic overland),可以產生TCP流或者CBR流(Constant Bytes Rate Stream)。該工具能夠指定有多少個節點,這些節點間的最大連接數,隨機種子數,還可以指定每個連接間的流的負載量。如果產生的是cbr流,則包長固定為512MByte,rate值指定的是每秒發送多少個包。

在我的仿真中,是在30個節點當中選擇20對節點啟動20個cbr數據流,每個流每秒鐘產生2個512M字節大小的數據包(ns cbrgen.tcl -type cbr -nn 30 -seed 1 -mc 20 -rate 2.0 >cbr)。

我們實驗中將產生的cbr流文件輸入到文件cbr中去。

3.4 編寫tcl腳本文件

用于仿真的TCL腳本的編寫是仿真中關鍵的一步。NS2主要通過TCL腳本來實現模擬場景的建立、配置和模擬中運行的程序。只有通過TCL腳本才能創建和管理拓撲結構,進行事件調度等。無線網絡的腳本得編寫,主要包括以下幾個模塊:

隨著移動速度的增加,路由協議的丟包遞率都呈上升趨勢。這是因為隨著移動速度的增加,網絡拓撲結構的變化越來越劇烈,網絡中的無線信道勢必增加了大量的路由更新報文,特別是表驅動路由協議DSDV。每一次拓撲的變化都需要更新路由表中的內容,而DSR和AODV都是按需路由協議,只有在要發送分組時才需要建立路由。因此,按需路由協議對網絡拓撲的變化的敏感度要比表驅動路由協議要低得多。

在相同的最大移動速度下,DSR和AODV協議的丟包率明顯低于DSDV協議,特別是在網絡拓撲較穩定時,DSR和AODV的丟包率相當低(接近0%),而DSDV的丟包率最高。隨著移動速度的增加,各路由協議的端到端平均時延都在增加,其中DSR的增加幅度最大;在相同最大速度下,3個協議中DSDV具有最小的端到端時延,而DSR和AODV的端到端平均延遲較大。這是因為在需要發送數據時,DSDV路由協議通過查找路由表直接獲取路由,因而延遲時間較??;而DSR和AODV是按需路由協議,它們在需要發送數據時才啟動路由發現過程,查找可用的路由,因此延遲較大。移動速度的增加導致拓撲結構的頻繁變化,從而使得各路由協議的端到端平均時延也相應地增加。

時延結果與AODV協議理論上是相符的,AODV協議采用了路由緩存技術,所以它的時延比DSDV協議大很多。在場景運動緩慢的情況下,時延幾乎是DSDV協議的10倍。

另外,由于AODV路由協議是DSR和DSDV的綜合,因此,在相同條件下AODV的時延較DSR要小得多。

通過對AODV的各個性能的仿真,我們可以看出AODV協議在不同的場景下保持良好的性能,可見這個協議的丟包率很低,時延也維持了一個比較平均的水平??梢夾ODV協議是一個較為穩定的,適用于各種網絡場景的較好的路由協議。

猜你喜歡
仿真
Proteus仿真軟件在單片機原理及應用課程教學中的應用
工業機器人模擬仿真技術在職業教育中的應用淺析
一種幫助幼兒車內脫險應急裝置的仿真分析
論虛擬仿真實訓系統在口腔實驗教學中的應用
基于機電設備電氣控制線路排故的仿真系統設計
Buck開關變換器的基本參數設計及仿真分析
試析PLC控制下的自動化立體倉庫仿真情況分析
基于MADYMO的航空座椅約束系統優化設計
中國體態假人模型與FAA Hybrid Ⅲ 型假人模型沖擊差異性分析
機械加工仿真技術研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合