2009-03-08 14 views
4

IPペイロード> MTUの場合、ルータは通常、IPパケットを断片化することを知っています。最後に、フラグメント化されたすべてのパケットは、フィールドIP-ID、IPフラグメントオフセットおよびフラグメンテーションフラグを使用して宛先で組み立てられます。 IPペイロードの最大長は64Kです。したがって、64KであるペイロードをL4に引き渡すことは、L4にとって非常に妥当である。多くの場合L2プロトコルがイーサネットである場合、MTUは約1600バイトになります。したがって、IPパケットはソースホスト自体で断片化されます。 しかし、LinuxでのIP実装についての簡単な検索では、最近のカーネルでは、L4プロトコルはフラグメントフレンドリーであると言います。を試して、MTUに近いサイズのバッファを手渡してIPの断片化作業を保存してください。IPパケットがソースホストで断片化される頻度は?

これらの2つの事実を考慮して、IPパケットがソースホスト自体で断片化される頻度について疑問に思っています。 時々起こる/まれに/決してありませんか? Linuxカーネルのフラグメンテーションのルールに例外があるかどうかを知っていますか(つまり、L4プロトコルが断片的ではない状況がありますか)。 これはWindowsのような他の一般的なOSでどのように処理されますか? 一般に、IPパケットが断片化される頻度は?

答えて

4

技術的には、IPフラグメンテーションを正しく処理しないプロトコルはありませんが、benefit greatly from lack of fragmentationという2つのもの(NFSなど)があります。

断片化されたパケットの頻度は、主にネットワーク環境によって決まります。 VPNのパケットカプセル化、不十分に設計または実装されたUDPプロトコル、エンドツーエンドのMTUをエンドポイント値以下に低下させるL1/L2プロトコルは、すべてIP断片化を引き起こす可能性があります。

現代のホストのほとんどはPTMUDを実装しています。automaticallyは、non-compliant devices or over-paranoid firewallsが含まれていない限り、MTUサイズを検出します。 Ethernet Everywhereのこれらの時代、私はそれらがインターネット上で特に一般的であるとは思わない。

+0

UDPはNFSでかなりの断片ですが、断片化は読み書きに限られているようです。 – jdizzle

+0

TCPであっても、フラグメンテーションが非常に望ましくないのは、1つの失われたフラグメントが宛先にパケット全体を廃棄させるためです。しかし、あなたが言ったように、パスのMTU発見は、通常、ソースでの断片化を避けます。 – nimrodm

+0

TCP上のポイントは、MTUサイズとスライディングウィンドウでワイヤを交差させていました。編集されました。 – HUAGHAGUAH

関連する問題