OMNeT++学习(概述+框架)一
中文手册地址
之前一直学习的是mininet,但是所做的方向有一个开源的代码,和我需要的框架一样,它用的仿真器是Omnetpp-5.4.1。
概述
omnet++是开源的基于组件的模块化的开放网络仿真平台。是离散事件仿真器,具备强大完善的图形界面接口和可嵌入式仿真内核。可以简便定义网络拓扑结构,具备编程,调试和跟踪支持等功能。omnet++主要用于通信网络和分布式系统的仿真。
1.1omnet++框架
1.1.1omnet++组成
六个部分:
1.仿真内核库(simulation kernel library,sim)->核心
2.网络描述语言的编译器(network description compiler,nedc)
ned是模块化的网络描述语言。网络描述包括大量的对组件的描述,如通道,简单和符合模块的类型。这些组件描述可用于各种不同的网络描述中。NED语言用来定义模型中的网络拓扑结构,较为简单的拓扑可以使用GNED,但复杂网络的拓扑描述还应该用NED源文件方式书写。
3.图形化的网络编辑器(graphical network description editor,GNED)
4.仿真程序的图形化用户接口-Tkenv
omnet++的用户接口用于实现仿真程序的人机交互,omnet++允许模型内部机制对用户可视化,也允许用户启动和终止仿真,并更改模型内部的变量。
用户接口和仿真内核的交互是通过一个已定义的接口实现的。无需改变仿真内核,就可以实现不同类型的用户接口。同样无需更改模型文件。仿真模型可在不同接口下运行。用户可以在强大图形化用户接口下测试和调试仿真程序,并最后可在简单快速的用户接口中运行,而且该接口支持批处理。
对仿真进行的测试和调试可以在Tkenv接口下进行,Tkenv是一个简单易用的图形窗口化的用户接口,支持跟踪,调试和执行仿真的功能。在执行仿真过程中的任意时刻都能够提供详细的状态信息。Tkenv的主要特征有:各模块的文本输出有其独立的窗口,仿真过程中可以在Tkenv窗口中看到自传消息,支持仿真动画,标记断点,具有检查窗口,可以检查和改变模型中的变量,执行过程中仿真结果的图形化显示并且结果可以用柱状图和时间序列图显示,仿真可重新进行,快照文件用于显示模型的详细信息。
5.仿真程序的命令行用户接口-Cmdenv
cmdenv接口用于实际的仿真实验,因为cmdenv支持批处理。cmdenv是一个简便的小型命令行接口,执行速度快。它可以在所有操作系统平台上运行。cmdenv可以一次批处理配置文件中所有的仿真。
6.图形化的输出工具-Plove和Scalar
用户编写的仿真程序要同sim连接。
1.1.2omnet++结构
1.具有模块化的结构
(1)执行模块和sim
仿真内核管理将来的事件,当有事件发生时,仿真内核就调用执行模型中的模块。执行模型的模块存储在sim的main对象中。执行模型依次调用仿真内核的函数并使用sim库中的类。
(2)sim和模型组件库
当仿真开始运行创建了仿真模型的时候,仿真内核就实例化简单模块和其他的组件。当创建动态模块时,仿真内核也要引用组件库。实现在模型组件库中注册和查询组件也是sim的功能。
(3)执行模型和envir
ev对象作为envir的一部分,是面向执行模型的用户接口。仿真模型使用ev对象来记录调试信息。
(4)sim和envir
由envir决定创建何种模型,envir包含主要的仿真循环,并调用仿真内核以实现必须的功能。envir捕捉并处理执行过程中发生在仿真内核或类库中错误和异常。
(5)envir和tkenv,cmdenv
envir定义了表示用户接口的TOmnetApp基类,tkenv和cmdenv都是tomnetapp的派生类。main()函数是envir的一部分,为仿真决定选用合适的用户接口类,创建用户接口类的实例并执行。sim和模型对ev对象的调用通过实例化tomnetapp类进行。envir通过tomnetapp和其他类的方法实现tkenv和cmdenv的框架和基本功能。
OMNeT++学习(概述+框架)一相关推荐
- 深度学习概述_深度感测框架概述
深度学习概述 I have found the DeepSense framework as one of the promising deep learning architectures for ...
- 【完结】12大深度学习开源框架(caffe,tf,pytorch,mxnet等)快速入门项目
这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpeng2008/yousa ...
- 【完结】给新手的12大深度学习开源框架快速入门项目
文/编辑 | 言有三 这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpen ...
- 12大深度学习开源框架(caffe,tensorflow,pytorch,mxnet等)汇总详解
这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpeng2008/yousa ...
- 迁移学习概述(Transfer Learning)
迁移学习概述(Transfer Learning) 迁移学习概述 背景 定义及分类 关键点 基于实例的迁移 基于特征的迁移 特征选择 特征映射 基于共享参数的迁移 深度学习和迁移学习结合 Pre-tr ...
- 联邦学习开源框架方案选型
无知者:[联邦学习开源框架]FedLab - 加速FL算法验证 联邦学习开源框架FedLab相关 FATE 单位:微众银行 github: https://github.com/FederatedAI ...
- Java进阶学习 - Dubbo框架(持续更新中~~)
Java进阶学习 - Dubbo框架 1.简介 Dobbo是一个高性能的RPC框架,解决了分布式钟的调用问题 优点:解决了分布式系统中互相调用问题 缺点:缺少统一管理的调度中心 2.为什么Dubbo说 ...
- 学习日志框架之——搞懂logback
文章目录 系列文章目录 一.logback概述 1.Logback简介 2.Logback中的组件 3.Logback配置文件 4.日志输出格式 二.使用示例 1.依赖导入 2.入门案例 3.配置文件 ...
- 深度学习开源框架知识汇总
深度学习开源框架知识汇总 1 概述 1.1开源框架总览 1.2如何学习开源框架 2 开源框架 2.1 Caffe (1)caffe的使用通常是下面的流程: (2)caffe:图像分类从模型自定义到测试 ...
- (转载)迁移学习概述
迁移学习概述(Transfer Learning) 迁移学习概述 背景 定义及分类 关键点 基于实例的迁移 基于特征的迁移 特征选择 特征映射 基于共享参数的迁移 深度学习和迁移学习结合 Pre-tr ...
最新文章
- zabbix 安装_zabbix系列(五) Grafana4.6.3+Zabbix 的安装部署
- Subversion hooks脚本配置演示及排错
- 【数据竞赛】kaggle竞赛宝典-样本组织篇!
- iis下的php不显示报错信息,IIS环境下 PHP无法显示错误信息怎么办
- 《大话存储__网络存储系原理精解与最佳实践》电子书下载
- 米斯特白帽培训讲义 实战篇 WordPress
- GAN——流形(manifold)
- Entity Framework 代码先行之约定配置
- 转载——巨详细的MD5加盐,大佬详解
- my资源列表一 (csdn 99% 0分资源下载)
- 多级分类查询解决方案
- python对seo有什么用_python对seo的帮助 – python对seo的帮助是什么?- 企业服务
- ppp协议提供什么服务器,PPP的工作原理是什么?单片机PPP协议有什么应用?
- 4G模块发送短信流程
- 文件包含漏洞—allow_url_fopen和allow_url_include详解
- java.lang.IllegalArgumentException: Invalid character found in method name [0x160x030x0
- C#用IIS发布网站后localhost打不开127.0.0.1可以打开
- 大学生的期望落差在哪里?——转帖newsmth
- linux 深度 windows,还要啥Windows?深度操作系统15.1发布!
- 英文姓名 格式 结构