gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 02:17:24 25 4
gpt4 key购买 nike

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

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

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

此外,simTime() 延迟是微观方面的实际延迟我可以在我的研究论文中写几秒钟?或者我需要扩大规模?

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

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

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

最佳答案

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

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

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

关于c++ - 在 omnet++ 中计算延迟的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35826970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com