2009-03-08 4 views
4

Ich weiß, dass wenn IP-Payload> MTU dann Router in der Regel das IP-Paket fragmentieren. Schließlich werden alle fragmentierten Pakete am Ziel unter Verwendung der Felder IP-ID, IP-Fragment-Offsets und Fragmentierungsflags zusammengestellt. Die maximale Länge der IP-Nutzlast beträgt 64 KB. Daher ist es sehr plausibel, dass L4 Nutzdaten übergibt, die 64K betragen. Wenn das L2-Protokoll Ethernet ist, was oft der Fall ist, dann wird die MTU ungefähr 1600 Bytes sein. Daher wird das IP-Paket am Quell-Host selbst fragmentiert. Aber eine schnelle Suche über IP-Implementierung in Linux sagt mir, dass in L4-Protokollen in jüngsten Kernel fragmentfreundlich sind, d. H. versuchen die Fragmentierung Arbeit für IP durch Übergabe von Puffern der Größe, die in der Nähe von MTU ist.Wie häufig werden IP-Pakete am Quellenhost fragmentiert?

Betrachtet man diese beiden Fakten, frage ich mich, wie häufig das IP-Paket am Quell-Host selbst fragmentiert wird. Tritt es manchmal/selten/nie auf? Weiß jemand, ob es Ausnahmen zu der Regel der Fragmentierung im Linux-Kernel gibt (d. H. Gibt es Situationen, in denen L4-Protokolle nicht fragmentfreundlich sind)? Wie wird dies in anderen gängigen Betriebssystemen wie Windows behandelt? Wie häufig werden IP-Pakete fragmentiert?

Antwort

4

Obwohl es technisch keine Protokolle geben sollte, die IP-Fragmentierung nicht korrekt behandeln, gibt es ein paar (wie NFS) benefit greatly from lack of fragmentation.

Wie oft fragmentierte Pakete angezeigt werden, hängt weitgehend von Ihrer Netzwerkumgebung ab. Paketkapselung für VPNs, schlecht entworfene oder implementierte UDP-Protokolle und L1/L2-Protokolle, die die End-to-End-MTU unter Endpunktwerte ablegen, können alle eine IP-Fragmentierung verursachen.

Die meisten modernen Hosts implementieren PTMUD, die automatically erkennen die MTU-Größe, es sei denn, non-compliant devices or over-paranoid firewalls beteiligt sind. In den Tagen von Ethernet Everywhere erwarte ich nicht, dass sie im Internet allgemein verbreitet sind.

+0

NFS über UDP Fragmenten ziemlich viel für mich, aber die Fragmentierung scheint zu lesen und zu schreiben beschränkt. – jdizzle

+0

Selbst mit TCP ist die Fragmentierung äußerst unerwünscht, da ein verlorenes Fragment das Ziel zwingt, das gesamte Paket zu löschen. Wie Sie jedoch bereits gesagt haben, vermeidet die Pfad-MTU-Erkennung normalerweise eine Fragmentierung an der Quelle. – nimrodm

+0

Guter Punkt auf TCP, ich bekam meine Drähte mit MTU Größen und Schiebefenstern gekreuzt. Bearbeitet. – HUAGHAGUAH