网络通信 频道

关于当前若干主流网络仿真软件的综述及实例应用分析

1. 引言

网络仿真也被称为网络模拟,因为对各种网络仿真过程来说,其中也有“模拟”的含义,即,网络仿真既可以取代真实的应用环境得出可靠的运行结果和数据,也可以模仿一个系统过程中的某些行为和特征。顾名思义,网络模拟,就是用计算机程序对通信网络进行模型化,通过程序的运行模仿通信网络的运行过程。那么,为什么要进行通信网络的仿真呢?

在网络迅速膨胀的今天,网络研究人员一方面要不断思考新的网络协议和算法,为网络发展做前瞻性的基础研究;另一方面也要研究如何利用和整合现有的资源,使网络达到最高效能。无论是哪一方面都需要对新的网络方案进行验证和分析。进行网络技术的研究一般有以下3种手段:

(1) 分析方法,就是对所研究的对象和所依存的网络系统进行初步分析,根据一定的限定条件和合理假设,对研究对象和系统进行描述,抽象出研究对象的数学分析模型,利用数学分析模型对问题进行求解
(2) 实验方法,就是设计出研究所需要的合理硬件和软件配置环境,建立测试床和实验室,在现实的网络上实现对网络协议、网络行为和网络性能的研究。
(3) 仿真方法,应用网络仿真软件建立所研究的网络系统的模拟模型,在计算机上运行这个模型,并分析运行的输出结果。

然而,前两种方法都存在很大的局限性。分析方法的有效性和精确性受假设限制很大。当一个系统很复杂时,就无法用一些限制性假设来对系统进行详细描述。实验方法的局限性在于成本很高,重新配置或共享资源很难,运用起来不灵活。而仿真方法在很大程度上可以弥补前两种方法的不足。仿真方法可以根据需要设计所需的网络模型,用相对较少的时间和费用了解网络在不同条件下的各种特性,获取网络研究的丰富有效的数据。网络仿真无疑提供了一个方便、高效的验证和分析方法,因此网络仿真技术在现代通信网络设计和研究中的作用正变得越来越大。

2. 对几款主流网络仿真软件的评价

当前有许多优秀的网络仿真软件,其中有 Opnet、NS2、Matlab等,这为网络研究人员提供了很好的网络仿真平台。主流的网络仿真软件都采用了离散事件模拟技术,并提供了丰富的网络仿真模型库和高级语言编程接口,这无疑提高了仿真软件的灵活性和使用方便性。下面将对各种主流的网络仿真软件进行简要评价。

OPNET Modeler

OPNET Modeler是OPNET Technology公司的四个系列网络仿真软件产品的其中之一,它主要面向的用户为网络设计专业人士,能够满足大型复杂网络的仿真需要。OPNET Modeler有如下特点:

(1) 提供三层建模机制,最底层为Process模型,以状态机来描述协议;其次为Node模型,由相应的协议模型构成,反映设备特性;最上层为网络模型。三层模型和实际的网络、设备、协议层次完全对应,全面反映了网络的相关特性;
(2) 提供了一个比较齐全的的基本模型库,包括:路由器、交换机、服务器、客户机、ATM设备、DSL设备、ISDN设备等等。同时,OPNET Technology公司会对不同的企业用户提供附加的专用模型库,但需另外付费;
(3) 采用离散事件驱动的模拟机理(discrete event driven),与时间驱动相比,计算效率得到很大提高。
(4) 采用混合建模机制,把基于包的分析方法和基于统计的数学建模方法结合起来,既可得到非常细节的模拟结果,又大大提高了仿真效率。
(5) OPNET具有丰富的统计量收集和分析功能。它可以直接收集常用的各个网络层次的性能统计参数,能够方便地编制和输出仿真报告。
(6) 提供了和网管系统、流量监测系统的接口,能够方便的利用现有的拓扑和流量数据建立仿真模型,同时还可对仿真结果进行验证。

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的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。事件调度器计算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。所有需要花费仿真时间来处理分组的网络组件都必须要使用事件调度器。它先为这个分组发出一个事件,然后等待这个事件被调度回来之后,才能做下一步的处理工作。事件调度器的另一个用处就是计时。NS是用Otcl和C++编写的。由于效率的原因,NS将数据通道和控制通道的实现相分离。为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++写出并编译的,这些对象通过映射对Otcl解释器可见。

当仿真完成以后,NS将会产生一个或多个基于文本的跟踪文件。只要在Tcl脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理,也可以使用NAM将整个仿真过程展示出来。

Matlab

MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写。MATLAB环境下,用户集成了程序设计、数值计算、图形绘制、输入输出、文件管理等各项功能。 MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩陈对象时,不要求作明确的维数说明。与利用C语言或FORTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。

MTALAB系统由五个主要部分组成:
(1) MATALB语言体系。MATLAB是高层次的矩阵/数组语言。具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模端程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。
(2) MATLAB工作环境包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。
(3) 图形图像系统。这是MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特征控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。
(4) MATLAB数学函数库。这是对MATLAB使用的各种数学算法的总称。包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法等。
(5) MATLAB应用程序接口。这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或FORTRAN程序,包括从MATLAB中调用程序(如动态链接库),读写MAT文件的功能。

由此可见,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通常可以应用于无线和有线载波通信、多媒体和网络设计与分析等领域。

0
相关文章