VEINS/Omnet++ 中的丢包率

use*_*034 0 networking omnet++ veins sumo

我是 VEINS/Omnet++ 的新手,正在尝试各种广播抑制技术,并且想计算丢包率。我想我必须使用这个公式:

丢包率 = TotalLostPackets / SentPackets

但由于某些节点发送 0 个数据包,是否有一种简单的方法可以在 Omnet++ .anf 配置文件中或在 VEINS 中指定这一点,而无需进行手动调整?否则,如果任何节点发送 0 数据包,则所有图都显示为无穷大。

谢谢你!

Chr*_*mer 5

这并不能直接回答您的问题,但我警告不要在模拟中使用这个方程,因为并非所有节点都可能发送相同数量的数据包或发送广播。作为广播发送的每个数据包都可能被许多其他节点接收,这意味着即使仅发送 1 个数据包的模拟也可能会记录 7 个成功接收和 5 个数据包丢失。你的等式将计算损失率为 5/1=500%,而我发现 5/12=42% 的损失率更合理。

作为将丢失率计算为“失败/(成功+失败)”的副作用,您无需特别注意未发送/接收数据包的节点。

  • 不!仅仅因为数据包被发送并不意味着它被成功接收。如果您想知道收到了多少数据包,请检查名称中带有“received”的指标之一。您可以在源代码中找到概述https://github.com/sommer/veins/blob/veins-4.6/src/veins/modules/mac/ieee80211p/Mac1609_4.cc#L395 (2认同)
  • 您可以在此处看到 SentPackets 计数器增加:https://github.com/sommer/veins/blob/veins-4.6/src/veins/modules/mac/ieee80211p/Mac1609_4.cc#L229 - 这意味着指标正在计算有多少数据包已发送到通道 - 而不是成功接收了多少数据包。请注意,Veins 4.6 还会计算 MAC 层“检测到”但无法“解码”的帧数量。由此(以及*检测到*和成功*解码*(即接收到的帧)的数量),您还可以计算丢失率 (2认同)