contiki - 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/但我面临同样的问题(有很多重传和重复的数据包)。
解决方案
你不能这样做,Contiki-NG MAC 协议没有混杂模式。发往其他节点的数据包在 CSMA 级别被过滤掉,即使无线电接收到它们也是如此。
实现嗅探器的方法是直接使用NETSTACK_RADIO,制作自己的MAC,或者破解input_packet
CSMA MAC的功能。
推荐阅读
- excel - excel:几个搜索条件的总和
- javascript - 画布鼠标悬停
- javascript - 如何直接在模板中获取组件的元素引用?
- node-red - Node-red 捕获错误 node-red-contrib-ab
- angularjs - ng-bind-html 和 unsafe 不起作用
- firebase - 取决于 Firebase 上的数据 - 构建按钮,包括图像和数据
- javafx - 有没有办法在 JavaFX for ARM 中禁用虚拟键盘?
- python - Google App Engine 部署问题 - 未找到主应用
- logstash - 如何使用 logstash 过滤器删除事件
- android - Android Work Manager One time Request 从工作人员返回空白结果