基于NS2的無線傳感器網絡仿真平臺設計
0 引言
無線傳感器網絡是當前國際上備受關注的、涉及多學科高度交叉、知識高度集成的前沿熱點研究領域。未來的無線傳感器網絡將向海、陸、空、天立體化網絡系統的方向發展,最終將成為人類生產和生活不可分割的一部分。無線傳感器網絡無論是在國防,還是在國民經濟的各個領域均有著廣闊的應用前景。對該技術的深入研究與推廣應用將推動我國信息化建設的進程,并極大地帶動相關產業和學科的發展。
在開展的無線傳感器網絡的研究中,我們都力求圍繞網絡的各種關鍵性能對無線傳感器網絡的各種技術進行改進。然而受有限的資金和網絡條件的限制,在實驗室構建大規模的實驗平臺比較昂貴。因此,充分利用現有資源,構建虛擬的仿真環境是非常有意義的。
本文在無線傳感器網絡特點和協議棧的研究基礎上,利用網絡仿真軟件NS2進行了研究和二次開發,構建了一個基于各種無線傳感器網絡關鍵性能的仿真界面。使得用戶可以通過仿真界面來自主配置網絡元素,搭建網絡,運行并直觀地顯示各種關鍵性能,以對其研究起到一定的指導作用。
1 無線傳感器網絡體系結構及NS2仿真機制
1.1 無線傳感器網絡體系結構
網絡體系結構是網絡的協議分層以及網絡協議的集合,是對網絡及其部件所應完成功能的定義和描述。對于無線傳感器網絡來說,圖l是傳感器節點使用的最典型的網絡協議體系結構,包括物理層、數據鏈路層、網絡層和應用層,與互聯網協議棧的五層協議相對應。此外,還包括網絡管理模塊。這些管理平臺使得傳感器節點能夠按照能源高效的方式協同工作,在節點移動的傳感器網絡中轉發數據,并支持多任務和資源共享。該模型既參考了現有通用網絡的TCP/IP和0sI模型的架構,同時又包含了傳感器網絡特有的電源管理、移動管理及任務管理。應用層為不同的應用提供了一個相對統一的高層接口;如果需要,傳輸層可為傳感器網絡保持數據流或保證與Internet連接;網絡層主要關心數據的路由;數據鏈路層協調無線媒質的訪問,盡量減少相鄰節點廣播時的沖突;物理層為系統提供一個簡單、穩定的調制、傳輸和接收系統。除此而外,電源、移動和任務管理負責傳感節點能量、移動和任務分配的監測,幫助傳感節點協調感測任務,盡量減少整個系統的功耗。
1.2 NS2的仿真機制
NS是美國加州Lawrence Berkeley國家實驗室于1989年開始開發的軟件。NS是一種可擴展、以配置和可編程的事件驅動的仿真工具,可以提供有線網絡、無線網絡中鏈路層及其上層,精確到數據包的一系列行為的仿真。最值得一提的是,NS中的許多協議代碼都和真實網絡中的應用代碼十分接近,其真實性和可靠性高居世界仿真軟件的前列。
NS底層的仿真引擎主要由C++編寫,同時利用0TCL語言作為仿真命令和配置的接口語言,網絡仿真的過程由一段OTCL的腳本來描述,這段腳本通過調用引擎中各類屬性、方法,定義網絡的拓撲,配置源節點、目的節點,建立連接,產生所有事件的時間表,運行并跟蹤仿真結果,還可以對結果進行相應的統計處理或制圖。
通常情況下,NS仿真器的工作從創建仿真器類(simulator)的實例開始,仿真器調用各種方法生成節點,進而構造拓撲圖,對仿真的各個對象進行配置,定義事件,然后根據定義的事件,模擬整個網絡活動的過程。
仿真器封裝了多個功能模塊:
(1)事件調度器:由于NS是基于事件驅動的,調度器也成為NS的調度中心,可以跟蹤仿真時間,調度當前事件鏈中的仿真時間并交由產生該事件的對象處理。
(2)節點:是一個復合組件,在NS中可以表示端節點和路由器,節點為每個連接到他的節點分配不同的端口,用于模擬實際網絡中的端口。
(3)鏈路:有多個組件復合而成,用來連接網絡節點。
(4)代理:代理類包含源及目的節點地址,數據包類型、大小、優先級等狀態變量,每個代理鏈接到一個網絡節點上,通常連接到端節點,由該節點給他分配端口號。
(5)包:由頭部和數據兩部分組成。
NS采取對真實網絡元素進行抽象,保留其基本特征,并運用等效描述的方法來建立網絡仿真模型。他們由大量的仿真組件所構成,用于實現對真實網絡的抽象和模擬。
2 仿真平臺設計
2.1 系統整體結構
NS2的主代碼主要采用Tcl和C++兩種語言進行編寫。C++的程序運行時間很短,轉換時間很長,適合具體協議的實現,而Tcl運行較慢但轉換很快,正好用來仿真的配置。Tcl提供了一個強有力的平臺,可以生成面向多種平臺的應用程序、協議、驅動程序等等。他與Tk(too1kit)協作,可生產GUI應用程序。Tk是基于Tcl的圖形程序開發工具箱,是Tcl的重要擴展部分。利用Tcl/Tk進行界面編程速度快,且界面編程工作可以從應用程序的其余部分分離開來,開發人員可以先集中精力實現程序的核心部分,然后逐步建立用戶界面。
本文主要就是采用Tk工具包來作出友好的無線傳感器網絡用戶操作界面,將所要運行的ns代碼嵌入其中,通過Nam動畫演示來展現網絡運行的過程,用Xgraph靜態圖表來分析網絡的各種關鍵性能。通過Tcl腳本來描述在用戶界面上所定義的網絡拓撲、場景參數以及網絡協議等網絡場景信息。
系統體系結構如圖2所示。系統主要有網絡場景模塊和性能分析模塊組成,網絡場景模塊主要包括環境參數設定、拓撲生成以及網絡協議添加的實現。當設定好基站以及普通節點拓撲范圍后,隨機生成一個網絡節點拓撲文件,結合其余的環境參數和網絡協議,便可完成網絡環境的初始化。
在NS2仿真器中,模擬的配置被作為一種程序設計而不是一種靜態的配置。一次模擬的場景為模擬的運行定義了一個輸入配置,NS采用Tcl腳本來描述用戶提交的網絡模擬場景。
當提交網絡模擬場景后,根據參數便會生成Tcl模擬腳本并調用NS仿真器進行模擬運行網絡,模擬結束后性能分析模塊即被激活,性能分析模塊主要包括Nam動畫演示和Xgraph靜態性能分析的實現。其中靜態分析實現了網絡能量、延時、丟包以及吞吐量等關鍵性能的仿真。
2.2 系統具體實現
系統具體的用戶操作界面如圖3所示:
評論