当前位置:文档之家› 网络仿真软件的分析探讨

网络仿真软件的分析探讨

http://www.paper.edu.cn

- 1 -网络仿真软件的分析探讨

范红艳,周彩根,樊昀

北京邮电大学计算机科学与技术学院,北京 (100876)

E-mail:fanicy@163.com

摘 要:网络仿真是进行网络研究的重要方法,随着网络的发展,目前有多种网络仿真软件,

不同的仿真软件适用于网络不同方面的研究,本文主要介绍了OPNET和NS2两种目前比较

流行的仿真软件的特点及主要技术,然后针对一个实例比较了两种仿真软件的仿真效果。

关键词:网络仿真,仿真软件,OPNET,NS2

中图分类号:TP 391.09

1. 引言

随着网络的快速发展,对于网络性能和新技术的研究也越来越重要,但是如果在现实网

络中进行性能研究和新技术的设计开发,是不太现实的。因此,网络仿真软件的出现大大提

高了网络研究的效率,也减少了网络新技术开发的费用。

网络仿真是一种利用数学建模和统计分析的方法来模拟网络行为,从而获取特定的网络

特性参数的技术。网络仿真软件通过在计算机上建立一个虚拟的网络平台,来实现真实网络

环境的模拟。网络技术开发人员在这个平台上不仅可以对网络通信,网络设备,协议以及网

络应用进行研究设计,还可以对网络的性能进行分析和评估。

本文接下来主要阐述了两种仿真软件的特点及主要技术,最后针对一个实例对两种仿真

软件的仿真效果进行了比较。

2. 网络仿真软件

2.1 OPNET介绍

OPNET是一种优秀的网络仿真和建模的工具,支持面向对象的建模方式,并提供图形

化的编辑界面,更便于用户使用。它强大的功能和全面性几乎可以模拟任何网络设备、支持

各种网络技术,除了能够模拟固定通信模型外,OPNET的无线建模器还可用于建立分组无

线网和卫星通信网的模型。同时,OPNET在新网络的设计以及对现有网络的分析方面都有

卓越表现。它为通信协议和路由算法的研究提供与真实网络相同的环境。此外,功能完善的

结果分析器为网络性能的分析提供了有效又直观的工具。OPNET的 Modeler是专门用于可

视化原型设计的软件,它的使用既方便了网络模型的建立,又减少了编程的工作量。Modeler

中提供多种编辑器帮助用户完成网络建模和仿真运行,产品核心包括[1]

1) Service Provider Guru,面向网络服务提供商的智能化网络管理软件,是OPNET公司

的最新产品。

2) OPNET Modeler,为技术人员提供一个网络技术和产品开发平台。可以帮助设计和分

析网络、网络设备和通信协议。

3) IT Guru,帮助网络专业人士预测和分析网络和网络应用的性能,诊断问题,查找影

响系统性能的瓶颈,提出并验证解决方案。

4) WDM Guru,用于波分复用光纤网络的分析、评测。

OPNET的Modeler是专门用于可视化原型设计的软件,它的使用既方便了网络模型的

建立,又减少了编程的工作量。Modeler中提供多种编辑器帮助用户完成网络建模和仿真运http://www.paper.edu.cn

- 2 -行,包括:

网络编辑器 ( Network Editor )。网络编辑器用于编辑网络的拓扑结构,它具有图形化的

编辑界面,并且提供由各种通信实体组成的模型库,如hub、路由器等。用户可以通过简单

的拖放操作在网络编辑器的工作区中快速、方便的配置起自己的网络拓扑,也可以对网络 中

各种设备的属性进行设置。用户还可以建立新的模型或在已有模型的基础上进行修改。

OPNET引入了子网的概念,这里的子网被视为一个独立的对象,子网内节点的数目和子网

中的设备可由用户自行设定。同时,OPNET还支持子网的无限嵌套。

节点编辑器 ( Node Editor )。节点编辑器用于定义网络中节点的结构和描述节点中(软件

或硬件)模块间的数据流。节点编辑器描述了协议的层次结构,并通过描述功能模块之间的

数据流来实现一个网络器件或系统的体系结构。

进程编辑器( Process Editor )。进程编辑器定义了节点内功能模块中各事件之间的控制

流,使用符合工业标准的状态图描述功能模块内的状态和状态间的控制流。进程模型在进程

编辑器中用Proto—C语言描述,Proto—C语言是OPNET为协议和算法的开发而设计的,

它基于状态转换图( STD)的组合,是一个类似于内核程序( Kernel Procedures ) 的高级命令

库,同时具有c/c+ + 程序语言的基本功能。另外,OPNET自带400多个内核程序( Kernel

Procedure ) 方便协议和算法开发与实现。

包格式编辑器 ( Packet Format Editor )。包格式编辑器用于创建用户定义的各种类型的

包。

探针编辑器 ( Probe Editor )。探针编辑器可以收集内置的统计数据,也可以根据用户的

要求收集数据,还可以将统计数据以动画的形式表现出来。

另外,OPNET还提供了交互式的运行调试工具、功能强大的结果分析器和能够实时观

察。模型动态行为的动态观察器。用户可以在运行前设定运行中使用的参数,并且能随时中

断运行。结果分析器用图形的方式显示仿真软件过程中得到的统计数据,还能将多次仿真的

结果进行比较,为用户的决策提供有力的依据。

2.2 NS2介绍

NS2[2]

(Network Simulation, Version 2)是面向对象的、开源的离散事件模拟器。其本身有

一个虚拟时钟,所有的仿真都是由离散事件驱动的。NS2的功能强大,模块丰富,是目前网

络研究领域应用最广泛的仿真软件之一。NS2可以用于仿真各种不同的IP网,同时也为进

行局域网的仿真而实现了多播以及一些MAC子层协议。NS2为包级仿真,只研究链路层及

以上协议,它提供对协议的多级抽象,以满足对不同协议层的研究。NS2更注重低级协议仿

真,监视和分析包踪迹和队列行为。

NS2的架构严格遵循OSI七层网络模型,其内核源码用C语言完成,编程语言用C++ 和

OTcl (面向对象的Tcl ) 。C++是一个编译性语言,通过它可以有效地处理字节、包头等数

据信息,实现各种算法,适用于具体协议的实现。OTcl 是一个解释性语言,用于书写仿真

脚本,只需修改网络的参数和配置,就可以对大量的场景进行比较。两种语言的结合使用,

满足了不同的需要。同时,为了进一步增强编程的灵活性,提高程序的效率,NS2中利用

TclCL机制把OTcl 和 C++结合起来,使得C++和OTcl 能够互相直接操作对方定义的数据,

C++的类和OTcl 的类相对应。通过这种机制,NS2达到了仿真配置灵活性和运行效率的统

一。

NS2的每一次模拟均需要用类Simulator的一个简单实例来控制和执行模拟。这个类提http://www.paper.edu.cn

- 3 -供了一套接口用于配置一次模拟,并为这次模拟选择一个时间调度方案。一个模拟脚本通常

以创建这个类的实例开始,然后调用各种方法创建节点,管理拓扑结构和设置模拟的其他方

面。当一个新的模拟对象在Tcl脚本中创建时,初始化过程将执行以下操作:① 初始化包

格式;②创建一个事件调度器;③ 创建一个空代理。

目前,NS2提供了大量仿真环境的元素,如仿真器、节点和分组转发、链路和延迟、队

列管理与分组调度、代理、时钟、分组头及其格式、局域网等;提供了丰富的数学支持,如

随机数产生、积分等;提供方便的追踪和监视方法等;同时也提供完整的路由支持,如单播

/组播路由、动态/静态路由、层次路由等。NS2软件还配有仿真过程动态观察器,可以在

仿真运行结束后动态察看仿真的运行过程,观察跟踪数据。软件还有图形显示器,显示从仿

真中得到的结果数据,直观而且清晰。

2.3 仿真软件的比较

NS2是免费的,其程序的源代码也是开放的,因此受到了学术界的欢迎。OPENET是

商业软件,费用较贵,但其功能强大,仿真准确性也较高,主要为一些大型网络研发部门所

使用。OPNET综合采用基于包的建模方法和数学分析的建模方法,可以获得较快的仿真速

度。NS2则特别适用于TCP层以上的仿真,但是当仿真节点数较多时速度较慢。表1[3]

列出

了两款软件主要性能方面的比较。

表1 网络仿真软件的比较

OPNET NS2

模拟方法 事件驱动 事件驱动

面向对象建模 是 是

建模环境 图形化编辑器 命令符编辑器

模型扩展 在已有模型上修改或使用c/c++语

言编制 使用c/c++语言编制新模型

动态观察模拟过程 支持 支持

仿真结果 使用结果分析器输出 使用图形显示器输出

适用范围 几乎所有网络和网络技术(包括无

线通信和卫星通信网) 主要面向网络协议研究

运行环境 Unix, HP-UX, Solaris, Windows Unix, Linux, Widows

价格 十分昂贵 免费

3. 实例仿真效果的分析对比

3.1 场景描述

该实例场景为一个小型办公局域网,第一个场景是该局域网只有十个节点连接到server

上。其网络拓扑结构如图1。 http://www.paper.edu.cn

- 4 -

图1 初始网络拓扑结构

第二个场景是在原有网络上,增加十个节点,本实例的目的是通过节点的增加,看是否

会使得网络的延时增加。扩展后的网络拓扑结构如图2。

图2 扩展后的网络拓扑结构 http://www.paper.edu.cn

- 5 -3.2 仿真结果分析对比

具体的仿真实现过程这里就略过不再陈述了,以下是OPNET和NS2分别得到的网络延

时图。

图3 初始网络得到的OPNET显示的延时统计图

图4 扩展后的网络得到的OPNET显示的延时统计图

相关主题