2010-12-03 6 views
3

免責事項:これは「方法」の質問ではありません。実際に使われている実際の習慣とは何かを背景情報として知りたいと思う。プログラミングの実践:UDPデータグラムのパケットサイズを選択する方法は?

UDPにはTCPのようなPMTUディスカバリがないことがわかります。だから私は、UDPとIPの断片化を避けるために、いくつかのアプローチを参照してください。

  • 512バイトのパケットの最大(UDPアプローチ)
  • いくつかのPMTUを再実装する送信(ICMPを使用してメッセージ「断片化が必要です」)。
  • ローカルMTUに依存しています(しかし、UDPは接続されたプロトコルではないので、信頼性はどの程度ですか)。
  • その他...?

私は、現在のUDPプログラム/プロトコル、特にストリーミング/ VoIPの共通アプリケーションでどのアプローチが使用されているのかを「バックグラウンド」にしたいと考えていますか? 576バイトに制限事前による

おかげで、

ジョセリン

答えて

3

は非常に一般的です。 DNSのようなインターネットプロトコルのほとんどはこれを行います。大部分のリアルタイムストリーミングプロトコルは、単一のパケットが失われた場合のシリアル化遅延の低減と影響の少ないという利点があるため、より小さいパケットも使用します。

一部のプロトコルでは、PMTUディスカバリほど堅牢ではありませんが(DHCPでは、最大メッセージサイズネゴシエーションが可能です)、より大きなパケットサイズをネゴシエートする方法があります。

デフォルトで1500程度のものもあり、必要に応じてユーザーがそれを下げることができます。 SNMPのほとんどの実装は、このようなことをしているようです。

いずれにせよ、DFビットは一般的には設定されていないため、過度に楽観的な結果は、断片化であり破損ではありません。

+0

面白い答え、ありがとう!誰かがSIP&skypeに関する特定の情報を持っているなら、私も興味があります。 –

+0

http://arxiv.org/pdf/cs/0412017によると、skypeは67バイトのUDPペイロード – eater

関連する問題