omnet++原理深入理解
(2018-04-18 11:02:00)
OMNET++(Objective Modular NEtwork TestBed in
C++),是开源的基于组件的模块化的开放网络仿真平台。
优点:OMNET++作为离散事件仿真器。具备强大完善的图形化界面接口和可嵌入式仿真内核,比上面两种平台,可运行在多个操作系统平台,可简便定义网络拓扑结构,具备编程,调试和追踪支持等功能。主要用于通信网络和分布式系统的仿真。
缺点:学习资料过少。
组成部分
(1)网络拓扑描述文件:由NED语言编写的网络拓扑,便用参数,门,信道链接等来描述模块;
(2)消息定义文件:OMNET++本身提供的消息类型具备一些简单参数,用户还可以根据具体要求通过消息定义文件定义消息成员变量;
(3)简单模块源:简单模块的行为定义文件,包括C++编写的*.cc文件和*.h;
(4)仿真内核:OMNET提供的仿真类库代码;
(5)用户接口:该接口用于仿真运行时的测试,演示等工作。
仿真流程
将系统映射到相互通信的模块体系中,创建模型(模块可以嵌套,多个模块可以组成一个复合模块)
1. 用NED(Network Description)语言定义模型的结构,使用omnet IDE编辑
2. 利用omnet内置内核及类库,采用c++编译生成模型的活动组件
3. 提供一个拥有配置和参数的omnetpp.ini文件给模型(一个配置文件可以用不同的参数来描述若干个仿真过程)
4. 构建仿真程序并运行(代码链接到OMNet++的仿真内核及其提供的一个用户接口:命令行和交互式接口或图形化接口)
5. 仿真结果将写入输出向量和输出标量文件中,使用IDE中提供的分析工具来进行可视化。输出结果是普通的文本,也能用R,Matlab或其它工具来进行绘图。
优点:OMNET++作为离散事件仿真器。具备强大完善的图形化界面接口和可嵌入式仿真内核,比上面两种平台,可运行在多个操作系统平台,可简便定义网络拓扑结构,具备编程,调试和追踪支持等功能。主要用于通信网络和分布式系统的仿真。
缺点:学习资料过少。
组成部分
(1)网络拓扑描述文件:由NED语言编写的网络拓扑,便用参数,门,信道链接等来描述模块;
(2)消息定义文件:OMNET++本身提供的消息类型具备一些简单参数,用户还可以根据具体要求通过消息定义文件定义消息成员变量;
(3)简单模块源:简单模块的行为定义文件,包括C++编写的*.cc文件和*.h;
(4)仿真内核:OMNET提供的仿真类库代码;
(5)用户接口:该接口用于仿真运行时的测试,演示等工作。
仿真流程
将系统映射到相互通信的模块体系中,创建模型(模块可以嵌套,多个模块可以组成一个复合模块)
1. 用NED(Network Description)语言定义模型的结构,使用omnet IDE编辑
2. 利用omnet内置内核及类库,采用c++编译生成模型的活动组件
3. 提供一个拥有配置和参数的omnetpp.ini文件给模型(一个配置文件可以用不同的参数来描述若干个仿真过程)
4. 构建仿真程序并运行(代码链接到OMNet++的仿真内核及其提供的一个用户接口:命令行和交互式接口或图形化接口)
5. 仿真结果将写入输出向量和输出标量文件中,使用IDE中提供的分析工具来进行可视化。输出结果是普通的文本,也能用R,Matlab或其它工具来进行绘图。