1

N 個のマルチキャスト対応ネットワーク インターフェイスがあるとします。各インターフェイスに 1 つずつ、N 個の UDP ソケットをバインドし、同じマルチキャスト IP/ポートに送信することを計画しています。これよりも直接的/効率的なアプローチはありますか?

受信時は、同じソケットを使用して複数のインターフェイスでリッスンできることはわかっていますが、送信は単一のソケットでは実行できませんか?

4

1 に答える 1

3

もう 1 つのアプローチは、IP_MULTICAST_IFを使用して、ソケットでマルチキャストを送信するために使用されるインターフェイスを変更することです。このアプローチでは、send を N 回呼び出し、各送信の前に送信インターフェイスを変更します。これにより、使用中のソケットの数を減らすことができますが、送信呼び出しの数は減らすことができません。

マルチキャスト送信の動作は、ネットワーク アプリケーション プログラマーをロバストネス原則/ポステルの法則に沿ったものにし、ガイドします。

行うことは保守的であり、他人から受け取るものは寛容である (「送信するものは保守的であり、受け入れるものは寛容である」と言い換えられることがよくあります)。

これが意味することは、ソケット API と動作により、1 つのソケットで複数のインターフェースから受信することが非常に簡単になる (リベラルな受信) が、単一のソケットからすべてのインターフェースをマルチキャストおよびブロードキャストで送信することを許可しないため、プログラマーは複数のインターフェースを送信するアプリケーションを非常に意識的に作成する (保守的な送信)

于 2016-08-19T22:07:23.660 に答える