You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OMNeT++的AODV网络中统计指定指标数据

OMNeT++ AODV示例中各统计指标的实现方法

1. 网络进入/退出时间

  • 网络进入时间:在移动节点的移动模块(如INET的MobilityBase子类)或AODV模块里,记录节点完成初始化、能参与网络通信的时刻——比如节点完成IP配置或首次发送Hello包时,把simTime()存入成员变量,最后用cOutVector或cScalarStatistics输出统计值。
  • 网络退出时间:监听节点下线事件,比如移动超出所有邻居覆盖范围、节点故障触发的逻辑,在事件处理函数里记录当前simTime()。如果是移动节点,可通过位置更新回调判断是否脱离网络,此时记录退出时间。

2. 丢包率

  • 方法一:用INET自带的PacketSink和PacketSource模块,统计接收包数和发送总包数,丢包率 = (发送总数 - 接收总数) / 发送总数 * 100%。
  • 方法二:在AODV路由模块的handleMessage()里,判断数据报转发失败的情况(比如找不到路由、TTL耗尽),维护丢包计数器,同时统计总发送包数,最后计算比例。
  • 用cScalarStatistics保存发送数、接收数、丢包数,仿真结束后在finish()里计算输出丢包率。

3. 网络形成时间

  • 定义为从仿真启动到所有节点间都能建立有效路由的时刻,实现逻辑:
    • 做一个全局统计模块,维护计数器记录完成路由初始化的节点数。
    • 每个节点的AODV模块在完成邻居发现(收到第一个Hello回复、路由表有有效邻居路由)时,向全局模块发消息递增计数器。
    • 当计数器等于总节点数时,记录当前simTime()就是网络形成时间。
  • 全局模块用cSimpleModule实现,通过sendDirect()接收节点的初始化完成消息。

4. 端到端延迟

  • 发送端(如UdpApp)发数据包时,给包加时间戳:packet->addTag<CreationTimeTag>()->setCreationTime(simTime());。
  • 接收端收到包后,提取时间戳,用当前时间减去创建时间得到延迟。
  • 用cOutVector记录每个包的延迟,用cStatistic统计平均值、最大值、百分位数等。

5. 吞吐量

  • 按单位时间内成功传输的字节数计算(通常转成bps):
    • 接收端维护累计接收字节数的变量,每次收包就累加packet->getByteLength()。
    • 仿真结束或指定时间间隔内,计算吞吐量 = 累计字节数 * 8 / 仿真时长(单位:bps)。
  • 用cScalarStatistics存累计字节数,finish()里计算输出,也可以用cOutVector按时间间隔输出吞吐量变化。

6. 跳数

  • AODV路由条目里本身就有hopCount字段,转发时会更新:
    • 方法一:发送端给数据包加自定义标签,初始跳数设0,每个中间节点转发时递增,接收端提取最终跳数统计。
    • 方法二:直接从AODV路由表取对应目的节点的跳数,发送前记录,接收端验证后统计。
  • 用cOutVector记录每个包的跳数,cStatistic统计平均跳数、分布情况。
通用统计工具使用要点
  • 所有统计变量(cOutVector、cStatistic等)要在模块的initialize()里初始化,示例代码:
    cOutVector endToEndDelayVec;
    cStatistic delayStats;
    
    void initialize() override {
        endToEndDelayVec.setName("endToEndDelay");
        delayStats.setName("delayStatistics");
    }
    
  • 在finish()里输出统计结果,示例:
    void finish() override {
        recordScalar("averageDelay", delayStats.getMean());
        recordScalar("maxDelay", delayStats.getMax());
        delayStats.recordAs("delayDistribution");
    }
    
  • 全局统计(如网络形成时间)可以用getModuleByPath()获取全局模块,或借助cSimulation的全局事件机制。

内容的提问来源于stack exchange,提问作者zt0526

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:05:23