ネットワークソフトウェアを作成する場合、MTUサイズのデフォルト、標準、またはデファクトスタンダードがありますか?もしそうなら、それは何ですか?
1500のMTUサイズ(ここで提案されているように: DSL標準でサポートされている最大MTUはいくつですか )は大まかな目安ですか?
また、私はこの問題を考えすぎていますか?これは、ネットワークソフトウェアを作成するときに人々が考える重要なことの1つですか?しかし、実際には、TCPはあなたのために詳細を世話しますか?
StackOverflowではなく、ここで質問します。MTUサイズに関連する実際のサポートの問題に関しては、sysadminの視点が欲しいからです。
UPDATE:いくつかのフィードバックと最初の回答に基づいて、焦点を少し狭めています:
ネットワークスタックが必要な最適化を処理するため、MTUについては気にする必要はありません。 TCPを使用している場合、スタックは最大セグメントサイズ(MSS)の計算方法を使用する場合があります。これにより、理想的には、パス内の最小MTUよりも小さいパケットが生成されます。それらの1つは PMTUディスカバリー です。
一般に、スタックの裏をかくことを試みるべきではありません-TCP/IPの階層化アーキテクチャは、正当な理由で抽象化を採用しています。より良いものがない限り、セグメンテーションとフラグメンテーションの機能は設計された場所に残しておく必要があります。
他の人が書いているように、IPパケットの最小定義MTU以外に想定する「安全なMTU」はありません 68バイト したがって、膨大なオーバーヘッドのために実用的な値はかなり低くなります。
MTUの制限による一般的なサポートの問題は、主に2つあります。
どちらの要素も、アプリケーションで扱うべきものではありません。
それはかなり広い質問です。
1500は一般的ですか?はい、絶対に、LAN上の従来のイーサネットの場合です。
1500と仮定しても、どの接続でもそれを期待しても安全ですか?いいえ。どこからでも接続するモバイルユーザーは、異なる時間に異なるMTUを使用する場合があります。
VPN接続を介してリモートオフィスにサービスを提供する可能性のあるデータセンターサーバーのMTUを削減することがあります。
一般に、VPN接続ではMTUが低下する可能性が高く、それらはいたるところにあります。 1410、1390、1362、またはその他の奇妙な数である可能性があります。
特定のtcp接続の最大ペイロードサイズに関心がある場合は、ネゴシエートされた最大セグメントサイズの方が意味があると思われます。標準の1500 MTU LAN接続の場合、通常は1460ですが、両方のホストが許容できるサイズを反映する必要があります。
多くのホップを通過する接続の場合、すべてのホップに「標準」MTUがあること、またはMTUを確実に決定できることを期待するのは非現実的です。このトピックに関するPathMTUDiscoveryの説明を参照してください。
パスMTUディスカバリー
http://en.wikipedia.org/wiki/Path_MTU_discovery#Problems_with_PMTUD
MSSクランプによるパスMTU検出の問題の回避
http://lartc.org/howto/lartc.cookbook.mtu-mss.html
に答えて:
プロトコルの要件に固執し、データを簡単に渡すことができると想定します。ただし、MTUのすぐ上またはその倍数の固定長ブロックの使用は避けてください。