版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上进行网络技术的研究一般有以下3种手段:1、 分析方法2、 实验方法3、 仿真方法当前有许多优秀的网络仿真软件,其中有 Opnet、NS2、Matlab等。主流的网络仿真软件都采用了离散事件模拟技术,并提供了丰富的网络仿真模型库和高级语言编程接口,这无疑提高了仿真软件的灵活性和使用方便性。OPNET ModelerOPNET Modeler是OPNET Technology公司的四个系列网络仿真软件产品的其中之一,它主要面向的用户为网络设计专业人士,能够满足大型复杂网络的仿真需要。OPNET Modeler有如下特点:(1) 提供三层建模机制,最底层为Process模型
2、,以状态机来描述协议;其次为Node模型,由相应的协议模型构成,反映设备特性;最上层为网络模型。三层模型和实际的网络、设备、协议层次完全对应,全面反映了网络的相关特性;(2) 提供了一个比较齐全的的基本模型库,包括:路由器、交换机、服务器、客户机、ATM设备、DSL设备、ISDN设备等等。同时,OPNET Technology公司会对不同的企业用户提供附加的专用模型库,但需另外付费;(3) 采用离散事件驱动的模拟机理(discrete event driven),与时间驱动相比,计算效率得到很大提高。(4) 采用混合建模机制,把基于包的分析方法和基于统计的数学建模
3、方法结合起来,既可得到非常细节的模拟结果,又大大提高了仿真效率。(5) OPNET具有丰富的统计量收集和分析功能。它可以直接收集常用的各个网络层次的性能统计参数,能够方便地编制和输出仿真报告。(6) 提供了和网管系统、流量监测系统的接口,能够方便的利用现有的拓扑和流量数据建立仿真模型,同时还可对仿真结果进行验证。OPNET的缺点:1. 价钱昂贵.OPNET的单使用者授权费超过2万5千美金. 价格的因素使得盗版猖獗。2. 学习的进入障碍很高,通过专门培训而达
4、到较为熟练程度至少需一个多月的时间.3. 仿真网络规模和流量很大时, 仿真的效率会降低。目前解决方法:采用分层的建模方法,汇聚网络流量,简化网络模型;背景流量和前景流量相配合;流量比例压缩方法;优化调整仿真参数设计;路由流量的简化;结果分析;如何针对不同的统计参数,选择合适的结果收集和处理方法4. 软件所提供的模型库是有限的,因此某些特殊网络设备的建模必须依靠节点和过程层次的编程方能实现。5. OPNET对路由协议的
5、仿真比较适合,但是对链路的仿真好想就只能通过Pipeline stage来做。NS2NS2(Network Simulator, version 2)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。NS2由UC Berkeley开发而成。它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。目前NS2可以用于仿真各种不同的IP网,已经实现的一些仿真有:网络传输协议,比如TCP和UDP;业务源流量产生器,比如FTP、Telnet、Web CBR和VBR;路由队列管理机制,比如Droptai、RED和CBQ;路由算法,比如Dijkstra等。NS2也为进行局域网的仿真而实现了多播以及一些MA
6、C子层协议。NS2使用C+和Otcl作为开发语言。NS可以说是Otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。事件调度器计算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。所有需要花费仿真时间来处理分组的网络组件都必须要使用事件调度器。它先为这个分组发出一个事件,然后等待这个事件被调度回来之后,才能做下一步的处理工作。事件调度器的另一个用处就是计时。NS是用Otcl和C+编写的。由于效率的原因,NS将数据通道和控制通道的实现相分离。为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件
7、对象都使用C+写出并编译的,这些对象通过映射对Otcl解释器可见。当仿真完成以后,NS将会产生一个或多个基于文本的跟踪文件。只要在Tcl脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理,也可以使用NAM将整个仿真过程展示出来。MatlabMATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写。MATLAB环境下,用户集成了程序设计、数值计算、图形绘制、输入输出、文件管理等各项功能。 MATLAB提供了一个人机交互的数学系统环境,该系统的基本
8、数据结构是矩阵,在生成矩陈对象时,不要求作明确的维数说明。与利用C语言或FORTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。MTALAB系统由五个主要部分组成:(1) MATALB语言体系。MATLAB是高层次的矩阵数组语言。具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模端程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。 (2) MATLAB工作环境包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。(3) 图形图像系统。这
9、是MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特征控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。(4) MATLAB数学函数库。这是对MATLAB使用的各种数学算法的总称。包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法等。(5) MATLAB应用程序接口。这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或FORTRAN程序,包括从MATLAB中调用程序(如动态链接库),读写MAT文件的功能。由此可见,MATL
10、AB是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。除此之外,MATLAB还具有很强的功能扩展能力,与它的主系统一起,可以配备各种各样的工具箱,以完成一些特定的任务。CASSAPCASSAP是美国Synopsys(新思科技)公司开发了一款仿真软件,主要应用于数字信号处理和网络通信领域,它可以在概念、体系结构、算法三个层次上实现仿真。CASSAP采用了数据流驱动仿真器,它比基于时钟周期的仿真器速度提高了8-16倍。CASSAP提供了1000多个高层模块,并可对其中所需模块自动生成行为级或RTL级VHDL,也可生成各种风格的DSP代码,供DSP处理器作软件实现。CASSAP
11、可广泛应用于需分析和评估算法、实现方式的数字传输系统,如通讯、图像、多媒体等,并提供了针对GSM、CDMA、DECT等标准的专用开发平台。SPWSPW仿真软件是Cadence公司的产品,它提供了面向电子系统的模块化设计、仿真及实施环境,是进行算法开发,滤波器设计,C代码生成,硬/软件结构联合设计和硬件综合的理想环境。SPW的一个显著特点是他提供了HDS接口和Matlab接口。Matlab里面的很多模型可以直接调入SPW,然后利用HDS生成C语言仿真代码或者是HDL语言仿真代码。SPW通常可以应用于无线和有线载波通信、多媒体和网络设计与分析等领域。3. 实例分析上一节简要介绍了5款网络
12、仿真软件,其中比较常用的是OPNET Modeler和NS2,很多大学和科研单位大都采用这两种工具进行网络方面的研究和设计分析。这一节将通过一个实例来展示这两种网络仿真软件的特点,并对这两种软件进行比较分析。在这个实例中,我们采用网络的拓扑结构如图1所示,图中有5个节点,其中0、1、2号节点是发送节点,4号节点是接收节点。下面是使用OPNET Modeler和NS2两种软件的仿真过程。 图1:仿真网络的拓扑结构3.1 使用NS2进行网络仿真在本节中,笔者将使用NS2对图1中的网络进行仿真。使用NS2进行网络仿真的第一步是编写OTCL脚本。在OTCL脚本文件(example_
13、ns2.tcl)中,笔者首先定义了5个节点和连接这5个节点的4条边:#定义5个节点set n0 $ns nodeset n1 $ns nodeset n2 $ns nodeset n3 $ns nodeset 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、
14、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 A
15、pplication/Traffic/Exponential $traffic set packetSize_ $size $traffic set burst_time_ $burst $traffic set idle_time_ $idle $traffic set rate_ $rate $traffic attach-agent $source
16、;#建立发送者与接收者的关系 $ns connect $source $sink return $traffic上面的函数返回发送源的句柄,因此,我们可以使用下面的语句将3个发送源与n0、n1、n2相连:set source0 attach-expoo-traffic $n0 $sink0 200 2s 1s 100kset source1 attach-expoo-traffic $n1 $sink1 200 2s 1s 200kset source2 attach-expoo-traffic $n2 $sink2 200 2s 1s 300k由上面的代码我们可以看出,每
17、个数据发送源的峰值发送速率分别为100kbit/s、200kbit/s和300kbit/s。而下面的代码用来定义接收器(n4与3个sink对象相关联):set sink0 new Agent/LossMonitorset sink1 new Agent/LossMonitorset 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.
18、tr wset f1 open out1.tr wset f2 open out2.tr w在脚本中,笔者定义了一个record函数来记录网络仿真时感兴趣的数据:proc record global sink0 sink1 sink2 f0 f1 f2 #获得模拟器实例 set ns Simulator instance
19、 #设置每0.5秒会调用本函数一次 set time 0.5 #记录有多少字节被接收节点接收? set bw0 $sink0 set bytes_ set bw1 $sink1 set bytes_
20、60; set bw2 $sink2 set bytes_ #获得当前的时间 set now $ns now #向文件中写入带宽(单位为MBit/s) puts $f0 "$now
21、expr $bw0/$time*8/" puts $f1 "$now expr $bw1/$time*8/" puts $f2 "$now expr $bw2/$time*8/" #将接收器接收到的字节重置为0 $
22、sink0 set bytes_ 0 $sink1 set bytes_ 0 $sink2 set bytes_ 0 #重新调用record函数 $ns at expr $now+$time "record"在脚本的最后,笔者定义了finish
23、函数来关闭文件和打开Xgraph观察运行结果:proc finish global f0 f1 f2 #关闭输出文件 close $f0 close $f1 close $f2&
24、#160; #调用Xgraph显示网络仿真曲线 exec xgraph out0.tr out1.tr out2.tr -geometry 800x400 & exit 0在仿真网络运行时,我们可以设置一开始就调用record函数,并在运行后10秒时启动发送者发送数据,并在运行后50秒时停止发送数据,最后调用finish函数使用Xgraph显示运行结
25、果(显示接收端的数据接收速度)。图2是用Xgraph显示的网络仿真结果,从图中可以看出每个数据接收端的接收速率曲线(注意到3个数据接收端的峰值接收速率分别为100kbit/s、200kbit/s和300kbit/s),这与先前在脚本中定义的峰值发送速率相同。 图2:用Xgraph显示的NS2的仿真结果3.2 使用Opnet进行网络仿真在这一节中,笔者将使用Opnet Moderler 8.0对图1所示的网络进行仿真。对图1所示的简单网络结构,在Opnet Moderler中是不必要写脚本的。在绝大多数的仿真实验中,Opnet Moderler仅使用户通过其界面就可以完成。在
26、本节的例子中,网络拓扑结构在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分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酿酒师劳动合同三篇
- 国际贸易合同范本英文
- 展厅设计合同范本
- 聊城市茌平区劳动合同范本
- 矿购销合同范本
- 清算审计合同范本
- 2024至2030年地弹门型材项目投资价值分析报告
- 2024年魔芋面粉项目可行性研究报告
- 2024年唐王醉蟹项目可行性研究报告
- 2024至2030年中国钛铝靶数据监测研究报告
- 新疆乌鲁木齐地区2024届生物高一上期末联考试题含解析
- 产品开发保密协议
- 生物柴油生产工艺
- 新能源汽车充电桩专属安装竣工验收单模板
- ISO全套制度及业务流程之销售过程管理程序
- 邓彤小说阅读和小说教学专题培训课件
- 区块链技术及应用PPT完整全套教学课件
- 2022-2023学年甘肃省白银市统招专升本计算机历年真题汇总及答案
- 3dmin软件3dmine教程基础知识
- 部编道德与法治三年级下册第8课大家的朋友说课课件
- 保健院关于成立实验室生物安全管理委员会通知
评论
0/150
提交评论