在PeerSim平台上进行BitTorrent仿真调试(一)—— overlay网络的初始化

本文详细解析了在PeerSim平台上进行BitTorrent仿真的初始阶段,包括runInitializers()方法中的Tracker和Node初始化,scheduleControls()方法中加载Control类及反射机制,以及executeNext()方法的执行流程。在初始化过程中,网络参数、节点状态和控制事件被设定,为后续的BitTorrent协议执行奠定了基础。
摘要由CSDN通过智能技术生成

模拟开始,前面都是一些无关紧要的系统的初始化,如设置随机种子等,直至进入EDSimulator引擎的nextExperiment() 方法才算正是开始仿真的进行。仿真共分为好几个步骤,首先要进行的就是overlay网络的初始化。

runInitializers()方法

ED引擎声明一些用于记录的对象之后,便进行网络参数的初始化。这些初始化由runInitializers() 方法进行。
首先,PeerSim读取配置文件获取进行初始化的类—— peersim.bittorrent.NetworkInitializer。
进入之后首先初始化Tracker(BitTorrent协议中的服务器)。

  • 1、新建一个cache[]数组,并将元素声明为Neighbor类型,数组的容量是 maxNodes + maxGrowth。
  • 2、Tracker将所有的Node加入neighbor列表中(addNeighbor(Node neighbor))。

其次,初始化Node节点,进入NodeInitializer.java的init.inital(Network.get(i))方法。

  • 1、将Tracker设为本节点的tracker。
  • 2、设置节点id。
  • 3、setFileStatus(),设置本节点获取的文件状态(随机)。
  • 4、setBandwidth(),设置本节点的带宽。

随后,遍历每个Node添加基础事件。

  • 1、获取与Tracker之间的时延;
  • 2、将SimpleMsg添加进事件调度器;
  • 3、将CHOKE_TIME、OPTUNCHK_TIME、ANTISNUB_TIME、CHECKALIVE
Eclipse下PeerSim仿真(2010-07-24 14:21:16) 转载▼ 标签: 杂谈 Eclipse下PeerSim仿真 时间: 2010.06.25 23:00:00 标签: PeerSim ,Eclipse http://hi.baidu.com/bookpage/blog/item/1bc32a341a8f46bbd0a2d3c6.html ******************** Eclipse下PeerSim仿真 ******************** ------------------------ 本文参考: http://peersim.sourceforge.net/ http://blog.sina.com.cn/s/blog_453a60170100hyno.html http://hi.baidu.com/bookpage/blog/item/1bc32a341a8f46bbd0a2d3c6.html ------------------------ 0、关于PeerSim 主页:http://peersim.sourceforge.net/ 下载:http://sourceforge.net/projects/peersim/ P2P仿真软件,基于JAVA语言。 2004年发布0.0版,最新版本1.0.5发布于2009年9月29日。 1、安装JDK和Eclipse 网上很多资料,此处不多说。 关于JDK版本,没有找到相关说明,下载较新版本即可,如JDK1.6就可以。 Eclipse最新有一个Helios(太阳神)版。 2、示例(PeerSim的"hello world") (1)创建一个java project,命名为PeerSim。 (2)将下载的peersim-1.0.5.zip中的src目录下的文件都拷贝到工程主目录下的src目录下。 (3)将下载的peersim-1.0.5.zip中主目录下的jar文件拷贝到工程主目录下。 (4)添加libraries。Project--Properties--Java Build Path。 Add External JARs,将主目录下的jar文件都添加进去。 (5)编写仿真配置文件。这里使用peersim-1.0.5的example目录下的config-example1.txt。将这个txt文件拷贝到工程主目录下。 (6)运行,在Eclipse的Package Explore栏找到这个txt文件,右键,Run as--Run Configurations。 Main:在Name中输入Application名称,比如PeerSimApp;在main class中输入peersim.Simulator,或者搜索之。 Arguments:在Program arguments中输入config-example1.txt,也就是配置文件。 (7)第6步完成之后,点击运行,会出现错误: peersim.config.IllegalParameterException: Parameter "protocol.lnk": The class peersim.core.IdleProtocol appears more than once in the classpath; please check your classpath to avoid duplications. At peersim.config.ConfigContainer.getClazz:582 解决方法: 在第6步,右键,Run as--Run Configurations,配置Classpath,使得User Entries中只保留djep-1.0.0.jar,peersim-1.0.5.jar,jep-2.3.0.jar,也就是删除peersim-doclet.jar。这个时候再运行,仿真就能正常结束了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值