3

UDP経由でデータを送信するアプリがあります。最大/最適な送信バッファサイズを調べようとしています。2kパッケージの送信に成功しましたが、大きなパケットが問題でした。getSendBufferSizeを使用して、送信バッファーのサイズを確認してみました。110592バイトを返しました。それに近いものを送信しようとしてもエラーは発生しませんが、データはサーバーに到達します。

「許可された」送信バッファサイズを知るにはどうすればよいですか?

ありがとう。

4

2 に答える 2

2

DatagramPacket は UDP ベースのソケットの単なるラッパーであるため、通常の UDP ルールが適用されます。

完全な IP データグラムの理論上の最大サイズは 64 キロバイトですが、ルーティングが保証されているのは 576 バイトのみです。任意のネットワーク パスで、最小の最大送信単位を持つリンクが実際の制限を決定します。(1500 バイト、より少ないヘッダーが一般的な最大値ですが、ヘッダーの数を予測することは不可能であるため、メッセージを約 1400 バイトに制限するのが最も安全です。)

参考:Java DatagramPacket(UDP)最大送受信バッファサイズ

于 2013-12-06T21:48:26.683 に答える