各种主流网络分析仿真工具比较分析_第1页
各种主流网络分析仿真工具比较分析_第2页
各种主流网络分析仿真工具比较分析_第3页
各种主流网络分析仿真工具比较分析_第4页
各种主流网络分析仿真工具比较分析_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

进行网络技术的研究一般有以下 3 种手段 1 分析方法 2 实验方法 3 仿真方法 当前有许多优秀的网络仿真软件 其中有 Opnet NS2 Matlab 等 主流的网络仿真软件 都采用了离散事件模拟技术 并提供了丰富的网络仿真模型库和高级语言编程接口 这无 疑提高了仿真软件的灵活性和使用方便性 OPNETOPNET ModelerModeler OPNET Modeler 是 OPNET Technology 公司的四个系列网络仿真软件产品的其中 之一 它主要面向的用户为网络设计专业人士 能够满足大型复杂网络的仿真 需要 OPNET Modeler 有如下特点 1 提供三层建模机制 最底层为 Process 模型 以状态机来描述协议 其 次为 Node 模型 由相应的协议模型构成 反映设备特性 最上层为网络 模型 三层模型和实际的网络 设备 协议层次完全对应 全面反映了 网络的相关特性 2 提供了一个比较齐全的的基本模型库 包括 路由器 交换机 服务器 客户机 ATM 设备 DSL 设备 ISDN 设备等等 同时 OPNET Technology 公司会对不同的企业用户提供附加的专用模型库 但需另外 付费 3 采用离散事件驱动的模拟机理 discrete event driven 与时 间驱动相比 计算效率得到很大提高 4 采用混合建模机制 把基于包的分析方法和基于统计的数学建模 方法结合起来 既可得到非常细节的模拟结果 又大大提高了仿真效率 5 OPNET 具有丰富的统计量收集和分析功能 它可以直接收集常用 的各个网络层次的性能统计参数 能够方便地编制和输出仿真报告 6 提供了和网管系统 流量监测系统的接口 能够方便的利用现有 的拓扑和流量数据建立仿真模型 同时还可对仿真结果进行验证 OPNET 的缺点 1 价钱昂贵 OPNET 的单使用者授权费超过 2 万 5 千美金 价格的因素使得盗版猖獗 2 学习的进入障碍很高 通过专门培训而达到较为熟练程度至少需一个多月的时间 3 仿真网络规模和流量很大时 仿真的效率会降低 目前解决方法 采用分层的建模方 法 汇聚网络流量 简化网络模型 背景流量和前景流量相配合 流量比例压缩方法 优 化调整仿真参数设计 路由流量的简化 结果分析 如何针对不同的统计参数 选择合适 的结果收集和处理方法 4 软件所提供的模型库是有限的 因此某些特殊网络设备的建模必须依靠节点和过程层 次的编程方能实现 5 OPNET 对路由协议的仿真比较适合 但是对链路的仿真好想就只能通过 Pipeline stage 来做 NS2NS2 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 将整个仿真过程展示出来 MatlabMatlab 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 还具有很强的功能扩展能力 与它的 主系统一起 可以配备各种各样的工具箱 以完成一些特定的任务 CASSAPCASSAP CASSAP 是美国 Synopsys 新思科技 公司开发了一款仿真软件 主要应用于数 字信号处理和网络通信领域 它可以在概念 体系结构 算法三个层次上实现 仿真 CASSAP 采用了数据流驱动仿真器 它比基于时钟周期的仿真器速度提高 了 8 16 倍 CASSAP 提供了 1000 多个高层模块 并可对其中所需模块自动生成 行为级或 RTL 级 VHDL 也可生成各种风格的 DSP 代码 供 DSP 处理器作软件实 现 CASSAP 可广泛应用于需分析和评估算法 实现方式的数字传输系统 如通 讯 图像 多媒体等 并提供了针对 GSM CDMA DECT 等标准的专用开发平台 SPWSPW SPW 仿真软件是 Cadence 公司的产品 它提供了面向电子系统的模块化设 计 仿真及实施环境 是进行算法开发 滤波器设计 C 代码生成 硬 软件结 构联合设计和硬件综合的理想环境 SPW 的一个显著特点是他提供了 HDS 接口 和 Matlab 接口 Matlab 里面的很多模型可以直接调入 SPW 然后利用 HDS 生成 C 语言仿真代码或者是 HDL 语言仿真代码 SPW 通常可以应用于无线和有线载波 通信 多媒体和网络设计与分析等领域 3 3 实例分析实例分析 上一节简要介绍了 5 款网络仿真软件 其中比较常用的是 OPNET Modeler 和 NS2 很多大学和科研单位大都采用这两种工具进行网络方面的研究和设计分析 这一节将通过一个实例来展示这两种网络仿真软件的特点 并对这两种软件进 行比较分析 在这个实例中 我们采用网络的拓扑结构如图 1 所示 图中有 5 个节点 其中 0 1 2 号节点是发送节点 4 号节点是接收节点 下面是使用 OPNET Modeler 和 NS2 两种软件的仿真过程 图 1 仿真网络的拓扑结构 3 13 1 使用使用 NS2NS2 进行网络仿真进行网络仿真 在本节中 笔者将使用 NS2 对图 1 中的网络进行仿真 使用 NS2 进行网络仿真 的第一步是编写 OTCL 脚本 在 OTCL 脚本文件 example ns2 tcl 中 笔者首 先定义了 5 个节点和连接这 5 个节点的 4 条边 定义 5 个节点 set n0 ns node set n1 ns node set n2 ns node set n3 ns node set n4 ns node 定义 4 条边 ns duplex link n0 n3 1Mb 100ms DropTail ns duplex link n1 n3 1Mb 100ms DropTail ns duplex link n2 n3 1Mb 100ms DropTail ns duplex link n3 n4 1Mb 100ms DropTail 要把节点 n0 n1 n2 定义为发送节点 即将 Traffic Source 发送源 与节 点 n0 n1 n2 相连 我们可以先定义下面的函数 proc attach expoo traffic node sink size burst idle rate 获得模拟器实例 set ns Simulator instance 建立连接节点的 UDP 对象 set source new Agent UDP ns attach agent node source 建立 traffic 源的对象并设置 traffic 参数 set traffic new Application Traffic Exponential traffic set packetSize size traffic set burst time burst traffic set idle time idle traffic set rate rate traffic attach agent source 建立发送者与接收者的关系 ns connect source sink return traffic 上面的函数返回发送源的句柄 因此 我们可以使用下面的语句将 3 个发送源 与 n0 n1 n2 相连 set source0 attach expoo traffic n0 sink0 200 2s 1s 100k set source1 attach expoo traffic n1 sink1 200 2s 1s 200k set source2 attach expoo traffic n2 sink2 200 2s 1s 300k 由上面的代码我们可以看出 每个数据发送源的峰值发送速率分别为 100kbit s 200kbit s 和 300kbit s 而下面的代码用来定义接收器 n4 与 3 个 sink 对象相关联 set sink0 new Agent LossMonitor set sink1 new Agent LossMonitor set sink2 new Agent LossMonitor ns attach agent n4 sink0 ns attach agent n4 sink1 ns attach agent n4 sink2 同时 定义 3 个文件来保存每个接收器 sink 每秒接收到的数据量 set f0 open out0 tr w set f1 open out1 tr w set f2 open out2 tr w 在脚本中 笔者定义了一个 record 函数来记录网络仿真时感兴趣的数据 proc record global sink0 sink1 sink2 f0 f1 f2 获得模拟器实例 set ns Simulator instance 设置每 0 5 秒会调用本函数一次 set time 0 5 记录有多少字节被接收节点接收 set bw0 sink0 set bytes set bw1 sink1 set bytes set bw2 sink2 set bytes 获得当前的时间 set now ns now 向文件中写入带宽 单位为 MBit s puts f0 now expr bw0 time 8 puts f1 now expr bw1 time 8 puts f2 now expr bw2 time 8 将接收器接收到的字节重置为 0 sink0 set bytes 0 sink1 set bytes 0 sink2 set bytes 0 重新调用 record 函数 ns at expr now time record 在脚本的最后 笔者定义了 finish 函数来关闭文件和打开 Xgraph 观察运行结 果 proc finish global f0 f1 f2 关闭输出文件 close f0 close f1 close f2 调用 Xgraph 显示网络仿真曲线 exec xgraph out0 tr out1 tr out2 tr geometry 800 x400 exit 0 在仿真网络运行时 我们可以设置一开始就调用 record 函数 并在运行后 10 秒时启动发送者发送数据 并在运行后 50 秒时停止发送数据 最后调用 finish 函数使用 Xgraph 显示运行结果 显示接收端的数据接收速度 图 2 是用 Xgraph 显示的网络仿真结果 从图中可以看出每个数据接收端的接收 速率曲线 注意到 3 个数据接收端的峰值接收速率分别为 100kbit s 200kbit s 和 300kbit s 这与先前在脚本中定义的峰值发送速 率相同 图 2 用 Xgraph 显示的 NS2 的仿真结果 3 23 2 使用使用 OpnetOpnet 进行网络仿真进行网络仿真 在这一节中 笔者将使用 Opnet Moderler 8 0 对图 1 所示的网络进行仿真 对 图 1 所示的简单网络结构 在 Opnet Moderler 中是不必要写脚本的 在绝大多 数的仿真实验中 Opnet Moderler 仅使用户通过其界面就可以完成 在本节的 例子中 网络拓扑结构在 Opnet Moderler 中如图 3 所示 在 Opnet Moderler 中 笔者使用了三个以太网工作站 ethernet station adv 来表示网络中的三个数据源节点 n0 n1 和 n2 用 两个交换机 ethernet4 switch adv 来表示网络流量中转节点 n3 和 n4 用 三个以太网工作站 ethernet station adv 来表示网络中的三个数据接收器 sink1 sink2 和 sink3 连接各个节点的链路为 10BaseT 然后 因为要限制 n0 n1 和 n2 的输出流量之比为 1 2 3 所以可以设置 n0 n1 和 n2 的发送分组 的间隔分别为服从均值为 6 3 和 2 的指数分布 最后 可以设置网络模拟运行 时间为 1 小时 60 分钟 取 10000 个取样点 可得每个接收端 sink1 sink2 和 sink3 的负载 load 统计曲线如图 4 图 3 使用 Opnet Moderler 对图 1 的网络进行仿真的界面 从图 4 中可以看出 sink1 sink2 sink3 的负载曲线密度依次增大 负载的 峰值和均值也依次增高 通过 NS2 和 Opnet Model

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论