全部博文(78)
分类:
2008-01-21 22:46:56
p2psim是个多线程的p2p模拟软件,代码开源,对学习和研究P2P协议的人来说,是非常好的学习工具。
源代码的目录介绍:
eventgenerators:事件发送器的一些工厂模式
events:定义事件,主要包括netevent(网络事件), p2pevent(应用事件), simevent(模拟事件)
failuremodels:事件处理失败的工厂模式
libtask:和操作系统相关的线程调度,任务调度,可以不用过多关注
observers: 观察者类,执行日志记录
p2psim: 主目录,是p2p实现的一些基类的定义,如event, eventgenerator, eventqueue, network, node, observed, p2protocol, p2psim,packet, parse, rpchanndle(在p2p的的事件服务采用rpc调用方式?0),thread, threadmanager, topology.这些都是为实现其它具体p2p协议做的准备
protocols:具体p2p实现协议,如chord, chordfinger, koorde, kademlia等,是研究协议实现和进行协议修改的地方
topologies:我们在设定模拟环境是采用何种网络top,和我们的topology.txt配置文件相关,如果我们设定了Euclidean模式,那么程序在解析结点的时候,就按照Euclidean模式读取结点信息
运行粗略说明:
p2psim目录下的p2psim是执行程序,单独执行它如下:
p2psim/p2psim example/protocol.txt example/topology.txt example/events.txt
注意我们的运行目录,p2psim运行要解析三个配置文件
example/topology.txt: 拓扑配置
example/protocol.txt: 协议配置
example/events.txt :事件配置