NS-2

詞語

NS-2(Network Simulator,version2)是由UC Berkeley開發的離散事件網路模擬器.NS遵守GNU(通用公共許可證)開源協議,具有良好的擴展性和豐富的在線文檔,這使得它在教育界尤其受歡迎.NS常用於路由和組播協議模擬,在Ad-hoc網路研究中的使用也很廣泛.NS2支持常用的網路協議,並提供類似有線和無線網路的結果.

設計


NS由C++開發,通過OTcl(面向對象的Tcl)腳本語言提供模擬介面.C++是一種相對運行速度較快但是改變比較慢的語言,程序的運行時間很短,但轉換時間很長,比較適合具體協議描述。OTcl運行速度較慢,但可以快速轉變的腳本語言,正好和C++互補,用來進行模擬參數的配置是最適合不過的。另外TclCL模塊能夠將兩種語言中的變數和對象連接起來。
NS-2內置了各種常用的業務模型,包括FTP業務模型、CBR業務模型、On\Off業務模型等。同時它還支持TCPUDP兩種傳輸協議以及多種路由協議,包括分級路由、廣播路由、多播路由、靜態路由、動態路由等,這極大方便了用戶的使用。另外支持通過C++二次開發用戶自己需要的協議。
NS-2採用面向對象技術,這就保證了軟體的可擴充性和重用性,提高了程序開發的效率。對象的屬性能夠很容易地配置,每個對象屬於相應的行為和功能的類。類也可以繼承其他類,也可以通過C++來定義新的類來滿足用戶自己特定的需求。
為了分析模擬結果,模擬結果的數據必須能夠完整收集。NS-2提供了兩種基本數據追蹤能力:跟蹤和監控。跟蹤能夠將每個數據包在任何時刻的狀態記錄到指定文件中,例如包在隊列或鏈路中丟棄、到達、離開的行為都可以記錄下來。而監控則可以有選擇記錄自己需要的數據,例如統計發送包、接收包、丟棄包的總數量。同時監控也可用來對所有包或者指定的單一數據流進行監測。同時NS-2還提供了動態顯示模擬過程的nam觀察器和xgraph圖形顯示工具。用戶從nam觀察器中可以直觀了解數據包的傳遞過程,而xgraph工具可以很方便地將模擬結果轉換成圖表形式。

總結


NS-2設計的出發點是基於網路模擬,它集成了多種網路協議,業務類型,路由排隊管理機制,路由演演算法。此外,NS-2還集成了組播業務和應用於區域網模擬有關的部分、MAC層協議。其模擬主要針對路由層,傳輸層,數據鏈路層展開,因此NS-2可以進行對固定,無線,衛星以及混合等多種網路的模擬,但它最適用於TCP層以上的模擬。NS-2的特點是源代碼公開、可擴展性強、速度和效率優勢明顯。