首页 > 解决方案 > Contiki-ng:在 Cooja 中嗅探邻居数据包并像普通节点一样响应/发送

问题描述

我使用 udp-server 和 udp-client 运行 rpl-udp 的示例。我想启用 udp-client 来嗅探来自邻居节点的数据包,但同时让它表现得像一个普通节点。这怎么可能?我添加了 NETSTACK_RADIO.set_value(RADIO_PARAM_RX_MODE, 0) 禁用 RADIO_RX_MODE_ADDRESS_FILTER (使其为 0)但是当我在 Cooja 中模拟时(使用 z1)节点不会嗅探所有数据包。此外,我收到许多重复的警告,如下所示:

00:57.609 ID:7 [WARN: CSMA] drop duplicate link layer packet from c10c.0000.0000.0004, seqno 114

是否有任何其他标志允许嗅探所有数据包并减少重复数据包?

谢谢您的帮助!

编辑:我在这里尝试了这个解决方案https://sourceforge.net/p/contiki/mailman/message/34888182/但我面临同样的问题(有很多重传和重复的数据包)。

标签: contikicoojacontiki-ng

解决方案


你不能这样做,Contiki-NG MAC 协议没有混杂模式。发往其他节点的数据包在 CSMA 级别被过滤掉,即使无线电接收到它们也是如此。

实现嗅探器的方法是直接使用NETSTACK_RADIO,制作自己的MAC,或者破解input_packetCSMA MAC的功能。


推荐阅读