【问题标题】:simulation time limit issue模拟时限问题
【发布时间】:2021-11-06 07:14:55
【问题描述】:

我遇到了模拟时间限制的问题。当它达到时,一个新的udp数据包被创建并且路由协议即将发送一个控制数据包然后出现结束模拟事件.so,如何防止创建这个模拟结束时的 udp 数据包。

我正在使用 INET 静脉-5.1-i2

omnetpp.ini file

network = Scenario
sim-time-limit = 24s
debug-on-errors = true
cmdenv-express-mode = true
image-path = ../../../../images

#UDPBasicApp
*.node[*].numApps = 1
*.node[*].app[0].typename = "UdpBasicApp"
*.node[1].app[0].destAddresses = "node[4]"
*.node[*].app[0].multicastInterface = "wlan0"
*.node[*].app[0].joinLocalMulticastGroups = true
*.node[*].app[0].destPort = 9001
*.node[*].app[0].localPort = 9001
*.node[*].app[0].messageLength = 100B
*.node[1].app[0].startTime = 21s
*.node[*].app[0].sendInterval = 1s

# Ieee80211Interface
*.node[*].wlan[0].opMode = "p"
*.node[*].wlan[0].radio.typename = "Ieee80211DimensionalRadio"
*.node[*].wlan[0].radio.bandName = "5.9 GHz"
*.node[*].wlan[0].radio.channelNumber = 3
*.node[*].wlan[0].radio.transmitter.power = 20mW
*.node[*].wlan[0].radio.bandwidth = 10 MHz
*.node[*].wlan[*].radio.antenna.mobility.typename = "AttachedMobility"
*.node[*].wlan[*].radio.antenna.mobility.mobilityModule = "^.^.^.^.mobility"
*.node[*].wlan[*].radio.antenna.mobility.offsetX = -2.5m
*.node[*].wlan[*].radio.antenna.mobility.offsetZ = 1.5m
*.node[*].wlan[*].radio.antenna.mobility.constraintAreaMinX = 0m
*.node[*].wlan[*].radio.antenna.mobility.constraintAreaMaxX = 0m
*.node[*].wlan[*].radio.antenna.mobility.constraintAreaMinY = 0m
*.node[*].wlan[*].radio.antenna.mobility.constraintAreaMaxY = 0m
*.node[*].wlan[*].radio.antenna.mobility.constraintAreaMinZ = 0m
*.node[*].wlan[*].radio.antenna.mobility.constraintAreaMaxZ = 0m

# HostAutoConfigurator
*.node[*].ipv4.configurator.typename = "HostAutoConfigurator"
*.node[*].ipv4.configurator.interfaces = "wlan0"
*.node[*].ipv4.configurator.mcastGroups = "224.0.0.1"

# VeinsInetMobility
*.node[*].mobility.typename = "VeinsInetMobility"

# VeinsInetManager
*.manager.updateInterval = 0.1s
*.manager.host = "localhost"
*.manager.port = 9999
*.manager.autoShutdown = true
*.manager.launchConfig = xmldoc("square.launchd.xml")
*.manager.moduleType = "org.car2x.veins.subprojects.veins_inet.VeinsInetCar"

# PhysicalEnvironment
*.physicalEnvironment.config = xmldoc("obstacles.xml")
*.radioMedium.obstacleLoss.typename = "IdealObstacleLoss"

# Misc
**.vector-recording = true

【问题讨论】:

  • 您确定达到模拟时间限制后正在创建一个新的 UDP 数据包吗?你能举个例子吗?
  • 我在我的问题中添加了截图。实际上,结束模拟事件是事件#1531,所有这些事件(事件#1519 到事件#1531)发生在同一秒(t=24)。
  • 那么,当您停止模拟时,为什么会在同一时间创建一些数据包?这是完全正常的。它也可能发生在现实世界的场景中。
  • 最后一个数据包被算作丢弃的数据包,因此它会影响数据包的传递率,尤其是在发送的数据包数量很少的情况下。此外,在模拟时间结束时,路由协议即将发送一个控制数据包,因此模拟以错误 139 结束运行调试器模式后,我发现它是与 qtenv 和动画相关的错误,为了避免我跑了使用 cmdenv 的模拟器。

标签: omnet++ veins inet


【解决方案1】:

如果模拟时间限制很短,并且您担心单个额外的数据包会影响并影响您的结果,那么:

a) 你做错了,因为你的模拟中的事件和消息太少,以至于你收到的结果没有统计意义。 (例如:我的数据包传递率是 81% (+- 60%) ???)。这是没用的。因此,您应该运行更长时间的模拟(如果它收敛到稳定状态)或使用不同的随机生成器种子运行大量模拟。无论哪种情况,单个数据包的效果都会消失。

b) 如果您坚持要准确计算所有数据包并且您不想丢失一个数据包,那么请执行您在现实生活中会做的事情:在模拟停止之前停止从数据源发送数据包,这样所有数据包将有机会(和时间)到达目的地。您应该将您的应用程序配置为在模拟时间限制前至少几秒钟停止发送。几乎所有应用程序模型中都有参数可以做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 2012-07-19
    • 2011-11-06
    相关资源
    最近更新 更多