OMNeT++ & SUMO 学习记录(三)详解OMNeT++

1、OMNeT++功能介绍

OMNeT++是一个面向对象的模块化离散事件仿真框架(object-oriented modular discrete event network simulation framework),可以用于模拟有线和无线通信网络(wired and wireless communication networks)、协议模拟(protocol modeling)、队列网络模拟(queueing network modeling )、多处理器及其他分布式硬件系统模拟(modeling of multiprocessors and other distributed hardware systems)、评估复杂网络的各方面性能(evaluating performance aspects of complex network)等。

2、OMNeT++仿真模型组成结构

一个OMNeT++仿真模型由模块(modules)组成,最底层的模块称为简单模块(simple module),模块间通过预定义的门(gates)建立连接进行通信或直接传输到目的模块(无线通信仿真),多个简单模块可以组合嵌套形成复合模块(compound module),嵌套深度不限。最后,用户创建系统模块构成仿真模型的网络(network),这也是OMNeT++中最大的结构 。模块的参数(parameters)用于定制模块的形为,或用参数表示模型的拓扑(topology)。
在这里插入图片描述
门是模块的输入输出接口,可以通过连接(connections)进行链接,在一个复合模块中,可以连接相应的两个子模块的门,也可以连接一个子模块的门和一个复合模块的门(注意:不允许进行跨层次连接以免影响模块复用)。

3、信息传输

模块间通过信息(message)交换进行通信,实际仿真中,信息可以是计算机网络中的帧或数据包。简单模块可以可以直接发送信息到目的地,也可以沿预定义的路径,即通过门和连接传输。门是模块的输入/输出接口,消息通过输出门(output gates)发送,通过输入门(input gates)接收。

连接可以分配三个参数(parameters),可以方便地进行通信网络建模,分别是:传播时延(propagation delay)、误码率(bit error rate)和数据率(data rate)。用户可以为每条连接配置单独的链路参数,或定义链路类型并在整个模型中使用。传播时延是接收的信息在信道中传播的时间;误码率是指1比特的数据被错误传输的概率,允许进行简单噪声信道建模;数据率指每秒传输的比特数,可用于计算数据包的传输时间。

当使用数据率参数时,信息的发送相当于第一个比特数据的发送,信息的到达相当于最后一个比特数据的接收。但是此模型并不总是适用,如令牌环网和 FDDI 的协议并非等一帧数据完全到达,而是在收到第一个比特数据后不久开始重发首比特数据,也就是说帧数据在经过站点时仅会被延迟几个比特数据。因此在模拟此类网络时,不能使用数据率模型。

4、OMNeT++模型文件组成

一个OMNeT++模型文件包含以下几个部分:

  • 网络描述文件(.ned文件) 使用参数、门等描述模块结构
  • 消息定义文件(.msg文件)定义各种消息类型并加上数据段
  • 基本模块源文件(.cc/.h文件)

仿真系统提供以下组件:

  • 仿真内核(Simulation kernel)包含管理仿真程序和仿真类库的代码,使用 C++编写,形成一个库(扩展名为.a或.lib的文件)
  • 用户接口(User interfaces)仿真运行时用来帮助调试、演示或批处理仿真的执行程序

5、仿真运行

首先,.msg 文件用 opp_msgc. 程序将 C++ 代码进行转换,然后对所有 C++ 源文件进行编译,并且与仿真内核和用户接口库形成仿真程序(simulation executable),NED文件也可以转换成 C++ 文件并连接。
在这里插入图片描述

仿真程序是一个独立的项目,因此可以在没有 OMNeT++ 的机器或没有模型文件的情况下运行。程序开始运行时,首先访问配置文件(omnetpp.ini文件),该文件包含仿真程序运行的控制设置,模型参数值等。

仿真程序的输出被记录到:矢量输出文件(output vector files)、标量输出文件(output scalar files)中。OMNeT++ 提供名为Plove的用户图形界面工具查看并绘制矢量文件的内容,另外,矢量输出文件也可以作为 Matlab 等的数学包,用于统计分析和结果可视化。标量工具 Scalars tool 可以使标量输出文件可视化,可以绘制柱状图、x-y坐标系图表等。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值