毎秒最大 3000 個の UDP パケットを受信しています。それぞれのサイズは最大 200 バイトです。これらのUDPパケットをリッスンし、データをファイルに書き込むだけのJavaアプリケーションを作成しました。次に、サーバーは以前に指定されたレートで 15000 メッセージを送信します。ファイルに書き込んだ後、約 3500 件のメッセージしか含まれていません。Wireshark を使用して、15000 件すべてのメッセージがネットワーク インターフェイスで受信されたことを確認しました。その後、ソケットのバッファ サイズを変更してみました (最初は 8496 バイトでした)。
(java.net.MulticastSocket)socket.setReceiveBufferSize(32*1024);
この変更により、保存されるメッセージの数が最大 8000 に増加しました。バッファサイズを1MBまで増やし続けました。その後、保存されたメッセージの数は ~14400 に達しました。バッファ サイズをより大きな値に増やしても、保存されるメッセージの数は増えません。許容される最大バッファ サイズに達したようです。それでも、ネットワーク インターフェイスが受信した 15000 件のメッセージをすべてキャプチャする必要があります。
どんな助けでも大歓迎です。前もって感謝します。