熊辉 朱倩
【摘 要】网络仿真可以有效提高网络规划和设计的可靠性和准确性,明显地降低网络投资风险,减少不必要的投资浪费。本文就常见的三种网络仿真工具(OPNET、NS2及MATLAB),从它们的基本情况及特点进行了分析。
【关键字】网络仿真;OPNET;NS2;MATLAB
引言
随着网络结构和规模越来越复杂化以及网络的应用越来越多样化,单纯地依靠经验进行网络的规划和设计、网络设备的研发以及网络协议的开发,已经不能适应网络的发展,因而急需一种科学的手段来反映和预测网络的性能,网络仿真技术应运而生。网络仿真可以有效提高网络规划和设计的可靠性和准确性,明显地降低网络投资风险,减少不必要的投资浪费。各种网络仿真工具在此背景下应运而生。本文就常见的三种网络仿真工具(OPNET、NS2及MATLAB),从它们的基本情况及特点进行了分析。
基本情况及特点分析
1.OPNET
OPNET公司最初只有一种产品OPNET Modeler,到目前已经拥有Modeler、ITGuru、SPGuru、WDMGuru、ODK等一系列产品。
对于网络的设计和管理,一般分为3个阶段:第1阶段为设计阶段,包括网络拓扑结构的设计,协议的设计和配置以及网络中设备的设计和选择;第2阶段为发布阶段,设计出的网络能够具有一定性能,如吞吐率、响应时间等等;第3阶段为实际运营中的故障诊断、排错和升级优化。而OPNET公司的整个产品线正好能面向网络研发的不同阶段,即可以作网络的设计,也可以作为发布网络性能的依据,还可以作为已投入运营的网络的优化和故障诊断工具。OPNET公司也是当前业界智能化网络管理分析解决方案的主要提供商。
OPNET的主要特点:
层次化的网络模型。使用无限嵌套的子网来建立复杂的网络拓扑结构。
简单明了的建模方法。Modeler建模过程分为3个层次:过程(process)层次、节点(Node)层次以及网络(Network)层次。在过程层次模拟单个对象的行为,在节点层次中将其互连成设备,在网络层次中将这些设备互连组成网络。几个不同的网络场景组成“项目”,用以比较不同的设计方案。这也是Modeler建模的重要机制,这种机制有利于项目的管理和分工。
有限状态机。在过程层次使用有限状态机来对协议和其他过程进行建模。在有限状态机的状态和转移条件中使用C/C++语言对任何过程进行模拟。用户可以随心所欲地控制仿真的详细程度。有限状态机加上标准的C/C++以及OPNET本身提供的400多个库函数构成了Modeler编程的核心。OPNET称这个集合为Proto C语言。
对协议编程的全面支持。支持400多个库函数以及书写风格简洁的协议模型。OPNET的核心已经嵌入了众多协议,因此对于很多协议,无需进行额外的编程。
系统的完全开放性。Modeler中源码全部开放,用户可以根据自己的需要添加、修改已有的源码。
高效的仿真引擎。使用Modeler进行开发的仿真平台,使仿真的效率相当高。
集成的分析工具。Modeler仿真结果的显示界面十分友好,可以轻松刻画和分析各种类型的曲线,也可将曲线导出到电子表格中。
动画。Modeler可以在仿真中或仿真后显示模型行为的动画,使得仿真平台具有很好的演示效果。
集成调试器。快速地验证仿真或发现仿真中存在的问题,OPNET本身有自己的调试工具——OPNET Debugger(ODB)。另外,OPNET在Windows平台下还支持和编程语言VC的联合调试。
OPNET是商业软件,界面漂亮,上手容易,各种平台下都有版本。虽然好像有D版,得不到客服,而且致命的是模块太少,要要钱的。
OPNET具有丰富的统计量收集和分析功能。它可以直接收集常用的各个网络层次的性能统计参数,并有多种统计参数的采集和处理方法,还可以通过底层网络模型编程,收集特殊的网络参数。OPNET还有丰富的图表显示和编辑功能、模拟错误提示和告警功能,能够方便地编制和输出仿真报告。
2.NS2
局域网仿真是局域网设计的重要环节,也是网络性能分析的关键,因此需要一个与操作系统无关的平台,它可以屏蔽掉对操作系统的实际的访问,且能近乎真实地模拟网络环境,让我们可以在各个层次上模拟网络的运行,于是在这种背景下,UC Berkeley改进过的NS2应运而生。它可以对无线、有线网、卫星网,局域网和广域网等不同的网络形式进行仿真。它目前可以支持HTTP、TCP,UDP协议,支持FTP,Telnet,Web,,CBR and VBR等高层业务;对无线网络,支持DSR、AODV、DSDV等协议。
NS所用仿真语言是Tool Command Language(TCL)语言的一个扩展,TCL语言是一个简单的脚本语言,它有解释器可与任何C语言相链接,TCL最强大的功能是它的X工具包,该工具包可以让用户开发具有图形界面的脚本,仿真通过TCL语言进行定义。利用NS命令编写脚本来定义网络的拓扑结构、配置网络信息流量的产生和接收以及收集统计信息。软件配有仿真过程动态观察器,可以在仿真运行结束后,动态察看仿真的运行过程,观察跟踪数据。软件还有图形显示器,显示从仿真中得到的结果数据,直观而清晰。
NS2特点分析:
NS2是免费软件,在类Linux下运行,通过Cygwin,完全可以运行在windows平台上,扩展使用C++和OTCL,编译和调试使用GNU GCC和GDB。由于是免费的软件,研究人员使用相当广泛,因此有大量免费的模块可以从网络中下载到,但相应的缺点是这些免费的代码可能或多或少存在一些小bug。
3.MATLAB
MATLAB 产品家族是美国MathWorks公司开发的用于概念设计、算法开发、建模仿真、实时实现的理想的集成环境。由于其完整的专业体系和先进的设计开发思路,使得MATLAB在多种领域都有广阔的应用空间,特别是在 MATLAB 的主要应用方向 — 科学计算、建模仿真以及信息工程系统的设计开发上已经成为行业内的首选设计工具,全球现有超过五十万的企业用户和上千万的个人用户,广泛的分布在航空航天,金融财务,机械化工,电信,教育等各个行业。
MATLAB的特点分析:
在MATLAB产品家族中,MATLAB工具箱是整个体系的基座,它是一个语言编程型(M语言)开发平台,提供了体系中其他工具所需要的集成环境(比如M语言的解释器)。同时由于MATLAB对矩阵和线性代数的支持使得工具箱本身也具有强大的数学计算能力。 MATLAB产品体系的演化历程中最重要的一个体系变更是引入了Simulink,用来对动态系统建模仿真。其框图化的设计方式和良好的交互性,对工程人员本身计算机操作与编程的熟练程度的要求降到了最低,工程人员可以把更多的精力放到理论和技术的创新上去。
针对控制逻辑的开发,协议栈的仿真等要求,MathWorks公司在Simulink平台上还提供了用于描述复杂事件驱动系统的逻辑行为的建模仿真工具——Stateflow,通过Stateflow,用户可以用图形化的方式描述事件驱动系统的逻辑行为,并无缝的结合到Simulink的动态系统仿真中。
在MATLAB/Simulink基本环境之上,MathWorks公司为用户提供了丰富的扩展资源,这就是大量的Toolbox和Blockset。从1985年推出第一个版本以后的近二十年发展过程中,MATLAB已经从单纯的Fortran数学函数库演变为多学科,多领域的函数包,模块库的提供者。用户在这样的平台上进行系统设计开发就相当于已经站在了巨人的肩膀上,众多行业中的专家精英们的智慧结晶可以信手拈来。
MATLAB开放的体系结构允许用户在平台上进行自由扩展,目前在全世界范围内已经有大量的商业的或者免费的MATLAB二次开发产品发布(比如FEMLAB和PSS)。换句话说,用户购买一套MATLAB,获得的是世界范围的专家支持。而对于用户自己开发的算法包,MATLAB也提供了包括Compiler应用发布和Web网络发布在内的众多方式的发布途径,使得用户一方面能够充分地利用MATLAB的算法资源形成技术成果,同时又可以有效的保护自己的知识产权。
随着 MATLAB 在行业内影响力的快速扩大,与 MathWorks公司形成战略联合的公司和寻求与 MATLAB 进行接口的软硬件产品的也日益增多。目前 MATLAB 所支持的第三方产品已经有三百余种,分布在科学计算、机械动力学设计、化工、信息工程,汽车、金融财务等各个学科领域,接口方式包括联合建模、数据共享、开发流程拼接等等。
小结:
网络仿真技术是一种全新的网络规划设计方法,该技术以其独特的技术手段,成为一种经济、有效和其他传统方法不可替代的网络设计的有力工具。未来数年将是网络仿真技术蓬勃发展的时期,今后网络仿真技术必将成为数据网络规划设计不可缺少的工具。
参考文献:
[1] http://www.china-ns.com.
[2] http://www.ns.nl.
[3] http://www.opnet.com.
[4] http://www.matlab-world.com.