2015-02-24 50 views
1

所以我需要模擬isis2 in ns-3。 (我也稍微修改了Isis2,用一些C/C++代碼包裝它,因爲我至少需要一個準實時任務關鍵行爲)ns-3中的isis2和網橋tap

由於我遠沒有實現它,知道這是否是一種合適的行爲方式。我需要專門監測零星無線(ad hoc)行爲期間的共識表現。

爲每個Isis2實例虛擬一臺機器,然後使用tap橋(模型和分析ns-3通道中的流量?我也是記錄每個實例上的事件;將各種數據組合成統一的表示)

+0

PS。 _任何額外的提示也將不勝感激。我以前從未使用過Mono/.NET,但我認爲它不會有問題。我會錯過任何可能因此設置而有用的信息嗎?_ – tortal 2015-02-24 08:04:09

+0

Linux上的Mono與Isis2在本機Windows平臺上執行的操作幾乎完全相同。事實上,異步I/O系統調用的Mono/Linux實現(在Windows中是本地的,但由於O/S傳遞事件通知的方式有所不同,在Linux中很難支持)很簡單,但我爲此工作在Isis2中。主要區別在於,對於RDMA文件傳輸,由於Linux處理我使用的映射文件類型的問題,Windows比Linux更快。修復即將發佈的補丁版本。 – 2015-02-25 14:52:12

回答

1

您需要從構建Isis2應用程序開始,這需要使用C/CLI或C++/CLI來完成。與Isis2類型系統更接近,但是當我鍵入這些詞時,我試圖記住Mono是否實際上支持C++/CLI,如果沒有用於C++/CLI的Mono編譯器,則可能會被迫使用C#或IronPython。基本上,你必須與什麼工作他編譯器會支持。

您將在單聲道平臺上構建該庫和應用庫,並對其進行測試,您可以在任何Linux系統上進行測試。一旦你有它的工作,這是你將在NS/3上試驗的事情。注意,如果你在Windows上工作,你將能夠使用C++/CLI(當然),然後可以爲NS3製作一個Windows VM。所以這意味着在Windows上工作,但不需要學習C#。

這是因爲Isis2是一個用於組通信,多播,文件複製和共享,DHT等的庫,並且可以訪問您需要應用程序「驅動」它的任何特定功能。如果您遵循視頻教程和用戶手冊中的建議,我不會期望性能問題;即使對於實時使用,該系統的行爲可能足夠快且穩定。

那麼是的,我會帶一個虛擬機,具有Mono所需的二進制文件(Mono從DLL加載,因此它們需要在正確的虛擬文件系統位置可用)和您的Isis2測試程序並在NS3內運行。我沒有嘗試過,但沒有看到任何理由不起作用。

請記住,超時和重新傳輸的默認計時器設置非常緩慢,並且可以在數據中心內的Amazon AWS上運行。所以一旦你有這個工作,但在模擬你的無線網絡設置之前,你可能想要嘗試調整系統在該設置中更具響應性。我在想,ISIS_DEFAULTTIMEOUT可能對你來說太長了,RTDELAY設置對你來說可能也太長了。亞馬遜AWS是一個特殊的環境,使得Isis2在AWS中穩定的原因可能並不是理想的,它有着非常不同的目標......但所有這些參數都可以通過在環境中設置所需的值進行調整,可以完成在bash上啓動你的測試程序,或使用bash「Export」命令。附件: