《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于NS2的無線傳感器網(wǎng)絡(luò)仿真平臺設(shè)計
基于NS2的無線傳感器網(wǎng)絡(luò)仿真平臺設(shè)計
EEworld
EEworld
摘要: 無線傳感器網(wǎng)絡(luò)是當(dāng)前國際上備受關(guān)注的,、涉及多學(xué)科高度交叉,、知識高度集成的前沿?zé)狳c研究領(lǐng)域。未來的無線傳感器網(wǎng)絡(luò)將向海,、陸,、空,、天立體化網(wǎng)絡(luò)系統(tǒng)的方向發(fā)展,最終將成為人類生產(chǎn)和生活不可分割的一部分,。無線傳感器網(wǎng)絡(luò)無論是在國防,,還
Abstract:
Key words :
</a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a></a>

    無線傳感器網(wǎng)絡(luò)是當(dāng)前國際上備受關(guān)注的、涉及多學(xué)科高度交叉,、知識高度集成的前沿?zé)狳c研究領(lǐng)域,。未來的無線傳感器網(wǎng)絡(luò)將向海、陸,、空,、天立體化網(wǎng)絡(luò)系統(tǒng)的方向發(fā)展,最終將成為人類生產(chǎn)和生活不可分割的一部分,。無線傳感器網(wǎng)絡(luò)無論是在國防,,還是在國民經(jīng)濟的各個領(lǐng)域均有著廣闊的應(yīng)用前景。對該技術(shù)的深入研究與推廣應(yīng)用將推動我國信息化建設(shè)的進程,,并極大地帶動相關(guān)產(chǎn)業(yè)和學(xué)科的發(fā)展,。
    在開展的無線傳感器網(wǎng)絡(luò)的研究中,我們都力求圍繞網(wǎng)絡(luò)的各種關(guān)鍵性能對無線傳感器網(wǎng)絡(luò)的各種技術(shù)進行改進。然而受有限的資金和網(wǎng)絡(luò)條件的限制,,在實驗室構(gòu)建大規(guī)模的實驗平臺比較昂貴,。因此,充分利用現(xiàn)有資源,,構(gòu)建虛擬的仿真環(huán)境是非常有意義的,。
    本文在無線傳感器網(wǎng)絡(luò)特點和協(xié)議棧的研究基礎(chǔ)上,利用網(wǎng)絡(luò)仿真軟件NS2進行了研究和二次開發(fā),,構(gòu)建了一個基于各種無線傳感器網(wǎng)絡(luò)關(guān)鍵性能的仿真界面。使得用戶可以通過仿真界面來自主配置網(wǎng)絡(luò)元素,,搭建網(wǎng)絡(luò),,運行并直觀地顯示各種關(guān)鍵性能,以對其研究起到一定的指導(dǎo)作用,。

1 無線傳感器網(wǎng)絡(luò)體系結(jié)構(gòu)及NS2仿真機制
1.1 無線傳感器網(wǎng)絡(luò)體系結(jié)構(gòu)
    網(wǎng)絡(luò)體系結(jié)構(gòu)是網(wǎng)絡(luò)的協(xié)議分層以及網(wǎng)絡(luò)協(xié)議的集合,,是對網(wǎng)絡(luò)及其部件所應(yīng)完成功能的定義和描述。對于無線傳感器網(wǎng)絡(luò)來說,,圖l是傳感器節(jié)點使用的最典型的網(wǎng)絡(luò)協(xié)議體系結(jié)構(gòu),,包括物理層、數(shù)據(jù)鏈路層,、網(wǎng)絡(luò)層和應(yīng)用層,,與互聯(lián)網(wǎng)協(xié)議棧的五層協(xié)議相對應(yīng)。此外,,還包括網(wǎng)絡(luò)管理模塊,。這些管理平臺使得傳感器節(jié)點能夠按照能源高效的方式協(xié)同工作,在節(jié)點移動的傳感器網(wǎng)絡(luò)中轉(zhuǎn)發(fā)數(shù)據(jù),,并支持多任務(wù)和資源共享,。該模型既參考了現(xiàn)有通用網(wǎng)絡(luò)的TCP/IP和0sI模型的架構(gòu),同時又包含了傳感器網(wǎng)絡(luò)特有的電源管理,、移動管理及任務(wù)管理,。應(yīng)用層為不同的應(yīng)用提供了一個相對統(tǒng)一的高層接口;如果需要,,傳輸層可為傳感器網(wǎng)絡(luò)保持數(shù)據(jù)流或保證與Internet連接,;網(wǎng)絡(luò)層主要關(guān)心數(shù)據(jù)的路由;數(shù)據(jù)鏈路層協(xié)調(diào)無線媒質(zhì)的訪問,,盡量減少相鄰節(jié)點廣播時的沖突,;物理層為系統(tǒng)提供一個簡單、穩(wěn)定的調(diào)制,、傳輸和接收系統(tǒng),。除此而外,電源,、移動和任務(wù)管理負責(zé)傳感節(jié)點能量,、移動和任務(wù)分配的監(jiān)測,,幫助傳感節(jié)點協(xié)調(diào)感測任務(wù),盡量減少整個系統(tǒng)的功耗,。

1.2 NS2的仿真機制
    NS是美國加州Lawrence Berkeley國家實驗室于1989年開始開發(fā)的軟件,。NS是一種可擴展、以配置和可編程的事件驅(qū)動的仿真工具,,可以提供有線網(wǎng)絡(luò),、
無線網(wǎng)絡(luò)中鏈路層及其上層,精確到數(shù)據(jù)包的一系列行為的仿真,。最值得一提的是,,NS中的許多協(xié)議代碼都和真實網(wǎng)絡(luò)中的應(yīng)用代碼十分接近,其真實性和可靠性高居世界仿真軟件的前列,。
    NS底層的仿真引擎主要由C++編寫,,同時利用0TCL語言作為仿真命令和配置的接口語言,網(wǎng)絡(luò)仿真的過程由一段OTCL的腳本來描述,,這段腳本通過調(diào)用引擎中各類屬性,、方法,定義網(wǎng)絡(luò)的拓撲,,配置源節(jié)點,、目的節(jié)點,建立連接,,產(chǎn)生所有事件的時間表,,運行并跟蹤仿真結(jié)果,還可以對結(jié)果進行相應(yīng)的統(tǒng)計處理或制圖,。
    通常情況下,,NS仿真器的工作從創(chuàng)建仿真器類(simulator)的實例開始,仿真器調(diào)用各種方法生成節(jié)點,,進而構(gòu)造拓撲圖,,對仿真的各個對象進行配置,定義事件,,然后根據(jù)定義的事件,,模擬整個網(wǎng)絡(luò)活動的過程。
    仿真器封裝了多個功能模塊:
    (1)事件調(diào)度器:由于NS是基于事件驅(qū)動的,,調(diào)度器也成為NS的調(diào)度中心,,可以跟蹤仿真時間,調(diào)度當(dāng)前事件鏈中的仿真時間并交由產(chǎn)生該事件的對象處理,。
    (2)節(jié)點:是一個復(fù)合組件,,在NS中可以表示端節(jié)點和路由器,節(jié)點為每個連接到他的節(jié)點分配不同的端口,用于模擬實際網(wǎng)絡(luò)中的端口,。
    (3)鏈路:有多個組件復(fù)合而成,,用來連接網(wǎng)絡(luò)節(jié)點。
    (4)代理:代理類包含源及目的節(jié)點地址,,數(shù)據(jù)包類型,、大小、優(yōu)先級等狀態(tài)變量,,每個代理鏈接到一個網(wǎng)絡(luò)節(jié)點上,,通常連接到端節(jié)點,由該節(jié)點給他分配端口號,。
    (5)包:由頭部和數(shù)據(jù)兩部分組成,。
    NS采取對真實網(wǎng)絡(luò)元素進行抽象,保留其基本特征,,并運用等效描述的方法來建立網(wǎng)絡(luò)仿真模型,。他們由大量的仿真組件所構(gòu)成,,用于實現(xiàn)對真實網(wǎng)絡(luò)的抽象和模擬,。

2 仿真平臺設(shè)計
2.1 系統(tǒng)整體結(jié)構(gòu)

    NS2的主代碼主要采用Tcl和C++兩種語言進行編寫。C++的程序運行時間很短,,轉(zhuǎn)換時間很長,,適合具體協(xié)議的實現(xiàn),而Tcl運行較慢但轉(zhuǎn)換很快,,正好用來仿真的配置,。Tcl提供了一個強有力的平臺,可以生成面向多種平臺的應(yīng)用程序,、協(xié)議,、驅(qū)動程序等等。他與Tk(too1kit)協(xié)作,,可生產(chǎn)GUI應(yīng)用程序,。Tk是基于Tcl的圖形程序開發(fā)工具箱,是Tcl的重要擴展部分,。利用Tcl/Tk進行界面編程速度快,,且界面編程工作可以從應(yīng)用程序的其余部分分離開來,開發(fā)人員可以先集中精力實現(xiàn)程序的核心部分,,然后逐步建立用戶界面,。
    本文主要就是采用Tk工具包來作出友好的無線傳感器網(wǎng)絡(luò)用戶操作界面,將所要運行的ns代碼嵌入其中,,通過Nam動畫演示來展現(xiàn)網(wǎng)絡(luò)運行的過程,,用Xgraph靜態(tài)圖表來分析網(wǎng)絡(luò)的各種關(guān)鍵性能。通過Tcl腳本來描述在用戶界面上所定義的網(wǎng)絡(luò)拓撲、場景參數(shù)以及網(wǎng)絡(luò)協(xié)議等網(wǎng)絡(luò)場景信息,。
    系統(tǒng)體系結(jié)構(gòu)如圖2所示,。系統(tǒng)主要有網(wǎng)絡(luò)場景模塊和性能分析模塊組成,網(wǎng)絡(luò)場景模塊主要包括環(huán)境參數(shù)設(shè)定,、拓撲生成以及網(wǎng)絡(luò)協(xié)議添加的實現(xiàn),。當(dāng)設(shè)定好基站以及普通節(jié)點拓撲范圍后,隨機生成一個網(wǎng)絡(luò)節(jié)點拓撲文件,,結(jié)合其余的環(huán)境參數(shù)和網(wǎng)絡(luò)協(xié)議,,便可完成網(wǎng)絡(luò)環(huán)境的初始化。

    在NS2仿真器中,,模擬的配置被作為一種程序設(shè)計而不是一種靜態(tài)的配置,。一次模擬的場景為模擬的運行定義了一個輸入配置,NS采用Tcl腳本來描述用戶提交的網(wǎng)絡(luò)模擬場景,。
    當(dāng)提交網(wǎng)絡(luò)模擬場景后,,根據(jù)參數(shù)便會生成Tcl模擬腳本并調(diào)用NS仿真器進行模擬運行網(wǎng)絡(luò),模擬結(jié)束后性能分析模塊即被激活,,性能分析模塊主要包括Nam動畫演示和Xgraph靜態(tài)性能分析的實現(xiàn),。其中靜態(tài)分析實現(xiàn)了網(wǎng)絡(luò)能量、延時,、丟包以及吞吐量等關(guān)鍵性能的仿真,。
2.2 系統(tǒng)具體實現(xiàn)
    系統(tǒng)具體的用戶操作界面如圖3所示:

在網(wǎng)絡(luò)場景模塊中,場景參數(shù)的設(shè)定僅由用戶界面輸入便可完成,,提交參數(shù)時可自動添加至后臺運行的Tcl腳本中并調(diào)用NS仿真器進行運行,,然而如若添加自定義網(wǎng)絡(luò)協(xié)議,則需進行相應(yīng)的NS二次開發(fā),,先開發(fā)出想添加的網(wǎng)絡(luò)協(xié)議,,并添加至后臺運行的Tcl腳本中,然后才能添至用戶界面中,。
    在性能分析模塊中,,網(wǎng)絡(luò)動畫演示主要是通過調(diào)用Nam可視化工具來實現(xiàn),網(wǎng)絡(luò)主要關(guān)鍵性能的靜態(tài)顯示則是通過gawk語言對網(wǎng)絡(luò)運行的跟蹤文件進行讀取,、處理,,最后通過Xgraph圖表化得到的。

3 仿真性能分析
    我們以經(jīng)典層次路由協(xié)議leach協(xié)議的運行為例,,來觀察系統(tǒng)用戶操作界面的使用,。
    在用戶界面中輸入需要的環(huán)境參數(shù),在MAC協(xié)議下拉選項中選取Mac/Sensor,,在routing協(xié)議中選取leach,,然后確認輸入點擊控件0K?進行提交網(wǎng)絡(luò)模擬場景設(shè)置,。然后點擊控件Run調(diào)用Ns仿真器進行運行模擬網(wǎng)絡(luò)(其中Clear控件用來清楚輸入,Reset控件用來恢復(fù)默認設(shè)置),。待模擬完成后,,性能分析模塊被激活,如圖4所示,。

    此時,,我們便可觀察網(wǎng)絡(luò)的各種性能分析,控件dynamic run可調(diào)甩Nam根據(jù)模擬返回結(jié)果NamTrace文件來動態(tài)演示網(wǎng)絡(luò)的模擬過程,,Nam的動態(tài)演示如圖5所示,。在energy一欄中,有三個控件:node alived,、received data和energy consume,,分別表示剩余節(jié)點數(shù)目、基站接收的數(shù)據(jù)量和網(wǎng)絡(luò)消耗能量,。如圖6,、7、8所示,。

由圖6,、7、8可以看出,,網(wǎng)絡(luò)總共運行時間為505s,,第一個節(jié)點在330s左右死亡,,到505s左右網(wǎng)絡(luò)還剩余4個節(jié)點,,基站接收到的數(shù)據(jù)量隨著時間大致呈線性上升,而網(wǎng)絡(luò)消耗的能量卻隨著節(jié)點的死亡呈現(xiàn)指數(shù)上升趨勢,。觀察一下網(wǎng)絡(luò)的時延狀況,,在delay一欄中,有三個控件:delay/packet,、delay/time和jitter,,分別表示每個包的延時,單位時間內(nèi)的延時和延時抖動,,下面僅以delay/time和jitter為例,,如圖9、lO所示:

    從圖9,、10中可以看出,,網(wǎng)絡(luò)的延時存在一定的周期性,這與1each協(xié)議的“回合”過程是有一定密切關(guān)系的,,而且從圖10中也可以看出,,網(wǎng)絡(luò)整體慢慢趨于穩(wěn)定狀態(tài),。
    下面看一下網(wǎng)絡(luò)的丟包和吞吐量。這里的丟包率為了防止網(wǎng)絡(luò)中存在一對多的傳輸情況(排除了廣播),,定義為:丟包率=丟棄的數(shù)據(jù)包/(接收的數(shù)據(jù)包+丟棄的數(shù)據(jù)包),。在drop一欄中,有兩個控件:drop ratio和get ratio,,這是兩個對立的概念,,一個表示丟包率,一個表示接收率(丟包率+接收率=1),,僅以接收率為例,,如圖11所示,網(wǎng)絡(luò)的吞吐量用單位時間內(nèi)網(wǎng)絡(luò)發(fā)送和接收的數(shù)據(jù)量表示,,如圖12所示,。

    由圖11,在leach協(xié)議中,,節(jié)點在成簇過程中即為簇內(nèi)每個節(jié)點按照TDMA方法安排了傳送數(shù)據(jù)的時間片,,這一點保證了節(jié)點傳輸數(shù)據(jù)時不會發(fā)生相互碰撞,也進一步保證了數(shù)據(jù)的接收率,,圖12,,網(wǎng)絡(luò)的吞吐量也與傳輸延時保持一致,與成簇周期存在一定的周期對應(yīng)關(guān)系,。

4 結(jié)束語
    由于NS2的安裝和使用都比較復(fù)雜,,針對于此,本文搭建了一個用戶仿真平臺,,NS2仿真器對于用戶是透明的,,面對用戶的只是設(shè)計平臺上的參數(shù)和協(xié)議的選定,用戶即可以利用NS2仿真器所提供的強大功能來進行那個網(wǎng)絡(luò)模擬研究又可以省去搭建網(wǎng)絡(luò)的復(fù)雜過程,。
    本文提出的系統(tǒng)通過采用NS2作為后臺仿真器給用戶提供了強大的網(wǎng)絡(luò)仿真能力,,滿足了無線傳感器網(wǎng)絡(luò)的多種仿真要求,同時由Tk軟件包所設(shè)計的仿真平臺也為不同網(wǎng)絡(luò)環(huán)境的重復(fù)性實驗提供了種種便利,,具有良好的可控,、可視和可擴充性。

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