1、网络模拟和仿真技术基础随着网络技术的发展,研究人员不断开发出新的网络协议、算法和应用,以适应日渐增长的网络通信需要。然而由于网络的不可控、易变和不可预测等特性的存在,给新的网络方案的验证、分析和比较带来了极大的困难。虽然构建试验床(Testbed)可以部分解决此类问题,但是试验床的造价高昂,且对大规模网络试验的支持较差。在这种情况下,网络模拟和仿真作为一种新的网络设计和规划技术,无疑给网络研究提供了方便、高效的验证和分析工具。一、什么是网络模拟“模拟”(simulation)是通过建立真实系统的模型来研究系统在一定条件下的行为,它通过建立实际系统的数学模型并按照相同的运行机理模拟真实系统的动态
5、mulationinterface)作为真实网络应用程序和仿真系统之间的桥梁,它可以将外界真实网络中的IP报文转化为仿真系统内的虚拟IP报文,也可以将虚拟IP报文转化为外界真实IP报文,从而使得仿真系统内部的虚拟网络和外界真实网络能够相互作用。网络仿真和网络模拟的侧重点并不相同:网络模拟用于网络协议和算法的设计,其工作过程是纯计算过程,是模拟器内部的工作流程;而网络仿真用于测试实际的网络应用程序,和外界真实网络有交互,所构造的虚拟网络和外界真实网络是需要进行同步的。也就是说,仿真软件内部规定某一时刻第n秒发生的事件,也是从仿真过程开始之后外界时钟推进到第n秒发生的事件。仿真系统和外界交
7、如使用报文丢失、乱序、拥塞等等手段来触发协议实现的拥塞控制机制等,来评测协议实现的性能。使用仿真软件的过程和模拟软件基本类似,主要就是按照软件的具体要求将外部网络应用的流量从仿真接口接入并和仿真软件同时运行即可。图3网络仿真系统与外界交互三、网络仿真软件性能比较网络仿真技术是一种通过建立网络设备和网络链路的统计模型,并模拟网络流量的传输,从而获取网络设计或优化所需要的网络性能数据的仿真技术。由于仿真不是基于数学计算,而是基于统计模型,因此,统计复用的随机性被精确地再现。网络仿真技术具有以下特点:一,全新的模拟实验机理使其具有在高度复杂的网络环境下得到高可信度结果的特点。二,网络仿
9、产品。2.OPNETModeler:为技术人员(工程师)提供一个网络技术和产品开发平台。可以帮助他们设计和分析网络、网络设备和通信协议。3.ITGuru:帮助网络专业人士预测和分析网络和网络应用的性能,诊断问题,查找影响系统性能的瓶颈,提出并验证解决方案。4.WDMGuru,用于波分复用光纤网络的分析、评测。OPNETTechnology公司的仿真软件OPNET具有下面的突出特点,使其能够满足大型复杂网络的仿真需要:1.提供三层建模机制,最底层为Process模型,以状态机来描述协议;其次为Node模型,由相应的协议模型构成,反映设备特性;最上层为网络模型。三层模型和实际的网络、设备
12、标准的结果参数,往往不能满足实际用户的全部需要,如果用户需要收集网络设备的某些特殊参数时,必须通过过程层次上的编程来收集自己感兴趣的网络参数。B.一般,厂家提供的网络协议的模型都滞后于标准颁布之日数月甚至一年,如果急需使用厂家模型库中没有提供的新协议、新标准时,就只有通过编程的方法,开发自己的协议模型。C.对于大型网络的仿真,有时需要根据实际情况,通过编程改变模型的某些特性来提高仿真计算效率。)涉及底层编程的网元建模具有较高的技术难度,因为需要对协议和标准及其实现的细节有深入的了解、并掌握网络仿真软件复杂的建模机理。因此,一般需要经过专门培训的专业技术人员才能完成。编程的难度限制了OPNET的
13、普及与推广。此外,建立在OPNET上的仿真平台当前无法脱离OPNET环境,也是OPNET的一个局限性。5.OPNET对路由协议的仿真比较适合,但是对链路的仿真好想就只能通过Pipelinestage来做。例如有用户试了把pipelinestage中radio的propagationdelaymodel的传输速度(default值是光速)改为声波在海水中的速度1500m/s,但是仿真出来的propagationdelay结果居然没太大的改变。而根据使用经验matlab或者spw就比较合适做链路层的仿真。五、NS(NETWORKSIMULATOR)简介UCBerkely的研究人
14、员在NS2的基础上增加了网络仿真模块,开发出NS的仿真版本NSEmulator,简称NSE。NSE在NS的基础上增加了网络仿真接口和实时事件调度器。数据包通过BPF(BerkelyPacketFilter)提供的包过滤功能进行输入,输出则采用原始套接口(RawSocket)写出到真实网络中,仿真接口提供虚实数据包的转换。它实现的是串行离散事件的仿真,内部仿真引擎只有一个主进程进行处理,因此效率不是非常高,外部真实网络负载较大时不能及时地处理网络上的数据包。目前NSE还处于不断完善中。NSE主页:/nsnam/ns/ns-emulation.
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是英文MATrixLABoratory(矩阵实验室)的缩写。在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。MATLAB提供了一个人机交互的数学系统环境,该系统的
21、许多以前不得不做简化假设的非线性因素、随机因素,从而大大提高了人们对非线性、随机动态系统的认知能力。(2)开发了与外部进行直接数据交换的组件,打通了MATLAB进行实时数据分析、处理和硬件开发的道路。(3)推出了符号计算工具包。1993年MathWorks公司从加拿大滑铁卢大学购得Maple的使用权,以Maple为“引擎”开发了SymbolicMathToolbox1.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被认作进行高效研究、开发的首选软件工具。如美国NationalInstruments公司信号测量、分析软件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,一般稍早些的计算机都安装不下。价格:在网上,MATLAB6.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-TNEIP-TNE是InternetProtocolTrafficandNetworkEmulator的缩写,由加拿大Calgary大学的TeleSim项目组开发。它采用了并行仿真技
32、网络模型,进行仿真和统计,观看结果。2.2TheNodeEditorTheNodeEditor用于定义每一个网络对象(节点)的行为。一个节点通常由多个模块组成,其行为由其使用的不同的模块决定,每个模块完成一部分节点行为,如数据的产生、存储等。模块通过packetstreams或statisticwires相连。2.3TheProcessModelEditorTheProcessEditor用于产生处理模型,处理模型用于theNodeEditor中创建的节点模块的底层功能实现。处理模型用有限状态机(FSM)来描述,用图标表示状态,用线表示状态之间的转换。每个状态中或转换中的处理使用内嵌的C/C+代码段来描述。2.4TheLinkModelEditorTheLinkModelEditor用于产生新的链路类型。每个新的链路类型可以有不同的特性。2.5ThePathEditorThePathEditor用于产生新的路径对象,它定义了一个流量的路由。任意一个使用逻辑连接和虚电路的协议模型(MPLS,ATM,FrameRelay等)都可以使用路径对象来对流量进行路由选择。2.6ThePacketFormatEditorThePac