模拟系统说明书.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:12 大小:160KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

模拟系统说明书.doc

模拟系统说明书.doc

预览

免费试读已结束,剩余 2 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

P2P网络中激励机制和公平交换研究项目模拟系统说明书2006-10-241总体说明本模拟系统作为P2P网络中激励机制与公平交换研究项目中的一部分,承担着模拟P2P网络和分析激励机制和公平交换的任务。模拟系统暂拟命名为P2PFairExchange。P2PFiarExchage采用Java语言编写,利用PeerSim仿真器模拟P2P网络分析协议。目前,模拟系统已经实现了类似KaZaA协议的非结构化,无中心节点的拓扑结构,构建了普通节点和超级节点的两层网络拓扑结构。如图1-1所示。图1-1两层的P2P网络2模拟系统详细分析与说明2.1背景现实的P2P网络具有规模大,节点的加入和退出难以预知,网络动态性强等特点。在分析网络协议时,难以确定P2P网络的具体环境,同时也难以排除网络中不可预知的因素的干扰。在此种环境中实现对网络协议的准确分析评估是困难的,必须构建一个相对稳定可控制的网络模拟环境。仿真器PeerSim是BISON项目组为P2P网络研究开发的模拟软件,能很好的构建P2P的网络环境。因而实验采用PeerSim来构建P2P虚拟网络。2.2peesim仿真器PeerSim是用JAVA实现、基于组件技术的仿真器,很好地支持了P2P网络的可扩展性和动态性。支持基于对象的有标准组件的编程,实现同一接口的组件可以很容易地替代其他的组件。它使用两种模型进行模拟,一种是基于Cycle的模型,另一种是基于Envent的模型。实验采用基于Cycle的模型。PeerSim基本组件和接口如表2-1,表2-1PeerSim的基本组件和接口NodeTheP2Pnetworkiscomposedofnodes.Anodeisacontainerofprotocols.Thenodeinterfaceprovidesaccesstotheprotocolsitholds,andtoafixedIDofthenode.CDProtocolItisaspecificprotocol,thatisdesignedtoruninthecycle-drivenmodel.Suchaprotocolsimplydefinesanoperationtobeperformedateachcycle.LinkableTypicallyimplementedbyprotocols,thisinterfaceprovidesaservicetootherprotocolstoaccessasetofneighbornodes.Theinstancesofthesamelinkableprotocolclassoverthenodesdefineanoverlaynetwork.ControlClassesimplementingthisinterfacecanbescheduledforexecutionatcertainpointsduringthesimulation.Theseclassestypicallyobserveormodifythesimulation.PeerSim基于Cycle的模拟机制如图2-1所示。init表示初始化类,在模拟开始初始化虚拟网络中的各个组件;C表示Control类,控制模拟过程中网络的各节点状态行为以及其他在模拟中需要改变的网络环境;P表示Protocol类,定义协议本身。PeerSim通过读取用户定义的configurefile来控制模拟的进行。图2-1PeerSim基于Cycle的驱动机制2.3P2PFairExchangeP2PFairExchange以仿真器PeerSim为模拟平台,创建了JAR包kazaa。实现了类似KaZaA协议的非结构化,无中心节点的拓扑结构,构建了普通节点和超级节点的两层网络结构。kazaa包主要实现了以下的功能:1为网络中每个节点分配一个随机二维地址(x,y);2按照一定的几率随机选取超级节点,超级节点间两两连接,形成一个完全无向图;3每个普通节点与离自己最近的超级节点建立连接,普通节点间无连接;4将每个超级节点及与之连接的普通节点的地址输出到文件,并使用gnuplot进行作图分析模拟结果。P2PFairExchange通过KazaaInitializer类为网络中每个节点随机分配一个二维地址(x,y),WireKazaaTopology构建了普通节点和超级节点的两层网络结构,KazaaObserver输出模拟结果。2.3.1KazaaProtocolKazaaProtocol类继承PeerSim的protocol类,定义了一个类似容器的类,用于存放节点地址。并提供了对地址进行操作的一系列方法。getX()和getY