网络模拟和仿真技术概述_第1页
网络模拟和仿真技术概述_第2页
网络模拟和仿真技术概述_第3页
网络模拟和仿真技术概述_第4页
网络模拟和仿真技术概述_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、网络模拟和仿真技术基础随着网络技术的发展,研究人员不断开发出新的网络协议、算法和应用,以适应日渐增长的网络通信需要。然而由于网络的不可控、易变和不可预测等特性的存在,给新的网络方案的验证、分析和比较带来了极大的困难。虽然构建试验床(Testbed)可以部分解决此类问题,但是试验床的造价高昂,且对大规模网络试验的支持较差。在这种情况下,网络模拟和仿真作为一种新的网络设计和规划技术,无疑给网络研究提供了方便、高效的验证和分析工具。一、什么是网络模拟“模拟”(simulation)是通过建立真实系统的模型来研究系统在一定条件下的行为,它通过建立实际系统的数学模型并按照相同的运行机理模拟真实系统的动态

2、行为。它是脱离真实系统独立运行的,主要分为连续模拟(Continuous simulation)和离散事件模拟(Discrete eventsimulation),. 前者用于模拟随时间连续变化的系统,而后者则假设系统的变化由事件触发,系统状态的变化是基于离散的事件点发生的。网络模拟(Network simulation)通过构造可控、可重现网络状况的虚拟网络环境,在数学建模和统计分析的基础上对网络行为进行模拟,从而获取特定的网络特性参数,观察特定的网络行为。网络上各种事件如丢包、延迟的发生都是在各可能的离散时间点发生的,因此网络模拟是对随机离散事件的模拟,这里的“事件”即网络状态的变化。在模

3、拟软件内部,事件由各种虚拟网络模型产生。同时,软件内部一般都存在一个离散事件驱动的事件调度器(Event Scheduler),它是模拟软件的核心组成部分。事件调度器维护一个按照发生时间进行排序的事件列表(Event List),遵循先进先出FIFO(First In First Out)的方式执行事件。模拟核心处理完当前事件之后即把当前事件从事件列表中删除,同时获取列表图1 模拟软件执行流程中下一个时间点发生的事件并执行,如图1 所示。事件执行到事件列表为空即事件全部执行完毕为止。值得注意的是,这里的发生时间参考的是模拟软件内部的模拟时钟,而不是外界物理时钟,模拟时钟代表了模拟的时间推进速度

4、,是一个抽象的时间,并不一定和外界的墙钟对应。图2 展示了使用网络模拟软件的主要步骤。网络模型构造和模拟试验这两个部分都是需要不断调试和修改的过程,以提高最终验证结果的准确度和精度。构造时也不能设置过多无用的参数,使得网络模型过于臃肿庞大,降低模拟效率,可能导致仿真精度不高甚至存在较大的误差。二、什么是网络仿真作为模拟发展的高级阶段,“仿真”(Emulation)通过构造仿真系统来全部或者部分的模拟外界系统,使得仿真系统能够接受和被仿真对象一样的数据和执行同样的程序,从而获得相应的结果。网络仿真(Network emulation)可以看作网络模拟和试验方法的结合。网络仿真系统使用仿真接口(E

5、mulationinterface)作为真实网络应用程序和仿真系统之间的桥梁,它可以将外界真实网络中的IP报文转化为仿真系统内的虚拟IP报文,也可以将虚拟IP 报文转化为外界真实IP 报文,从而使得仿真系统内部的虚拟网络和外界真实网络能够相互作用。网络仿真和网络模拟的侧重点并不相同:网络模拟用于网络协议和算法的设计,其工作过程是纯计算过程,是模拟器内部的工作流程;而网络仿真用于测试实际的网络应用程序,和外界真实网络有交互,所构造的虚拟网络和外界真实网络是需要进行同步的。也就是说,仿真软件内部规定某一时刻第n 秒发生的事件,也是从仿真过程开始之后外界时钟推进到第n 秒发生的事件。仿真系统和外界交

6、互的情况如图3 所示,从图3 可以看出,系统总体结构与模拟软件基本类似,主要的不同是仿真接口和内部时钟需要和外界墙钟同步。由于仿真系统和真实网络之间存在交互,那么必然事件的调度要采取实时的方式。为了使内部时间能够接近外部真实时间的推进,就需要对事件调度器进行修改,不是一个事件处理完马上就推进到下一事件的时间点,而是参考外部真实时钟,在合适的真实时间对下一事件进行处理。网络仿真的作用主要有两种,一是通过在仿真系统内部实现算法和协议,通过真实网络的流量负载来检测协议模型的行为;二是为协议实现或者网络应用程序构建一个虚拟的网络运行环境,让网络报文经过虚拟网络,通过虚拟的网络环境来影响真实的数据流,例

7、如使用报文丢失、乱序、拥塞等等手段来触发协议实现的拥塞控制机制等,来评测协议实现的性能。使用仿真软件的过程和模拟软件基本类似,主要就是按照软件的具体要求将外部网络应用的流量从仿真接口接入并和仿真软件同时运行即可。图3 网络仿真系统与外界交互三、网络仿真软件性能比较网络仿真技术是一种通过建立网络设备和网络链路的统计模型, 并模拟网络流量的传输, 从而获取网络设计或优化所需要的网络性能数据的仿真技术。由于仿真不是基于数学计算, 而是基于统计模型,因此,统计复用的随机性被精确地再现。 网络仿真技术具有以下特点:一, 全新的模拟实验机理使其具有在高度复杂的网络环境下得到高可信度结果的特点。二, 网络仿

8、真的预测功能是其他任何方法都无法比拟的;三,使用范围广, 既可以用于现有网络的优化和扩容,也可以用于新网络的设计,而且特别适用于中大型网络的设计和优化;四,初期应用成本不高, 而且建好的网络模型可以延续使用, 后期投资还会不断下降。四、网络仿真相关软件OPNET 产品性能简介:OPNET产品主要面向专业人士,帮助客户进行网络结构、设备和应用的设计、建设、分析和管理。OPNET的产品主要针对三类客户,分成四个系列。三类客户是指:网络服务提供商;网络设备制造商和一般企业。 四个系列产品核心包括:1.ServiceProviderGuru:面向网络服务提供商的智能化网络管理软件。是OPNET公司的新

9、产品。2.OPNET Modeler:为技术人员(工程师)提供一个网络技术和产品开发平台。可以帮助他们设计和分析网络、网络设备和通信协议。3.ITGuru:帮助网络专业人士预测和分析网络和网络应用的性能,诊断问题,查找影响系统性能的瓶颈,提出并验证解决方案。 4.WDM Guru,用于波分复用光纤网络的分析、评测。 OPNET Technology公司的仿真软件OPNET具有下面的突出特点,使其能够满足大型复杂网络的仿真需要:1.提供三层建模机制,最底层为Process模型,以状态机来描述协议;其次为Node模型,由相应的协议模型构成,反映设备特性;最上层为网络模型。三层模型和实际的网络、设备

10、、协议层次完全对应,全面反映了网络的相关特性;2.提供了一个比较齐全的的基本模型库,包括:路由器、交换机、服务器、客户机、ATM设备、DSL设备、ISDN设备等等;3.采用离散事件驱动的模拟机理(discrete event driven),与时间驱动相比,计算效率得到很大提高。4.采用混合建模机制,把基于包的分析方法和基于统计的数学建模方法结合起来,既可得到非常细节的模拟结果,也大大提高了仿真效率。5.OPNET具有丰富的统计量收集和分析功能。它可以直接收集常用的各个网络层次的性能统计参数,能够方便地编制和输出仿真报告。6提供了和网管系统、流量监测系统的接口,能够方便的利用现有的拓扑和流量数

11、据建立仿真模型,同时还可对仿真结果进行验证。OPNET的缺点:1.价钱昂贵.OPNET的单使用者授权费超过2万5千美金. 价格的因素使得盗版猖獗。2.学习的进入障碍很高,通过专门培训而达到较为熟练程度至少需一个多月的时间.3.仿真网络规模和流量很大时, 仿真的效率会降低。目前解决方法:采用分层的建模方法,汇聚网络流量,简化网络模型;背景流量和前景流量相配合;流量比例压缩方法;优化调整仿真参数设计;路由流量的简化;结果分析;如何针对不同的统计参数,选择合适的结果收集和处理方法。4.软件所提供的模型库是有限的,因此某些特殊网络设备的建模必须依靠节点和过程层次的编程方能实现。(A.网络仿真软件提供的

12、标准的结果参数,往往不能满足实际用户的全部需要,如果用户需要收集网络设备的某些特殊参数时,必须通过过程层次上的编程来收集自己感兴趣的网络参数。B.一般,厂家提供的网络协议的模型都滞后于标准颁布之日数月甚至一年,如果急需使用厂家模型库中没有提供的新协议、新标准时,就只有通过编程的方法,开发自己的协议模型。C.对于大型网络的仿真,有时需要根据实际情况,通过编程改变模型的某些特性来提高仿真计算效率。)涉及底层编程的网元建模具有较高的技术难度,因为需要对协议和标准及其实现的细节有深入的了解、并掌握网络仿真软件复杂的建模机理。因此,一般需要经过专门培训的专业技术人员才能完成。编程的难度限制了OPNET的

13、普及与推广。此外,建立在OPNET上的仿真平台当前无法脱离OPNET环境,也是OPNET的一个局限性。5. OPNET对路由协议的仿真比较适合,但是对链路的仿真好想就只能通过Pipeline stage来做。例如有用户试了把pipeline stage中radio的propagation delay model的传输速度(default值是光速)改为声波在海水中的速度1500m/s,但是仿真出来的propagation delay结果居然没太大的改变。而根据使用经验matlab或者spw就比较合适做链路层的仿真。五、NS (NETWORK SIMULATOR)简介 UC Berkely的研究人

14、员在NS2的基础上增加了网络仿真模块,开发出NS 的仿真版本NS Emulator,简称NSE。NSE 在NS 的基础上增加了网络仿真接口和实时事件调度器。数据包通过BPF(Berkely Packet Filter)提供的包过滤功能进行输入,输出则采用原始套接口(Raw Socket)写出到真实网络中, 仿真接口提供虚实数据包的转换。它实现的是串行离散事件的仿真,内部仿真引擎只有一个主进程进行处理,因此效率不是非常高,外部真实网络负载较大时不能及时地处理网络上的数据包。目前NSE还处于不断完善中。NSE 主页:/nsnam/ns/ ns-emulation.

15、html 。 NS的设计实现了使用两种程序设计语言,C+和Otcl。这两种程序设计语言都是面向对象的。C+程序模块的运行速度非常快,是强制类型的程序设计语言,容易实现精确的,复杂的算法,但是修改和发现,修正bug所花费的时间较长,因为它比较复杂。Otcl是脚本程序编写语言,是无强制类型的,比较简单,容易实现和修改,容易发现的修正bug,虽然它的运行速度和C+的模块相比要慢很多。 NS的仿真原理-网络组件。NSobject是所有基本网络组件的父类它本身的父类是TclObject类。这个类的对象有一个基本功能,就是处理数据包(PACKET)。所有的基本网络组件可以划分为两类,分类器(Classif

16、ier)和连接器(Connector)。它们都是NSobject、的直接子类,也是所有基本网络组件的父类。分类器的派生类组件对象包括地址分类器和多播分类器等。连接器的派生类组件对象包括队列,延迟,各种代理,和追踪对象类。应用程序是建立在传输代理上的应用程序的模拟。NS2中有两种类型的“应用程序”,数据源发生器和模拟的应用程序。NS是离散事件驱动的网络仿真器。它使用Event Scheduler对所有组件希望完成的工作和计划该工作发生的时间进行列表和维护。 NS的工作平台可以是Windows,Linux,Uinx,machitosh,还要求系统装有C+编译器。NS的工作流程:NS代码使用OTCL

17、语言编写,通过OTCL语言解释器解释,使用NS仿真库进行编译和仿真,输出仿真结果,根据仿真结果记录,可进一步进行相关内容分析,生成网络拓补图或者得到数据的可视化的图表。使用辅助的NAM工具,在NS中可以清晰显示网络拓补图,使用X Graph工具,可以将NS的仿真结果用图表形式表示, NS设计的出发点是基于网络仿真,它集成了多种网络协议,业务类型,路由排队管理机制,路由算法。此外,NS还集成了组播业务和应用于局域网仿真有关的部分、MAC层协议。其仿真主要针对路由层,传输层,数据链路层展开,因此NS可以进行对固定,无线,卫星以及混合等多种网络的仿真。但它最适用于TCP层以上的模拟。NS的特点是源代

18、码公开;可扩展性强;速度和效率优势明显。NS与OPNET优缺点比较:1.OPNET与NS2的关系有点象windows和linux的关系。而它们也分别是在这两个环境下(OPNET在win,NS2在linux)安装使用最匹配。2. OPNET是商业软件,所以界面非常好。功能上很强大,界面错落有致,统一严格。操作也很方便,对节点的修改主要就是对其属性的修改。是优点也是其缺点,如果你需要特殊的节点或很适合自己的节点就不如NS2方便。同时,由于是商业软件所以版本推出不如NS2快。3. NS2是自由软件,免费,这是与OPNET相比最大的优势,因此它的普及度较高,是OPNET强有力的竞争对手。4. NS2界

19、面不如OPNET,虽然功能也很强大,但有很多零散的东西,刚学的时候很麻烦,不容易上手。操作上比较方便,但由于不是同一公司开发的,所以格式上不是很统一,说明手册的条理也不是很好。没有现成的节点什么的你可以自己用C+编,可以按照自己的意图来构造你想要的节点。六、MATLAB软件 MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写。在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。 MATLAB提供了一个人机交互的数学系统环境,该系统的

20、基本数据结构是矩阵,在生成矩陈对象时,不要求作明确的维数说明。与利用c语言或FoRTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。 MATLAB的良好的开放性和运行的可靠性使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。 MathWorks公司于2001年推出MATLAB6.0版本,6.x版在继承和发展其原有的数值计算和图形可视能力的同时,出现了以下几个重要变化:(1)推出了SIMULINK。这是一个交互式操作的动态系统建模、仿真、分析集成环境。它的出现使人们有可能考虑

21、许多以前不得不做简化假设的非线性因素、随机因素,从而大大提高了人们对非线性、随机动态系统的认知能力。(2)开发了与外部进行直接数据交换的组件,打通了MATLAB进行实时数据分析、处理和硬件开发的道路。(3)推出了符号计算工具包。1993年MathWorks公司从加拿大滑铁卢大学购得Maple的使用权,以Maple为“引擎”开发了Symbolic Math Toolbox 1.0。MathWorks公司此举加快结束了国际上数值计算、符号计算孰优孰劣的长期争论,促成了两种计算的互补发展新时代。(4)构作了Notebook 。MathWorks公司瞄准应用范围最广的Word ,运用DDE和OLE,实

22、现了MATLAB与Word的无缝连接,从而为专业科技工作者创造了融科学计算、图形可视、文字处理于一体的高水准环境。 MTALAB系统由五个主要部分组成,下面分别加以介绍。 (1)MATALB语言体系MATLAB是高层次的矩阵数组语言具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模编程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。 (2)MATLAB工作环境 这是对MA丁LAB提供给用户使用的管理功能的总称包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。 (3)图形句相系统 这是MAT

23、LAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。 (4)MATLAB数学函数库这是对MATLAB使用的各种数学算法的总称包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。 (5)MATLAB应用程序接口(API) 这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用c程序或FORTRAN程序,包括从MATLAB中调用于程序(动态链接),读写MAT文件的功能。 可以看出MATLAB是一个功能十分强大的系

24、统,是集数值计算、图形管理、程序开发为一体的环境。除此之外,MA丁LAB还具有很强的功能扩展能力,与它的主系统一起,可以配备各种各样的工具箱,以完成一些特定的任务。 在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件。在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的应用。 在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具。如美国National Instruments公司信号测量、分析软件LabVIEW,Cadence公司信号和通信分析设计软件SPW等,或者直接建筑在MATLAB之上,或者以MATLAB为主要支撑。又如HP公

25、司的VXI硬件,TM公司的DSP,Gage公司的各种硬卡、仪器等都接受MATLAB的支持。MATLAB的缺点:1. MATLAB的缺点是它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。2. MATLAB另一个缺点是不能实现端口操作和实时控制,但结合C+Builder运用,实现优势互补就可以克服这一缺点。3.MATLAB还有一个缺点就是这个软件太大,按现在流行的版本5.2,自身有400多兆,占硬盘空间近1个G,一般稍早些的计算机都安装不下。价格:在网上,MATLAB 6.5.1正版软件1900人民币可以买到。七、

26、其他仿真软件1、CASSAP仿真软件 对于设计扩频数字移动通信这样复杂庞大的系统,依靠过去传统的设计方法是无法完成的,美国Synopsys(新思科技)公司提供的设计工具cossap能帮助设计人员在算法概念级建立一个系统模型,可定义并可随时改变系统的参数,模拟系统信号处理流程来研究系统的算法性能、指标。COSSAP的设计思想为自顶向下(TopDown)的设计方法,即先进行系统性能分析、算法分析,再进行硬件、软件划分、设计,最后将软、硬件合并、仿真、调测、验证之后,才能完成系统设计 CASSAP为数字信号处理系统的开发者提供了一个最有效的仿真工具,使工程师在概念、算法和体系结构层次完成算法仿真。其

27、首创的数据流驱动仿真器比传统的基于时钟周期的仿真器速度提高了8-16倍。提供超过1000个高层模块可作动态的数据流驱动仿真(支持异步、多速率),并可对其中所需模块自动生成行为级或RTL级VHDL,用于ASIC/FPGA实现,也可生成各种风格的DSP代码,供DSP处理器作软件实现。CASSAP可广泛应用于需分析和评估算法、实现方式的数字传输系统,如通讯、图像、多媒体等,并提供了针对GSM、CDMA、DECT等标准的专用开发平台。 2、SPW仿真软件 SPW仿真软件是Cadence公司的产品,提供面向电子系统的模块化设计,仿真及实施环境,是进行算法开发,滤波器设计,C代码生成,硬/软件结构联合设计

28、和硬件综合的理想环境。 SPW最出众的地方就是和HDS的接口,和Matlab的接口。matlab里面的很多模型可 以直接调入SPW,然后用HDS生成C语言仿真代码或者是HDL语言仿真代码。也就是说,要是简单行事的话,就可以直 接用matlab做个模型,然后就做到版图中去。 可以说,SPW包括了Matlab的很多功能,连demo都有点象。它的通常的应用领域包括无线和有线载波通信、多媒体和网络设备。3、IP-TNE IP-TNE是Internet ProtocolTraffic and Network Emulator的缩写,由加拿大Calgary大学的TeleSim项目组开发。它采用了并行仿真技

29、术(Parallel Emulation),内核是一个基于通道(Channel)的保守同步任务调度器(Conservative Parallel DiscreteEvent Simulation, PDES)TasKit。TasKit 将仿真时间看作一组LP(Logical Process)的集合,LP之间通过时间戳事件消息(TimestampedEvent Message)进行通信。IP-TNE中网络数据包的读入采用PCAP 库(Packet Caputre),. 写出使用原始套接口,并且读入和写出都采用了单独的线程,大大提高了仿真系统的处理效率。IP-TNE 主页:http:/warp.c

30、psc.ucalgary.ca/。4、NistNet NistNet由美国National Institute of Standard and Technology (NIST)的信息技术实验室先进网络技术课题组开发。和上述两种系统不同的是,它被实现为Linux操作系统的内核扩展模块,并提供了一个可视化的GUI 界面用于用户操作和搜集结果进行分析,这样就把运行NistNet 的Linux 主机变成了一个仿真广域网/Internet 的虚拟网络环境。NistNet 所支持的包类型包括IP, UDP, TCP, ICMP, IGMP 等。它可以对真实的数据包进行的操作有:延迟(固定延迟时间和变化延

31、迟时间);包乱序;包丢失(随机或拥塞相关);包复制;流量限制等。如果用户需要,还可以自定义对包的操作。NistNet主页:/nistnet/ 。OPNET Modeler介绍1 产品系列ModelerIT DecisionGuruApplication DecisionGuru2 Modeler对一个问题进行仿真的过程:先建立相应的network、node、process模型,收集统计信息,对仿真结果进行分析。2.1 The Project EditorThe Project Editor是进行网络仿真的主要工作环境,可以在其中用库中的节点组成

32、网络模型,进行仿真和统计,观看结果。2.2 The Node EditorThe Node Editor用于定义每一个网络对象(节点)的行为。一个节点通常由多个模块组成,其行为由其使用的不同的模块决定,每个模块完成一部分节点行为,如数据的产生、存储等。模块通过packet streams或statistic wires相连。2.3 The Process Model EditorThe Process Editor用于产生处理模型,处理模型用于the Node Editor中创建的节点模块的底层功能实现。处理模型用有限状态机(FSM)来描述,用图标表示状态,用线表示状态之间的转换。每个状态中或转换中的处理使用内嵌的C/C+代码段来描述。2.4 The Link Model EditorThe Link Model Editor用于产生新的链路类型。每个新的链路类型可以有不同的特性。2.5 The Path EditorThe Path Editor用于产生新的路径对象,它定义了一个流量的路由。任意一个使用逻辑连接和虚电路的协议模型(MPLS, ATM, Frame Relay等)都可以使用路径对象来对流量进行路由选择。2.6 The Packet Format EditorThe Pac

温馨提示

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

评论

0/150

提交评论