大连工业大学学报第29卷第1期2010年1月Vol.29No.1JournalofDalianPolytechnicUniversityJan.2009文章编号:167421404(2010)0120062204OMNeT++仿真工具的研究与应用朱晓姝摘要:仿真是研究过程中不可缺少的一种实验方法。对离散事件仿真工具OMNeT++的工作原理进行了深入研究,着重分析了OMNeT++的特性,描述了OMNeT++的网络拓扑描述方法和消息传输方法;选择对等网络模型Freenet,应用OMNeT++对其在查询响应时间和查询成功率两方面性能进行仿真测试,详细描述了仿真步骤和仿真实现,并对仿真结果进行分析。仿真结果表明,OMNeT++能够较好地适合于分布式网络的仿真。关键词:OMNeT++;仿真;分布式网中图分类号:TP393文献标志码:AStudyandapplicationofOMNeT++simulationplatformZHUXiao2shuAbstract:TheOMNeT++wasstudiedinthispaperasanobject2orientedmodulardiscreteeventnetworksimulator,includingthecharacteristicsanalysisofOMNeT++,descriptionofnetworktopologyexpressionmethodandmessagetransmissionmethodofOMNeT++,selectionofFreenetmodelinPeer2to2Peernetwork,andsimulatedtestofFreenetenquiringresponsetimeandsuccessfulratewithOMNeT++.Thesimulationprocedurewasdescribedindetail,andsimulationresultsshowthatOMNeT++isadequatefordistributednetworksimulationwell.Keywords:OMNeT++;simulate;distributednetNS22、OMNeT++等[324],其中,OPNET属于商业软件,NS22和OMNeT++则属于免费的非商业软件。NS22的推出时间较长,功能全面能够应用于各种网络的仿真模拟,因此一直以来大量的研究人员使用它进行网络技术的开发,但是它只能在基于LINUX环境下使用。在免费的非商业仿真软件中,OMNeT++具有更好的灵活性和可适用性,本文深入研究OMNeT++仿真工具的特性和工作原理,并设计仿真实例,应用它对当前新型的对等网络进行仿真,分析仿真结果和仿真性能,为研究人员掌握OMNeT++的使用,了解OMNeT++的仿真性能起到重要作用。引言0仿真比实地实验在节约时间成本、资金成本、人力成本以及可适用性等方面有着不可比拟的优势,因此仿真工具在许多不同的研究领域中起着非常重要的作用[1]。比如,随着网络规模的不断扩大,网络模型的日趋复杂[2],网络仿真工具在网络模型改进、网络性能测试、数据分析等方面的研究中都起到了非常重要的作用。目前,国内还没有真正自主研发的网络仿真工具得到大范围的应用,研究人员主要使用的仿真工具是国外的一些主流网络仿真工具。因此,对于从事网络研究工作的研究者来说,使用和掌握国外的一些网络仿真工具是非常必要的。而具有代表性的网络仿真工具主要有:OPNET、收稿日期:2009208230.基金项目:广西自然科学基金资助项目(桂科青0832101).作者简介:朱晓姝(19732),女,副教授.真结果输出的性能。OMNeT++提供强大完善的图形用户界面,具有模块输出窗口、监测器和自动生成动画3个输出工具,可以动态地观察仿真程序的运行情况,而且内存消耗小、速度快NS22也具有自动生成动画效果的功能,但没有模块输出窗口和监测器。可以看出,OMNET++比NS22具有更强大的计算机网络模型仿真能力,OMNET++更适用于各种计算机网络模型的仿真。1.3OMNeT++工作原理1.3.1网络拓扑描述与其他仿真工具不同,OMNeT++专门提供了一个接近自然语言的NED语言和一个图形工具GNED(GraphicalNetworkEditor)来描述网络拓扑结构,专门生成一个.ned网络拓扑文件。而已生成的某个.ned文件还可以被另一个网络描述文件使用输入命令(import)导入使用,大大减少重复编程。.ned文件包括以下组件:①信道定义(channeldefinition)。信道定义指定某个特定的连接类型,它包括3个参数:传播延时(delay)、误码率(error)、数据传送速率(datarate)。②简单模块定义(simplemoduledefini2tion)。简单模块是网络中最基本的组成部分,是模块分级中最小的模块。③复合模块定义(com2poundmoduledefinition)。复合模块是由简单模块组合而成,复合模块与简单模块或者其他复合模块可以组合生成更高一级的复合模块,这种模块分组没有限制。通过这种方式,可以将网络中的任何实体,如节点、交换机等,表现为一个复合模块。图1是包含一层嵌套的复合模块图...