p2psim 是结构化的,p2p协议仿真
peersim 是非结构化,也支持结构化
ns2 网络仿真,功能强大
planetsim overlay仿真
peerfactSim 不错的仿真平台
-------------------------------------------------------------------------------------------------------------
仿真实验无外乎以下3种方法:1.写小程序单机实验;2.在仿真平台上设计场景和协议跑结果;3.条件允许的话搭建起真实的环境,在现实条件下抓数据。
Exchange-based Incentive Mechanisms for Peer-to-Peer File Sharing 的作者Kostas G. Anagnostakis 就是修改了xMule的协议,然后进入真实的网络环境,在2天的时间内获取了30000个节点的统计数据。舒老师目前要作的是写字楼内多跳Ad hoc网络通信实验,4个节点。 P2P领域内,可以考虑修改协议后进入Internet,或者自己搭建JXTA网络。
A Game Theoretic Framework for Incentives in P2P System (P2P'03) 作者Chiranjeeb Buragohain是自己在Linux下编写了一个小的C++程序,运行后看程序结果,得出实验结论。
但目前计算机领域内最最常用到还是在仿真平台上实验。如用到最广的Matlab,Labview,网络仿真用的ns2, OPNet。 今天在网上看到有人研究P2P用到如下平台:
p2psim:http://pdos.csail.mit.edu/p2psim/
ModelNet: http://modelnet.ucsd.edu/release.html
JADE: http://www.jade.org/
SimRPG
NS-2 + GnutellaSim
OPNet
网络仿真软件性能比较
http://www.51cto.com 2005-12-11 16:11 cunshen.cnblogs.com
网络仿真技术是一种通过建立网络设备和网络链路的统计模型, 并模拟网络流量的传输, 从而获取网络设计或优化所需要的网络性能数据的仿真技术。由于仿真不是基于数学计算, 而是基于统计模型,因此,统计复用的随机性被精确地再现。
网络仿真技术具有以下特点:一, 全新的模拟实验机理使其具有在高度复杂的网络环境下得到高可信度结果的特点。二, 网络仿真的预测功能是其他任何方法都无法比拟的;三,使用范围广, 既可以用于现有网络的优化和扩容,也可以用于新网络的设计,而且特别适用于中大型网络的设计和优化;四,初期应用成本不高, 而且建好的网络模型可以延续使用, 后期投资还会不断下降。
OPNET
产品性能简介:OPNET产品主要面向专业人士,帮助客户进行网络结构、设备和应用的设计、建设、分析和管理。OPNET的产品主要针对三类客户,分成四个系列。三类客户是指:网络服务提供商;网络设备制造商和一般企业。
四个系列产品核心包括:1.ServiceProviderGuru:面向网络服务提供商的智能化网络管理软件。是OPNET公司的最新产品。2.OPNET Modeler:为技术人员(工程师)提供一个网络技术和产品开发平台。可以帮助他们设计和分析网络、网络设备和通信协议。3.ITGuru:帮助网络专业人士预测和分析网络和网络应用的性能,诊断问题,查找影响系统性能的瓶颈,提出并验证解决方案。 4.WDM Guru,用于波分复用光纤网络的分析、评测。
我使用的是OPNET Modeler8.1,所以就它和其他的网络仿真软件进行比较。OPNET Technology公司的仿真软件OPNET具有下面的突出特点,使其能够满足大型复杂网络的仿真需要:
1. 提供三层建模机制,最底层为Process模型,以状态机来描述协议;其次为Node模型,由相应的协议模型构成,反映设备特性;最上层为网络模型。三层模型和实际的网络、设备、协议层次完全对应,全面反映了网络的相关特性;
2. 提供了一个比较齐全的的基本模型库,包括:路由器、交换机、服务器、客户机、ATM设备、DSL设备、ISDN设备等等;
3. 采用离散事件驱动的模拟机理(discrete event driven),与时间驱动相比,计算效率得到很大提高。
4. 采用混合建模机制,把基于包的分析方法和基于统计的数学建模方法结合起来,既可得到非常细节的模拟结果,也大大提高了仿真效率。
5. OPNET具有丰富的统计量收集和分析功能。它可以直接收集常用的各个网络层次的性能统计参数,能够方便地编制和输出仿真报告。
6. 提供了和网管系统、流量监测系统的接口,能够方便的利用现有的拓扑和流量数据建立仿真模型,同时还可对仿真结果进行验证。
OPNET的缺点:
1. 价钱昂贵.OPNET的单使用者授权费超过2万5千美金. 价格的因素使得盗版猖獗。
2. 学习的进入障碍很高,通过专门培训而达到较为熟练程度至少需一个多月的时间.
3. 仿真网络规模和流量很大时, 仿真的效率会降低。目前解决方法:采用分层的建模方法,汇聚网络流量,简化网络模型;背景流量和前景流量相配合;流量比例压缩方法;优化调整仿真参数设计;路由流量的简化;结果分析;如何针对不同的统计参数,选择合适的结果收集和处理方法。来源:(广东省电信科学技术研究院)
4. 软件所提供的模型库是有限的,因此某些特殊网络设备的建模必须依靠节点和过程层次的编程方能实现。(A.网络仿真软件提供的标准的结果参数,往往不能满足实际用户的全部需要,如果用户需要收集网络设备的某些特殊参数时,必须通过过程层次上的编程来收集自己感兴趣的网络参数。B.一般,厂家提供的网络协议的模型都滞后于标准颁布之日数月甚至一年,如果急需使用厂家模型库中没有提供的新协议、新标准时,就只有通过编程的方法,开发自己的协议模型。C.对于大型网络的仿真,有时需要根据实际情况,通过编程改变模型的某些特性来提高仿真计算效率。)涉及底层编程的网元建模具有较高的技术难度,因为需要对协议和标准及其实现的细节有深入的了解、并掌握网络仿真软件复杂的建模机理。因此,一般需要经过专门培训的专业技术人员才能完成。编程的难度限制了OPNET的普及与推广。此外,建立在OPNET上的仿真平台当前无法脱离OPNET环境,也是OPNET的一个局限性。
5. OPNET对路由协议的仿真比较适合,但是对链路的仿真好想就只能通过Pipeline stage来做。例如有用户试了把pipeline stage中radio的propagation delay model的传输速度(default值是光速)改为声波在海水中的速度1500m/s,但是仿真出来的propagation delay结果居然没太大的改变。而根据使用经验matlab或者spw就比较合适做链路层的仿真。
NS (NETWORK SIMULATOR)简介
NS是一个由UC Berkeley开发的用于仿真各种IP网络的为主的优秀的仿真软件。该软件的开发最初是针对基于UNIX系统下的网络设计和仿真而进行的。
Tcl(Tool Command Language)与Tk是安装在UNIX/Linux环境下的两个包,他们一起构成了一套开发系统应用程序和图形用户界面接口(GUI)应用程序的环境。Tk是Tcl在X Window环境下的扩展,它包含了Tcl的全部c库函数,以及支持X Window的窗口,控件等c库函数,为用户开发图形用户界面提供了方便。
NS的设计实现了使用两种程序设计语言,C++和Otcl。这两种程序设计语言都是面向对象的。C++程序模块的运行速度非常快,是强制类型的程序设计语言,容易实现精确的,复杂的算法,但是修改和发现,修正bug所花费的时间较长,因为它比较复杂。Otcl是脚本程序编写语言,是无强制类型的,比较简单,容易实现和修改,容易发现的修正bug,虽然它的运行速度和C++的模块相比要慢很多。
NS的仿真原理-网络组件。NSobject是所有基本网络组件的父类它本身的父类是TclObject类。这个类的对象有一个基本功能,就是处理数据包(PACKET)。所有的基本网络组件可以划分为两类,分类器(Classifier)和连接器(Connector)。它们都是NSobject、的直接子类,也是所有基本网络组件的父类。分类器的派生类组件对象包括地址分类器和多播分类器等。连接器的派生类组件对象包括队列,延迟,各种代理,和追踪对象类。应用程序是建立在传输代理上的应用程序的模拟。NS2中有两种类型的“应用程序”,数据源发生器和模拟的应用程序。NS是离散事件驱动的网络仿真器。它使用Event Scheduler对所有组件希望完成的工作和计划该工作发生的时间进行列表和维护。
NS的工作平台可以是Windows,Linux,Uinx,machitosh,还要求系统装有C++编译器。NS的工作流程:NS代码使用OTCL语言编写,通过OTCL语言解释器解释,使用NS仿真库进行编译和仿真,输出仿真结果,根据仿真结果记录,可进一步进行相关内容分析,生成网络拓补图或者得到数据的可视化的图表。使用辅助的NAM工具,在NS中可以清晰显示网络拓补图,使用X Graph工具,可以将NS的仿真结果用图表形式表示,
NS设计的出发点是基于网络仿真,它集成了多种网络协议,业务类型,路由排队管理机制,路由算法。此外,NS还集成了组播业务和应用于局域网仿真有关的部分、MAC层协议。其仿真主要针对路由层,传输层,数据链路层展开,因此NS可以进行对固定,无线,卫星以及混合等多种网络的仿真。但它最适用于TCP层以上的模拟。NS的特点是源代码公开;可扩展性强;速度和效率优势明显。
NS与OPNET优缺点比较:
1. OPNET与NS2的关系有点象windows和linux的关系。而它们也分别是在这两个环境下(OPNET在win,NS2在linux)安装使用最匹配。
2. OPNET是商业软件,所以界面非常好。功能上很强大,界面错落有致,统一严格。操作也很方便,对节点的修改主要就是对其属性的修改。是优点也是其缺点,如果你需要特殊的节点或很适合自己的节点就不如NS2方便。同时,由于是商业软件所以版本推出不如NS2快。
3. NS2是自由软件,免费,这是与OPNET相比最大的优势,因此它的普及度较高,是OPNET强有力的竞争对手。
4. NS2界面不如OPNET,虽然功能也很强大,但有很多零散的东西,刚学的时候很麻烦,不容易上手。操作上比较方便,但由于不是同一公司开发的,所以格式上不是很统一,说明手册的条理也不是很好。没有现成的节点什么的你可以自己用C++编,可以按照自己的意图来构造你想要的节点。
MATLAB软件
MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB是英文MATrix LABoratory(短阵实验室)的缩写。在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。 MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩陈对象时,不要求作明确的维数说明。与利用c语言或FoRTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。
MATLAB的良好的开放性和运行的可靠性使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。
MathWorks公司于2001年推出MATLAB6.0版本,6.x版在继承和发展其原有的数值计算和图形可视能力的同时,出现了以下几个重要变化:(1)推出了SIMULINK。这是一个交互式操作的动态系统建模、仿真、分析集成环境。它的出现使人们有可能考虑许多以前不得不做简化假设的非线性因素、随机因素,从而大大提高了人们对非线性、随机动态系统的认知能力。(2)开发了与外部进行直接数据交换的组件,打通了MATLAB进行实时数据分析、处理和硬件开发的道路。(3)推出了符号计算工具包。1993年MathWorks公司从加拿大滑铁卢大学购得Maple的使用权,以Maple为“引擎”开发了Symbolic Math Toolbox 1.0。MathWorks公司此举加快结束了国际上数值计算、符号计算孰优孰劣的长期争论,促成了两种计算的互补发展新时代。(4)构作了Notebook 。MathWorks公司瞄准应用范围最广的Word ,运用DDE和OLE,实现了MATLAB与Word的无缝连接,从而为专业科技工作者创造了融科学计算、图形可视、文字处理于一体的高水准环境。
MTALAB系统由五个主要部分组成,下面分别加以介绍。 (1)MATALB语言体系MATLAB是高层次的矩阵/数组语言.具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模端程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。 (2)MATLAB工作环境 这是对MA丁LAB提供给用户使用的管理功能的总称.包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。 (3)图形句相系统 这是MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。 (4)MATLAB数学函数库这是对MATLAB使用的各种数学算法的总称.包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。 (5)MATLAB应用程序接口(API) 这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用c程序或FORTRAN程序,包括从MATLAB中调用于程序(动态链接),读写MAT文件的功能。 可以看出MATLAB是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。除此之外,MA丁LAB还具有根强的功能扩展能力,与它的主系统一起,可以配备各种各样的工具箱,以完成一些特定的任务。
在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件。在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的应用。 在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具。如美国National Instruments公司信号测量、分析软件LabVIEW,Cadence公司信号和通信分析设计软件SPW等,或者直接建筑在MATLAB之上,或者以MATLAB为主要支撑。又如HP公司的VXI硬件,TM公司的DSP,Gage公司的各种硬卡、仪器等都接受MATLAB的支持。
MATLAB的缺点:
1. MATLAB的缺点是它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。
2. MATLAB另一个缺点是不能实现端口操作和实时控制,但结合C++Builder运用,实现优势互补就可以克服这一缺点。
3. MATLAB还有一个缺点就是这个软件太大,按现在流行的版本5.2,自身有400多兆,占硬盘空间近1个G,一般稍早些的计算机都安装不下。
价格:在网上,MATLAB 6.5.1正版软件1900人民币可以买到。
其他仿真软件
CASSAP仿真软件
对于设计扩频数字移动通信这样复杂庞大的系统,依靠过去传统的设计方法是无法完成的,美国Synopsys(新思科技)公司提供的设计工具cossap能帮助设计人员在算法概念级建立一个系统模型,可定义并可随时改变系统的参数,模拟系统信号处理流程来研究系统的算法性能、指标。COSSAP的设计思想为自顶向下(Top—Down)的设计方法,即先进行系统性能分析、算法分析,再进行硬件、软件划分、设计,最后将软、硬件合并、仿真、调测、验证之后,才能完成系统设计
CASSAP为数字信号处理系统的开发者提供了一个最有效的仿真工具,使工程师在概念、算法和体系结构层次完成算法仿真。其首创的数据流驱动仿真器比传统的基于时钟周期的仿真器速度提高了8-16倍。提供超过1000个高层模块可作动态的数据流驱动仿真(支持异步、多速率),并可对其中所需模块自动生成行为级或RTL级VHDL,用于ASIC/FPGA实现,也可生成各种风格的DSP代码,供DSP处理器作软件实现。CASSAP可广泛应用于需分析和评估算法、实现方式的数字传输系统,如通讯、图像、多媒体等,并提供了针对GSM、CDMA、DECT等标准的专用开发平台。
SPW仿真软件
SPW仿真软件是Cadence公司的产品,提供面向电子系统的模块化设计,仿真及实施环境,是进行算法开发,滤波器设计,C代码生成,硬/软件结构联合设计和硬件综合的理想环境。
SPW最出众的地方就是和HDS的接口,和Matlab的接口。matlab里面的很多模型可 以直接调入SPW,然后用HDS生成C语言仿真代码或者是HDL语言仿真代码。也就是说,要是简单行事的话,就可以直 接用matlab做个模型,然后就做到版图中去。
可以说,SPW包括了Matlab的很多功能,连demo都有点象。。它的通常的应用领域包括无线和有线载波通信、多媒体和网络设备。
P2P simulator survey
http://www.p2pjournal.com/
这个网站记录着很多好的p2p项目,到现在为止只有5期杂志,但是很值得一看。另外有很多其他的资源链接,对研究很有帮助
http://www.cs.unibo.it/bison/index.shtml
是一个欧洲的P2P项目。以下引用自它的主页:
BISON will explore the use of ideas derived from complex adaptive systems (CAS) to enable the construction of robust and self-organizing information systems for deployment in highly dynamic network environments. BISON will cast solutions to important problems arising in Ad-Hoc and Virtual networks, P2P and Grid computing systems as desirable global properties that systems should exhibit.
http://www.p2p-simulator.org/
是一个刚刚开始的blog,但是上面记录很多仿真器的资料和论文。
http://www.cs.unibo.it/projects/anthill/
这是一个让我着急的项目,他们时候很早就开始使用蚂蚁算法等相关的生物算法来解决P2P系统的自组织等问题了。我的研究不知道会不会有和他们冲突了。这两天没有时间看它了,过些时候再看看。以下引用自它的主页:
Recent peer-to-peer (P2P) systems are characterized by decentralized control, large scale and extreme dynamism of their operating environment. As such, they can be seen as instances of complex adaptive systems (CAS) typically found in biological and social sciences. Anthill is a framework to support the design, implementation and evaluation of P2P applications based on ideas such as multi-agent and evolutionary programming borrowed from CAS. An Anthill system consists of a dynamic network of peer nodes; societies of adaptive agents travel through this network, interacting with nodes and cooperating with other agents in order to solve complex problems. Anthill can be used to construct different classes of P2P services that exhibit resilience, adaptation and self-organization properties.
http://www.cs.berkeley.edu/~ravenben/tapestry/
这个项目倒是很早了,其主页上这样介绍:
In today's chaotic network, data and services are mobile and replicated widely for availability, durability, and locality. Components within this infrastructure interact in rich and complex ways, greatly stressing traditional approaches to name service and routing. We propose an alternative to traditional approaches called Tapestry. Tapestry is an overlay location and routing infrastructure that provides location-independent routing of messages directly to the closest copy of an object or service using only point-to-point links and without centralized resources. The routing and directory information within this infrastructure is purely soft state and easily repaired. Tapestry is self-organizing, fault-resilient, and load-balancing.
"An Extendible Open Source P2P Simulator"
文章来自http://www.p2pjournal.com/ November 2003。 上面综述了很多p2p simulator。 而详细讲解了NeuroGrid Simulator,这是一个sourceforge的开源项目。http://sourceforge.net/projects/neurogrid/ 但这个仿真器停在了2003年6月24日,但是它的cvs里面有最新的一些东西,而且论坛一直都有讨论。http://www.neurogrid.net 是这个项目的主页。
分享到:
相关推荐
"btpeer P2P 仿真平台"是一款基于MFC(Microsoft Foundation Classes)开发的软件,其主要目的是模拟和研究P2P(对等网络)协议的工作机制。在P2P网络中,每个参与者既是服务的提供者也是服务的消费者,这种架构在...
**P2P仿真软件Peersim详解...Peersim作为一个强大的P2P仿真平台,为研究者提供了实验和优化P2P系统的强大工具。通过深入理解Peersim的架构和使用方法,结合提供的详细教程,你将能够有效地构建和分析各种P2P网络模型。
PeerSim是用JAVA实现、基于组件技术的仿真器,更好地支持了P2P网络的可扩展性和动态性。它使用两种模型,一种是基于环的模型,另一种是基于事件的模型.它支持基于对象的有标准组件的编程,实现同一接口的组件可以很...
**P2P流媒体仿真平台概述** P2P(Peer-to-Peer)流媒体技术是互联网上一种广泛应用的多媒体数据传输方式,它允许用户之间直接共享流媒体内容,减轻了中心服务器的压力,提高了网络资源的利用率。张盟教授在清华大学...
《P2P仿真技术在C++中的实现》 P2P(Peer-to-Peer)技术是一种网络架构,其中每个节点既是服务的提供者也是服务的消费者。这种技术在流媒体传输、文件共享等方面有着广泛的应用。本文将深入探讨如何利用C++编程语言...
【P2P仿真实验报告】是一份详细记录了利用PeerSim软件进行Cycle-based模式仿真的实践报告。该实验由西安电子科技大学的学生王涛在冯景瑜教授的指导下完成,旨在设计并模拟一种典型分布式对等网络,以深入理解P2P网络...
"通用p2p仿真系统ptpsim"是一个专门针对P2P(peer-to-peer)网络协议设计的仿真平台。P2P网络是一种去中心化的通信模型,其中每个节点既是服务的提供者也是消费者。这种模型在文件共享、流媒体、分布式计算等方面有...
1. **基于现有的NS2,OMnet++等通用网络仿真平台**:这些平台提供了丰富的网络仿真功能,支持多种网络协议和模型,可以快速搭建P2P网络仿真环境。 2. **已有的独立的P2P专用仿真程序**:这类程序专门针对P2P网络进行...
随着P2P技术的发展,传统的网络仿真平台已经不能满足研究需要。如何设计支持大规模P2P内容分发仿真的平台是亟待解决的问题。通过建立BackboneNet模型,并采取了“事件”合并、非尾片段丢弃、“事件队列”大小控制三...
这个仿真平台不仅允许研究人员和开发者深入理解这两种分布式哈希表(DHT)协议的工作原理,还提供了扩展接口,以支持其他P2P协议的仿真,从而进行性能对比和优化。 Kademlia是一种广泛应用于P2P网络的分布式哈希表...
根据给定的信息,本文将详细介绍“NBPSim:基于NS2的P2P仿真框架”的核心概念、设计原理以及其实现方法。 ### 引言 随着互联网技术的发展,点对点(Peer-to-Peer, P2P)网络因其独特的优势受到了广泛的关注。P2P系统...
详细分析了PeerSim的用法,并对当前P2P仿真状况进行了研究,最后,作为示例,作者设计了一个简单的P2P信任协议并移植到了PeerSim中,以使人们更加了解PeerSim的运行流程。资源中包含的代码都有详细的注释。本资源...
作者使用VC++6.0开发了一个P2P仿真平台,不仅对本文的研究提供了支持,也为其他P2P研究者提供了便利的工具。 本文的创新点主要包括: 1. 设计了P2P仿真平台,使用VC++6.0实现,为P2P研究提供实用工具。 2. 提出利用...
《P2P查询周期仿真器源代码解析与应用》 在信息技术领域,P2P(Peer-to-Peer)网络以其去中心化、资源共享的特点,在分布式系统、数据共享、流媒体等领域展现出巨大的潜力。为了深入理解和优化P2P系统的性能,查询...
### P2P查询周期仿真器知识点详解 #### 一、引言 《P2P查询周期仿真器说明文件》是一份详细的文档,旨在为用户提供关于P2P查询周期仿真器的全面指南。此仿真器是一种用于模拟文件共享P2P网络的工具,能够帮助研究...
#资源达人分享计划#