1

現在、Telos bmote の Contiki で最初のアプリケーションを実装していて、問題が発生しました。

私のアプリケーション (uIP IPv4 スタックを利用する) では、すべてのノードにメッセージをブロードキャストできる必要があります。

ソースを調べたところ、uip_over_mesh.c で、パケットが外部ネットワーク用であることがわかり、すべてのノードに配布されるのではなく、ネットワーク上のゲートウェイ ノードに送信されていることがわかりました。ゲートウェイ ノードが存在しない場合は、パケットをドロップするだけです。実際、パケットはネットワーク内のすべてのノードにブロードキャストされるのではなく、ドロップされるか、ゲートウェイ ノードと外部ネットワークだけに送信されます。

私の問題は、ネットワーク内の他のノードにブロードキャストする必要があることです(そうあるべきです)、欠落しているステップがありますか、それとも何か間違っていますか?

ありがとう :)

ps これは、送信するメッセージを取得するための大まかなコードです。

struct uip_udp_conn *udp_conn = udp_broadcast_new(UIP_HTONS(5001), state);
udp_bind(udp_conn,UIP_HTONS(5001));
uip_udp_packet_send(udp_conn, "hello",5);

私の質問が明確ではないようで申し訳ありません。私がやりたかったことを明確にするために、IPv4 UDP パケットをブロードキャスト アドレスに送信しました。つまり、all one addr を使用してネットワーク上のすべてのデバイスに送信しました。しかし、ネットワーク上に存在する場合、送信側デバイスはメッセージをゲートウェイ ノードにのみ転送することがわかりました。

4

2 に答える 2