在 Castalia Simulator 中向相邻节点发送数据包并使用多跳路由

Send packets to neighboring nodes and use multi-hop routing in Castalia Simulator

我想在 Castalia 模拟器中模拟 WBAN 路由协议。

首先,我希望节点向所有邻居发送广播消息。在 Castalia 中,作为默认方式,节点不仅向邻居而且向网络中的所有节点发送广播消息。结果,我们没有任何中继节点来转发数据包。

So, I think that Castalia uses single-hop routing and therefore multi-hop routing is not defined in it.

如何在 Castalia 中实现多跳路由?

In Castalia, as a default manner nodes send Broadcast messages not only to neighbors but also to all nodes in the network. as a result, we don't have any relay node to forward packets. [...] So, I think that Castalia uses single-hop routing and therefore multi-hop routing is not defined in it.

我知道你是从哪里得到这些信息的,但这是错误的。 Castalia 能够进行多跳路由,在默认分发中甚至有一个名为 MultipathRingsRouting 的路由模块。

而且,你的说法似乎自相矛盾。 Castalia 如何将消息发送到网络中的所有节点(而不仅仅是单跳邻居)而不支持任何多跳路由?你能看出这些是多么矛盾的陈述吗?本着同样的精神,Castalia 如何将消息发送到网络中的所有节点和 "as a result, we don't have any relay node to forward packets"。你能看出这没有多大意义吗?

也许您对 Castalia 中的 BAN 模拟示例感到困惑,这些示例定义了网络,其中 所有节点都是来自 BAN 集线器 的单跳。这并不意味着 Castalia 通常不能支持多跳路由。确实如此。

您在问题中提到了 WBAN 路由协议。您应该注意,Castalia 中 BaselineBANMAC 的当前实现不支持多跳通信。需要明确的是,我说的是这个特定的 MAC 而不是整个 Castalia。这个 MAC 不支持在它之上的任何路由,因为它只允许集线器和从属节点之间的通信。每个网络只能有一个集线器。您可以在模拟中拥有多个网络(每个网络都有一个集线器),但这些网络在逻辑上是独立的,只能相互干扰,不能通信。也许,您想在模拟中使用此 MAC。您将无法使用此 MAC.

探索路由

但是您可以使用其他 MAC(例如 TunableMAC 或 TMAC),允许在它们之上使用路由。要明确的是,MAC 不做任何路由,这是由它上面的路由层(一个单独的模块)完成的,但是 MAC 设计可以允许路由层在它上面操作,或者不是。请确保您仔细阅读了手册并对基础知识有扎实的了解。