没有合适的资源?快使用搜索试试~ 我知道了~
工程科学与技术,国际期刊20(2017)705审查P2P覆盖网络模拟器研究综述--基于事件驱动的P2P树形覆盖网络模拟器放大图片作者:Shivangi Suratia,Devesh C.金瓦拉a、桑杰·加尔格ba印度古吉拉特邦苏拉特Sardar Vallabhbhai国家技术学院计算机工程系b印度古吉拉特邦艾哈迈达巴德Nirma大学技术学院计算机工程系阿提奇莱因福奥文章历史记录:2016年7月11日收到2016年12月15日修订2016年12月30日接受2017年1月13日在线提供保留字:分布式计算Peer-to-Peer系统覆盖网络对等网络仿真器A B S T R A C T直接在现实网络环境中实现P2P(Peer-to-Peer)覆盖网络是不可行的,因为可扩展性是P2P的主要挑战。新创建的P2P网络的实现必须由研究人员和组织通过实验进行分析、测试和评估在应用到实际应用之前,已经开发了各种模拟器来分析和模拟P2P协议然而,一个合适的模拟器适合于给定的应用程序的选择需要事先全面调查的P2P模拟器。P2P模拟器的现有文献调查为了克服这些限制,我们调查现有的模拟器的分类,额外的设计参数,限制和比较使用各种标准。此外,我们还讨论了公共接口的概念,它创建一个通用的应用程序,使目标应用程序的实现可移植。不仅如此,我们还使用PeerSim模拟器的事件驱动模型对BATON(平衡树覆盖网络)和BATON* 的实现进行了案例研究,帮助开发人员有效地模拟树覆盖©2017 Karabuk University. Elsevier B.V.的出版服务。这是CCBY-NC-ND许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。内容1.导言. 7062.P2P模拟器的属性2.1.模拟器架构7072.2.可用性7072.3.可扩展性。........................................................................................................................................................................................................................................... 7072.4.统计7072.5.交互式可视化器7082.6.实现的P2P协议3.各种P2P网络模拟器7083.1.通用模拟器7083.1.1.PeerfactSim.KOM 7083.1.2.D-P2P-Sim 7083.1.3.ProtoPeer 7083.1.4.PeerSim 7093.1.5.RealPeer 7093.1.6.OMNeT++7093.1.7.OverSim 710*通讯作者。电子邮件地址:shivangi. gmail.com(S.Surati),dcjinwala@gmail.com(D.C.Jinwala),gargsv@gmail.com(S.Garg)由Karabuk大学负责进行同行审查http://dx.doi.org/10.1016/j.jestch.2016.12.0102215-0986/©2017 Karabuk University.出版社:Elsevier B.V.这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表工程科学与技术国际期刊杂志主页:www.elsevier.com/locate/jestch南街706号Surati等人/工程科学与技术,国际期刊20(2017)7053.1.8.OverlayWeaver 7103.1.9.PlanetSim 7103.1.10.Dnet 7113.1.11.3LS(3级模拟器)7113.1.12.Optimal-sim 7113.1.13.NS-2 7113.2.特定领域模拟器7113.2.1.P2P领域7113.2.2.DHTSim 7123.3.协议专用模拟器7123.3.1.GnutellaSim 7123.3.2.免费糕点7124.讨论7125.案例研究:使用PeerSim 714的事件驱动模式实现BATON和BATON* 叠加5.1.BATON和BATON* 7145.2.PeerSim模拟器715的事件驱动模式5.3.模拟BATON和BATON* 7165.3.1.模拟716的网络设置5.3.2.输入配置文件7175.3.3.实验研究7196.结论719参考文献7191. 介绍Peer-to-Peer网络体系结构由于其高性能的特点,即动态性、可扩展性、多样性、高效的内容分发和有效的搜索能力,在过去的几十年中得到了非常普遍的应用。研究人员和各种组织正在逐渐接受独立对等体的概念,在自组织的共享环境中协同完成计算任务,而不是传统的客户端-服务器架构,其中客户端进程依赖于服务器。构建有效的P2P覆盖的主要问题是将这些多个自治计算机捆绑在一起可扩展性和多维数据索引是增加设计此类系统的复杂性的两个主要问题[1,2]。已经实现的P2P系统和协议的数量包括文件共享P2P网络,即。Napster[3] , Gnutella[4] , Bittorent[5]; 基 于 分 布 式 哈 希 表( DHT ) 的 P2P 覆 盖 , 即 CAN[6] , Chord[7] , Pastry[8] ,Tapestry[9]或分层树结构P2P覆盖,即BATON[10],BATON*[11],VBI-tree[12],SDI-tree[13]等。由于P2P覆盖网络的设计面临诸多挑战,因此在开发完成后,在应用于实际应用之前,需要对其进行测试。分析方法或数学建模可以在P2P拓扑结构和相应算法的设计过程中用于初始级别[14]。然而,这种方法用于可能不详细探索P2P模型的简单系统P2P系统的实现和测试的另一种方法是使用分析解决方案的模拟器然而,在没有测试的情况下,在真实机器或网络上配置P2P覆盖网络是不可行的。据观察,对于P2P研究,通常最实用的技术是模拟。各种P2P网络模拟器都有多种选择,即(i)使用模拟器轻松实现P2P网络,(ii)在参考现有模拟器后设计自己的模拟器,或(iii)根据应用程序的要求大多数模拟器在[15然而,在现有的P2P模拟器调查中存在改进的空间,如下:随着对P2P系统的需求和要求的不断提高,新的模拟器不断被提出现有的调查[16,17,19-此外,调查需要全面,而不是简单地讨论模拟器。随着新的P2P模拟器的发展,还需要考虑额外的属性或标准来比较P2P模拟器的设计和性能。此外,新的概念,如具有可移植的公共接口或框架模型,以便在不同的模拟器上创建相同应用程序的模拟器模型[26],或使用RealPeer[27]将P2P系统的初始模型迭代部署到预期的真实P2P系统中,需要与P2P模拟器的发展一起讨论大多数调查讨论和比较各种P2P模拟器的基础上,他们的属性。现有文献综述[22]只考虑实现众所周知的拓扑,如BitTorrent[5],GnuTella[4]或Chord[7]然而,树覆盖是P2P网络的有效数据结构,因为它们降低了以m为底的对数的搜索成本,其中m是树的扇出。据我们所知,一个详细的案例研究指导的适用性的模拟器的树木覆盖与实验是不代表在现有的文献。这些观察促使我们重新强调对P2P模拟器的调查,最近的模拟器,新的观点和案例研究。因此,我们在本文中的贡献如下:我们对P2P模拟器进行了全面的调查,其中也包括对新的P2P模拟器的研究,即。ProtoPeer[23]、PeerfactSim.KOM[24]或D-P2P-Sim[25]。我们根据它们实现的底层协议及其在各个领域的适用性对模拟器进行比较和分类,即模拟器是否是特定于协议的,通用的或特定于域的。这种分类调查对研究人员有一定的参考价值●●●●●●S. Surati等人 /工程科学与技术,国际期刊20(2017)705-720707以及商业团体,用于识别适合于所需应用的P2P模拟器。我们还总结了每个通用模拟器的优点和局限性,并讨论了P2P的应用和研究方向。此外,我们还讨论了最近提出的分层仿真器的通用应用程序接口设计不同模拟器的通用接口。最后,也是最重要的一点,我们使用PeerSim模拟器的事件驱动模式对BATON(平衡树覆盖网络)和BATON* 的实现进行了案例研究PeerSim模拟器的事件驱动模式没有很好的文档记录,因此,这个案例研究对选择使用更真实的事件驱动模拟的开发人员很有用。此外,PeerSim模拟器支持图覆盖的有效实现,因此,该案例研究是研究图或树覆盖网络的研究人员的一个运行示例。我们将在第2节中详细讨论各种P2P模拟器的特性。在第3节中介绍了各种P2P网络模拟器,并根据它们的特性进行了分类,然后在第4节中对它们进行了讨论。接下来,我们提出了一个案例研究的实施和实验的二进制和m-ary树覆盖使用事件驱动模式的PeerSim模拟器在第5节。最后,我们讨论了P2P模拟器调查的结论和第6节中案例研究的结果。2. P2P模拟器P2P模拟器可以根据以下标准进行比较,这有助于选择最适合应用程序实现和测试的P2P模拟器[17,192.1. 模拟器体系结构该体系结构基本上规定了模拟器的设计和功能的特点,模拟器的基本功能和实现细节。分析模拟器架构的不同观点如下:● P2P结构:它指示P2P模拟器是否支持结构化覆盖,非结构化覆盖或两者兼而有之。在结构化P2P覆盖网络中,节点按照预先定义的拓扑结构进行组织,算法的设计使得节点保持网络的拓扑结构和属性它们通常使用分布式哈希表(DHT)索引或基于树的索引。非结构化对等网络不提供任何用于网络连接的组织或优化的算法。它由随机加入网络的对等点组成,没有任何拓扑的先验知识。用户应该能够指定所有相关的模拟参数,在一个人可读的配置文件。模拟器还应该能够提供节点的动态行为,节点故障以及节点的恶意行为。模拟器模式:模拟器模式指示模拟器是否设计为支持离散事件模拟、基于周期的模拟或两者。在离散事件仿真中,系统的运行被表示为一系列事件。它使用一个调度程序,在必要时增加延迟来阻止节点之间的消息每个事件都发生在一个时刻,并标志着系统状态的变化基于周期的仿真是一种时间驱动的顺序仿真,其中每个协议基于周期的协议也可以由基于事件的引擎运行,但反之亦然。底层网络模拟:P2P模拟器采用许多不同的方法来模拟底层网络,即模拟层。它们可以被分类为基于分组或基于流。基于数据包的模拟器模拟数据包以及链路,并计算模拟生成或使用的每个数据包的延迟,带宽和路由,例如NS-2[28]。其他模拟器是基于流的,通常不映射底层网络,甚至不考虑这些网络的布局,因此,它们抽象出模拟器层以下的细节。 它们在应用层工作,并使用TCP或UDP等传输协议作为互连对等体之间的通信通道。通常,基于分组的仿真器比基于流的仿真器花费更长的时间来完成仿真,这是由于针对仿真网络中的每个分组的计算。底层协议模拟:P2P模拟器对底层协议的适用性它们可以被分类为通用模拟器、协议特定模拟器或域特定模拟器。通用模拟器可用于模拟任何P2P应用程序。协议专用模拟器用于模拟特定协议,领域专用模拟器用于模拟特定领域的P2P系统。的支持的的分布式并行模拟:如果在不同的机器上使用并行分布来执行任务,则与顺序执行时的加速相比,任务的加速更高因此,P2P模拟器是否支持跨多台机器运行的模拟是分布式环境中需要考虑的一个这有助于实现更高的可扩展性或更快的模拟运行时间。然而,并行执行需要在不同机器上分发时检查依赖控制.对客户流失的支持:用客户流失率来模拟节点在动态环境中的行为。每单位时间内节点加入或离开网络的速率。该属性还包括模拟是否跟踪加入和离开网络的节点,模拟什么级别的流失,或者是否处理节点故障(临时或永久)。2.2. 可用性可用性是用来衡量学习和易用性的模拟器。为此,模拟器的文档应该是全面的、明确定义的、可扩展的和易于理解的。此外,实验和测试场景应该方便最终用户。模拟器文档提供的脚本语言或接口应具有表达性且易于学习。2.3. 扩展性可以由模拟器模拟的可行的网络大小(通常根据节点的数量)定义了模拟器的可扩展性P2P协议应用的网络规模相对较大,因此,可扩展性对于验证仿真器的性能是非常重要且具有挑战性的属性因此,如果模拟器提供更高的可扩展性,即,数千个节点或更多,则它在进行难以在真实世界场景中的数千台机器上实现的正在进行的实验中是有用的。与此同时,有效利用可用的计算资源也是提高可扩展能力的重要特征2.4. 统计模拟器的另一个关键方面是它产生的结果以及如何存储以供进一步参考。结果必须是●●●●●●●●南708号Surati等人/工程科学与技术,国际期刊20(2017)705表达性强,易于操作,以便进行统计分析。应存在允许实验重复性的机制,例如保存模拟器状态,以便可以验证结果的重现性。2.5. 交互式可视化工具一个可视化工具,如GUI,应该可以用来验证和调试新的或现有的覆盖协议。可视化工具以自定义的方式可视化底层网络的拓扑和覆盖拓扑。由于我们的论文还通过案例研究关注P2P协议的实现,因此除了所讨论的标准之外2.6. 实现的P2P协议此属性包括由P2P模拟器实现的基本协议模拟器可以根据与所需应用类似的基本实现协议进行选择。内置的覆盖协议的实现可以被重用或扩展到实际的网络应用。现有的模拟器可以根据这些属性进行比较然而,并非所有的模拟器都遵循所有讨论的性质。我们将在下一节讨论各种模拟器及其属性。3. 各种P2P网络模拟器我们调查各种P2P模拟器,并根据其适用性的基础协议,即他们的特点。可以用于任何P2P应用的通用模拟器、专门为现有协议设计的协议专用模拟器或覆盖特定领域中的P2P系统的域专用模拟器3.1. 通用模拟器通用P2P仿真器提供了许多通用的协议仿真模块,用户只需实现协议的核心部分或应用程序即可。该模拟器可以很容易地扩展或替换为协议和应用程序,因为它们具有清晰的层次结构和模块化结构。PeerSim、OverSim、3LS、PlanetSim是通用模拟器的几个例子。3.1.1. PeerfactSim.KOMKOM[24]是一个基于Java的模拟器,设计用于大规模P2P应用程序 。 基 于 XML 的 配 置 文 件 用 于 开 始 表 示 所 包 含 层 的 模 拟 。(http://peerfact.kom.e-technik.tu-darmstadt.de/de/)中找到。模拟器体系结构:PeerfactSim.KOM是一个通用的离散事件模拟器,支持结构化和非结构化的覆盖层.该模拟器由一个分层的体系结构,即。应用层、服务层、覆盖层、传输层和网络层试图覆盖P2P系统的各个方面。在每个层处使用一个或多个接口,其向其余层提供功能性 它考虑了通信的网络层,因此,详细地支持基于消息的分组级传输。KOM提供了一个基于数学函数的流失生成器,该函数负责节点的加入或离开。可用性:在PeerfactSim.KOM.网站上提供了大量文档它在每一层提供接口,为其他层提供服务基于这些接口,模拟器提供了默认和骨架实现的概念统计:PeerfactSim.KOM提供了自己的体系结构,用于收集正在进行的模拟的数据。它使用日志架构来跟踪和调试模拟,使用统计架构来获取重要数据以进行动态统计或稍后的后处理。交互式可视化工具:集成的可视化组件允许对仿真P2P系统的拓扑结构和交换的消息进行可视化。处理拓扑的呈现,可视化可以基于所提供的网络层的坐标来组织对等体,或者将它们布置在环状拓扑中。实 现 的 P2P 协 议 : 非 结 构 化 覆 盖 : GIA 、 Gnutella 0.4 、Gnutella0.6 、 Napster; 结 构 化 覆 盖 : CAN 、 Chord 、 C-DHT 、Kademlia、Pastry、Globase。3.1.2. D-P2P-SimD-P2P-Sim[25]是一种用Java编写的新型分布式仿真环境,具有用于P2P仿真的GUI。它通过在单个软件解决方案中集成一组工具来评估各种协议的性能。D-P2P-Sim+是D-P2P-Sim的增强版,可提供数百万节点模拟支持、故障恢复模型模拟功能和更多统计信息(http:dents.ceid.upatras.gr/papalukg/)。模拟器架构:D-P2P-Sim是一个通用的,事件驱动的,多线程的应用池技术,以实现thousands/数以百万计的节点使用事件驱动的方法,使其更逼真的模拟器。其主要特点如下:(i)无偏:独立于协议实现的机制来收集性能数据,(ii)真实性:尽可能接近应用级P2P软件来实现,(iii)分布式:连接网络中的多台计算机或甚至集群,(iv)可插入和可扩展:提供可扩展的并且基于Java的插入机制的API。D-P2P-Sim的体系结构分为消息传递环境、覆盖网络、远程服务和仿真工具模拟器接受两种XML格式的配置文件作为输入,即一种定义模拟器的参数D-P2P-Sim支持对等加入/离开操作的流失。可用性:D-P2P-Sim提供了可插拔和可扩展的API,也可用于进一步开发。此外,它包括一个样本虚拟实现的所有代码和细节的基本设计的P2P协议,其消息交易机制,路由管理和体系结构大纲。统计:一个集成的图形用户界面,包括图形统计功能。包含消息的网络由网络监视器观察并由网络过滤器过滤,以便获得将由覆盖监视器进一步处理的提取的有用统计数据。交互式可视化工具:使用GUI按钮绘制结果。可视化工具可视化的拓扑结构没有在文献中指定实现的P2P协议:Chord、BATON*。3.1.3. ProtoPeerProtoPeer[23]是用Java编写的分布式系统原型工具包,允许在事件驱动的模拟和实时网络部署之间切换,而无需更改任何应用程序代码。网络接口中封装了丢失和延迟建模,可轻松将仿真模型切换到实时网络。(http://sourceforge.net/projects/protopeer/)中找到。模拟器架构:ProtoPeer是一个通用的离散事件驱动的模拟器,支持结构化和非结构化的覆盖。使用ProtoPeer开发的应用程序有自己的一组消息和消息处理程序,并定义了计时器和计时器处理程序。节点之间通过消息S. Surati等人 /工程科学与技术,国际期刊20(2017)705-720709通过。ProtoPeer使用事件注入机制来支持客户流失。对等体到达和离开以及对等体故障。可用性:ProtoPeer有一个API用于构建任意的消息传递系统,支持网络I/O,消息序列化和消息队列。此外,它还允许用户插入自己的实现。ProtoPeer中的应用程序可以被模块化为peerlet,这些peerlet是可重用的、可单元测试的,并且可以组合在一起以实现所需的对等功能。但是,没有详细提供文件。统计:通过在应用程序代码中适当的地方调用度量API来实现度量工具化。统计数据可以在各种聚合级别计算:每个对等体,每个时间窗口和每个测量标签。ProtoPeer计算基本的统计数据,即平均值,总和或方差,以及它们可以记录到测量日志文件中以供以后分析。实现的P2P协议:Chord。3.1.4. PeerSimPeerSim[29-网络被建模为节点列表;节点具有协议列表,并且仿真具有初始化器和控制器。初始化器在模拟之前执行,而控制在模拟期间执行。他们可以修改或监控每个组件。例如,它们可以添加新的节点或破坏现有的节点;或者它们可以在协议级别上操作,为它们提供外部输入或修改它们的参数。组件(即协议和控制)计划由模拟器引擎执行,可通过配置文件定期调整这些可以应用于监测和收集统计数据或模拟动态环境中的网络扰动,即节点加入,节点故障和节点离开。PeerSim基于Java组件设计,易于扩展,具有相当大的模拟节点规模。它目前处于活动状态,模拟代码可在http:sim.sourceforge.net/上获得。模拟器架构:PeerSim是一个通用模拟器,可用于模拟结构化和非结构化覆盖。它支持动态场景,如客户流失和其他故障模型。PeerSim专注于网络覆盖抽象层的极端性能模拟它不考虑底层通信网络的任何开销和细节,例如TCP/IP堆栈或LASTIC,因此,它支持基于流的路由。PeerSim提供两种类型的仿真引擎,即基于循环的引擎和基于事件的引擎。在基于循环的模型中,所有节点都是随机选择的,每个节点协议在每个循环中依次调用。对于基于事件的模型,一组消息或事件在时间上被调度,并且节点协议根据时间消息传递顺序被调用。基于循环的引擎可以获得很好的可扩展性和性能,但由于忽略了对传输层的模拟和并发条件的物理存在而失去了很多便利性。而基于事件的引擎支持动态性、并发性,更加真实,但降低了仿真的可扩展性。PeerSim为模拟定义了分层架构可用性:PeerSim模块易于理解,可重复使用-可以根据需要插入BLE和附加组件。基于循环的引擎有丰富的文档,而基于事件的引擎虽然更真实,但文档却很差。然而,基于周期的实现可以很容易地转换为基于事件的实现。统计:可以实现观察者形式的组件,以收集模拟过程中各个节点的统计信息。交互式可视化工具:提供实现类包,支持众所周知的模型,如随机图,格和BA图可视化仿真。实现的P2P协议:为P2P仿真提供预定义的协议,即OverStat,SG-1和T-Man[16]。研究人员还使用PeerSim开发了各种P2P覆盖,即Pastry,Chord,BitTorrent。3.1.5. RealPeerRealPeer[27]是一个用Java编写的开源、平台无关、面向对象的软 件 框 架 , 支 持 建 模 和 仿 真 以 及 P2P 系 统 的 开 发 。(http://sourceforge.net/projects/realpeer/)中找到。模拟器架构:RealPeer是通用的高度模块化的模拟器,使用离散事件模拟,可用于模拟结构化和非结构化覆盖。RealPeer框架域模型中的P2P系统是由一组节点和一个物理网络组成的集合体概念类的实例定义了所表示的P2P系统是否要被用于模型的角色,即类封装其概念的模型或真实系统,即类封装其概念。此外,P2P应用程序分为四层,即。P2P核心,P2P服务,应用程序和用户界面。Real- Peer使用消息传递机制通过MessageProtocol在物理网络上发送和接收消息。随着时间的推移,领域模型被细化,直到它们对应于开发过程结束时的预期真实P2P系统。它不支持并行执行,但目标是在未来添加可用性:RealPeer框架的架构是可扩展的,这样开发人员就文件可在网上查阅。统计:框架定义了一组ObserverEvents,封装了不同类型的模拟数据,这些数据由注册的Observer插件使用。插件将导出数据到外部分析工具,以便在不同的模型中重用P2P协议实现:GnuTella(版本4)。3.1.6. OMNeT++OMNeT++[32,33]是一个用C++编写的可扩展、模块化和基于组件的模拟器。它可以扩展为实时仿真,网络仿真,数据库集成,支持替代语言,如C#或Java和其他几个功能。它不仅是一个严格意义上的网络模拟器,而且在多处理器和其它分布式系统领域也有OMNeT++的主要特点是模型的可重用性。它已经成功地应用于其他领域,如IT系统,排队网络,硬件架构和业务流程的模拟OMNeT++也有许多提供P2P协议或模拟的贡献模型OMNeT++支持多层拓扑Java互操作性由JSimpleModule提供,JSimpleModule是一个允许用Java编写OMNeT++模块的扩展(https://omnetpp.org/)中找到。模拟器架构:OMNet++是一个通用的,包级的模拟器,只支持结构化覆盖。它支持离散事件仿真,其中模块通过消息传递进行通信此外,OMNeT++还支持并行分布式仿真执行。可用性:基本上设计简单的模块或组件,然后将它们分组为复合模块,如果需要,可以将其拆分为简单的模块。可扩展模块通过带有参数的消息进行通信,然后使用高级编程语言NED(网络描述)组装成更大的组件。OMNeT++具有广泛的GUI支持,并且由于其模块化架构,仿真内核(和模型)可以轻松嵌入到应用程序中。南街710号Surati等人/工程科学与技术,国际期刊20(2017)705统计:它通过将模块之间的交互记录到文件中来帮助用户可视化交互。这个日志文件可以在模拟运行之后(甚至在模拟运行期间)进行处理,并且可以用来绘制交互图。交互式可视化工具:OMNeT++ IDE有一个序列图绘制工具,它提供了一个复杂的视图,显示事件如何该工具可以分析和显示事件的原因或后果。实现的P2P协议:P2P群集模拟,P2P LIVE视频流。3.1.7. OverSimOverSim[34,35]是一个基于OMNeT++(用C++编写)的开源仿真框架,用于覆盖和对等网络。实现了三种OverSim网络模型,即Simple、SingleHost和INET。在简单模型中,通过使用全局路由表将数据包直接从一个覆盖节点发送到另一个覆盖节点,该全局路由表还根据欧几里得空间中的节点距离来处理数据包延迟。由于该技术的低仿真开销,简单模型导致高水平的准确性和仿真具有大量节点的网络的能力。SingleHost模型重用覆盖协议实现,而无需在PlanetLab等真实网络中修改代码在这里,每个OverSim实例仅模拟单个主机,该主机可以通过现有网络(如Internet)连接到其他实例INET仿真模型源自OMNeT++的INET框架,该框架包括从MAC层向前的所有网络层的仿真模型。由于INET框架未针对大规模网络进行优化,因此对代码进行剖析,并添加基于哈希表的路由和接口高速缓存以用于更快地转发数据分组,这导致覆盖拓扑的优化和分组延迟的减少。(http://oversim.org/)中找到。模拟器架构:OverSim是一个通用的包级模拟器,支持结构化和非结构化覆盖。它采用离散事件仿真(DES)来模拟网络消息的交换和处理.此外,OverSim还支持三种网络模型,即Simple、SingleHost和INET。它支持分层体系结构,包括应用程序,覆盖和分层。它还支持使用LifeTimeChurn和ParetoChurn模型的客户流失。可用性:该模拟器具有良好的覆盖层该系统具有良好的图形用户界面,便于测试和调试,覆盖协议的实现具有可重用性。统计:全球观察员收集全球统计数据。它收集每个节点发送,接收或转发的网络流量,成功或不成功的数据包传输和数据包跳数的信息。交互式可视化工具:类似于OMNet++。实 现 的 P2P 协 议 : 结 构 化 对 等 协 议 。 Chord 、 Kademlia 、Pastry、Koorde和Broose;非结构化对等协议,即GIA。用于在基于对等的大型多玩家在线游戏(如VAST或基于发布/订阅的覆盖)中交换事件消息的3.1.8. 贴面编织机Overlay Weaver[36,37]是一个用Java编写的P2P覆盖构建工具包,除了应用程序开发人员外,还支持研究人员的路由算法。对于应用程序开发人员,该工具包为分布式哈希表(DHT)和多播等高级服务提供了一个通用API。 算法开发人员可以通过在仿真器上迭代测试来快速改进新算法及其实现。路由层与分布式哈希表服务和组播服务分离。应用依赖于通用API依赖于特定的传输协议、数据库实现和路由算法。每当使用这种方法进行模拟时,都会有许多陷阱,例如统计数据收集需要大量工作,需要编写文档,缺乏可扩展性可能需要重新设计。一个新实现的算法可以在模拟器上进行测试、评估和比较,该模拟器可以容纳数万个虚拟节点。它支持大规模仿真和算法之间的公平比较。由于模拟必须实时运行,并且没有统计输出,因此其作为覆盖网络模拟器的用途非常有限。(http:weaver.sourceforge.net/)。模拟器架构:Overlay Weaver模拟器是一个通用的基于消息的模拟器,仅支持结构化覆盖。它支持使用JVM的离散事件消息传递的RPC。通过使用真实的TCP/UDP模拟RPC,可以在真实的网络上对协议进行测试。各种节点通过发送和接收消息来相互交互。分布式仿真是可能的,但没有太多的实验。可用性:API是干净的,设计良好,源代码是相当可读的。Overlay Weaver接口由少量命令行工具和模拟器组成然而,文件是分散的。统计:在消息传递服务的实现期间,可以使用消息计数器报告通过网络的所有通信。消息计数器允许在执行时间内收集用于记录和分析日志的统计信息交互式可视化工具:节点的可视化和它们之间的通信是使用消息传递可视化工具实现的。但是,可视化工具除了使消息数量加倍之外,还通过可视化给模拟器带来了负担。这会导致减少模拟节点的最大数量。P2P协议已执行:多路由基于DHT的算法,如Chord、Kademlia、Koorde、Pastry和Tapes-一个分布式环境模拟器。3.1.9. PlanetSimPlanetSim[38-它使用软件工程技术来设计和实现新的协议和应用程序很容易。通过使用结构良好的设计,一个干净的API可用于实现覆盖算法和应用服务。这使得使用许多不同的覆盖算法来模拟应用层服务成为可能。它清楚地区分了覆盖算法(Chord,Pastry)的创建和验证以及在现有覆盖之上创建和测试新服务。此外,Pla-netSim提供了一个蚂蚁算法,智能地添加新的链接在超载的路径上的对等覆盖,从而提高对等覆盖路由性能。(ants.etse.urv.es/planet/planetsim/)。模拟器架构:PlanetSim是一个通用的模拟器,支持结构化和非结构化的P2P覆盖网络。它是一个离散事件覆盖网络模拟器,支持基于分组的实现。PlanetSim层次结构可以分为分层架构,即应用层,覆盖层和通用API层0,1和2映射到的网络层。这些层可以使用CommonAPI的向上调用和向下调用相互通信。它支持流失模型,节点可以动态加入或离开网络。可用性:它有一个非常好和非常清晰的层次结构API,并有自己的实体扩展接口。此外,可以轻松替换现有实体,以根据模拟设置部署该体系结构实现了公共API(CAPI),以便开发和分析S. Surati等人 /工程科学与技术,国际期刊20(2017)705-720711覆盖算法与应用程序的算法解耦。该文档可在PlanetSim网站上找到[40]。统计信息:提供基本的统计信息,比如总的模拟时间和作为模拟器一部分使用的消息数量,以及通过面向方面编程(AOP)提供的深度统计功能交互式可视化工具:PlanetSim可以将网络拓扑显示为GML或Pajek输出,并且可以将模拟保存到磁盘以供重用。实现的P2P协议:实现了覆盖,即Chord,Symphony,SkipNet和通用覆盖结构,如Sin- gleLinkedRing和LeafSetRouting。此外,还有各种服务,如CAST、DHT和对象中间件。3.1.10. DNETDnet[41]是一个高度模块化和高效的模拟器,用ISO C/C++开发 , 有 两 个 主 要 目 标 : 易 用 性 和 效 率 以 及 可 扩 展 性 。(http://www.csse.uwa.edu.au/wilkia07/dnet/)中找到。模拟器体系结构:Dnet是一个通用的,离散事件驱动和基于消息的模拟器,专为P2P系统的分布式模拟而设计。它使用了一个单处理器 的 顺 序 事 件 调 度 器 以 及 两 个 分 布 式 事 件 调 度 器 , 即 衍 生implementations的marty-Misra死锁避免计划和杰斐逊Dnet有两个不同的部分:内核负责调度事件和管理模拟器的内部,用户模块通过API与内核交互以指定事件的处理程序此外,Dnet分布式仿真框架使用消息传递接口(MPI)来执行仿真器之间的通信,因此,支持事件的并行执行,提高了使用多个仿真器的加速比。可用性:Dnet使用API处理事件,使用MPI在多个模拟器上实现事件的并行执行。它实现了一个斯坦福GraphBase文件格式的接口,用于从文件加载底层网络拓扑然而,Dnet模拟器并没有很好的文档记录,网站也无法访问.交互式可视化工具:X使用互联网拓扑生成器(如GT-ITM、BRITE或Inet)创建类似互联网的底层。3.1.11. 3LS(3级模拟器)3LS[42]是一个用Java编写的覆盖网络的开源模拟器,旨在克服可扩展性和可用性问题。3LS为开发新的P2P协议提供了友好的接口。在仿真粒度上,仍然以消息作为基本的仿真对象。然而,模拟器不能模拟传输层的细节,它不能模拟路由和文件的来源P2P网络适当。模拟器架构:3LS是一个独特的P2P模拟器,具有基于时钟的模拟引擎。它是一个通用的模拟器,只支持非结构化的覆盖。该仿真器将整个结构分为网络层、协议层和用户层三个层次,分别对应不同的网络拓扑、协议和应用仿真。协议级负责模拟P2P协议和应用程序。可用性:来自用户的输入信息通过GUI界面或文件输入到网络层。对于P2P仿真来说,它还没有很好的文档化.统计:当模拟完成时,结果存储到文件中。交互式可视化工具:一个名为Aisee的可视化工具。P2P协议实现:Gnutella 0.4.3.1.12. Optimal-simOptimal-sim[43]是用Java实现的,允许在仿真中使用逼真的类似互联网的拓扑结构。模拟器架构:Optimal-sim是一个通用模拟器,支持离散事件模式,用于模拟生成覆盖网络拓扑。对等体加入、对等体离开或对等体失败等对等体操作被模拟为事件。因此,Optimal-sim通过模拟P2P网络的动态拓扑变化和消息交换来模拟P2P系统的流失模型可用性:它提供了API来描述P2P系统中的算法。统计:使用结果管理工具。交互式可视化工具:底层网络拓扑由通用拓扑生成工具BRITE生成,这是由于BRITE的基本功能,即。灵活性、可扩展性、互操作性、可移植性和用户友好性。实现的P2P协议:一个示例P2P网络模拟。3.1.13. NS-2NS-2[28]的目标是网络研究,它提供了一个丰富的组件库,可以在Linux、UNIX、Windows上运行以及其他操作系统平台。NS-2使用C++和OTCL(TCL的面向对象版本)的混合进行仿真。TCL脚本定义了通信链路的节点和特征,而协议是用C++实现的。NS-2在P2P仿真中的应用很少。然而,它已被改进以有效地支持P2P覆盖[44]。模拟器架构:NS-2是一个传统的模拟器,不是为P2P系统设计的。它是一个离散事件模拟器,易于配置和编程。NS-2支持结构化和非结构化网络。NS-2可以与许多其他机器并行运行NS-2中没有明确定义对客户流失的支持可用性:它提供了实质性的支持,模拟TCP,路由和组播协议在有线和无线网络安排在一个结构化或非结构化的方式。大量文档可用于NS-2的脚本编写。交互式可视化工具:NS-2使用NAM(Network Animator)提供可视化。P2P协议实现:GnuTella。3.2. 特定领域模拟器针对特定领域的P2P仿真器正在开发中。3.2.1. P2P领域P2P Realm(Peer-to-Peer Realm)是一个用Java模拟器编写的高效的P2P网络,用于研究基于神经网络的算法。模拟器分为P2P网络、P2P算法、神经网络优化和输入输出接口四个部分。模拟器架构:P2PRealm模拟器是一个字段指定的,基于消息传递和训练生成的模拟器,模拟速度是一个重要标准。它支持并行编程和动态网络。可用性:P2PERealm通过配置文件接受各种输入参数,即资源分布,查询模式,训练代数,神经网络的数量和神经网络的神经元结构,优化方法它提供了输出文件,即拓扑结构和邻居分布,最好的和所有的神经网络的每一代,查询路由开始从每个节点的P2P网络。P2PERealm利用对等分布式计算平台(P2PDisCo)将仿真案例分布到多台机器上。模拟器的文档没有很好地定义。南街712号Surati等人
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功