官网地址是 http://pdos.csail.mit.edu/p2psim/
1). 安装环境:redhat9.0,fc5,当然可能其他种类 linux 也能安装,但要是最关键
是 gcc 版本不要太高,官网 GCC2.95.3 and GCC 3.3.5,所以有些人装的 GCC 版
本过高(4.0)导致安装失败的。在 windows 下安装很难成功的,不过有人在 cygwin
下安装成功,本人不会,还希望高手能够写点东西来指点迷津。
2). 官网下载 p2psim 软件
3)
$ tar xvfz p2psim-0.3.tar.gz
$ cd p2psim-0.3
$ ./configure
$ make
4)上面这步就装好了 p2psim
接下来就是试试到底装成功没有,你可以通过键入命令:
p2psim/p2psim example/protocol.txt example/topology.txt example/events.txt
来验证是否安装成功。
如果结果是:
average RTT = 30ms
# 1: k
# 2: k_tell
# 3: alpha
# 4: stabilize_timer
# 5: refresh_timer
# 6: learn
# 7: rcache
#
...
FAILED_LOOKUPS:: lookup_10th:0 lookup_mean:0.000 lookup_median:0
lookup_90th:0 stretch_10th:0.000 stretch_mean:0.000 stretch_median:0.000
stretch_90th:0.000 hops_10th:0 hops_mean:0.000 hops_median:0 hops_90th:0
numlookups:0
OVERALL_LOOKUPS:: lookup_10th:8 lookup_mean:19.273 lookup_median:22
lookup_90th:26 stretch_10th:1.000 stretch_mean:2.182 stretch_median:1.000
stretch_90th:1.000 hops_10th:0 hops_mean:0.091 hops_median:0 hops_90th:0
numlookups:11
TIMEOUTS_PER_LOOKUP:: time_timeout_10th:0 time_timeout_mean:0.000
time_timeout_median:0 time_timeout_90th:0 num_timeout_10th:0.000
num_timeout_mean:0.000 num_timeout_median:0.000 num_timeout_90th:0.000
WORST_BURST:: in:0 out:0
<-----ENDSTATS----->
那就说明安装成功。
5). 仿真过程
仿真有 2 种方式
第一种就是上面所说的:
p2psim/p2psim example/protocol.txt example/topology.txt example/events.txt
只有效率比较低,只能进行一次数据的仿真,而且不能对数据进行有效的统计。
第二种就是运用脚本的方式
scripts/run-simulations.pl --protocol Chord --topology example/topology.txt --logdir .
--args example/chord_args
结果是生成好多.log 文件,每个文件里面都是些像第一种方法里面得到的数据。
这个时候你要把那些.log 文件里面的数据综合起来,运行下面的命令:
scripts/merge-stats.pl --args example/chord_args *.log > chord_out
这个命令的意思就是把那些刚生成的 log 文件综合在 chord_out 文件中
数据综合了,看到那些数字还是不行的,这个时候就可以用图形工具来分析
chord_out 了,前提是你的系统里面有 gnuplot 和 gv(我的 redhat9.0 系统没有 gv,
但又 ggv,这个时候到 make-graph.pl 代码把 1310 行里面的 gv 改成 ggv 就行)
scripts/make-graph.pl
--x
CORRECT_LOOKUPS:lookup_mean --convex both
chord_out
--dat
BW_TOTALS:live_bw
--y
运行上面的命令就能用图标坐标来分析运行结果了。