マルチキャストメッセージを利用するネットワーク探索プロセスを実装しました。同じセグメントに接続された任意のIPアドレスを持つ特定のデバイスを検出することができます。同じソースIPアドレスを持つマルチキャストメッセージが無視される理由
クライアントAはマルチキャストメッセージを送信し、他のクライアントを要求します。他のクライアントからのマルチキャストメッセージの応答 "ここに..."。基本的にこれは正常に動作します。
しかし、私はトラブルを引き起こす1つのケースがあります。
Client A Client B
192.168.2.5 192.168.2.5
| |
\__________/
>>>
UDP Multicast Message:
Source: 192.168.2.5 | Destination: 224.0.0.150
マルチキャストメッセージを送信するクライアントAとクライアントBの両方が同じIPアドレスをリッスンする可能性があります。この場合、UDPパケットのソースアドレスは宛先クライアントのIPアドレスと同じです。したがって、クライアントBのアプリケーションはマルチキャストメッセージを受信しません。
同じメッセージを持つマルチキャストメッセージがブロックされ、ip-stackにドロップされたと思います。とにかく受信する方法(ソケット設定)はありますか?
通常、2台のコンピュータが同じipを持つことはできません。私はスイッチが2つの異なるポートにパッケージを送信することを許可しないと思う。 – rekire
もちろん、2回同じIPは許可されません。しかしそれは起こるかもしれない。とにかく、私が知っているように、スイッチはIPアドレス(>レイヤ3)を気にしません。 – Maus
@Maus Switchesは接続されているものではなく、同じIPを持つ2台のマシンを検出した場合、ARPキャッシュは混乱し、パケットをどこに送信するのかわからなくなるか、それらのどれにでもほとんど何かを送ることを拒否します。 – nos