単一の UDP サーバーが複数のクライアントに送信している問題を調査しています。サーバーは、マルチキャスト チャネルとポートでデータを送信しています。クライアントは同じマシンで実行されており、各クライアントは他のすべてのクライアントと同じポートにソケットを開きます。
クライアントの開始をずらします。特定のクライアント数 (たとえば 10) に達すると、パケット ドロップが発生し始めます。さまざまな監視ツールを使用して問題として NIC を排除し、ソケット バッファー サイズがメッセージ サイズよりも数倍大きくなっています。送信間隔は非常に長く (5 秒)、クライアントはデータに対して何もしないため、消費率は重要ではありません。タイトルにあるように、Windows Server 2008 と Linux の両方で問題を再現しました (バージョンは不明)。
私たちの現在の理論では、10 番目のクライアントは、このすべてのデータを各ソケットにコピーしている OS に過度の負荷をかけるというものです。問題は、5 秒ごとに 500,000 バイトしか送信していないことです。
ほとんどの場合、誰かが同様の問題を見たことがあることを期待して、ここに投稿しています。検索でこの修正プログラムを指摘されましたが、問題は解決しませんでした。ネットワーク トラフィックを処理する OS 内部の詳細を調査するためのリソースをいただければ幸いです。残念ながら、私はこの種の分野の知識が不足しており、このテーマに関する優れた詳細な読み物を見つけるのは困難でした.