OMNeT++仿真工具的研究与应用

2010-09-26 01:03:10
大连工业大学学报 2010年1期
关键词:网络拓扑工具定义

朱 晓 姝

( 玉林师范学院 教务处, 广西 玉林 537000 )

0 引 言

仿真比实地实验在节约时间成本、资金成本、人力成本以及可适用性等方面有着不可比拟的优势,因此仿真工具在许多不同的研究领域中起着非常重要的作用[1]。比如,随着网络规模的不断扩大,网络模型的日趋复杂[2],网络仿真工具在网络模型改进、网络性能测试、数据分析等方面的研究中都起到了非常重要的作用。

目前,国内还没有真正自主研发的网络仿真工具得到大范围的应用,研究人员主要使用的仿真工具是国外的一些主流网络仿真工具。因此,对于从事网络研究工作的研究者来说,使用和掌握国外的一些网络仿真工具是非常必要的。而具有代表性的网络仿真工具主要有:OPNET、NS-2、OMNeT++等[3-4],其中,OPNET属于商业软件,NS-2和OMNeT++则属于免费的非商业软件。NS-2的推出时间较长,功能全面,能够应用于各种网络的仿真模拟,因此一直以来大量的研究人员使用它进行网络技术的开发,但是它只能在基于LINUX环境下使用。

在免费的非商业仿真软件中,OMNeT++具有更好的灵活性和可适用性,本文深入研究OMNeT++仿真工具的特性和工作原理,并设计仿真实例,应用它对当前新型的对等网络进行仿真,分析仿真结果和仿真性能,为研究人员掌握OMNeT++的使用,了解OMNeT++的仿真性能起到重要作用。

1 OMNeT++仿真工具

1.1 OMNeT++简介

OMNeT++(Objective Modular Network Testbed in C++)[5]是面向对象的离散事件仿真工具,它是由布达佩斯大学通信工程系开发的一个开源的、基于组件的、模块化的开放仿真平台,具有强大的图形用户界面接口和嵌入式仿真内核。OMNeT++可以用来仿真任何离散事件的系统,包括仿真通信协议、计算机网络、并行系统、多处理器系统和分布式系统。它能够建立目前几乎所有网络对象的基本模型之间的互联,并且使复杂的网信通信和拓扑结构得到容易而正确的仿真。

1.2 OMNeT++特性

OMNeT++在描述模型、定义网络拓扑、实现模型、跟踪支持、调试、性能等多方面都显示出强大的优势。与同属于非商业软件的NS-2[6]相比,OMNET++具有更加突出的特性。①编程仿真能力和可移植性。OMNeT++和NS-2在编程能力方面的功能都很强大。OMNeT++可以在Windows系统和Linux系统等多种操作系统上运行,它生成的仿真程序是可携带的,可以独立运行于多种操作平台之上。OMNeT++提供NED(Network Description)和C++两种语言来建模仿真。其中,OMNeT++用NED来描述仿真模型的拓扑结构,它非常简单,但是具有非常强大的拓扑定义功能,可以定义模块、链路和网络。NED还可以实现动态加载,便于更新仿真模型的拓扑结构;C++用来实现模型的仿真和消息的处理等功能。而且NED文件可以编译为C++代码,连接到仿真程序中。可以说,OMNeT++仿真环境是用C++实现的。NS-2只能运行在Linux环境中,它使用OTc1和C++两种建模仿真语言,它生成的仿真程序不具备可携带性。②可仿真模型的范围。OMNeT++可以支持TCP/IP、SCSI和FDDI等多种协议模型,而NS-2只能支持基于TCP/IP的协议模型。③仿真效率。OMNeT++支持模块化仿真模型,模块可以灵活地组合,还可以多次使用。它还支持使用参量,可以在不修改源代码和不重新编译的情况下,直接设置参量,对不同条件下的网络模型进行仿真,因此比NS-2具有更好的仿真效率。④仿真结果输出的性能。OMNeT++提供强大完善的图形用户界面,具有模块输出窗口、监测器和自动生成动画3个输出工具,可以动态地观察仿真程序的运行情况,而且内存消耗小、速度快。NS-2也具有自动生成动画效果的功能,但没有模块输出窗口和监测器。

可以看出,OMNET++比NS-2具有更强大的计算机网络模型仿真能力,OMNET++更适用于各种计算机网络模型的仿真。

1.3 OMNeT++工作原理

1.3.1 网络拓扑描述

与其他仿真工具不同,OMNeT++专门提供了一个接近自然语言的NED语言和一个图形工具GNED(Graphical Network Editor)来描述网络拓扑结构,专门生成一个.ned网络拓扑文件。而已生成的某个.ned文件还可以被另一个网络描述文件使用输入命令(import)导入使用,大大减少重复编程。.ned文件包括以下组件:①信道定义(channel definition)。信道定义指定某个特定的连接类型,它包括3个参数:传播延时(delay)、误码率(error)、数据传送速率(data rate)。②简单模块定义(simple module definition)。简单模块是网络中最基本的组成部分,是模块分级中最小的模块。③复合模块定义(compound module definition)。复合模块是由简单模块组合而成,复合模块与简单模块或者其他复合模块可以组合生成更高一级的复合模块,这种模块分组没有限制。通过这种方式,可以将网络中的任何实体,如节点、交换机等,表现为一个复合模块。图1是包含一层嵌套的复合模块图。④网络定义(network definition)。简单模块和复合模块仅仅定义了模块类型,建立一个仿真模型还需要进行网络定义,网络定义是将仿真模型表示为先前定义模块类型的一个实例。一个完整的网络包括一个或多个模块,各模块之间通过端口(gate)来连接。

图1 OMNeT++模型结构Fig.1 OMNeT++ model structure diagram

1.3.2 网络消息传输

OMNeT++中的消息传输主要由简单模块完成,消息传输有端口传输和直接传输两种方式。端口传输是通过模块之间的端口和连接,按照一定的规则,将消息逐步传输到目的模块。而直接传输是通过仿真内核直接传输消息到目的模块。通过这套机制,可以灵活地使用C++或者OMNeT++本身定义的几个基本类,就可以实现对目前几乎所有网络模型的仿真。图2是OMNeT++运行时的内部结构图,其中SIM为嵌入式仿真内核,它是处理和运行仿真的核心。在SIM和用户接口之间是一个通用接口,用户可以通过替换用户接口来定义仿真的运行环境。模型元件库包含所有已经编译好的简单模块和复合模块。仿真模型包含一些常用的网络协议、应用和通信模型。

图2 OMNeT++运行内部结构Fig.2 OMNeT++ inner structure diagram on running

1.3.3 仿真结果输出

OMNeT++提供了TKENV和CMDENV两种用户界面。TKENV是OMNeT++的GUI(Graphical User Interface,图形用户界面)用户接口,它提供了3种仿真结果输出工具:动画自动生成、模块输出窗口和对象监测器。CMDENV是纯命令行的界面。

2 仿真实例

P2P(Peer-to-Peer,对等网)[7-8]网络是当前应用广泛的一种分布式网络,网络中节点全部处于对等的地位,其网络特性符合OMNeT++仿真工具的仿真范围。Freenet[9]是当前主流使用的非结构化P2P网络,因此,本文选择Freenet模型,分别在查询成功率和查询响应时间2个网络性能方面使用OMNeT++进行仿真。

2.1 仿真步骤

在对Freenet模型进行仿真时,具体的步骤如下:①创建一个仿真文件的文件夹freenet;②建立freen.ned文件,定义仿真实例Freenet网络的拓扑,描述网络中各模块;③使用C++语言实现各层模块的功能,建立freen.cpp;④建立一个omnetpp.ini(文件名不可更改),通过这个文件告知仿真工具目前所仿真网络的名称,还可以通过这个文件改变网络模块中参量的值,而不必重新编译;⑤编译、连接这些文件,生成一个可执行文件freen.exe,并运行该仿真程序;⑥记录仿真程序运行情况,并根据运行结果图中的数据分析查询成功率和查询响应时间两个方面的网络性能。

2.2 仿真环境设置

如图3,建立一个包含60个节点的非结构网络,节点编号范围为ret[0]~ret[59],节点间传送消息时的延迟时间在(0,100)ms间随机产生。图3描述了构建Freenet的局部拓扑图,根据Freenet模型非结构化的特点,建立一个分散的、非结构的网络拓扑。设定:由节点rte[0]发出查询,查询到目标文件后,由拥有目标文件的节点再发起下一次查询。需查询的文件关键字随机产生,网络中每个节点拥有的文件个数和文件关键字个数随机产生。

图3 Freenet局部拓扑结构图Fig.3 Freenet part topology diagram

2.3 仿真实现及结果分析

(1)查询响应时间。从图4可以看出,当查询多次后,查询响应时间会逐渐减小。由于Freenet查询成功后,在将目标文件沿查询原路径返回给发出查询的源节点的过程中,会拷贝目标文件到途经的节点,所以查询多次后得查询响应时间会逐渐减小。

(2)查询成功率。从图5可以看出,当查询多次后,查询成功率会逐渐增大。产生这种结果的原因与经多次查询后,查询响应时间逐渐减小的一样。

图4 Freenet查询响应时间Fig.4 Freenet query response time diagram

图5 Freenet查询成功率Fig.5 Freenet query success rate

3 结 论

本文研究表明,OMNeT++是一个十分优秀的可视化离散事件仿真工具,从仿真结果来看,它非常适合于分布式网络的仿真。随着越来越多的研究人员了解、使用和深入研究OMNeT++,OMNeT++的功能必将更加丰富,它也将会更加适合在P2P网络仿真中的应用。

[1] 王智森,王洪海,房媛,等. 移动无线信道的数学仿真计算[J]. 大连工业大学学报, 2009, 28(5):370-374.

(WANG Zhi-sen, WANG Hong-hai, FANG Yuan, et al.Mathematical simulated calculation of mobile wireless channel[J]. Journal of Dalian Polytechnic University, 2009, 28(5):370-374.)

[2] 邓宏钟,吴俊,李勇,等. 复杂网络拓扑结构对系统抗毁性影响研究[J]. 系统工程与电子技术, 2008, 30(12):2425-2428.

[3] 叶晓国,肖甫,孙力娟,等. 基于NS-2的卫星网络仿真方法的研究[J]. 南京邮电大学学报:自然科学版, 2009, 29(1):78-82.

[4] 王卫疆,李腊元,郑锋. 基于OMNeT++的Ad Hoc网络跨层协议栈仿真[J]. 计算机工程, 2009, 35(9):4-10.

[5] VARGA A. OMNeT++ discrete event simulation system user manual[EB/OL]. (2009-6-26)[2009-8-10]. http://www.omnetpp.org.

[6] 徐雷鸣,庞博,赵 耀. NS与网格模拟[M ]. 北京:人民邮电出版社, 2003.

[7] ANDROUTSELLIS-THEOTOKIS S, SPINELLIS D. A survey of peer-to-peer content distribution technologies[J]. ACM Computing Surveys, 2004, 36(4):335-371.

[8] 黄道颖,黄建华,庄雷,等. 基于主动网络的分布式P2P网络模型[J]. 软件学报, 2004, 15(7):1081-1089.

[9] 孙笑庆,刘宝旭,冯登国. Freenet下一代路由技术分析[J]. 计算机工程, 2005, 31(17):126-128.

猜你喜欢
网络拓扑工具定义
基于通联关系的通信网络拓扑发现方法
波比的工具
波比的工具
能量高效的无线传感器网络拓扑控制
电子制作(2018年23期)2018-12-26 01:01:16
“巧用”工具
读者(2017年18期)2017-08-29 21:22:03
劳斯莱斯古斯特与魅影网络拓扑图
基于多任务异步处理的电力系统序网络拓扑分析
电测与仪表(2016年5期)2016-04-22 01:13:46
成功的定义
山东青年(2016年1期)2016-02-28 14:25:25
修辞学的重大定义
当代修辞学(2014年3期)2014-01-21 02:30:44
山的定义
公务员文萃(2013年5期)2013-03-11 16:08:37