【问题标题】:Predefining route for message to take on OMNeT++预先定义消息的路由以在 OMNeT++ 上执行
【发布时间】:2025-12-22 20:40:11
【问题描述】:

下图网络成功地以随机方向发送消息。它是一个基本的通用网络,没有特定的协议或连接类型。

现在,我希望能够简单地编程消息从源节点到目标节点的路由以及介于两者之间的所有内容。例如,我希望消息从伦敦开始,然后发送到 SouthBank,然后是曼彻斯特,然后是 Preston,然后到达并在 MiltonKeynes 被删除。

那么路线将是: 伦敦 --> 南岸 --> 曼彻斯特 --> 普雷斯顿 --> 米尔顿凯恩斯

我将如何实现这一点? OMNeT++ tictoc 教程(特别是第 4.4 部分:https://docs.omnetpp.org/tutorials/tictoc/part4/)仅解释了如何使节点到达预定义节点,但消息仍然在其间以随机方向传播。

【问题讨论】:

    标签: c++ routing simulation omnet++ inet


    【解决方案1】:

    这称为源路由,您可以在源节点明确填写路由信息。这很容易实现。将可变大小的路由信息​​数据添加到您发送的数据包中,类似于堆栈。并一一提供路线上的城市名称。然后从数据包的堆栈中弹出第一个元素,将其路由到它指定的城市。所有其他节点都应该使用这个算法,直到堆栈为空,当数据包到达时。

    【讨论】:

    • 非常感谢,我了解您的堆栈算法,但我在 OMNeT++ 上实现它时遇到了麻烦,特别是我似乎无法在 .msg 文件中使用堆栈(我假设是因为堆栈是 C++但是 .msg 是不同的吗?)。另外,我该如何使用“send(msg, "gate$o", k);"在 .cc 文件(描述模块功能的文件)中,当通过连接将消息发送到堆栈顶部元素指定的下一个节点时?