繁体   English   中英

在 omnet++ 中计算延迟的正确方法是什么?

[英]What is the proper way to calculate latency in omnet++?

我写了一个模拟模块。 为了测量延迟,我使用了这个:

simTime().dbl() - tempLinkLayerFrame->getCreationTime().dbl();

这是正确的方法吗? 如果没有,请建议我或示例代码将非常有帮助。

另外, simTime()延迟是否是我可以在研究论文中写的以微秒为单位的实际延迟? 还是我需要扩大规模?

此外,我发现通道数据速率和通道延迟对链路延迟没有影响,相反,如果我改变触发持续时间,延迟会发生变化。 例如

timer = new cMessage("SelfTimer");
scheduleAt(simTime() + 0.000000000249, timer);

如果这不是递归触发简单模块的正确方法,那么请提出一个建议。

假设simTimegetCreationTime使用 OMNeT++ 类来表示时间,您可以直接对它们进行操作,因为该类重载了相关的运算符。 按照手册的说明,我建议使用信号进行测量(例如, emit(latencySignal, simTime() - tempLinkLayerFrame->getCreationTime()); )。

simTime()以秒为单位,而不是微秒。

关于您的最后一个问题,如果您将此代码用于所有节点,并且您在模拟中同时启动所有这些节点,则会出现问题。 在这种情况下,您将拥有所有节点的完美同步,这意味着您只会在第一次传输中看到冲突。 因此,在模拟开始时为每条新安排的消息添加随机抖动可能是个好主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM