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パケットが断片化される頻度は?
UDPはNFSでかなりの断片ですが、断片化は読み書きに限られているようです。 – jdizzle
TCPであっても、フラグメンテーションが非常に望ましくないのは、1つの失われたフラグメントが宛先にパケット全体を廃棄させるためです。しかし、あなたが言ったように、パスのMTU発見は、通常、ソースでの断片化を避けます。 – nimrodm
TCP上のポイントは、MTUサイズとスライディングウィンドウでワイヤを交差させていました。編集されました。 – HUAGHAGUAH