[英]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);
如果这不是递归触发简单模块的正确方法,那么请提出一个建议。
假设simTime
和getCreationTime
使用 OMNeT++ 类来表示时间,您可以直接对它们进行操作,因为该类重载了相关的运算符。 按照手册的说明,我建议使用信号进行测量(例如, emit(latencySignal, simTime() - tempLinkLayerFrame->getCreationTime());
)。
simTime()
以秒为单位,而不是微秒。
关于您的最后一个问题,如果您将此代码用于所有节点,并且您在模拟中同时启动所有这些节点,则会出现问题。 在这种情况下,您将拥有所有节点的完美同步,这意味着您只会在第一次传输中看到冲突。 因此,在模拟开始时为每条新安排的消息添加随机抖动可能是个好主意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.