网络仿真软件的分析探讨
- 格式:pdf
- 大小:342.24 KB
- 文档页数:7
网络仿真软件的分析探讨
范红艳,周彩根,樊昀
北京邮电大学计算机科学与技术学院,北京 (100876)
E-mail:fanicy@
摘要:网络仿真是进行网络研究的重要方法,随着网络的发展,目前有多种网络仿真软件,不同的仿真软件适用于网络不同方面的研究,本文主要介绍了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中提供多种编辑器帮助用户完成网络建模和仿真运
行,包括:
网络编辑器( 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的一个简单实例来控制和执行模拟。这个类提