【问题标题】:Contiki-ng: sniff neighbour packets in Cooja and respond/send like normal nodeContiki-ng:在 Cooja 中嗅探邻居数据包并像普通节点一样响应/发送
【发布时间】:2020-11-26 21:08:48
【问题描述】:

我使用 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/ 尝试了这个解决方案,但我遇到了同样的问题(有很多重传和重复的数据包)。

【问题讨论】:

    标签: contiki cooja contiki-ng


    【解决方案1】:

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

    实现嗅探器的方法是要么直接使用NETSTACK_RADIO,要么自己制作MAC,要么破解CSMA MAC的input_packet函数。

    【讨论】:

    • 为什么 Contiki-ng 没有混杂模式?是不是类似于 contiki-os 的实现?我希望在不丢弃任何数据包的情况下同时实现嗅探和节点的正常操作。
    • @phrick Contiki-NG 没有此功能,因为 Contiki 没有。还是我错了 - 是什么让您认为 Contiki 会这样做?
    • 是的,在这里查看sourceforge.net/p/contiki/mailman/message/34888182 他们在 contiki-os 中执行此操作,但我会重新传输并且不会嗅探所有数据包。
    • @phrick 该线程明确表示该方法不适用于用户,并且有人建议必须修改成帧器代码以实现他想要的。当他们谈论混杂模式时,实际上是在无线电驱动程序级别,您已经弄清楚如何启用,但这还不够。
    • 如果您能告诉我更多关于如何通过更改 CSMA MAC 层来实现这一点的信息,我将关闭这个问题。谢谢。
    猜你喜欢
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2015-04-02
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    相关资源
    最近更新 更多