現在、ユニキャストとブロードキャストの両方をサポートするネットワーク エンジンがあります。これまではユニキャストを使用していましたが、ネットワーク トラフィックを削減するためにブロードキャスト機能を検討しています。
私のテストでは、ブロードキャストよりもユニキャストの方がはるかに信頼性が高いことが示されているようです。
たとえば、パケットがギガビット イーサネット LAN を介してホストからクライアントに送信される単純なテスト シナリオでは、毎秒 15,000 個の 1000 バイト パケットをパケット損失なしでユニキャストできます。ブロードキャストに切り替えると、約 1200 個の 1000 バイト パケットしか管理できず、+/- 20% のパケット損失が発生します。
これは期待されていますか?ユニキャストとブロードキャストの違いに関する情報を読んでいる間、この特定の質問に対する明確な答えを見つけることができませんでした.
これが実際に期待される動作である場合、マルチキャストはこの点でブロードキャストよりもユニキャストに似ていますか (「信頼性」)?
テストの詳細
さまざまな設定 (送信レート、パケット サイズ、「反復」ごとに送信されるパケット数など) を操作できるアプリを作成しました。このアプリのいくつかのインスタンスをローカルで実行してから、ネットワーク上の他の PC でさらにいくつかのインスタンスを実行します (自分の PC と別の PC で 1 つのインスタンスだけを実行しました)。
各パケットには、送信元のアプリ インスタンスの名前、整数 ID (アプリがパケットを送信するたびにインクリメントされる)、およびペイロード (通常は 0、500、1000、または 1400 バイト) が含まれます。
パケットが受信されると、ID フィールドが検査され、それが予想される ID であるかどうかが判断されます (各アプリ インスタンスから受信されると予想される次の ID を追跡します)。予想よりも後の ID は、パケットが失われたか、順不同で到着していることを示し、予想よりも早い ID は、パケットが順不同で到着したことを示します。
送信レートは変更できます。デフォルトでは 20 ミリ秒の遅延を使用します。毎回送信されるパケット数も変更できます。たとえば、20 ミリ秒ごとに 50 パケットを送信するように指定できます (各パケットには一意の ID があります)。