OMNeT++是一个开源的基于组件的模块化网络仿真平台,它主要由六个部分组成:仿真内核库(Sim),网络描述语言的编译器(nedc),图形化的网络编辑器(GNED),仿真程序的图形化用户接口(Tkenv),命令行用户接口(Cmdenv),图形化的向量输出工具(Plove)。OMNeT++的核心是仿真内核库Sim,用户编写的仿真程序需要与Sim连接,Sim在OMNeT++中占据核心地位。
NED(Network Description)语言是一种模块化的网络描述语言,用于定义模型中的网络拓扑结构。简单的网络拓扑可以使用GNED,但复杂网络的拓扑描述应使用NED源文件。
OMNeT++的用户接口用于实现仿真程序的人机交互,允许模型内部机制对用户可视化,用户可以启动和终止仿真,更改模型内部的变量。OMNeT++中的图形化接口是一个用户工具,可以帮助用户了解模型内部的运行机制。用户接口和仿真内核的交互是通过一个已定义的接口实现的,无需改变仿真内核就可以实现不同类型的用户接口,仿真模型可以在不同接口下运行。
OMNeT++支持两种用户接口,Tkenv和Cmdenv。Tkenv是一个图形窗口化的用户接口,支持跟踪、调试和执行仿真,可以在执行仿真过程中的任意时刻提供详细的状态信息,主要特征包括各模块的文本输出有其独立的窗口,支持仿真动画,标记断点,具有检查窗口,可以检查和改变模型中的变量,仿真结果的图形化显示,并且结果可以用柱状图和时间序列图显示,仿真可重新进行,快照文件用于显示模型的详细信息。Cmdenv是一个命令行接口,支持批处理,可以在所有操作系统平台上运行,可以一次批处理配置文件中所有的仿真。
OMNeT++具有模块化的结构,其高层体系结构如图1所示。图中箭头表示了组件间的交互,共有5个箭头,表示了组件间的5种关系。执行模型和Sim的关系是仿真内核管理将来的事件,当有事件发生时,仿真内核就调用执行模型中的模块。Sim和模型组件库的关系是仿真开始运行创建仿真模型时,仿真内核实例化简单模块和其它组件。执行模型和Envir的关系是仿真模型在环境中运行。
OMNeT++主要用于通信网络和分布式系统的仿真。与NS2,OPNET和JavaSim等仿真平台相比,OMNeT++可以运行于多个操作系统平台,可以简便定义网络拓扑结构,具备编程、调试和跟踪支持等功能。目前OMNeT++的最高版本为OMNeT3.2p1。
在本论文中,作者介绍了OMNeT++的组成和体系结构,详细论述了OMNeT++编程的语法,并对OMNeT++的建模过程进行了深入的阐述。作者还在界面程序中实现了为仿真配置运行参数,并在OMNeT++平台上对LEACH协议进行了仿真。LEACH(Low-Energy Adaptive Clustering Hierarchy)是一种适用于无线传感器网络的分层簇头选择协议,目的是减少网络中的能量消耗,延长网络寿命。
关键词包括网络仿真、用户接口和无线传感器网络。这些关键词反映了OMNeT++在仿真无线传感器网络方面的应用潜力,以及它提供的用户接口功能,使研究人员和工程师能够更有效地进行模型的设计、仿真和分析。
本课题得到了国家自然科学基金项目(***)和湖北省青年杰出人才基金项目(2005ABB021)的资助,这表明了本研究的实用性和重要性,以及它在科研和工业领域中的应用前景。
总结而言,OMNeT++作为一款强大的网络仿真工具,其在无线传感器网络、通信网络和分布式系统仿真领域中有着广泛的应用。它的模块化设计、图形化用户接口和命令行接口提供了丰富的仿真环境和灵活性,使得研究人员可以在不同的场景下进行网络模型的创建、仿真和分析。随着网络技术的发展,OMNeT++及其相关技术将继续在科研和工业领域发挥重要作用。