天天看點

P2P系統仿真: oversim+INET+omnetPP

來香港半年多了,啥事情沒折騰出來,就折騰了p2p的仿真了。 P2P的仿真軟體很多, 測量軟體也很多,但是挑選了半天,我還是選擇了omnetPP + INet + OverSim來做為我的仿真平台。 這裡我也隻是做個簡單的介紹而已, 有興趣的朋友可以自己去找些資料看看了。 

OmnetPP是一個跨平台的離散時間事件仿真程式, 功能蠻強大的,而且還開源。但是我看了一下他的許可證,他并不是基于GPL的。 估計作者希望将來能把這個東西做大盈利,但是目前來看隻要不是商業使用,就完全開源和免費,這是很不錯的。 同類的仿真軟體還有NS2,但是NS2對于p2p的仿真似乎一直沒有專門的團隊來支援,需要自己付出大量的工作,是以意義不大。其次,OmnetPP的一個吸引我的地方是圖形界面和實時顯示能力,這個是NS2所沒有, NS2是基于仿真結果資料來顯示仿真狀況,屬于電影回放playback類型,而omnetPP是屬于現場直播Live, 很适合在早期發現設計中的錯誤。 OmnetPP隻是一個通用的網絡仿真軟體, 在其上需要對計算機網絡進行仿真,需要INET子產品。

INET子產品是一個獨立的計算機通信網絡協定集在OmnetPP上的實作, 包括從實體層到應用層的網絡協定,真讓人歎為觀止。 而且這個子產品有專門的團隊負責維護, 文檔方面非常完備。就這點我就沒理由不用它了。 INET子產品主要用于網際網路的仿真, 由于我隻是希望對P2P這類特定應用進行仿真,是以INET的細節方面并不是我所關注的,它隻是我所需要的Oversim子產品所必須的下層子產品,是以在這裡提一下。

Oversim子產品根據他的名字就看出他主要是用于Overlay類型的應用層網絡仿真所設計的。 但是在實際的開發中,他卻主要用在目前主要的那些P2P應用協定的仿真上了。 Oversim的底層是建立在一套簡化的UDP協定之上(依靠了INET裡面的實作),在其上,他定義了一套層次架構,由下至上為 Overlay Applicatoin Tier1 Applicatoin Tier2 Applicatoin Tier3 . 根據其設計的說明, Overlay層用于包括通用的底層Overlay協定的實作。而上層具體的應用,可以一層一層的疊加上去,作為Tier1 Tier2 Tier3。拿P2P的仿真來舉例,通用的Pastry協定的實作就是放在Overlay這層的,而可以利用Pastry的各種應用,比如p2p存儲, 聊天,媒體播放功能可以作為Tier1層堆疊上去。 各個層次的對上層接口都由Oversim定義,也可以自己擴充(我就擴充了一套專門用于媒體資料傳輸的接口)。 可以說Oversim提供了一個很不錯的P2P設計的程式架構的參考。

     本文轉自nathanxu 51CTO部落格,原文連結:http://blog.51cto.com/nathanxu/62378,如需轉載請自行聯系原作者

繼續閱讀