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