网络仿真主要应用在2 个方面:
一是开发和评价新的网络协议和设备,
二是网络规划设计。
网络仿真能迅速建立起网络模型, 方便地修改模型, 适用于预测网络性能、容量规划、故障分析、端到端性能分析、指导新网络建设等。
简介:
最著名的仿真软件OPNET 是美国MIL3 公司的产品。目前OPNET 是世界上最先进的网络仿真开发和应用平台, 近几年被第三方权威机构(如NetworkWorld 等)评选为“世界级网络仿真软件”第一名。
原理:
OPNET 采用离散事件驱动的模拟机理, 其中“事件”是指网络状态的变化, 也就是说, 只有网络状态发生变化时, 模拟机才能工作。网络状态不发生变化的时间段内不执行任何模拟计算, 即被跳过。
优点:
因此, 与时间驱动相比, 离散事件驱动的模拟机计算效率更高。
机制:
基于包的建模机制(simulationon packet level)。
OPNET 模型分为network 、node和process 三个层次。
用户可以在这三个层次的任何地方切入编程, 建立所需的模型。
OPNET 提供了一个比较齐全的基本模型库(包括网络设备和链路),
缺点:
收费的商业软件,很贵, 限制了其在研究领域的应用。
简介:
NS(network simulator) 。NS 于1995 年由DARPA 资助的VINT(Virtual InterNetTestbed)工程开发, 目前由LBL , Xerox PARC , UCB ,USC/ISI 等合作开发。
原理:
采用离散事件驱动机理进行仿真。它的架构严格遵循OSI 七层网络模型, 其内核源码用C 语言完成, 编程语言用C + +和OTcl (面向对象的Tcl)。
C ++是一个编译性语言, 通过它可以有效地处理字节、包头等数据信息, 实现各种算法, 适用于具体协议的实现。
C ++和OTcl 能够互相直接操作对方定义的数据,C ++的类和OTcl 的类相对应。通过这种机制,NS 达到了仿真配置灵活性和运行效率的统一。
优点:
软件包可以从网络上免费下载,所有源代码公开, 是一个开放性的仿真平台。能使得网络初学者比较具体地理解网络技术:协议、路由、分组转发、拥塞控制等。
缺点:
文档显得过时而且帮助有限;
不同版本中模块的兼容性问题比较突出;
仿真节点数目很多时,需要更多的内存资源,运行速度明显变慢。
另外, 由于使用2 种编程语言,NS 的学习曲线太过陡峭, 其调试工作也具有相当难度。
简介:
GloMoSim(for global mobile system)[ 4] 仿真软件由美国UCLA 大学计算机系开发。
原理:
基于C 语言的并行仿真语言Parsec 设计, 可以实现并行离散时间驱动仿真, 具有可扩展性和可编程性。支持纯无线网络的协议,的结果数据既可以用文本也可用图形表述。采用分层的方法, 不同层之间使用标准的API 进行通信, 这样实现了网络所需的基本协议栈层次。
优点:
使用方便, 具有可测量性, 可以远程控制
缺点:
分层结构太严格, 要实现跨层信息的应用就显得困难
NS 和GloMoSim 是免费的, 其程序的源代码也是开放的, 因此受到了学术界的欢迎。OPENET 是商业软件, 费用较贵, 但其功能强大, 仿真准确性也较高, 主要为一些大型网络研发部门所使用。OPNET综合采用基于包的建模方法和数学分析的建模方法, 可以获得较快的仿真速度。NS 则特别适用于TCP 层以上的仿真, 但是当仿真节点数较多时速度较慢。
3 种仿真软件都采用离散事件驱动作为引擎。离散事件驱动的模拟机理, 使其可以在高度复杂的网络环境下得到高可信度的结果。但这种机制存在着模型不严格和处理能力不够的缺点。