OMNeT++是一個(gè)免費(fèi)的、開源的多協(xié)議網(wǎng)絡(luò)仿真軟件,在網(wǎng)絡(luò)仿真領(lǐng)域中占有十分重要的地位。OMNeT++英文全稱是Objective Modular Network Testbed in C++,是近年來在科學(xué)和工業(yè)領(lǐng)域里逐漸流行的一種基于組件的模塊化的開放的網(wǎng)絡(luò)仿真平臺(tái)。OMNeT++作為離散事件仿真器,具備強(qiáng)大完善的圖形界面接口。
領(lǐng)域的問題
.無線通信網(wǎng)絡(luò)和有線通信網(wǎng)絡(luò)建模
· 協(xié)議仿真建模
· 排隊(duì)網(wǎng)絡(luò)建模
· 多處理器和分布式硬件系統(tǒng)建模
· 硬件體系結(jié)構(gòu)驗(yàn)證
· 評(píng)估復(fù)雜軟件系統(tǒng)多方面的性能
總的來說,它可以用于任何使用離散時(shí)間方法的系統(tǒng)仿真和建模,并且其可以方便地映射為依靠交換信息進(jìn)行的通信的實(shí)體。
模擬器介紹
OMNeT++本身并不是所有現(xiàn)實(shí)系統(tǒng)的模擬器,但它確實(shí)為實(shí)現(xiàn)仿真提供了基礎(chǔ)底層結(jié)構(gòu)和工具。這種基礎(chǔ)底層結(jié)構(gòu)的基本成分之一是一種用于仿真模型的組件體系結(jié)構(gòu),模型由可重復(fù)使用的元件(即模塊)組成。寫好的模塊可以重復(fù)使用,并且能夠以各種方式組合,像樂高塊一樣。
一款OMNeT++模擬器包括一些分層次的嵌入式模型,嵌入式模型的深度是無限的,即允許用戶在模擬環(huán)境中繪制實(shí)際系統(tǒng)的邏輯結(jié)構(gòu)。各模塊通過信息的傳輸進(jìn)行通信,其信息可以包括任意復(fù)雜的數(shù)據(jù)結(jié)構(gòu),各模塊均可以通過門或者線路直接發(fā)送信息給目標(biāo)點(diǎn)或者也可以通過預(yù)先的路徑進(jìn)行傳輸.
各個(gè)模塊可以有自己的參數(shù)集,參數(shù)集可以被用于定制模塊行為,或者可以用于確定模擬拓?fù)鋱D的參數(shù).
模擬網(wǎng)絡(luò)最底層的模塊可以嵌入行為,這些模塊被稱為基本模塊,它可以利用模擬器的庫函數(shù)在C++進(jìn)行編程.
OMNeT ++模擬器可以在根據(jù)不同的目的來改變用戶接口: 調(diào)試、實(shí)例和批量執(zhí)行。高級(jí)用戶的接口可以把模塊透明的交給用戶,即允許控制模擬器執(zhí)行以及可以通過改變模塊中的變量/對(duì)象來干涉模擬器的執(zhí)行,這在開發(fā) /調(diào)試模擬器工程師非常有用的,用戶接口也促進(jìn)了模塊工作的實(shí)現(xiàn)。
和用戶接口一樣,模擬器和工具是高度便捷的。它們?cè)谧钔ㄓ玫牟僮飨到y(tǒng)上進(jìn)行測(cè)試(如Linux、Mac OS/X、Windows),并且在少許修改后,也可以在大多數(shù)類似于unix的操作系統(tǒng)上編譯。
OMNeT ++還支持分布式并行仿真,OMNeT++可以利用多種機(jī)制來進(jìn)行用于幾個(gè)并聯(lián)的分布式模擬器之間的通信仿真,比如MPI和指定的通道。這種并行仿真算法 可以很容易的進(jìn)行擴(kuò)展,也很容易加入新的模塊。各個(gè)模塊不必須要特定的結(jié)構(gòu)來并行運(yùn)行,這只是一個(gè)配置的問題。OMNeT++甚至還可以被用于并行模擬仿真算法的多層次描述,因?yàn)槟M器可以在GUI下并行運(yùn)行,這種GUI為運(yùn)行過程提供了詳細(xì)的反饋。
OMNEST是OMNeT++的一個(gè)商業(yè)版本,OMNeT++只在學(xué)術(shù)和非盈利性活動(dòng)免費(fèi),在進(jìn)行商業(yè)性目的使用時(shí)需要從Simulcraft公司獲得OMNEST許可證。
參考資料 >