根据导师的要求,这次的任务是要模拟一个类似BT网络的P2P网络,并实现一些算法,查了些资料,都说NS2对于P2P网络的模拟和支持都不好,基本没有模板可以用,而且效率很低,只能模拟几万个节点左右,看到挺多人推荐使用peersim,就准备下来用用看。而且在官网上看到已经有很多别人编译好的覆盖网络的模板,其中也包括BT网络,chord网络等,貌似很方便的样子。
首先是下载使用安装,这部分其实很简单,网上的教程足够了。
![](https://images2015.cnblogs.com/blog/865207/201604/865207-20160406160427297-73446481.png)
![](https://images2015.cnblogs.com/blog/865207/201604/865207-20160406160455812-1512555353.png)
选择 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类似。