由于网络的研究和设计的复杂度很大,不能给出抽象的模型,且实验成本很高。研究人员对真实或接近真实的大规模网络实验环境的需求越来越强烈。大规模网络试验环境是当前计算机网络研究迫切需要解决的问题。

首先看一下目前使用较多的一些开源的P2P网络仿真器情况,其它的一些仿真器由于使用的人较少或者多年没有更新,所以没有在这里提及。

  • PeerSim 

PeerSim 是一个模拟P2P overlay网络的软件,支持结构化和非结构化P2P网络模拟。PeerSim有两种模拟方式,cycle-based和event-driven。event-driven模式相对精确,cycle-based模式缺少传输层的模拟而且不能起到并发控制的作用,但占用资源少以适合于大规模的模拟,根据官方所发表的一篇最新论文,在拥有4GB内存的情况下,event-driven模式目前最多支持十万节点级别,而cycle-based模式则支持千万个节点级别。 

PeerSim本身不带任何具体的协议实现,但是提供了很好的扩展性,目前已经有研究人员在其基础上实现了Bandwidth management protocol,a fault-tolerant FSM,Pastry,Chord,Skipnet,BitTorrent,Aggregation,SG-1,Peer sampling service,T-Man,PdProtocol,Slacer等协议,可以在项目主页上下载,但官方并不提供直接支持。

PeerSim采用Java语言,截止到2009年12月,PeerSim 下载次数已经超过12000次,已经有150多篇重要的P2P方面论文中使用PeerSim 模拟器,当中很少一部分是由 PeerSim 的作者编写的,但是PeerSim不支持分布式模拟。

更新情况:最新的主要版本1.0.0发布于2005年11月11日,后续的版本的更新修改事实上都极小,目前最高版本是2009年9月29日发布的1.0.5版本。

文档情况:官方只发布三篇文档,无论是cycle-based还是event-driven模式的文档都很少,源代码虽然不是很多,但是缺少必要的注释。

项目主页http://peersim.sourceforge.net/

  • Oversim

OverSim运行在类UNIX系统,采取OMNeT++ 实现其网络层,支持无结构和结构化P2P协议,已经实现了Chord, Pastry, Bamboo, Koorde, Broose, Kademlia, GIA, Vast和Publish-Subscribe for MMOGs协议。

OverSim 拥有图形化的交互界面,方便验证和调试。有INETUnderlying 网络和 Simple Underlying网络用于模拟网络层。能够模拟10万节点以上的规模,模拟代码易转化成为仿真代码,现在 OverSim 已经成功将一个基于P2P的DNS系统部署在PlanetLab 当中,实现了P2PNS系统,部署于450个节点上。

OverSim的实现语言为C++,综合来看,Oversim也是一个优秀的仿真工具。

更新情况:最近更新时间为2009年9月28日,近年来更新最频繁的模拟软件。

文档情况:很少。

项目主页http://www.oversim.org/

 

  • P2Psim

P2Psim 是一个免费的,多线程的,不关联的事件模拟器,用来评估,审查,和探索peer-to-peer协议,运行在UNIX-Like系统上,采用C++语言。P2Psim支持搅动、支持迭代和递归路由查询、可以通过继承来实现新协议、支持多种底层网络拓扑格式、支持一种网络时延模型;但是不支持分布式模拟和带宽变动,节点规模小(3000节点)。已经实现的协议有:Chord, Koorde, Kelips, Tapestry, Kademlia。

更新情况:最新版本发布于 2005年4月18日,四年半没有任何更新。

文档情况:不完善,基本没有文档。

项目主页http://pdos.csail.mit.edu/P2Psim/

综合各方面考虑,觉得 Oversim 和 PeerSim 都是比较好的选择。

 

非常感谢:http://leeing.org/tag/p2psim/

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐