《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于NS-3的MANET路由協(xié)議性能分析
基于NS-3的MANET路由協(xié)議性能分析
來源:互聯(lián)網(wǎng)
佚名
摘要: NS-3在多網(wǎng)卡處理和IP尋址策略方面具有很的好特性,為了提高M(jìn)ANET路由協(xié)議性能,采用了NS-3仿真工具對(duì)MANET路由協(xié)議進(jìn)行分析,詳細(xì)闡述了如何搭建NS-3仿真平臺(tái),并從網(wǎng)絡(luò)規(guī)模和動(dòng)態(tài)拓?fù)浣嵌确治霰容^了AODV,DS-DV和OLSR三種路由協(xié)議的端到端平均時(shí)延和投遞率性能。仿真結(jié)果為協(xié)議的后續(xù)優(yōu)化和改進(jìn)提供了依據(jù)。
關(guān)鍵詞: MANET 路由協(xié)議
Abstract:
Key words :

  0引言

  隨著網(wǎng)絡(luò)技術(shù)和通信技術(shù)的蓬勃發(fā)展,如何在硬件條件不具備的情況下研究大規(guī)模網(wǎng)絡(luò),如何快速設(shè)計(jì)。實(shí)現(xiàn)。分析新的協(xié)議和算法,如何比較新老系統(tǒng)和算法而不必花費(fèi)巨資建立實(shí)際系統(tǒng)等問題日益成為網(wǎng)絡(luò)研究者關(guān)注的焦點(diǎn)。近年來,盛行的方式是通過計(jì)算機(jī)軟件對(duì)網(wǎng)絡(luò)協(xié)議。網(wǎng)絡(luò)拓?fù)?。網(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)驗(yàn)基礎(chǔ)上,美國華盛頓大學(xué)Thmos R. Henderson教授及其小組研發(fā)了一款極具特色的新型網(wǎng)絡(luò)仿真器——NS-3.相比其他網(wǎng)絡(luò)仿真工具,NS-3是一款開源軟件,在多網(wǎng)卡處理和IP尋址策略方面表現(xiàn)出更好特性,同時(shí),NS-3的架構(gòu)也相對(duì)更明了清晰,代碼不需做很大修改就可直接移植到真實(shí)網(wǎng)絡(luò)節(jié)點(diǎn)上,此外,研究者可根據(jù)自身需求進(jìn)行任意拓展。

  1 MANET路由協(xié)議分析

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

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

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

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

  2 NS-3仿真平臺(tái)搭建

  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)核包括時(shí)間調(diào)度器和網(wǎng)絡(luò)模擬支持系統(tǒng),是NS-3最核心的部分。相比NS-2,NS-3仿真時(shí)間不僅支持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)驗(yàn)和技術(shù),NS-3的內(nèi)核在可量測(cè)性。可擴(kuò)展性。模塊化。支持仿真與現(xiàn)實(shí)融合等方面具有極大優(yōu)勢(shì)。NS-3的網(wǎng)絡(luò)構(gòu)件包括:節(jié)點(diǎn)(Node)。應(yīng)用(Application)。協(xié)議棧(Protocol Stack)。網(wǎng)絡(luò)設(shè)備(Net Device)。信道(Channel)。拓?fù)渖善鳎℉elper)等。網(wǎng)絡(luò)構(gòu)件是對(duì)真實(shí)網(wǎng)絡(luò)的各個(gè)部分的抽象,具有低耦合高內(nèi)聚特點(diǎn),NS-3通過低層次的抽象,使得仿真效果盡可能反映真實(shí)網(wǎng)絡(luò)的性能。

  節(jié)點(diǎn)數(shù)和延時(shí)


  2.2 NS-3仿真流程

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

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

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

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

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

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

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

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

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

  3.1靜態(tài)場(chǎng)景

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

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

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

  3.2動(dòng)態(tài)場(chǎng)景

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

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

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

  速度和延時(shí)、投遞率

  4結(jié)語

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。