UDPデータパケットを1 ... N個のアドレス(多くの場合はマルチキャスト)に送信する既存のアプリケーションで、インフラストラクチャの一部を再設計しています。現在、T個のトランスミッタオブジェクトが存在し、場合によっては、すべてのトランスミッタが同じアドレスに送信しています。UDPパケットを同じアドレスに送信する効率
例を単純化して説明すると、3つのトランスミッタオブジェクトがあり、すべて1つの特定のアドレスに送信する必要があるとします。私の質問はより効率的です:
オプション1)1つのソケットにミューテックスを置き、すべての送信機(T)が同じソケットを共有するようにします。
T----\
T----->Socket
T----/
オプション2)3つの別々のソケットを使用し、すべて同じ場所に送信します。
T----->Socket 1
T----->Socket 2
T----->Socket 3
私は2番目のオプションを使用して、ボンネットの下に、OSまたはNICが大きな画像で最終的な送信の周りにミューテックスを置き、オプション2は、おそらくオプション1とは別の全体の多くではないと思われます。
私はおそらく私の開発PCで来週の実験をセットアップするつもりですが、ユーザーがインストールする可能性のあるすべてのコンピュータ設定をテストする方法はありません。私はまた、WindowsとLinux、別のNICチップセットメーカーなど、さまざまな実装があることを認識していますが、誰かが過去の経験やアーキテクチャーに関する知識を持っていて、
ありがとうございます!
UDPは無接続で、UDPデータグラムは自己完結型のネットワークパケットです。 1つのソケットへのアクセスを手動でシリアル化する利点はありません。ネットワーキングスタックは、送信中にシリアル化を処理します。私は各トランスミッタに独自のソケットを使用させて、それらを放棄させます。 –