根據導師的要求,這次的任務是要模擬一個類似BT網絡的P2P網絡,並實現一些算法,查了些資料,都說NS2對於P2P網絡的模擬不好,基本沒有模本可以用,而且效率很低,只能模擬幾萬個節點左右,看到挺多人推薦使用peersim,就准備下來用用看。而且在官網上看到已經有很多別人編譯好的覆蓋網絡的模本,其中也包括BT網絡,chord網絡等,貌似很方便的樣子。
首先是下載使用安裝,這部分其實很簡單,網上的教程足夠了。
安裝步驟: 1. 首先安裝JDK,配置好環境變量,以本機為例子: 新建JAVA_HOME: C:\Program Files\Java\jdk1.6.0_26 新建CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar Path後面加上: ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 2. 下載並解壓PeerSim 下載地址:http://peersim.sourceforge.net/#download 3. 運行PeerSim裡的例子 方法一:在dos窗口下運行 1)開始 --> 運行 --> cmd --> 進入到本機peersim文件夾下 2)輸入以下命令: java -cp peersim-1.0.5.jar;jep-2.3.0.jar;djep-1.0.0.jar peersim.Simulator example/config-example1.txt 方法二:在eclipse中運行 1)新建項目,並導入peersim文件夾裡的四個jar包,同時導入Simulator.java文件: a. 右擊jar目錄 -> Build Path -> configure build path -> Add External Jars b. 在src下新建一個package,導入Simulator.java 然後配置運行參數選擇 Run—> Run Configuration
雙擊Java Application,會出現New_configuration的界面
在右側的“Main” 面板中設置main class為peersim.Simulator:
然後點擊“Argument”面板,設置 “Program arguments” 為 config-example1.txt 所在的位置,注意要加雙引號:
最後運行即可,得到的結果和在cmd上運行一樣
Chord等協議的模擬:
a. 需要從官方網站http://sourceforge.net/projects/chord/?source=dlp上下載對應的Chord和Pastry協議的壓縮包
b. 解壓
c. 將chord源碼生成.jar,命名為chord.jar,放在chord目錄下
d. 從peersim-1.0.5.jar中將peersim-1.0.5、jar:jep-2.3.0.jar、djep-1.0.0.jar三個包拷到chord目錄下
e. 運行java -cp "peersim-1.0.5.jar:jep-2.3.0.jar:djep-1.0.0.jar;chord.jar" peersim.Simulator example.cfg 即可看到模擬結果
第c步需要打包的原因:
Chord目錄下提供的readMe-chord.pdf是不需要對chord源碼打包,但是這樣做的話是會報NoDefClassFound錯誤的,因為Chord源碼本沒有編譯過,沒有.class文件。
Pastry類似。