




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議的分析與評(píng)價(jià)數(shù)學(xué)計(jì)算機(jī)學(xué)院軟件工程專業(yè)2012屆 黑敏星摘 要:無(wú)線傳感器網(wǎng)絡(luò)綜合了傳感器技術(shù)、嵌入式計(jì)算技術(shù)、無(wú)線網(wǎng)絡(luò)通信技術(shù)、分布式信息處理技術(shù),能夠?qū)崟r(shí)監(jiān)測(cè)和采集網(wǎng)絡(luò)分布區(qū)域內(nèi)的各種檢測(cè)對(duì)象的信息,并發(fā)送給觀測(cè)者。傳感器網(wǎng)絡(luò)具有硬件資源有限、動(dòng)態(tài)拓?fù)洹㈦娫茨芰坑邢?、無(wú)中心基站、多跳路由、以數(shù)據(jù)為中心等特點(diǎn),能夠應(yīng)用于軍事、環(huán)境檢測(cè)、機(jī)械監(jiān)控等領(lǐng)域。 本文首先概述了無(wú)線傳感器網(wǎng)絡(luò)的概念、特點(diǎn)、體系結(jié)構(gòu)、協(xié)議棧、應(yīng)用領(lǐng)域和關(guān)鍵技術(shù)。接著通過(guò)對(duì)無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議的分類,對(duì)幾種典型的無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議進(jìn)行了詳細(xì)的介紹。最后對(duì)幾種典型的協(xié)議在分類和性能上進(jìn)行了比較。其
2、次,本文先對(duì)洪泛協(xié)議(MFlood)進(jìn)行了簡(jiǎn)單的介紹,然后詳細(xì)介紹了網(wǎng)絡(luò)模擬器NS2,并且了解了NS2的層次結(jié)構(gòu)、組成部分、NS2仿真模擬的步驟。最后,利用NS2對(duì)MFlood協(xié)議進(jìn)行仿真,并由仿真得到的trace文件對(duì)MFlood協(xié)議的端到端延時(shí)、節(jié)點(diǎn)間的傳說(shuō)速率、延時(shí)的抖動(dòng)率和網(wǎng)絡(luò)吞吐量進(jìn)行了分析。關(guān)鍵詞:無(wú)線傳感器網(wǎng)絡(luò);路由協(xié)議;MFlood;trace;NS2中圖分類號(hào):TP393無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議的分析與評(píng)價(jià)1 引言近年來(lái),隨著傳感器技術(shù)、嵌入式計(jì)算技術(shù)、無(wú)線通信技術(shù)的快速發(fā)展,由具有感知能力、計(jì)算能力、通信能力的微型傳感器自組織而成的無(wú)線傳感器網(wǎng)絡(luò)(WSN)引起了人們的極大關(guān)注
3、。國(guó)內(nèi)外對(duì)無(wú)線傳感器網(wǎng)絡(luò)有著一些特定的研究。在國(guó)外,1996年,美國(guó)學(xué)者straser、Kiremidjian提出運(yùn)用無(wú)線技術(shù)替代結(jié)構(gòu)監(jiān)測(cè)有線系統(tǒng)的思想,開(kāi)辟了無(wú)線傳感技術(shù)在結(jié)構(gòu)監(jiān)測(cè)領(lǐng)域中應(yīng)用,并研制了一套實(shí)時(shí)的損傷識(shí)別結(jié)構(gòu)健康監(jiān)測(cè)系統(tǒng):以上述學(xué)者的工作為基礎(chǔ),Lynch等運(yùn)用標(biāo)準(zhǔn)的集成電路開(kāi)發(fā)了一個(gè)無(wú)線傳感器的模型:整個(gè)傳感器節(jié)點(diǎn)包括一個(gè)八位微處理器,檢測(cè)單元采用微加速度芯片構(gòu)成,并且所集成的無(wú)線傳感器在實(shí)驗(yàn)室中得到了驗(yàn)證。比如日本大型機(jī)械監(jiān)控技術(shù)應(yīng)用研究主要利用移動(dòng)通信技術(shù)與智能傳感器技術(shù)相結(jié)合,實(shí)現(xiàn)了對(duì)集裝箱裝卸設(shè)備的遠(yuǎn)程監(jiān)控;馬來(lái)西亞港口設(shè)備監(jiān)控與調(diào)度管理系統(tǒng);德國(guó)基于非線性神經(jīng)網(wǎng)絡(luò)的
4、鋼板厚度監(jiān)控系統(tǒng);荷蘭基于GIS和無(wú)線通信的港口智能化信息管理系統(tǒng)等等。在我國(guó),無(wú)線傳感器網(wǎng)絡(luò)研究起步較早,中科院、哈爾濱工業(yè)大學(xué)、清華大學(xué)、北京郵電大學(xué)、西北工業(yè)大學(xué)、天津大學(xué)、國(guó)防科技大學(xué)較早開(kāi)展了無(wú)線傳感器網(wǎng)絡(luò)方面的研究工作1。如上海交通大學(xué)基于移動(dòng)通信技術(shù)的港口起重機(jī)遠(yuǎn)程監(jiān)控系統(tǒng);天津港基于短信平臺(tái)的起重機(jī)動(dòng)態(tài)監(jiān)測(cè)裝置;華中科技大學(xué)網(wǎng)絡(luò)化遠(yuǎn)程監(jiān)控等等2。2 無(wú)線傳感器網(wǎng)絡(luò)概述 2.1 無(wú)線傳感器網(wǎng)絡(luò)概念無(wú)線傳感器網(wǎng)絡(luò)3(wireless sensor network, WSN)是一項(xiàng)新興的網(wǎng)絡(luò)技術(shù),它是由大量隨機(jī)分布的包括集成傳感器、數(shù)據(jù)處理段元和通信單元的微小節(jié)點(diǎn)通過(guò)自組織方式構(gòu)成的
5、無(wú)線網(wǎng)絡(luò),所有網(wǎng)絡(luò)節(jié)點(diǎn)協(xié)同合作完成特定的任務(wù)。它綜合了傳感器技術(shù)、嵌入式計(jì)算技術(shù)、現(xiàn)代網(wǎng)絡(luò)技術(shù)、無(wú)線通信技術(shù)和分布式信息處理技術(shù)等多種技術(shù)。 2.2 無(wú)線傳感器網(wǎng)絡(luò)的特點(diǎn)無(wú)線傳感器網(wǎng)絡(luò)與傳統(tǒng)的無(wú)線通信網(wǎng)絡(luò)有著不同的設(shè)計(jì)目標(biāo)和技術(shù)要求。前者以數(shù)據(jù)位中心,而后者則以傳輸數(shù)據(jù)為目的。無(wú)線傳感器網(wǎng)絡(luò)因其所應(yīng)用的特殊性決定了無(wú)線傳感器網(wǎng)絡(luò)具有以下的一些特征:(1) 硬件資源有限無(wú)線傳感器網(wǎng)絡(luò)傳感器節(jié)點(diǎn)的數(shù)量較大,往往需要投放在特定的檢測(cè)區(qū)域。由于受體積及成本等因素的限制,其計(jì)算能力、對(duì)數(shù)據(jù)的處理能力、存儲(chǔ)能力都相當(dāng)?shù)挠邢蕖?2) 動(dòng)態(tài)拓?fù)錈o(wú)線傳感器網(wǎng)絡(luò)的拓?fù)涫莿?dòng)態(tài)變化的,節(jié)點(diǎn)是可以隨處移動(dòng)的,并且有多節(jié)
6、點(diǎn)可能受到自然或人為的破壞,有的節(jié)點(diǎn)可能由于電池耗盡而退出網(wǎng)絡(luò),還有的節(jié)點(diǎn)則可能是新加入的節(jié)點(diǎn)。這些原因都會(huì)使整個(gè)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)隨時(shí)發(fā)生變化,因此網(wǎng)絡(luò)具有動(dòng)態(tài)拓?fù)涞奶攸c(diǎn)。(3) 電源能量有限由于傳感器節(jié)點(diǎn)往往被投放在一些不適合進(jìn)行電源補(bǔ)給的環(huán)境和無(wú)人區(qū)域,所以一般都為一次性供電,一旦電池耗盡,很難再給電池充電或者更換電池。(4) 無(wú)中心基站無(wú)線傳感器網(wǎng)絡(luò)沒(méi)有像傳統(tǒng)網(wǎng)絡(luò)中的基站之類的控制中心,所以節(jié)點(diǎn)都是平等的,是一個(gè)對(duì)等式網(wǎng)絡(luò)。(5) 多跳路由無(wú)線傳感器網(wǎng)絡(luò)的傳感器節(jié)點(diǎn)散布的檢測(cè)區(qū)域往往比較大,而由于受到節(jié)點(diǎn)能量的限制以及對(duì)等網(wǎng)絡(luò)無(wú)中心的特點(diǎn),網(wǎng)絡(luò)數(shù)據(jù)的轉(zhuǎn)發(fā)往往采取多跳轉(zhuǎn)發(fā)的方式,不僅可以節(jié)省
7、發(fā)射功率,還可以不用專門設(shè)置路由器,同時(shí)每個(gè)節(jié)點(diǎn)都有附加路由轉(zhuǎn)發(fā)的功能。(6) 以數(shù)據(jù)為中心無(wú)線傳感器網(wǎng)絡(luò)是用來(lái)檢測(cè)各種感興趣的被測(cè)量的數(shù)據(jù),其主要目的是為了獲得檢測(cè)區(qū)域的檢測(cè)數(shù)據(jù)。在網(wǎng)絡(luò)設(shè)計(jì)過(guò)程中,主要考慮如何高效處理感知數(shù)據(jù),并將獲取的數(shù)據(jù)傳送到用戶節(jié)點(diǎn),因此無(wú)線傳感器網(wǎng)絡(luò)的特點(diǎn)是以數(shù)據(jù)為中心。 同時(shí)無(wú)線傳感器網(wǎng)絡(luò)還具有組網(wǎng)快捷、靈活,且不受有線網(wǎng)絡(luò)約束的特點(diǎn)。 2.3 無(wú)線傳感器網(wǎng)絡(luò)體系結(jié)構(gòu)無(wú)線傳感器網(wǎng)絡(luò)體系結(jié)構(gòu)4如圖2.1所示。無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng)通常包括傳感器節(jié)點(diǎn)、匯聚節(jié)點(diǎn)和監(jiān)控中心主機(jī)(包括服務(wù)器和用戶訪問(wèn)管理終端)。大量的傳感器節(jié)點(diǎn)隨機(jī)散步在指定檢測(cè)區(qū)域內(nèi)。傳感器節(jié)點(diǎn)將檢測(cè)到的信息
8、以多跳中繼的方式傳送到匯聚節(jié)點(diǎn)。匯聚節(jié)點(diǎn)是一個(gè)固定的或可以移動(dòng)的節(jié)點(diǎn),一般具有更多的能量、更強(qiáng)大的數(shù)據(jù)處理能量和存儲(chǔ)能力。匯聚節(jié)點(diǎn)將從外部網(wǎng)絡(luò)接收到的控制命令發(fā)送到檢測(cè)區(qū)域內(nèi)的傳感器節(jié)點(diǎn),以及傳感器節(jié)點(diǎn)的數(shù)據(jù)信息傳送到外部網(wǎng)絡(luò),再由外部網(wǎng)絡(luò)傳送給服務(wù)器。服務(wù)器用于接收檢測(cè)區(qū)域內(nèi)的數(shù)據(jù),用戶可以遠(yuǎn)程訪問(wèn)服務(wù)器,從而獲得檢測(cè)目標(biāo)的狀態(tài)信息以及實(shí)現(xiàn)對(duì)傳感器網(wǎng)絡(luò)進(jìn)行配置和管理、發(fā)布檢測(cè)任務(wù)等功能。圖2.1 無(wú)線傳感器網(wǎng)絡(luò)體系結(jié)構(gòu) 2.4 無(wú)線傳感器網(wǎng)絡(luò)協(xié)議棧無(wú)線傳感器網(wǎng)絡(luò)協(xié)議棧5主要包括物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層,與互聯(lián)網(wǎng)的五層協(xié)議相對(duì)應(yīng)。如圖2.2所示:應(yīng)用層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層物
9、理層能量管理平臺(tái)移動(dòng)管理平臺(tái)任務(wù)管理平臺(tái)圖2.2 無(wú)線傳感器網(wǎng)絡(luò)協(xié)議棧另外,無(wú)線傳感器網(wǎng)絡(luò)協(xié)議棧同時(shí)還包括能量管理平臺(tái)、移動(dòng)管理平臺(tái)和任務(wù)管理平臺(tái)。這種管理平臺(tái)使得傳感器節(jié)點(diǎn)能夠按照能量高效的方式協(xié)同工作,在節(jié)點(diǎn)移動(dòng)的傳感器網(wǎng)絡(luò)中轉(zhuǎn)發(fā)數(shù)據(jù),并支持多任務(wù)與資源共享。各層協(xié)議和平臺(tái)的相關(guān)功能如下:1) 物理層提供簡(jiǎn)單和健壯的信號(hào)調(diào)制和無(wú)線收發(fā)技術(shù);2) 數(shù)據(jù)鏈路層負(fù)責(zé)數(shù)據(jù)成幀,幀控制,媒體訪問(wèn)和差錯(cuò)控制;3) 網(wǎng)絡(luò)層負(fù)責(zé)路由的生成和路由選擇4) 傳輸層負(fù)責(zé)數(shù)據(jù)流的傳輸控制,使保證通過(guò)通訊服務(wù)質(zhì)量的重要部分;5) 應(yīng)用層包括一系列基于檢測(cè)任務(wù)的應(yīng)用層軟件6) 能量管理平臺(tái)管理傳感器節(jié)點(diǎn)如何使用資源,
10、在各個(gè)協(xié)議層都要考慮節(jié)省能量;7) 移動(dòng)管理平臺(tái)檢測(cè)并注冊(cè)傳感器節(jié)點(diǎn)的移動(dòng),維護(hù)到匯聚節(jié)點(diǎn)的路由,使得傳感器節(jié)點(diǎn)能夠動(dòng)態(tài)跟蹤其鄰居節(jié)點(diǎn)的位置;8) 任務(wù)管理平臺(tái)在一個(gè)給定的區(qū)域平衡和調(diào)度檢測(cè)任務(wù)。 2.5 無(wú)線傳感器網(wǎng)絡(luò)的應(yīng)用隨著研究的深入,無(wú)線傳感器網(wǎng)絡(luò)的應(yīng)用領(lǐng)域非常廣泛。目前,隨著傳感器技術(shù)、通信技術(shù)、嵌入式技術(shù)及分布式信息處理技術(shù)的快速發(fā)展,無(wú)線傳感器網(wǎng)絡(luò)正被廣泛應(yīng)用在人們生活的各種領(lǐng)域,例如:軍事領(lǐng)域、工業(yè)領(lǐng)域、農(nóng)業(yè)領(lǐng)域、生態(tài)環(huán)境監(jiān)測(cè)、家具生活領(lǐng)域、醫(yī)療健康領(lǐng)域、城市交通領(lǐng)域等等,總之,無(wú)線傳感器網(wǎng)絡(luò)已經(jīng)是當(dāng)今科學(xué)領(lǐng)域最具有代表性的通信技術(shù)性支持,已經(jīng)滲透到千家萬(wàn)戶、各行各業(yè)。 2.6
11、 無(wú)線傳感器網(wǎng)絡(luò)的關(guān)鍵技術(shù)在無(wú)線傳感器網(wǎng)絡(luò)研究的過(guò)程中,存在著一些關(guān)鍵技術(shù)問(wèn)題,主要的問(wèn)題有:路由技術(shù)、安全問(wèn)題、時(shí)間同步、數(shù)據(jù)融合、能量問(wèn)題等等。(1) 路由技術(shù)由于傳感器節(jié)點(diǎn)的計(jì)算能量,存儲(chǔ)能力、自身能量有限,大部分節(jié)點(diǎn)并不能直接將數(shù)據(jù)發(fā)送到匯聚節(jié)點(diǎn),而要采用多跳路由方式向匯聚節(jié)點(diǎn)發(fā)送數(shù)據(jù),因此,每個(gè)節(jié)點(diǎn)不僅要進(jìn)行數(shù)據(jù)的采集和傳輸,還要具有轉(zhuǎn)發(fā)數(shù)據(jù)的能力。(2) 安全問(wèn)題在無(wú)線傳感器網(wǎng)絡(luò)中,大量的傳感器節(jié)點(diǎn)密集分布在一個(gè)區(qū)域里面,消息可能需要經(jīng)過(guò)若干節(jié)點(diǎn)才能達(dá)到目的地,而且傳感器網(wǎng)絡(luò)具有動(dòng)態(tài)性和多跳結(jié)構(gòu),要求每個(gè)節(jié)點(diǎn)都應(yīng)該具有路由功能。由于每個(gè)節(jié)點(diǎn)都是潛在的路由節(jié)點(diǎn),因此更容易受到攻擊,使
12、網(wǎng)絡(luò)部安全。網(wǎng)絡(luò)層路由協(xié)議為整個(gè)無(wú)線傳感器網(wǎng)絡(luò)提供了關(guān)鍵的路由服務(wù),安全路由算法可以直接影響無(wú)線傳感器網(wǎng)絡(luò)的安全性和可用性。(3) 時(shí)間同步4時(shí)間同步技術(shù)是完成實(shí)時(shí)信息采集的基本要求,也是提高定位精度的關(guān)鍵手段。常用方法是通過(guò)時(shí)間同步協(xié)議完成節(jié)點(diǎn)間的對(duì)時(shí)。同時(shí)傳感器節(jié)點(diǎn)需要相互合作,完成復(fù)雜的檢測(cè)和感知任務(wù),這樣往往需要各節(jié)點(diǎn)保持時(shí)間上的一致性,方便出來(lái)一些與時(shí)間有關(guān)的操作。(4) 數(shù)據(jù)融合由于無(wú)線傳感器網(wǎng)絡(luò)的資源有限,電池能量、出來(lái)能力、存儲(chǔ)容量及通信帶寬都要統(tǒng)籌使用,在滿足用戶需求的情況下,需要對(duì)眾多傳感器節(jié)點(diǎn)的檢測(cè)數(shù)據(jù)進(jìn)行融合出來(lái),從而節(jié)省通信帶寬的能量,提高信息收集的效率。(5) 能量
13、問(wèn)題在多數(shù)情況下,傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)都是由電池供電,電池容量非常有限,并且對(duì)于成千上萬(wàn)節(jié)點(diǎn)的無(wú)線傳感器網(wǎng)絡(luò)來(lái)說(shuō),更換電池非常困難,甚至是不可能的。如果網(wǎng)絡(luò)中的節(jié)點(diǎn)因?yàn)槟芰谋M而不能工作,會(huì)帶來(lái)網(wǎng)絡(luò)拓?fù)浣Y(jié)果的改變以及路由的重新建立等問(wèn)題,甚至可能是網(wǎng)絡(luò)分成不連通的部分,造成通信的中斷。因此,如何在不影響功能的前提下,盡可能地節(jié)約無(wú)線傳感器網(wǎng)絡(luò)的電池容量成為無(wú)線傳感器網(wǎng)絡(luò)軟硬件設(shè)計(jì)中的核心問(wèn)題。3 無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議概述3.1 無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議的分類無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議從驅(qū)動(dòng)機(jī)制的角度可以分為主動(dòng)式路由協(xié)議、按需式路由協(xié)議和混合式路由協(xié)議:主動(dòng)式路由協(xié)議,所有的路由在使用之前已經(jīng)形成;
14、按需式路由協(xié)議只有在需要使用的時(shí)候才形成;混合式路由協(xié)議是將上述兩種思想結(jié)合起來(lái)的一種新的路由協(xié)議。由于無(wú)線傳感器節(jié)點(diǎn)資源受限,且傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)目眾多,傳感器節(jié)點(diǎn)沒(méi)有足夠的空間來(lái)存儲(chǔ)大量的路由表,因此在實(shí)際應(yīng)用中,按需式路由協(xié)議和混合式路由協(xié)議更加受青睞。無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議從網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的角度可以分為:平面路由協(xié)議和層次路由協(xié)議,如圖3.1所示。在平面路由協(xié)議中,所有節(jié)點(diǎn)的地位都是平等的,通過(guò)局部操作和反饋信息來(lái)生成路由。平面路由協(xié)議的優(yōu)點(diǎn)是簡(jiǎn)單、以擴(kuò)展,其缺點(diǎn)是缺乏對(duì)通信資源的規(guī)范化管理,每一個(gè)節(jié)點(diǎn)都需要知道到達(dá)其它所有節(jié)點(diǎn)的路由,維護(hù)動(dòng)態(tài)變化的路由需要大量的控制信息。在層次路由協(xié)議
15、中,網(wǎng)絡(luò)通常被劃分為簇,每個(gè)簇由一個(gè)簇頭和多個(gè)簇成員節(jié)點(diǎn)組成,簇成員節(jié)點(diǎn)負(fù)責(zé)采集數(shù)據(jù),并將采集到的數(shù)據(jù)轉(zhuǎn)發(fā)給簇頭,簇頭節(jié)點(diǎn)負(fù)責(zé)簇內(nèi)部數(shù)據(jù)的接收和數(shù)據(jù)融合,然后將數(shù)據(jù)轉(zhuǎn)發(fā)給更高層的簇。簇成員的功能比較簡(jiǎn)單,不需要維護(hù)復(fù)雜的路由信息,不同層次的節(jié)點(diǎn)的作用不同。這大大減少了網(wǎng)絡(luò)中路由控制信息的數(shù)量,具有良好的可擴(kuò)充性,其缺點(diǎn)是簇頭節(jié)點(diǎn)能量消耗大,可能會(huì)成為整個(gè)網(wǎng)絡(luò)的瓶頸。圖3.1 無(wú)線傳感器網(wǎng)絡(luò)按拓?fù)浣Y(jié)構(gòu)的路由協(xié)議分類3.2平面路由協(xié)議在平面路由協(xié)議中,各網(wǎng)絡(luò)中的各節(jié)點(diǎn)在路由功能上地位相同,沒(méi)有引入分層管理機(jī)制。平面結(jié)構(gòu)路由的優(yōu)點(diǎn)是網(wǎng)絡(luò)中沒(méi)有特殊的節(jié)點(diǎn),網(wǎng)絡(luò)流量均勻的分布在網(wǎng)絡(luò)中,路由算法易于實(shí)現(xiàn)。
16、缺點(diǎn)是可擴(kuò)展性小,在一定程度上限制了網(wǎng)絡(luò)的規(guī)模,對(duì)網(wǎng)絡(luò)動(dòng)態(tài)變化的反應(yīng)速度較慢。以數(shù)據(jù)位中心的典型平面路由協(xié)議主要有:泛洪(Flooding)、SPIN(Sensor Protocols for Information via Negotiation)、定向擴(kuò)散DD協(xié)議(Directed Diffusion)等。3.2.1 洪泛路由協(xié)議洪泛協(xié)議(Flooding)是以中傳統(tǒng)的網(wǎng)絡(luò)路由協(xié)議,不需要任何路由算法,也不需要維護(hù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。在該協(xié)議中,節(jié)點(diǎn)向它的所有鄰居節(jié)點(diǎn)廣播接收到的數(shù)據(jù),如此反復(fù),直到數(shù)據(jù)到達(dá)目的節(jié)點(diǎn)或者所有節(jié)點(diǎn)擁有此數(shù)據(jù)副本為止。洪泛協(xié)議所具有的優(yōu)點(diǎn)是:實(shí)現(xiàn)簡(jiǎn)單;不需要為保持網(wǎng)絡(luò)
17、拓?fù)湫畔⒑蛯?shí)現(xiàn)復(fù)雜的路由發(fā)現(xiàn)算法而消耗計(jì)算資源;適用于健壯性要求高的場(chǎng)合。洪泛協(xié)議存在的問(wèn)題有5:存在消息內(nèi)爆問(wèn)題,即出現(xiàn)一個(gè)節(jié)點(diǎn)收到一個(gè)數(shù)據(jù)的多個(gè)副本現(xiàn)象。如圖3.2(a)所示,節(jié)點(diǎn)S要將數(shù)據(jù)發(fā)送給節(jié)點(diǎn)D,首先節(jié)點(diǎn)S要將數(shù)據(jù)發(fā)送到它的所有鄰居節(jié)點(diǎn)A、B、C。A、B、C再將數(shù)據(jù)廣播給各自的鄰居節(jié)點(diǎn)(除了發(fā)送此數(shù)據(jù)給自己的鄰節(jié)點(diǎn)外),這樣節(jié)點(diǎn)D就會(huì)收到很多份一樣的數(shù)據(jù)。存在信息重疊的問(wèn)題,即處于同一觀測(cè)環(huán)境的相鄰?fù)悅鞲衅鞴?jié)點(diǎn)同時(shí)向一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù),從而收到雙份數(shù)據(jù)副本的想象。如圖3.2(b)所示,節(jié)點(diǎn)A收到節(jié)點(diǎn)B、C對(duì)同一區(qū)域R2的檢測(cè)數(shù)據(jù)。盲目利用資源,即節(jié)點(diǎn)不考慮自身能力狀況,只要接收數(shù)據(jù)
18、就進(jìn)行轉(zhuǎn)發(fā)。 圖3.2(a) 消息“內(nèi)爆”現(xiàn)象 圖3.1(b) 消息“重疊”現(xiàn)象 針對(duì)以上提到的消息內(nèi)爆和重疊現(xiàn)象,S.hedetniemi等人提出了閑聊(Gossping)協(xié)議。避免洪泛協(xié)議的內(nèi)爆問(wèn)題,節(jié)點(diǎn)隨機(jī)選取一個(gè)鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包,而不是向所有鄰居節(jié)點(diǎn)廣播數(shù)據(jù)包。然而,這卻增加了數(shù)據(jù)端到端的傳輸延遲。3.2.2 SPINSPIN(Sensor Protocols for Information via Negotiation)6是一種以數(shù)據(jù)為中心的自適應(yīng)通信路由協(xié)議,其目標(biāo)是通過(guò)使用節(jié)點(diǎn)間的協(xié)商機(jī)制和資源自適應(yīng)機(jī)制,從而解決泛洪協(xié)議存在的數(shù)據(jù)內(nèi)爆問(wèn)題和重疊現(xiàn)象。傳感器節(jié)點(diǎn)在傳送數(shù)據(jù)之前
19、彼此進(jìn)行協(xié)商,協(xié)商制度可確保傳輸有用數(shù)據(jù)。節(jié)點(diǎn)間通過(guò)發(fā)送元數(shù)據(jù),而不是采集的整個(gè)數(shù)據(jù)進(jìn)行協(xié)商。由于元數(shù)據(jù)大小小于采集的數(shù)據(jù),所以傳輸元數(shù)據(jù)消耗的能量相對(duì)較少。SPIN協(xié)議有 3 種數(shù)據(jù)包類型,即 ADV、REQ和 DATA。ADV用于元數(shù)據(jù)的廣播,REQ用于請(qǐng)求發(fā)送數(shù)據(jù),DATA為傳感器采集的數(shù)據(jù)包。數(shù)據(jù)發(fā)送之前,節(jié)點(diǎn)要進(jìn)行“元數(shù)據(jù)協(xié)商”,協(xié)商是通過(guò)發(fā)送端廣播ADV包告知鄰居節(jié)點(diǎn)自己有數(shù)據(jù)要發(fā)送,如果鄰居節(jié)點(diǎn)愿意接受數(shù)據(jù)中轉(zhuǎn),就會(huì)返回REQ信號(hào)來(lái)完成握手過(guò)程,握手完成后就進(jìn)行DATA的傳輸,DATA可以經(jīng)過(guò)多個(gè)節(jié)點(diǎn)的中轉(zhuǎn)最后到達(dá)目的節(jié)點(diǎn),這樣就保證了網(wǎng)絡(luò)中沒(méi)有冗余數(shù)據(jù)。3.2.3 定向擴(kuò)散DD
20、路由協(xié)議定向擴(kuò)散(Directed Diffusion)7是一種以數(shù)據(jù)位中心且基于查詢的路由機(jī)制,其最大的特點(diǎn)就是引入了網(wǎng)絡(luò)梯度概念,并將局部算法相結(jié)合應(yīng)用于無(wú)線傳感器網(wǎng)絡(luò)的路由通信機(jī)制。網(wǎng)絡(luò)梯度7的思想本身源于生物學(xué)中的螞蟻種群模型,一般定義為屬性值和方向。屬性值可以依據(jù)數(shù)據(jù)速率、功率或者地理信息確定,方向由接收節(jié)點(diǎn)指向發(fā)送興趣的鄰居節(jié)點(diǎn),引導(dǎo)數(shù)據(jù)擴(kuò)散。定向擴(kuò)散路由機(jī)制分為興趣的洪泛,雙向梯度的建立,探測(cè)分組的洪泛,路徑的選擇與將強(qiáng),數(shù)據(jù)的發(fā)送五個(gè)階段組成。3.3 層次路由協(xié)議與平面路由協(xié)議相對(duì)應(yīng)的是分層結(jié)構(gòu)的路由協(xié)議。分層路由協(xié)議采用簇的概念對(duì)傳感器節(jié)點(diǎn)進(jìn)行層次劃分。若干個(gè)相鄰節(jié)點(diǎn)構(gòu)成一個(gè)
21、簇,每一個(gè)簇有一個(gè)簇首。簇與簇之間可以通過(guò)網(wǎng)關(guān)通信。網(wǎng)關(guān)可以是簇首也可以是其它簇成員。網(wǎng)關(guān)之間的連接構(gòu)成上層骨干網(wǎng),所以簇間通信都通過(guò)骨干網(wǎng)轉(zhuǎn)發(fā)。分層路由協(xié)議8包括成簇協(xié)議、簇維護(hù)協(xié)議、簇內(nèi)路由協(xié)議和簇間路由協(xié)議四個(gè)部分。成簇協(xié)議解決如何在動(dòng)態(tài)分布式網(wǎng)絡(luò)環(huán)境下使移動(dòng)節(jié)點(diǎn)高效地聚集成簇,它是分層路由協(xié)議的關(guān)鍵。簇維護(hù)協(xié)議要解決在節(jié)點(diǎn)移動(dòng)過(guò)程中的簇結(jié)構(gòu)維護(hù),其中包括移動(dòng)節(jié)點(diǎn)的退出和加入簇,簇的產(chǎn)生和消亡等功能。分層路由協(xié)議比較適合于無(wú)線傳感器網(wǎng)絡(luò),但成簇過(guò)程會(huì)產(chǎn)生一定的能源消耗。分層路由協(xié)議主要有:低功耗自適應(yīng)聚類路由協(xié)議LEACH、門限敏感的高效能耗傳感器網(wǎng)絡(luò)協(xié)議TEEN等。3.3.1低功耗自適
22、應(yīng)聚類路由協(xié)議LEACH(low energy adaptive clustering hierarchy)LEACH9協(xié)議是有MIT的Heinzelman等人提出,它是第一種基于分簇結(jié)構(gòu)和分層技術(shù)的無(wú)線傳感器網(wǎng)絡(luò)協(xié)議,在無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議中占有重要地位。LEACH協(xié)議的基本思想是通過(guò)隨機(jī)循環(huán)地選擇簇首節(jié)點(diǎn)將整個(gè)網(wǎng)絡(luò)的能量負(fù)載平均分配到每個(gè)傳感器節(jié)點(diǎn),從而達(dá)到降低網(wǎng)絡(luò)能源消耗、提高網(wǎng)絡(luò)整體生存時(shí)間的目的。與一般的基于平面結(jié)構(gòu)的路由協(xié)議和靜態(tài)的基于多簇結(jié)構(gòu)的路由協(xié)議相比,具有以上的優(yōu)點(diǎn)。在數(shù)據(jù)通信階段,簇內(nèi)節(jié)點(diǎn)把數(shù)據(jù)發(fā)送給簇頭,簇頭進(jìn)行數(shù)據(jù)融合并把結(jié)果發(fā)送給匯聚節(jié)點(diǎn)。由于簇頭需要完成數(shù)據(jù)融合
23、、與基站通信等工作,所以能量消耗大。LEACH算法能夠保證各節(jié)點(diǎn)等概率地?fù)?dān)任簇頭,使得網(wǎng)絡(luò)中的節(jié)點(diǎn)相對(duì)均衡地消耗能量。3.3.2 TEENTEEN協(xié)議就是為反應(yīng)式無(wú)線傳感器網(wǎng)絡(luò)而設(shè)計(jì)的路由策略,它具有實(shí)時(shí)性,可以對(duì)突發(fā)事件作出快速反應(yīng)。TEEN和LEACH的實(shí)現(xiàn)機(jī)制非常相似,只是前者是響應(yīng)型的,而后者屬于主動(dòng)型傳感器網(wǎng)絡(luò)。TEEN協(xié)議的優(yōu)點(diǎn):協(xié)議適合于需要實(shí)時(shí)感知的應(yīng)用環(huán)境中;通過(guò)設(shè)置硬閥值和軟閥值2個(gè)參數(shù),TEEN可以大大減少數(shù)據(jù)傳送的次數(shù),比LEACH節(jié)約能量等。缺點(diǎn):不適合應(yīng)用在需要周期性采集的應(yīng)用系統(tǒng)中,這是因?yàn)槿绻W(wǎng)絡(luò)中的節(jié)點(diǎn)沒(méi)有收到相關(guān)的閥值,那么節(jié)點(diǎn)就不會(huì)與匯聚節(jié)點(diǎn)進(jìn)行通信,用戶
24、也就完全得不到網(wǎng)絡(luò)的任何數(shù)據(jù)。3.4 各路由協(xié)議之間的比較平面路由協(xié)議的優(yōu)點(diǎn)在于實(shí)現(xiàn)簡(jiǎn)單,但是它也存在著可擴(kuò)展性差的缺點(diǎn),無(wú)線傳感器網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)通常是由分布在一點(diǎn)區(qū)域內(nèi)的成千上萬(wàn)個(gè)節(jié)點(diǎn)所構(gòu)成的,網(wǎng)絡(luò)的規(guī)模非常之大。相比之下,分層路由協(xié)議由于它的可擴(kuò)展性好的優(yōu)點(diǎn),能夠適合大型的無(wú)線傳感器網(wǎng)絡(luò)。分層路由協(xié)議之所以要優(yōu)于平面路由協(xié)議的原因在于:分層路由協(xié)議把所有的節(jié)點(diǎn)分為多個(gè)簇,每個(gè)簇?fù)碛幸粋€(gè)簇首和多個(gè)成員節(jié)點(diǎn)。成員節(jié)點(diǎn)在收集有效的信息后,不是無(wú)目的的傳輸信息,而是在簇首節(jié)點(diǎn)分配給自己的時(shí)隙內(nèi)發(fā)送信息,信息發(fā)送完成后,該節(jié)點(diǎn)可以進(jìn)入睡眠狀態(tài),等待信息收集的開(kāi)始或傳輸時(shí)隙的到來(lái)。同時(shí)各種路由協(xié)議還有以
25、下的比較:表3.1 無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議的分類比較路由協(xié)議多跳單跳平面型分層型數(shù)據(jù)融合Flooding是是SPIN是是有DD是有LEACH是是有TEEN是是有表3.2 無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議的性能比較路由協(xié)議性能比較以數(shù)據(jù)位中心生命周期傳輸延遲路徑容錯(cuò)可擴(kuò)展性Flooding短短好差否SPIN短長(zhǎng)好差是DD長(zhǎng)較短好較好是LEACH長(zhǎng)較短較好較好否TEEN長(zhǎng)較短較好較好是說(shuō)明:這些路由協(xié)議都是基于特定的應(yīng)用環(huán)境下而設(shè)計(jì),在不同的條件下,不同的協(xié)議表現(xiàn)出不同的性能,因此,不能絕對(duì)說(shuō)哪種協(xié)議最優(yōu)。4 洪泛 (MFlood)協(xié)議的仿真分析與評(píng)價(jià)無(wú)線路由通訊協(xié)議MFlood路由算法是一種傳統(tǒng)的廣播式路
26、由協(xié)議10。它不需要維護(hù)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)和路由計(jì)算,每個(gè)節(jié)點(diǎn)都使用廣播轉(zhuǎn)發(fā)收到的數(shù)據(jù)分組,若收到重復(fù)的分組則進(jìn)行丟棄處理。通過(guò)設(shè)定合適的TTL值來(lái)避免由于大面積的擴(kuò)散而占用過(guò)多的網(wǎng)絡(luò)資源,使擴(kuò)散收斂,保證數(shù)據(jù)分組只經(jīng)過(guò)有限跳路由;此外為了進(jìn)行重復(fù)分組檢測(cè),每個(gè)節(jié)點(diǎn)需要維護(hù)一個(gè)數(shù)據(jù)分組序號(hào)SEQ和一張路由表,原節(jié)點(diǎn)每發(fā)送一個(gè)分組則將SEQ加1,并將該SEQ添加到數(shù)據(jù)分組的IP頭部,其余節(jié)點(diǎn)受到數(shù)據(jù)分組后會(huì)將該SEQ記錄到路由表并根據(jù)該SEQ進(jìn)行重復(fù)分組檢測(cè)。由于洪泛算法會(huì)產(chǎn)生大量的分組,占用網(wǎng)絡(luò)資源,所有效率很低。但是它是一個(gè)最簡(jiǎn)單又有效的路由算法4.1 NS2簡(jiǎn)介4.1.1 NS-2概述NS-2
27、11的全稱為Network Simulator Version 2。是美國(guó)加州大學(xué)伯克利分校(University of Califorlia, Berkley)開(kāi)發(fā)的一個(gè)事件驅(qū)動(dòng)的網(wǎng)絡(luò)仿真器。由于具有開(kāi)放源代碼、可擴(kuò)展性強(qiáng)、仿真速度快效率高等優(yōu)點(diǎn),目前NS2已被研究者廣泛地用于各種網(wǎng)絡(luò)的仿真。NS-2是面向?qū)ο蟮?,離散事件驅(qū)動(dòng)的網(wǎng)絡(luò)環(huán)境模擬器,主要用于解決網(wǎng)絡(luò)研究方面的問(wèn)題。NS-2提供在無(wú)線或有線網(wǎng)絡(luò)上,TCP、路由、多播等多種協(xié)議的模擬。NS具有開(kāi)放性好、擴(kuò)展性強(qiáng)、適用于Windows和Linux系統(tǒng)平臺(tái)的特點(diǎn),是一個(gè)出色的研究網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、分析網(wǎng)絡(luò)傳輸?shù)姆抡婀ぞ?。與其他的網(wǎng)絡(luò)仿真工具相
28、比,NS對(duì)相應(yīng)數(shù)據(jù)流的仿真能量尤為突出。NS仿真環(huán)境中有兩種分工不同的開(kāi)發(fā)語(yǔ)言:C+和Otcl ( ObjectTcl, 即Tcl面向?qū)ο蟮臄U(kuò)展)。C+描述網(wǎng)絡(luò)協(xié)議的細(xì)節(jié),Otcl提供面向?qū)ο蟮慕涌?,通過(guò)配置仿真活動(dòng)中的各種參數(shù),建立仿真的整體框架,C+和OTCL之間通過(guò)TclCL關(guān)聯(lián)起來(lái)。C+運(yùn)行速度快,使模擬具有高性能;而用Otcl進(jìn)行模擬配置,可以不必重新編譯情況下隨意修改模擬參數(shù)和模擬過(guò)程,提高了模擬的效率。4.1.2 NS-2的層次結(jié)構(gòu)NS2是一個(gè)用C+編寫(xiě)的面向?qū)ο蟮姆抡嫫?,它的前端是一個(gè)OTcl解釋器仿真器內(nèi)核定義了有層次結(jié)構(gòu)的多種類,稱為編譯類結(jié)構(gòu);OTcl解釋器中有相似的類結(jié)
29、構(gòu),稱為解釋類結(jié)構(gòu)。NS2內(nèi)核的層次結(jié)構(gòu)9如下圖所示。圖4.1 NS2的層次結(jié)構(gòu)如上圖所示:NS2用到了六種TCL類,分別是:(1) Tcl類:封裝了OTcl解釋器實(shí)例,向外界提供方法來(lái)訪問(wèn)解釋器。(2) TclObject類:它是兩種類結(jié)構(gòu)中的大多數(shù)的基類。(3) Tclclass類:把用戶通過(guò)類TclObject在解釋器中建立的類結(jié)構(gòu)映射到編譯類結(jié)構(gòu),提供方法來(lái)實(shí)例化新的對(duì)象(4) TclCommand類:提供一種機(jī)制使NS2內(nèi)核向解釋器輸出簡(jiǎn)單的命令。(5) EmbededTcl類:允許用戶以編譯代碼或解釋代碼來(lái)擴(kuò)展NS2功能。(6) Instvar類:定義了一些方法和機(jī)制,在編譯類結(jié)構(gòu)
30、對(duì)象的成員變量和對(duì)應(yīng)的解釋類結(jié)構(gòu)對(duì)象的成員變量之間建立映射,使兩類變量一致共享。4.1.3 NS-2模塊概述NS2功能非常強(qiáng)大,由12個(gè)模塊組成,下面分別介紹各模塊的功能:(1) Tcl:Tcl提供了一個(gè)強(qiáng)有力的平臺(tái),可以生成面向多種平臺(tái)的應(yīng)用程序,協(xié)議,驅(qū)動(dòng)程序等等。它與TK(toolkit)協(xié)作,可生成GUI應(yīng)用程序,可在PC、Unix和Macintosh上運(yùn)行。Tcl還可用來(lái)完成與網(wǎng)頁(yè)的相關(guān)任務(wù),或是為應(yīng)用程序提供強(qiáng)有力的命令語(yǔ)言。(2) TK:與Tcl協(xié)調(diào)工作的圖形工具包。(3) OTcl:MIT Object Tcl的簡(jiǎn)稱,是Tcl/TK面向?qū)ο缶幊痰臄U(kuò)展。(4) Tclcl:此目錄
31、下含有tcl/C+的接口,vic、vat、ns、rtp_play和nam都會(huì)用到。(5) NS:NS的主體代碼,內(nèi)含一個(gè)節(jié)點(diǎn)移動(dòng)產(chǎn)生器、兩個(gè)傳輸事件產(chǎn)生器。(6) TclDebug:Tcl調(diào)試工具包。(7) Nam:即UCB/LBNL Network AniMator,它與NS協(xié)同工作,將NS仿真過(guò)程動(dòng)態(tài)的表現(xiàn)出來(lái)。(8) Xgraph:Xgraph是X-Windows應(yīng)用程序,包含:交互式測(cè)量和繪制和動(dòng)畫(huà)效果。4.1.4 NS-2的組成部分(1)離散事件調(diào)度器(Scheduler):調(diào)度器是仿真器的心臟,它記錄當(dāng)前時(shí)間,調(diào)度網(wǎng)絡(luò)事件鏈表中的事件。它有一個(gè)靜態(tài)成員變量instance,供所有的
32、類訪問(wèn)同一個(gè)調(diào)度器,提供函數(shù)產(chǎn)生新事件,指定事件發(fā)生的時(shí)間。目前NS2支持四種事件調(diào)度器,分別為鏈表式(linked-list)、堆式(heap)、時(shí)間隊(duì)列式(calendar)和實(shí)時(shí)(real-time)調(diào)度器,其中時(shí)間隊(duì)列式為默認(rèn)的事件調(diào)度器。(2)事件處理器(Handler):Handle是所有處理事件類的基類,它只是一個(gè)虛擬函數(shù),每個(gè)繼承類實(shí)現(xiàn)自己的功能。(3)節(jié)點(diǎn)(Node):節(jié)點(diǎn)是對(duì)實(shí)際網(wǎng)絡(luò)中分布在不同地理位置的主機(jī)、交換機(jī)、路由器等網(wǎng)絡(luò)設(shè)備的統(tǒng)一抽象,是構(gòu)成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的一個(gè)重要組成部分。(4)鏈路(Link):鏈路用來(lái)連接節(jié)點(diǎn)和路由器。一個(gè)節(jié)點(diǎn)可以有一條或多條輸出鏈路(如路由器
33、),所有的鏈路都以隊(duì)列的形式來(lái)管理分組到達(dá)、離開(kāi)或丟棄,統(tǒng)計(jì)并保存字節(jié)數(shù)和分組數(shù)。另外還有一個(gè)獨(dú)立的對(duì)象來(lái)記錄隊(duì)列日志。(5)代理(Agent):代理是實(shí)際產(chǎn)生和消費(fèi)分組的對(duì)象,它們屬于傳輸層實(shí)體,運(yùn)行在端主機(jī),節(jié)點(diǎn)的每一個(gè)代理自動(dòng)被賦與一個(gè)唯一的端口號(hào)(模擬udp/tcp端口),代理知道與它相連的節(jié)點(diǎn),以便把分組轉(zhuǎn)發(fā)給節(jié)點(diǎn),它也知道分組大小,業(yè)務(wù)類型,目的地址。Agent類是各種UDP/TCP實(shí)現(xiàn)類的基類,代理被保存在一個(gè)稱為demux的鏈表中。(6)NS對(duì)象(NsObject):NsObject是所有網(wǎng)絡(luò)實(shí)體的基類,包括節(jié)點(diǎn)、鏈路、代理,業(yè)務(wù)記錄(Trace)和數(shù)據(jù)源等。節(jié)點(diǎn)、鏈路、代理同
34、時(shí)繼承了NsObject和事件處理器類,因?yàn)檫@三種對(duì)象要處理多種事件,其他對(duì)象則不需要。(7)匹配器類(Matcher):匹配器類用來(lái)標(biāo)識(shí)有實(shí)例對(duì)象生成的類,用戶給出標(biāo)識(shí)匹配器類的關(guān)鍵字,匹配器類返回相應(yīng)的新建對(duì)象。4.1.5 NS2仿真模擬的步驟進(jìn)行網(wǎng)絡(luò)模擬前,首先要分析模擬要涉及哪幾個(gè)層次。NS模擬分兩個(gè)層次:一個(gè)是基于Otcl編程的層次,利用NS已有的網(wǎng)絡(luò)元素實(shí)現(xiàn)模擬,無(wú)需對(duì)NS本事進(jìn)行任何修改,只要編寫(xiě)Otcl腳本;另一個(gè)層次是基于C+和Otcl編程的層次,如果NS中沒(méi)有所需的網(wǎng)絡(luò)元素,就需要首先對(duì)NS進(jìn)行擴(kuò)展,添加所需要的網(wǎng)絡(luò)元素。這就要利用分裂對(duì)象模型,添加新的C+類和Otcl類,
35、然后再編寫(xiě)Otcl腳本。整個(gè)模擬過(guò)程圖4.2所示,步驟如下:(1) 如果有需要,則對(duì)NS2進(jìn)行擴(kuò)展,添加新的模塊或者對(duì)NS2中已有的模塊進(jìn)行修改;(2) 開(kāi)始編寫(xiě)Otcl腳本。包括配置模擬網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)、確定鏈路的基本屬性等;(3) 建立協(xié)議代理,包括端設(shè)備的協(xié)議綁定和通信業(yè)務(wù)模型的建立等;(4) 配置業(yè)務(wù)模型的參數(shù),從而確定網(wǎng)絡(luò)上的業(yè)務(wù)量分布;(5) 設(shè)置Trace對(duì)象。Trace對(duì)象能夠把模擬過(guò)程中發(fā)生的特定類型的事件記錄在trace文件中。NS2通過(guò)trace文件保存整個(gè)模擬過(guò)程。模擬完成后可以對(duì)trace文件進(jìn)行分析研究。(6) 設(shè)定模擬結(jié)束時(shí)間,編寫(xiě)其它輔助過(guò)程,至此Otcl腳本編寫(xiě)
36、結(jié)束;(7) 用ns執(zhí)行剛才的Otcl腳本,得到trace文件;(8) 對(duì)trace文件進(jìn)行分析,得出有用的數(shù)據(jù);(9) 調(diào)整配置模擬中的參數(shù),重新進(jìn)行模擬過(guò)程。圖4.2 NS2仿真模擬流程4.2 仿真環(huán)境搭配4.2.1 Cygwin環(huán)境 NS2是在UNIX系統(tǒng)上開(kāi)發(fā)的,因此可以再FreeBSD、SunOSc、Solaris定UNIX和類UNIX系統(tǒng)上安裝。而本次仿真設(shè)計(jì)是建立在Windows環(huán)境下的,因此我們將要使用基于Windows平臺(tái)的Cygwin環(huán)境來(lái)進(jìn)行仿真。Cygwin11是一個(gè)在Windows平臺(tái)上運(yùn)行的Unix模擬環(huán)境,是Cygnus Solution公司開(kāi)發(fā)的自由軟件。它對(duì)學(xué)
37、習(xí)Unix/Linux操作系統(tǒng),或者從Unix到Windows的應(yīng)用程序移植,或者進(jìn)行某些特殊的開(kāi)發(fā)工作,尤其是使用gnu工具集在Windows上進(jìn)行嵌入式系統(tǒng)開(kāi)發(fā),非常有用。運(yùn)行Cygwin后,你會(huì)得到一個(gè)類似于Linux的Shell環(huán)境,在其中還可以使用絕大部分Linux軟件和功能,如Gcc,Make,Vim,Emacs等等。4.2.2 實(shí)驗(yàn)環(huán)境在仿真實(shí)驗(yàn)中采用了NS-2作為網(wǎng)絡(luò)仿真的工具,它提供了通信模型、隨機(jī)拓?fù)浜凸?jié)點(diǎn)移動(dòng)模型生成等輔助工具。在仿真中使用的場(chǎng)景文件就使用了隨機(jī)模型工具實(shí)現(xiàn)。在仿真中設(shè)置了以下的仿真情景:場(chǎng)景文件scene-50n-0p-40s-400t-1200-120
38、0中的50n表示50個(gè)節(jié)點(diǎn),0p表示到一個(gè)地方的停留時(shí)間是0秒,40s表示節(jié)點(diǎn)移動(dòng)的最大速度為40秒,400t表示模擬場(chǎng)景的持續(xù)時(shí)間是400秒,1200-1200表示場(chǎng)景的大小為1200m1200m。在模擬仿真的過(guò)程中,同時(shí)還需要為50個(gè)節(jié)點(diǎn)在某個(gè)隨機(jī)時(shí)刻啟動(dòng)一個(gè)cbr流,該cbr流各節(jié)點(diǎn)間最大的連接數(shù)為30,每秒發(fā)送1個(gè)長(zhǎng)度為512Byte的包。 4.23 代碼實(shí)現(xiàn)#Agent/UDP set packetSize_ 6000 ;#設(shè)置包的大小set val(chan) Channel/WirelessChannel ;#信道類型set val(prop) Propagation/TwoRa
39、yGround ;#無(wú)線傳播模式set val(netif) Phy/WirelessPhy ;#網(wǎng)絡(luò)接口類型set val(mac) Mac/802_11 ;#MAC類型set val(ifq) Queue/DropTail/PriQueue ;#接口隊(duì)列類型set val(ll) LL ;#邏輯鏈路層類型set val(ant) Antenna/OmniAntenna ;#天線類型set val(x) 1200 ;#移動(dòng)拓?fù)涞膶挾萻et val(y) 1200 ;#移動(dòng)拓?fù)涞拈L(zhǎng)度set val(ifqlen) 50 ;#接口隊(duì)列最大長(zhǎng)度set val(seed) 0.0set val(rp
40、) MFlood ;#仿真協(xié)議的類型set val(nn) 50 ;#移動(dòng)節(jié)點(diǎn)的個(gè)數(shù)set val(cp) cbr-50n-30c-1p ;#cbr流文件#set val(sc) ./scene-50n-0p-2s-400t-1200-1200 ;#場(chǎng)景文件set val(sc) scene-50n-0p-40s-400t-1200-1200 ;#場(chǎng)景文件#set val(sc)./scene/jscene-50n-0p-2s-400t-1200-1200-1 ;#場(chǎng)景文件set val(stop) 100 ;#仿真時(shí)間=# 主程序=# 初始化模擬參數(shù)和跟蹤對(duì)象set ns_ new Simu
41、latorset tracefd open mflood-scene2.tr w ;#trace文件跟蹤$ns_ trace-all $tracefd#創(chuàng)建移動(dòng)拓?fù)鋝et topo new Topography#設(shè)定移動(dòng)場(chǎng)景范圍$topo load_flatgrid $val(x) $val(y)#nam文件跟蹤set namtrace open wireless1-out.nam w $ns_ namtrace-all-wireless $namtrace $val(x) $val(y)# 創(chuàng)建God對(duì)象set god_ create-god $val(nn)# 創(chuàng)建$val(nn)個(gè)移動(dòng)節(jié)
42、點(diǎn)并將它們連接到信道#配置節(jié)點(diǎn)屬性set channel new Channel/WirelessChannel$channel set errorProbability_ 0.0 $ns_ node-config -adhocRouting $val(rp) ;#路由協(xié)議類型 -llType $val(ll) ;#鏈路層類型 -macType $val(mac) ;#MAC類型 -ifqType $val(ifq) ;#接口隊(duì)列類型 -ifqLen $val(ifqlen) ;#接口隊(duì)列的最大分組數(shù) -antType $val(ant) ;#天線模式 -propType $val(prop)
43、 ;#無(wú)線信號(hào)傳輸模式 -phyType $val(netif) ;#網(wǎng)絡(luò)接口類 -channel $channel ;#通信信道類型 -topoInstance $topo ;#拓?fù)浞秶?-agentTrace ON ;#打開(kāi)agent層trace -routerTrace ON ;#打開(kāi)路由層trace -macTrace OFF ;#關(guān)閉Mac層trace -movementTrace OFF ;#關(guān)閉移動(dòng)trace#創(chuàng)建移動(dòng)節(jié)點(diǎn) for set i 0 $i $val(nn) incr i set node_($i) $ns_ node$node_($i) random-motion
44、0;# 定義節(jié)點(diǎn)移動(dòng)模型puts Loading connection pattern.source $val(cp)#定義節(jié)點(diǎn)運(yùn)行的模型puts Loading scenario file.source $val(sc)# 設(shè)置在nam中移動(dòng)節(jié)點(diǎn)顯示的大小for set i 0 $i $val(nn) incr i $ns_ initial_node_pos $node_($i) 20# 模擬結(jié)束后重設(shè)節(jié)點(diǎn)for set i 0 $i highest_packet_id) highest_packet_id=packet_id; #r表示收包,當(dāng)然也要在agent層 if($1=r)&($4
45、=AGT)&(end_timepacket_id=0)&($7=cbr) end_timepacket_id=time; #記錄收包時(shí)間 if($1=s)&($4=AGT)&($7=cbr) send+; if($1=r)&($4=AGT)&($7=cbr) recv+; END #當(dāng)每行資料都讀取完畢后,開(kāi)始計(jì)算有效封包的端到端延遲時(shí)間。 for ( packet_id = 0; packet_id = highest_packet_id; packet_id+ ) start = start_timepacket_id; end = end_timepacket_id; packet_duration = end - start; #只把接收時(shí)間大于傳送時(shí)間的記錄打印出來(lái) if ( start end ) printf(%d %fn, pa
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽省合肥市高中化學(xué) 第四章 非金屬及其化合物 第二節(jié) 富集在海水中的元素-氯教學(xué)實(shí)錄 新人教版必修1
- 人教版(PEP)四年級(jí)英語(yǔ)上冊(cè)教學(xué)工作計(jì)劃(含進(jìn)度表)
- 新教材高中政治 6.1 人的認(rèn)識(shí)從何而來(lái)教學(xué)實(shí)錄1 新人教版必修4
- mosfet在功率器件的應(yīng)用
- 勞務(wù)分包合同和護(hù)坡鉆洞勞務(wù)合同
- 2025年能源大數(shù)據(jù)合作協(xié)議書(shū)
- 主管年度工作計(jì)劃的團(tuán)隊(duì)建設(shè)技巧
- 學(xué)期調(diào)查與需求分析計(jì)劃
- 成長(zhǎng)足跡幼兒園教學(xué)工作計(jì)劃文檔
- 學(xué)生心理健康教育安排計(jì)劃
- 甘蔗種植技術(shù)
- 第11課《核舟記》-部編版語(yǔ)文八年級(jí)下冊(cè)
- 護(hù)理基礎(chǔ)知識(shí)1000題
- JJG 52-2013彈性元件式一般壓力表、壓力真空表和真空表
- 馬工程-公共財(cái)政概論-課程教案
- 千年菩提路解說(shuō)詞
- 2022年高考(湖北省學(xué)業(yè)水平選擇性考試)化學(xué)試題
- 古代漢語(yǔ)課件-副詞
- BCH編碼解讀課件
- 健康講座-線粒體與生命
- 攝像機(jī)基本原理(中文)
評(píng)論
0/150
提交評(píng)論