天天看點

幾款主流的網絡仿真軟體

目前有許多優秀的網絡仿真軟體,其中有Opnet、NS2、Matlab等,這為網絡研究人員提供了很好的網絡仿真平台。主流的網絡仿真軟體都采用了離散事件模拟技術,并提供了豐富的網絡仿真模型庫和進階語言程式設計接口,這無疑提高了仿真軟體的靈活性和使用友善性。下面将對各種主流的網絡仿真軟體進行簡要評價。

  OPNET Modeler

  OPNET Modeler是OPNET Technology公司的四個系列網絡仿真軟體産品的其中之一,它主要面向的使用者為網絡設計專業人士,能夠滿足大型複雜網絡的仿真需要。OPNET Modeler有如下特點:

  (1) 提供三層模組化機制,最底層為Process模型,以狀态機來描述協定;其次為Node模型,由相應的協定模型構成,反映裝置特性;最上層為網絡模型。三層模型和實際的網絡、裝置、協定層次完全對應,全面反映了網絡的相關特性;

  (2) 提供了一個比較齊全的的基本模型庫,包括:路由器、交換機、伺服器、客戶機、ATM裝置、DSL裝置、ISDN裝置等等。同時,OPNET Technology公司會對不同的企業使用者提供附加的專用模型庫,但需另外付費;

  (3) 采用離散事件驅動的模拟機理(discrete event driven),與時間驅動相比,計算效率得到很大提高。

  (4) 采用混合模組化機制,把基于包的分析方法和基于統計的數學模組化方法結合起來,既可得到非常細節的模拟結果,又大大提高了仿真效率。

  (5) OPNET具有豐富的統計量收集和分析功能。它可以直接收集常用的各個網絡層次的性能統計參數,能夠友善地編制和輸出仿真報告。

  (6) 提供了和網管系統、流量監測系統的接口,能夠友善的利用現有的拓撲和流量資料建立仿真模型,同時還可對仿真結果進行驗證。

  NS2

  NS2(Network Simulator, version2)是一種面向對象的網絡仿真器,本質上是一個離散事件模拟器。NS2由UCBerkeley開發而成。它本身有一個虛拟時鐘,所有的仿真都由離散事件驅動的。目前NS2可以用于仿真各種不同的IP網,已經實作的一些仿真有:網絡傳輸協定,比如TCP和UDP;業務源流量産生器,比如FTP、Telnet、WebCBR和VBR;路由隊列管理機制,比如Droptai、RED和CBQ;路由算法,比如Dijkstra等。NS2也為進行區域網路的仿真而實作了多點傳播以及一些MAC子層協定。

  NS2使用C++和Otcl作為開發語言。NS可以說是Otcl的腳本解釋器,它包含仿真事件排程器、網絡元件對象庫以及網絡構模組化型庫等。事件排程器計算仿真時間,并且激活事件隊列中的目前事件,執行一些相關的事件,網絡元件通過傳遞分組來互相通信,但這并不耗費仿真時間。所有需要花費仿真時間來處理分組的網絡元件都必須要使用事件排程器。它先為這個分組發出一個事件,然後等待這個事件被排程回來之後,才能做下一步的處理工作。事件排程器的另一個用處就是計時。NS是用Otcl和C++編寫的。由于效率的原因,NS将資料通道和控制通道的實作相分離。為了減少分組和事件的處理時間,事件排程器和資料通道上的基本網絡元件對象都使用C++寫出并編譯的,這些對象通過映射對Otcl解釋器可見。

  當仿真完成以後,NS将會産生一個或多個基于文本的跟蹤檔案。隻要在Tcl腳本中加入一些簡單的語句,這些檔案中就會包含詳細的跟蹤資訊。這些資料可以用于下一步的分析處理,也可以使用NAM将整個仿真過程展示出來。

  Matlab

  MATLAB軟體是由美國Mathworks公司推出的用于數值計算和圖形處理的科學計算系統環境。MATLAB是英文MATrixLABoratory(矩陣實驗室)的縮寫。MATLAB環境下,使用者內建了程式設計、數值計算、圖形繪制、輸入輸出、檔案管理等各項功能。MATLAB提供了一個人機互動的數學系統環境,該系統的基本資料結構是矩陣,在生成矩陳對象時,不要求作明确的維數說明。與利用C語言或FORTRAN語言作數值計算的程式設計相比,利用MATLAB可以節省大量的程式設計時間。

  MTALAB系統由五個主要部分組成:

  (1) MATALB語言體系。MATLAB是高層次的矩陣/數組語言。具有條件控制、函數調用、資料結構、輸入輸出、面向對象等程式語言特性。利用它既可以進行小規模端程,完成算法設計和算法實驗的基本任務,也可以進行大規模程式設計,開發複雜的應用程式。

  (2) MATLAB工作環境包括管理工作空間中的變量據輸入輸出的方式和方法,以及開發、調試、管理M檔案的各種工具。

  (3) 圖形圖像系統。這是MATLAB圖形系統的基礎,包括完成2D和3D資料圖示、圖像處理、動畫生成、圖形顯示等功能的高層MATLAB指令,也包括使用者對圖形圖像等對象進行特征控制的低層MATLAB指令,以及開發GUI應用程式的各種工具。

  (4) MATLAB數學函數庫。這是對MATLAB使用的各種數學算法的總稱。包括各種初等函數的算法,也包括矩陣運算、矩陣分析等高層次數學算法等。

  (5) MATLAB應用程式接口。這是MATLAB為使用者提供的一個函數庫,使得使用者能夠在MATLAB環境中使用C程式或FORTRAN程式,包括從MATLAB中調用程式(如動态連結庫),讀寫MAT檔案的功能。

  由此可見,MATLAB是一個功能十分強大的系統,是集數值計算、圖形管理、程式開發為一體的環境。除此之外,MATLAB還具有很強的功能擴充能力,與它的主系統一起,可以配備各種各樣的工具箱,以完成一些特定的任務。

  CASSAP

  CASSAP是美國Synopsys(新思科技)公司開發了一款仿真軟體,主要應用于數字信号處理和網絡通信領域,它可以在概念、體系結構、算法三個層次上實作仿真。CASSAP采用了資料流驅動仿真器,它比基于時鐘周期的仿真器速度提高了8-16倍。CASSAP提供了1000多個高層子產品,并可對其中所需子產品自動生成行為級或RTL級VHDL,也可生成各種風格的DSP代碼,供DSP處理器作軟體實作。CASSAP可廣泛應用于需分析和評估算法、實作方式的數字傳輸系統,如通訊、圖像、多媒體等,并提供了針對GSM、CDMA、DECT等标準的專用開發平台。

  SPW

  SPW仿真軟體是Cadence公司的産品,它提供了面向電子系統的子產品化設計、仿真及實施環境,是進行算法開發,濾波器設計,C代碼生成,硬/軟體結構聯合設計和硬體綜合的理想環境。SPW的一個顯著特點是他提供了HDS接口和Matlab接口。Matlab裡面的很多模型可以直接調入SPW,然後利用HDS生成C語言仿真代碼或者是HDL語言仿真代碼。SPW通常可以應用于無線和有線載波通信、多媒體和網絡設計與分析等領域。

繼續閱讀