首页 > 代码库 > 【转】几款网络仿真软件的比较
【转】几款网络仿真软件的比较
转自:
网络仿真技术是一种通过建立网络设备和网络链路的统计模型, 并模拟网络流量的传输, 从而获取网络设计或优化所需要的网络性能数据的仿真技术。由于仿真不是基于数学计算, 而是基于统计模型,因此,统计复用的随机性被精确地再现。
网络仿真技术具有以下特点:一, 全新的模拟实验机理使其具有在高度复杂的网络环境下得到高可信度结果的特点。二, 网络仿真的预测功能是其他任何方法都无法比拟的;三,使用范围广, 既可以用于现有网络的优化和扩容,也可以用于新网络的设计,而且特别适用于中大型网络的设计和优化;四,初期应用成本不高, 而且建好的网络模型可以延续使用, 后期投资还会不断下降。
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都有点象。。它的通常的应用领域包括无线和有线载波通信、多媒体和网络设备。