新聞中心

EEPW首頁 > 設(shè)計應(yīng)用 > 基于NS-3的MANET路由協(xié)議性能分析

基于NS-3的MANET路由協(xié)議性能分析

作者: 時間:2016-10-29 來源:網(wǎng)絡(luò) 收藏

0引言

本文引用地址:http://2s4d.com/article/201610/306461.htm

隨著網(wǎng)絡(luò)技術(shù)和通信技術(shù)的蓬勃發(fā)展,如何在硬件條件不具備的情況下研究大規(guī)模網(wǎng)絡(luò),如何快速設(shè)計。實現(xiàn)。分析新的協(xié)議和算法,如何比較新老系統(tǒng)和算法而不必花費巨資建立實際系統(tǒng)等問題日益成為網(wǎng)絡(luò)研究者關(guān)注的焦點。近年來,盛行的方式是通過計算機(jī)軟件對網(wǎng)絡(luò)協(xié)議。網(wǎng)絡(luò)拓?fù)洹>W(wǎng)絡(luò)性能進(jìn)行模擬分析。采用這種網(wǎng)絡(luò)仿真的研究方法,降低了成本,研究方法靈活可靠,提高了研究效率?,F(xiàn)在主流的網(wǎng)絡(luò)仿真工具主要有:OPNET,QualNet,NS-2.OPNET是商業(yè)軟件,軟件所提供的模型庫比較有限,而且主要集中于路由仿真。QualNet也是一款商業(yè)軟件,弱化了網(wǎng)絡(luò)分層的概念。NS-2的內(nèi)容比較龐雜,各模塊間的協(xié)同及耦合不便于系統(tǒng)擴(kuò)展。為此,在廣泛汲取現(xiàn)有網(wǎng)絡(luò)模擬器的成功經(jīng)驗基礎(chǔ)上,美國華盛頓大學(xué)Thmos R. Henderson教授及其小組研發(fā)了一款極具特色的新型網(wǎng)絡(luò)仿真器——NS-3.相比其他網(wǎng)絡(luò)仿真工具,NS-3是一款開源軟件,在多網(wǎng)卡處理和IP尋址策略方面表現(xiàn)出更好特性,同時,NS-3的架構(gòu)也相對更明了清晰,代碼不需做很大修改就可直接移植到真實網(wǎng)絡(luò)節(jié)點上,此外,研究者可根據(jù)自身需求進(jìn)行任意拓展。

1 分析

移動無線自組織網(wǎng)絡(luò)()是一種無中心。自組織的分布式多跳網(wǎng)絡(luò),以其固有特點在某些特殊場景(如:救災(zāi)。戰(zhàn)爭等)中得到了廣泛運用。的好壞直接影響到整個網(wǎng)絡(luò)性能的優(yōu)劣。這里簡要介紹MANET中應(yīng)用比較廣泛的3種平面。DSDV(Destination-Sequenced Distance Vector)是一種表驅(qū)動路由協(xié)議,它是在傳統(tǒng)的距離矢量DV算法基礎(chǔ)上改進(jìn)設(shè)計的,同時也被稱為消除環(huán)路的Bellman-Ford路由算法。DSDV算法中每個節(jié)點都維護(hù)一張到達(dá)全網(wǎng)可達(dá)目的節(jié)點的路由表。相比DV算法,DSDV最大的區(qū)別是路由中增加了目的系列號(Sequence Number)字段,通過序列號來區(qū)別新舊路由信息。節(jié)點將收到新路由信息和當(dāng)前路由信息比較,選擇序列號較大的路由記錄來更新路由表。若兩者序列號相同,則選擇跳數(shù)較小者。

此外,全網(wǎng)節(jié)點要求周期性廣播路由包來進(jìn)行路由維護(hù)。AODV(Ad Hoc On-Demand Distance Vector)是一種源驅(qū)動的路由協(xié)議,是DSR協(xié)議結(jié)合了DSDV中的按需路由機(jī)制設(shè)計出來的。節(jié)點在發(fā)送數(shù)據(jù)包時,首先查找自己路由表是否有到達(dá)目的節(jié)點的路由信息,若有,則直接按照路由信息發(fā)送;若沒有,則執(zhí)行路由發(fā)現(xiàn)過程。節(jié)點廣播路由請求包RREQ給自己鄰居,鄰居收到RREQ包后查詢自己路由表是否有到達(dá)目的節(jié)點路由信息,若有或本身就是目的節(jié)點,則將路由信息添加到路由應(yīng)答包RREP,并將其反饋給源節(jié)點;若沒有,再將RREQ轉(zhuǎn)發(fā)給自己所有的鄰居。依次類推,直到到達(dá)目的節(jié)點或中間節(jié)點存在到達(dá)目的節(jié)點的路由。

AODV協(xié)議通過定期廣播Hello分組來進(jìn)行路由維護(hù),一旦發(fā)現(xiàn)了某條通信鏈路斷開,節(jié)點就會在DE-LEte_PERIOD時間之后從路由表中刪除包含該斷開鏈路的路由,并發(fā)送ERROR(路由錯誤)報文來通知那些因為鏈路斷開而不可達(dá)的節(jié)點刪除相應(yīng)的路由記錄或者對已經(jīng)存儲的路由信息進(jìn)行修復(fù)更新。

OLSR(Optimized Link State Routing)是一種優(yōu)化的鏈路狀態(tài)路由協(xié)議,類似其他表驅(qū)動路由協(xié)議,節(jié)點需要周期性交互網(wǎng)絡(luò)路由信息。被鄰居節(jié)點選作中繼節(jié)點(Multi Point Telay,MPR)的節(jié)點周期性向網(wǎng)絡(luò)廣播控制信息分組,分組中包括將它選作MPR的那些節(jié)點的信息,以告訴網(wǎng)絡(luò)中其他節(jié)點與這些節(jié)點之間相連。而且,只有MPR節(jié)點才能夠作為路由節(jié)點,其他非MPR節(jié)點不參與路由計算,也不需轉(zhuǎn)播控制信息。OLSR協(xié)議中主要通過HELLO和TC(Topological Control)兩種控制消息來感知廣播拓?fù)?。通過HELLO消息實現(xiàn)鏈路偵測。鄰居偵聽,以此建立節(jié)點的本地鏈路信息表,同時用于向鄰居節(jié)點通告本節(jié)點的多點中繼MPR節(jié)點的選擇;TC消息負(fù)責(zé)執(zhí)行MPR Selector鏈路狀態(tài)聲明,使得每個節(jié)點都能夠感知全網(wǎng)拓?fù)浣Y(jié)構(gòu)。最終,節(jié)點根據(jù)本地鏈路信息庫和拓?fù)浼现械男畔?,采用Dijkstra算法根據(jù)路徑最短的原則計算路由表。

2 NS-3仿真平臺搭建

2.1 NS-3仿真架構(gòu)

NS-3是一款離散型模擬器,NS-3的網(wǎng)絡(luò)架構(gòu)主要由模擬器內(nèi)核和網(wǎng)絡(luò)構(gòu)件2部分組成,如圖1所示。其中模擬器內(nèi)核包括時間調(diào)度器和網(wǎng)絡(luò)模擬支持系統(tǒng),是NS-3最核心的部分。相比NS-2,NS-3仿真時間不僅支持Default Scheduler,而且還支持Realtime Scheduler.

NS-3體系結(jié)構(gòu)

NS-3的網(wǎng)絡(luò)模擬支持系統(tǒng)包括:Attribute系統(tǒng)。Logging系統(tǒng)和Tracing系統(tǒng)。由于廣泛汲取了其他網(wǎng)絡(luò)仿真工具的經(jīng)驗和技術(shù),NS-3的內(nèi)核在可量測性??蓴U(kuò)展性。模塊化。支持仿真與現(xiàn)實融合等方面具有極大優(yōu)勢。NS-3的網(wǎng)絡(luò)構(gòu)件包括:節(jié)點(Node)。應(yīng)用(Application)。協(xié)議棧(Protocol Stack)。網(wǎng)絡(luò)設(shè)備(Net Device)。信道(Channel)。拓?fù)渖善?Helper)等。網(wǎng)絡(luò)構(gòu)件是對真實網(wǎng)絡(luò)的各個部分的抽象,具有低耦合高內(nèi)聚特點,NS-3通過低層次的抽象,使得仿真效果盡可能反映真實網(wǎng)絡(luò)的性能。

節(jié)點數(shù)和延時

2.2 NS-3仿真流程

以下簡單介紹NS-3代碼編寫的特點及如何在NS-3中搭建一個完整仿真場景的過程。NS-3運行在Linux環(huán)境下,對Linux系統(tǒng)版本有要求且依賴較多系統(tǒng)組件,安裝過程較復(fù)雜。NS-3仿真器代碼核心部分全部使用C++語言編寫,外部配置。編譯。執(zhí)行使用了基于Python的waf系統(tǒng),方便使用者配置仿真場景。NS-3完全模擬了TCP/IP的協(xié)議棧,并且把每一層的功能模塊化,在NS-3安裝完成后,默認(rèn)只是生成各個功能模塊,自帶的仿真例子沒有生成,需要把這些例子復(fù)制到scrach文件夾下才能運行,并且NS-3中編寫好的代碼也都需要放到該文件夾下才能運行。在NS-3中搭建仿真場景遵循固定的流程,在編寫C++代碼時一般可以分為以下幾個步驟:

(1)設(shè)置仿真場景的全局參數(shù)。比如采用Seed-Manager::SetSeed(7)設(shè)置隨機(jī)數(shù)種子,以保證產(chǎn)生相同的隨機(jī)序列,設(shè)置隨機(jī)平面移動模型(Random-Walk2dMobilityModel)的參數(shù)Config::SetDefault(“NS-3::RandomWalk-2dMobilityModel::Mode”,StringValue(“Tim-e”))等,以上的全局設(shè)定使得仿真場景可以重現(xiàn)。

(2)定義仿真中使用的參數(shù),比如數(shù)據(jù)包的大小,需要創(chuàng)建的節(jié)點個數(shù),物理層使用的傳輸速率等,這些參數(shù)可以使用CommandLine類來實現(xiàn)并解析,方便在仿真過程中使用外部腳本動態(tài)改變這些參數(shù)。

(3)創(chuàng)建網(wǎng)絡(luò)節(jié)點,然后按照TCP/IP協(xié)議,從下而上給網(wǎng)絡(luò)節(jié)點安裝協(xié)議棧。NS-3在實現(xiàn)中考慮到為了方便使用者,協(xié)議棧的每一層都實現(xiàn)了幫助類(XXX-Helper),使用者可以方便地使用這些幫助類設(shè)定每一層參數(shù)。比如使用YansWifiPhyHelper設(shè)定物理層協(xié)議,使用YansWifiChannelHelper來設(shè)置傳輸信道類型,使用NqosWifiMacHelper來設(shè)置數(shù)據(jù)鏈路層協(xié)議等。最后通過幫助類給節(jié)點安裝路由協(xié)議,分配IP地址,至此便搭建了TCP/IP的物理層。數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層,實現(xiàn)網(wǎng)絡(luò)的通信功能。

(4)通信網(wǎng)絡(luò)搭建好后,需要編寫實驗程序,即在節(jié)點之間的收發(fā)數(shù)據(jù)包的代碼,以達(dá)到測試底層協(xié)議的目的。NS-3中為了減少使用者的編程工作量,同樣提供了豐富易用的函數(shù),一般都是先創(chuàng)建使用UDP協(xié)議套(Socket),同時把接收節(jié)點號。發(fā)送節(jié)點號作為參數(shù)傳入,再給套接字指定IP地址,端口號,最后讓發(fā)送節(jié)點連接到接收節(jié)點。為接收節(jié)點指定回調(diào)函數(shù)。

(5)完成節(jié)點之間如何發(fā)送數(shù)據(jù)包的代碼后,需要編寫接收節(jié)點的回調(diào)函數(shù),即在接收節(jié)點收到數(shù)據(jù)包后調(diào)用的函數(shù)??梢栽诨卣{(diào)函數(shù)中對數(shù)據(jù)包的時延,投遞率進(jìn)行統(tǒng)計。

(6)使用Simulator::Schedule函數(shù)設(shè)定調(diào)度事件即設(shè)定源節(jié)點的發(fā)送數(shù)據(jù)的開始時間,發(fā)送間隔,發(fā)送數(shù)據(jù)包總數(shù)等。至此,整個場景部署完成。

3路由協(xié)議的仿真及性能比較

在Ubuntu 10.04環(huán)境下使用NS-3.16對AODV.DS-DV和OLSR這三種路由協(xié)議進(jìn)行仿真,并在相同的仿真場景下比較其性能指標(biāo)。分別在靜態(tài)場景和動態(tài)場景下,考察網(wǎng)絡(luò)規(guī)模。網(wǎng)絡(luò)拓?fù)渥兓瘜f(xié)議性能的影響。

3.1靜態(tài)場景

仿真場景設(shè)置:模擬器的隨機(jī)數(shù)種子設(shè)定為常數(shù)7,節(jié)點按網(wǎng)格分布,網(wǎng)格邊長500 m,節(jié)點的規(guī)模從2×2,3×3逐漸增大到18×18;設(shè)定節(jié)點的通信半徑為656 m,選取網(wǎng)格中對角線的一個節(jié)點向另一個節(jié)點發(fā)送UDP數(shù)據(jù)包,共發(fā)送500個數(shù)據(jù)包,包的大小為1 000 B,發(fā)送時間間隔為1 s.這里節(jié)點的物理層傳輸延遲模型采用Con-stantSpeedPropagationDelayModel,衰落模型選用Friis-PropagationLossModel,數(shù)據(jù)傳輸速率設(shè)置為1 Mb/s.增加網(wǎng)絡(luò)節(jié)點數(shù),考察3種協(xié)議的端到端平均時延和包投遞率情況,如圖2和圖3所示。

節(jié)點數(shù)和投遞率

由圖2可以看出,3種路由協(xié)議的平均時延隨節(jié)點規(guī)模的增大而增大,其中AODV和OLSR協(xié)議受到的影響較小,而DSDV的平均時延隨著節(jié)點規(guī)模的增大而急劇增大。圖3中AODV,OLSR的數(shù)據(jù)包投遞率隨節(jié)點數(shù)增大而不變,能保證百分百交付;而DSDV協(xié)議的投遞率在節(jié)點數(shù)增大到一定的規(guī)模后開始下降。以上特性說明在節(jié)點規(guī)模增大時,AODV和OLSR協(xié)議的性能要優(yōu)于DSDV.

3.2動態(tài)場景

仿真場景設(shè)置:在靜態(tài)場景的基礎(chǔ)上,為節(jié)點添加RandomWalk2dMobilityModel運動模型,該模型為每個節(jié)點隨機(jī)選擇一個方向,以設(shè)定的速度移動一段時間后再隨機(jī)選擇另一個方向繼續(xù)移動,直接到仿真結(jié)束。設(shè)定相同的隨機(jī)數(shù)種子以保證每次仿真中節(jié)點的運行軌跡一致。設(shè)定網(wǎng)格的邊長為300 m,節(jié)點的規(guī)模固定為7×7,即節(jié)點運動的區(qū)域限制在2 100 m×2 100 m的矩形內(nèi)。仍考察對角線的一個節(jié)點向另一個節(jié)點發(fā)送UDP數(shù)據(jù)包,每次仿真發(fā)送3 000個數(shù)據(jù)包。增加節(jié)點移動速度,考察三種協(xié)議的端到端平均時延和包投遞率情況,如圖4和圖5所示。

從圖4和圖5可以看出,3種路由協(xié)議的平均時延與節(jié)點的移動速度相關(guān)性不大,在速度較小時,3種路由協(xié)議的平均時延較穩(wěn)定,但在速度較大時,由于節(jié)點在矩形區(qū)域內(nèi)做無規(guī)則的快速運動,數(shù)據(jù)包從源節(jié)點傳輸?shù)侥繕?biāo)節(jié)點的跳數(shù)不確定,所以平均時延變化具有一定隨機(jī)性。

而由圖5可以看出,隨著節(jié)點移動速度的增大,數(shù)據(jù)包的投遞率逐漸下降,AODV協(xié)議因其屬于按需路由而不需要頻繁地維護(hù)路由信息,所以在速度較大時較其他2種協(xié)議表現(xiàn)更好。

速度和延時、投遞率

4結(jié)語

論文通過NS-3搭建了MANET路由仿真平臺,從端到端平均時延和投遞率角度分析比較了MANET三種路由協(xié)議。靜態(tài)場景中,節(jié)點數(shù)增加時,3種協(xié)議端到端平均時延均隨之增加,但AODV和OLSR增加不明顯,并且兩者的投遞率也幾乎不受網(wǎng)絡(luò)規(guī)模影響,相比之下,DSDV端到端時延和投遞率受網(wǎng)絡(luò)規(guī)模影響較明顯。動態(tài)場景中,節(jié)點移動速度增加,3種協(xié)議的投遞率都降低,而且總體上平均時延較小者,表現(xiàn)出更好的投遞率。



關(guān)鍵詞: MANET 路由協(xié)議

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉