OMNeT++学习(概述+框架)一

article/2025/7/20 21:23:21

中文手册地址
之前一直学习的是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的框架和基本功能。


http://chatgpt.dhexx.cn/article/rYE7unpv.shtml

相关文章

OMNeT学习之OMNeT安装与运行

OMNeT学习之OMNeT安装与运行 前言 本文原创,创作不易,转载请注明!!! 本人为OMNet初学者,如有错误,请不吝请教! 最近学WSN(无线传感器网络),做传感器实验,老…

omnet++ 快速入门 | 计算机网络仿真 | omnet++ 入门教程

文章目录 omnet1 网络仿真软件综述01 wsn仿真软件02 为什么使用omnet03 学习资料04 目标 2 omnet介绍1 omnet安装与启动2 使用omnet仿真的一般步骤3 新建项目 3 定义仿真网络的拓扑结构01 新建一个空的 network02 Module的概念01-Module的概念02-Module Type的定义步骤1. ned文…

无图无真相!设计模式概览

设计模式太多,最近没有更新,最后想想还是看一点更新一点吧。

Mac系统Safari浏览器启动无图模式

有的时候我们用热点上网,图片的出现会消耗大量的流量,这时候就需要启动无图模式不加载图片。 步骤:启动Safari浏览器->偏好设置->高级->勾选“在菜单栏中显示“开发”菜单”->点击开发菜单->勾选“停用图像” 转载于:https://…

无图无真相!工厂模式结构

抽象类工厂模式结构图: 接口类工厂模式结构图: 工厂模式示例代码 工厂静态方法说明

设计模式之代理模式(Proxy Pattern)

1.概念 为其他对象提供一种代理,以控制对这个对象的访问。代理对象起到中介作用,可去掉功能或者增加额外功能。 2.角色 抽象主题角色(Subject):声明了目标对象和代理对象的共同接口,这样一来在任何可以使用…

树莓派4B配置Selenium库+设置无图无头属性

写一个树莓派4B配置selenium库,并成功调用浏览器进行自动化爬虫 本文会手把手教你配置环境,并带你写第一个selenium爬虫程序 使用版本说明 系统:官网2020-02-13-raspbian-buster-full Python:树莓派自带的3.7.3 以下所有的pip操…

屏蔽图片的chrome插件

有时候觉得CSDN博客的广告好烦啊,还有有些看小说的网站,于是找了个屏蔽图片的插件。 效果如图: 之前博客的广告 之后: CSDN的广告有字,所以不会完全不显示,但是有很多小说网站都可以直接全部屏蔽掉…

python selenium playwright库使用教程 破解网页防止开发者模式 截取数据请求

安装chromedriver 下载 chromedriver的版本一定要与Chrome的版本一致,不然就不起作用。 有两个下载地址: 1、http://chromedriver.storage.googleapis.com/index.html 2、CNPM Binaries Mirror 当然,你首先需要查看你的Chrome版本&…

360浏览器,怎么开启无图片模式,在开热点的时候,省流量

如果某些网站,我需要加载图片,如csdn上传图片的时候。 这时候我们需要进行放权:

【Playwright】关于无痕模式与无头模式

Playwright的无头模式和无痕模式 无头模式 无头模式指的是自动测试框架在执行过程中不打开浏览器窗口的功能。在Playwright中,关闭无头模式会在测试代码执行过程中显示浏览器窗口,执行的过程会显示在浏览器的上。 # 以下代码以Playwright的同步API为例…

爬虫之selenium开启无界面模式

绝大多数服务器是没有界面的,selenium控制谷歌浏览器也是存在无界面模式的(又称之为无头模式) 开启无界面模式的方法 实例化配置对象 options webdriver.ChromeOptions()配置对象添加开启无界面模式的命令 options.add_argument("--he…

locust入门 -6 无图模式和分布式执行

无图模式 无图模式即不通过UI界面进行执行locust测试用例。locust提供了命令参数,我们只需要在执行时添加一个--headless标签即可 “Disable the web interface, and start the test immediately. Use -u and -t to control user count and run time ” 以下内容为…

Python爬虫配置Selenium库+设置无图无头属性

出一个最新windows下配置selenium全环境的教程~ 本文会手把手教你配置环境,并带你写第一个selenium爬虫程序 环境配置 1.安装Selenium库 Python和Anaconda-Python中并不包含Selenium包,这里我们要安装一下Selenium这个包 以下三种方式认选一种即可&am…

chrome如何进入无图模式?

chrom只显示文字不显示图片 隐私和安全-图片 可以设置所有网站都不显示图片 自定义指定网站不允许显示图片

locust入门 —— 无图模式和分布式执行

无图模式 无图模式即不通过UI界面进行执行locust测试用例。locust提供了命令参数,我们只需要在执行时添加一个--headless标签即可 “ Disable the web interface, and start the test immediately. Use -u and -t to control user count and run time ” 以下内容为…

PC端浏览器如何设置无图模式

以谷歌浏览器为例,注意有些浏览器并不支持该功能。 1)打开自定义与控制 2)选择设置 3)查看左边状态栏,选择高级设置--》隐私设置和安全性 4)选择内容设置 5)图片 6)选择不显示任何图…

火狐浏览器设置无图模式

步骤一 打开火狐浏览器,在地址栏输入about:config,然后回车 步骤二 在出来的页面中搜索:permissions.default.image 步骤三 把 permissions.default.image 设成 2 保存。 效果

万向锁的简单数学解释

我们知道用欧拉角表示空间的旋转,容易产生万向锁(Gimbal Lock)问题,这常常不太容易理解。下面给出一个直观的数学解释。 欧拉角表示的空间旋转,可以用绕三个坐标轴的旋转矩阵的乘积表示 万向锁问题就是出现在这种表示方法中。 假如我们令 β…

万向锁的理解

万向锁 万向锁这个概念其实还是不大好理解的,看了很多的博客,虽然看起来他们讲的很有道理,可还是想不通。 希望我这篇文章能讲清楚。。。 万向锁产生的根本原因是绕三个轴的旋转不是同时进行的,想象一下我们旋转矩阵的推导是不是…