0

当我注意到一些我没想到的东西时,我正在探索 Contiki Cooja 模拟器(使用 Contiki NG)并尝试使用具有不同 mote 类型的 UDP 服务器和几个 UDP 客户端(来自示例/rpl-udp)。

当我将 mote 设置为 z1/sky 类型时,几乎所有客户端 mote 都仅将 DAO 发送到服务器。事实上,DODAG 以星形拓扑结束(由于天空节点中的相邻表大小较小,几个客户端保持隔离)。

然而,在 cooja motes 的情况下,这不会发生;客户端也将 DAO 发送给其他客户端。

具有 z1 微粒的场景中的 DAO 模式

这是有意和默认的吗?如果是默认值,那为什么?如何改变这种行为?

4

1 回答 1

0

最大路由表和邻居表大小受 Contiki-NG 中的编译常量限制。在 Sky 和 ​​Z1 上它们特别小,因为这些平台没有很多 RAM,并且可能导致 RPL 出现一些问题。

例如,在 Z1 上设置了以下定义。特别是 8 的邻居表大小对于许多网络来说太小了。

#define NBR_TABLE_CONF_MAX_NEIGHBORS    8
#define NETSTACK_MAX_ROUTE_ENTRIES      8

对于没有明确设置它们的平台,这些常量分别为 16 和 16。

在 Cooja 上,它们要大得多:

#define NBR_TABLE_CONF_MAX_NEIGHBORS    300
#define NETSTACK_MAX_ROUTE_ENTRIES      300
于 2021-10-26T19:32:02.087 回答