単一受信者、単一送信者のシナリオで UDP マルチキャストを使用する単純な C# アプリケーションがあります。目標は、ローカル ネットワーク環境でできるだけ速くメッセージを配信することです。
SocketAsyncEventArgs/SendAsync/ReceiveAsync、BeginSend/BeginReceive、Threads/Send/Receive を使用し、PGM と UDP マルチキャストの両方を試しました。
各実装の試行は、ローカル送信、ローカル受信で最大約 1000 件のメッセージを繰り返し配信する場合に問題なく機能します。その後、パフォーマンスは指数関数的に低下し始めます。1,000 件のメッセージには 100 分の数秒かかりますが、10,000 件のメッセージには 2 ~ 10 秒かかります。
高性能 UDP/PGM マルチキャストの経験がある人はいますか? 最大のスループットを得るための最適な設計は何ですか?
アップデート
現時点では、ローカルで実行されているプログラムは 1 つだけです。つまり、1 つの送信側と 1 つの受信側を持つ 1 つのアプリケーションです。テスト メッセージは 4 バイトです。