【问题标题】:Contiki OS: Set Promiscuous Mode and receive all UDP PacketsContiki OS:设置混杂模式并接收所有 UDP 数据包
【发布时间】:2018-04-26 12:53:01
【问题描述】:

我正在尝试执行以下操作:

a) 将 Contiki 设置为混杂模式。

b) 然后检索所有发送的 UDP 和 RPL 数据包,不仅发送到当前节点,还发送到通信范围内的其他两个节点之间。

我有以下代码:

NETSTACK_RADIO.set_value(RADIO_PARAM_RX_MODE, 0);   
simple_udp_register(&unicast_connection, 3001,
                  NULL, 3000, receiver);

其中接收者是一个适当的回调函数。我能够收集发送到当前节点的 UDP 数据包,但仍然无法接收在我的通信范围内的其他节点之间发送的数据包。

【问题讨论】:

    标签: iot contiki promiscuous-mode


    【解决方案1】:

    设置RADIO_PARAM_RX_MODE 仅控制无线电驱动程序过滤掉的数据包。操作系统网络堆栈中有多个层,其中无线电驱动程序只是第一层。接下来是 RDC 和 MAC,它们仍然会过滤掉发往其他节点的数据包,并且没有 API 可以禁用它。

    解决方案是修改 MAC 以禁止丢弃未寻址到本地模式的数据包,或者编写您自己的简单 MAC。后者就是 Sensniff(Contiki 数据包嗅探器)does - see its README and source code。顺便说一句,如果您只想记录所有收到的数据包,只需使用 Sensniff!

    【讨论】:

      猜你喜欢
      • 2015-11-28
      • 1970-01-01
      • 2012-12-29
      • 2010-11-22
      • 2010-12-09
      • 1970-01-01
      • 2013-11-08
      • 2014-12-14
      • 2011-03-30
      相关资源
      最近更新 更多