490 likes | 705 Views
网络仿真工具介绍. 彭金磷 @Infonet 2011.12. 为什么要使用网络仿真工具. 从上至下数据的获取相对来说 越来越 于容易, 但同时可信度和适用性也越来越低. 网络的实现比较灵活,重配置也比较容易 可以捕捉和重现特定的网络事件,可以用来学习大规模网络环境下的行为 主要可以分析的参数包括网络的行为和性能 性能方面的分析比较多。但是有点需要注意的是,在仿真得到的数据中可能是一个宏观的结果,中间的具体的算法细节并没有得到很好的体现 即使是在结果得到以后,也需要对仿真结果进行详细的分析,得出产生这些现象的原因. 现有计算机网络仿真平台主要包括:
E N D
网络仿真工具介绍 彭金磷@Infonet 2011.12
为什么要使用网络仿真工具 从上至下数据的获取相对来说越来越于容易, 但同时可信度和适用性也越来越低
网络的实现比较灵活,重配置也比较容易 • 可以捕捉和重现特定的网络事件,可以用来学习大规模网络环境下的行为 • 主要可以分析的参数包括网络的行为和性能 • 性能方面的分析比较多。但是有点需要注意的是,在仿真得到的数据中可能是一个宏观的结果,中间的具体的算法细节并没有得到很好的体现 • 即使是在结果得到以后,也需要对仿真结果进行详细的分析,得出产生这些现象的原因
现有计算机网络仿真平台主要包括: • OPNET商业化的通信网络仿真平台 • OMNeT++ (Objective Modular Network Testbed in C++) 面向对象模拟的模拟器,主要面向OSI模型的网络仿真 • NS-2 (Network Simulator 2)
Part 1: OPNET基础 ——网络域建模
Agenda • OPNET简介 • OPNET的安装 • OPNET仿真环境简介 • OPNET项目编辑器 • OPNET的优点和缺点
OPNET简介 • OPNET Technologies, Inc • 业界公认的强力GUI网络仿真软件 • 五个核心系列 • Modeler、IT Guru、SP Guru 、WDM Guru、ODK和NetBizODK
OPNET的安装 • OPNET Modeler版本 • 8.110.0.511.514.5 • 商业软件:版权保护 • 无论哪个版本,安装之前请先安装MS Visual C++ 6.x或Visual Studio.net,并注册环境变量 • Opnet8.1已有破解。10.0.5使用8.1的License,但部分组件不可用(不影响一般使用) • 14.5有单独的破解,但仍有部分组件不可用
Opnet10.0.5的安装 • 安装opnet8.1,获取License(过程较为复杂) • 拔掉网线(或关闭本地连接),关闭防火墙 • 执行modeler_81a_pl8_win32.exe(modeler核心),按提示安装。License类型选Standalone • 执行models_81_may02_17_win32.exe(opnet库文件),按提示安装 • 将8.1.A_PL3_8_Crack目录下的文件拷贝到XXX\OPNET\8.1.A\sys\pc_intel_win32\bin下 • 运行Opnet Modeler,打开License Management,此时显示“no license”
Opnet10.0.5的安装 • 安装opnet8.1(续) • 关闭License Manager,但不要关闭OPNET Modeler • 打开OPNET Modeler的Edit-Preference菜单,license_server应设为localhost,licenser_server_standalone应该为TRUE。若修改了设置,则重启OPNET Modeler • 双击bin目录下的Mk_Lic.exe,回车继续,等到出现结束提示后,回车关闭该窗口。(等待的时间会比较长,如果中途退出,license会不完全。)
Opnet10.0.5的安装 • 安装opnet8.1(续) • 从OPNET Modeler的License-License Management菜单启动License Management, 此时License文件中应该已经有100x35个License了,关闭License Management。 • 在OPNET Modeler的License-Product Modules菜单里选择所有的项目,确定后重新启动OPNET Modeler,此时就可以正常使用OPNET Modeler了。
Opnet10.0.5的安装 • 安装opnet10.0.5 • 依次执行modeler_100A_PL1_win32.exe(opnet modeler核心)、models_100a_aug20_2003_win32.exe(opnet库)、modeler_docs_14-Aug-2003_win32.exe(opnet帮助和说明文档) • 运行opnet modeler,在OPNET Modeler的License-Product Modules菜单里选择所有的项目,即可正常使用
Opnet14.5的安装 • 依次执行modeler_145A_PL1_7116_win.exe、models_145A_PL1_27Feb08_win.exe、modeler_docs_28-Jan-2008_win.exe,安装OPNET14.5 • 执行OPNET.Modeler.11.5.License.MakerFFS.exe,产生license
OPNET仿真环境简介 • 图形用户界面 • 层次化、模块化建模机制 • 三层建模机制
网络域 • 网络域 • 无限分层(子网)
网络域(续) • 网络域 • 拓扑部署 • 设备选择:3Com, Cisco, Sun等 • 通信链路选择:PPP OCx/DSx, SONET OCx, 10BaseT等 • 手动或文件导入拓扑 • 流量和业务配置 • 客户端:业务特征(HTTP、FTP等) • 服务器:支持何种业务(HTTP、FTP、email等)
节点域 • 配置硬件设备的内部组成模块 • 一般不需要改动
进程域简介 • 状态转移图 • 程序一般很长(几千行)
Opnet编辑器 • 项目编辑器 • 节点编辑器 • 进程编辑器 • 链路编辑器 • 包编辑器 • 天线模式编辑器 • 接口控制信息编辑器
项目编辑器-创建项目 • 用途:创建工程文件,包括场景、拓扑、硬件设备等 • “项目-场景”工作流程 • 创建项目 • 创建场景 • 复制场景 • 导入或创建拓扑结构 • 导入或创建流量 • 选择要输出的结果和报告 • 运行仿真 • 查看结果 • 作出变更 • 重新运行仿真 • 比较结果
项目编辑器-创建项目 • 步骤 • 创建Project与Scenario:Filenew…
项目编辑器-创建项目 • 步骤(续) • 初始化拓扑
项目编辑器-创建项目 • 步骤(续) • 选择网络尺度(Scale)
项目编辑器-创建项目 • 步骤(续) • World:选择地图(map) • Campus/ Enterprise:指定大小
项目编辑器-创建项目 • 步骤(续) • 选择技术(Technologies):指定需要的设备列表
项目编辑器-拓扑生成 • 拓扑的生成 • 生成方式:手动设置/从文件导入 • R&D多采用手动设置 • 设备选择:与具体场景有关,对硬件设备有一定了解(如链路PPP DS0/DS1、SONET OC3等) • 参数设置:对所要仿真的技术有足够深入的了解(如无线设备的发射功率)
项目编辑器-流量产生 • 常见的三种流量产生方式 • 链路背景流量:为一条联络设置背景流量 • Demand流量:创建一条端到端的流量 • 配置业务流量:可设置整个网络流量
项目编辑器-流量产生 • 链路背景流量 • 优点:简单
项目编辑器-流量产生 • Demand流量 • 优点:用来设置端到端单条流量
项目编辑器-流量产生 • 配置业务流量 • 比较复杂 • 两个配置器 • Application(应用配置器) • Profile(分布配置器)
项目编辑器-流量产生 • 配置业务流量(续) • Application:配置服务器所支持的应用,如FTP、Email、HTTP等 • Profile:配置终端用户产生的流量分布,如进行何种业务(FTP、HTTP等)、何时开始和结束等 • 配置Profile时需指定Application • 难点在于Application和Profile的参数设置
项目编辑器-统计量观测 • 设置统计量 • 右键选择Choose Individual DES Statistics • 对设备、链路均可设置统计量 • 在空白处右键Choose…可设置全局统计量 • 输出统计量 • 右键View Results • 很多情况下不能直接用OPNET的输出图,而需要将结果输出到文件,然后自己用工具画图。这需要在进程层进行相关操作
OPNET的优点与缺点 • 优点 • GUI软件,直观,拓扑部署方便 • 支持的技术库完善,功能强大 • 缺点 • 技术库完善而强大程序十分复杂,修改十分困难 • 耗CPU和内存,不适合PC上的大规模网络仿真(Router>100,TE>1000)
Part 2: NS 2 ——开源仿真工具
内容提纲 • NS2介绍 • NS2结构 • NS2安装和使用 • 小示例 • 一些资源
NS2介绍 • NS-2是用于网络研究的离散事件仿真工具 • 可以进行对固定,无线,卫星以及混合等多种网络的仿真 • 集成了多种网络协议,业务类型,路由排队管理机制,路由算法 ,组播业务 • NS-2的主要优点 • 源代码公开,很多研究人员对NS-2进行了扩展 • 能有效支持无线多跳网络的仿真,包括协议栈、混合仿真的支持和场景工具等。 • 可扩展性强,速度和效率优势明显
分裂对象模型 NS2结构 编译运行 速度快 适合实现核心算法 解释执行 易于修改 适应于配置文件设置 实例化一个构件,将会生成两个对象(C++和OTCL对象)
NS2包含Tcl/Tk,OTcl,NS,Tclcl。 • Tcl是一个开放脚本语言,用来对NS2进行编程; • Tk是Tcl的图形界面开发工具,可帮助用户在图形环境下开发图形界面 • OTcl是基于Tcl/Tk的面向对象扩展,有自己的类层次结构; • NS为本软件包的核心,是面向对象的仿真器,用C++编写,以OTcl解释器作为前端; • Tclcl则提供NS和OTcl的接口,使对象和变量出现在两种语言中
NS2安装和使用 • Windows下的安装(Cygwin) • 只提供了Cygwin的安装方式,所以首先要安装Cygwin,注意需要源码安装NS2成功的话,在安装Cygwin的时候,注意要安装这些模块:gcc,make,autotools,还有如x11相关的类库(NAM需要)。 • Linux下的安装 • 安装相应的软件包(每个类型的操作系统有自己的安装方式,比如debian可以使用aptitude来安装,Redhat可以使用yum等),然后使用源码安装。
推荐linux下安装 • 系统Ubuntu 10.10 NS2.33 • sudo apt-get install libx11-dev , libxmu-dev , libxmu-headers , libxt-dev , libtool • 安装完成测试 • ns
OTCL解释器 _____________ NS2仿真库 事件调度器 网络组件 分析仿真结果 仿真结果 OTCL脚本文件 可视化仿真过程
最常用的网络参数: • 吞吐量(丢包率),延时,延时抖动 • Tr文件统计 • awk , python…
在NS2的包中已经包含有众多的例子程序,学习NS2最快的方法就是从这些例子开始。在NS2的包中已经包含有众多的例子程序,学习NS2最快的方法就是从这些例子开始。 • 具体位置:ns-allinone-2.33\ns-2.33\tcl\ex\
一些资源 • 百思论坛 http://www.baisi.net • NS入门:http://www.isi.edu/nsnam/ns/tutorial/ • 柯老师网站:http://140.116.72.80/~smallko/ns2/ns2.htm • 国内也出了两本中文书 • 无线NS2: http://www.crhc.uiuc.edu/wireless/assignments/simulations/
The End Thanks!