转自: 摘要: 1. 引言 网络仿真也被称为网络模拟,因为对各种网络仿真过程来说,其中也有“模拟”的含义,即,网络仿真既可以取代真实的应用环境得出可靠的运行结果和数据,也可以模仿一个系统过程中的某些行为和特征。顾名思义,网络模拟,就是用计算机程序对通信网络进行模型化,通过程序的运行模仿通信网络的运行过程。那么,为什么要进行通信网络的仿真呢? 在网络迅速膨胀的今天,网络研究人员一方面要不断思考新的网络协议和算法,为网络发展做前瞻性的基础研究;另一方面也要研究如何利用和整合现有的资源,使网络达到{zg}效能。无论是哪一方面都需要对新的网络方案进行验证和分析。进行网络技术的研究一般有以下3种手段: (1) 分析方法,就是对所研究的对象和所依存的网络系统进行初步分析,根据一定的限定条件和合理假设,对研究对象和系统进行描述,抽象出研究对象的数学分析模型,利用数学分析模型对问题进行求解 然而,前两种方法都存在很大的局限性。分析方法的有效性和xx性受假设限制很大。当一个系统很复杂时,就无法用一些限制性假设来对系统进行详细描述。实验方法的局限性在于成本很高,重新配置或共享资源很难,运用起来不灵活。而仿真方法在很大程度上可以弥补前两种方法的不足。仿真方法可以根据需要设计所需的网络模型,用相对较少的时间和费用了解网络在不同条件下的各种特性,获取网络研究的丰富有效的数据。网络仿真无疑提供了一个方便、高效的验证和分析方法,因此网络仿真技术在现代通信网络设计和研究中的作用正变得越来越大。 2. 对几款主流网络仿真软件的评价 当前有许多优秀的网络仿真软件,其中有 Opnet、NS2、Matlab等,这为网络研究人员提供了很好的网络仿真平台。主流的网络仿真软件都采用了离散事件模拟技术,并提供了丰富的网络xxxx库和高级语言编程接口,这无疑提高了仿真软件的灵活性和使用方便性。下面将对各种主流的网络仿真软件进行简要评价。 OPNET Modeler OPNET Modeler是OPNET Technology公司的四个系列网络仿真软件产品的其中之一,它主要面向的用户为网络设计专业人士,能够满足大型复杂网络的仿真需要。OPNET Modeler有如下特点: (1) 提供三层建模机制,{zd2}层为Process模型,以状态机来描述协议;其次为Node模型,由相应的协议模型构成,反映设备特性;最上层为网络模型。三层模型和实际的网络、设备、协议层次xx对应,全面反映了网络的相关特性; NS2 NS2(Network Simulator, version 2)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。NS2由UC Berkeley开发而成。它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。目前NS2可以用于仿真各种不同的IP网,已经实现的一些仿真有:网络传输协议,比如TCP和UDP;业务源流量产生器,比如FTP、Telnet、Web CBR和VBR;路由队列管理机制,比如Droptai、RED和CBQ;路由算法,比如Dijkstra等。NS2也为进行局域网的仿真而实现了多播以及一些MAC子层协议。 NS2使用C++和Otcl作为开发语言。NS可以说是Otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。事件调度器计算仿真时间,并且xx事件队列中的当前事件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。所有需要花费仿真时间来处理分组的网络组件都必须要使用事件调度器。它先为这个分组发出一个事件,然后等待这个事件被调度回来之后,才能做下一步的处理工作。事件调度器的另一个用处就是计时。NS是用Otcl和C++编写的。由于效率的原因,NS将数据通道和控制通道的实现相分离。为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++写出并编译的,这些对象通过映射对Otcl解释器可见。 当仿真完成以后,NS将会产生一个或多个基于文本的跟踪文件。只要在Tcl脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理,也可以使用NAM将整个仿真过程展示出来。 Matlab MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写。MATLAB环境下,用户集成了程序设计、数值计算、图形绘制、输入输出、文件管理等各项功能。 MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩陈对象时,不要求作明确的维数说明。与利用C语言或FORTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。 MTALAB系统由五个主要部分组成: 由此可见,MATLAB是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。除此之外,MATLAB还具有很强的功能扩展能力,与它的主系统一起,可以配备各种各样的工具箱,以完成一些特定的任务。 CASSAP CASSAP是美国Synopsys(新思科技)公司开发了一款仿真软件,主要应用于数字信号处理和网络通信领域,它可以在概念、体系结构、算法三个层次上实现仿真。CASSAP采用了数据流驱动仿真器,它比基于时钟周期的仿真器速度提高了8-16倍。CASSAP提供了1000多个高层模块,并可对其中所需模块自动生成行为级或RTL级VHDL,也可生成各种风格的DSP代码,供DSP处理器作软件实现。CASSAP可广泛应用于需分析和评估算法、实现方式的数字传输系统,如通讯、图像、多媒体等,并提供了针对GSM、CDMA、DECT等标准的专用开发平台。 SPW SPW仿真软件是Cadence公司的产品,它提供了面向电子系统的模块化设计、仿真及实施环境,是进行算法开发,滤波器设计,C代码生成,硬/软件结构联合设计和硬件综合的理想环境。SPW的一个显著特点是他提供了HDS接口和Matlab接口。Matlab里面的很多模型可以直接调入SPW,然后利用HDS生成C语言仿真代码或者是HDL语言仿真代码。SPW通常可以应用于无线和有线载波通信、多媒体和网络设计与分析等领域。 实例分析 |