Fragmentierung: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Identification=
+
== Fragmentierung ==
Über das Identifikationsfeld kann der Zielhost feststellen, zu welchem
 
Datengramm ein neu angekommenes Fragment gehört. Alle
 
Fragmente eines Datengramms enthalten die gleiche.
 
  
=Flags=
+
Die IP-Fragmentierung ermöglicht den Transport von Datagrammen über Netzabschnitte, deren maximale Übertragungseinheit (MTU) kleiner ist als die ursprüngliche Paketgröße.
*Das Flags-Feld ist drei Bit lang. Die Flags bestehen aus zwei Bits namens DF - Don't Fragment und MF - More Fragments.
 
*Das erste Bit des Flags-Feldes ist ungenutzt bzw. reserviert.
 
*Die beiden Bits DF und MF steuern die Behandlung eines Pakets im Falle einer Fragmentierung.
 
*Mit dem DF-Bit wird signalisiert, daß das Datengramm nicht fragmentiert werden darf.
 
*Auch dann nicht, wenn das Paket dann evtl. nicht mehr weiter transportiert werden kann und verworfen werden muß.
 
*Alle Hosts müssen, wie schon gesagt Fragemente bzw. Datengramme mit einer Größe von 576 Bytes oder weniger verarbeiten können.
 
*Mit dem MF-Bit wird angezeigt, ob einem IP-Paket weitere Teilpakete nachfolgen.
 
*Diese Bit ist bei allen Fragmenten außer dem letzten gesetzt.
 
  
=Fragment Offset=
+
== Identification ==
Der Fragmentabstand bezeichnet, an welcher Stelle relativ zum
+
* Über das Identifikationsfeld kann der Zielhost feststellen, zu welchem Datengramm ein neu angekommenes Fragment gehört.
Beginn des gesamten Datengramms ein Fragment gehört. Mit Hilfe
+
* Alle Fragmente eines Datengramms enthalten die gleiche Identifikation.
dieser Angabe kann der Zielhost das Originalpaket wieder aus den
+
 
Fragmenten zusammensetzen. Da dieses Feld nur 13 Bit groß ist,
+
== Flags ==
können maximal 8192 Fragmente pro Datengramm erstellt werden.
+
* Das Flags-Feld ist drei Bit lang. Die Flags bestehen aus zwei Bits namens '''DF''' (Don't Fragment) und '''MF''' (More Fragments).
Alle Fragmente, außer dem letzten, müssen ein Vielfaches von 8 Byte
+
* Das erste Bit des Flags-Feldes ist ungenutzt bzw. reserviert.
sein. Dies ist die elementare Fragmenteinheit.
+
* Die beiden Bits DF und MF steuern die Behandlung eines Pakets im Falle einer Fragmentierung.
=Routing=
+
* Mit dem '''DF-Bit''' wird signalisiert, dass das Datengramm nicht fragmentiert werden darf.
 +
** Dies gilt auch dann, wenn das Paket dann eventuell nicht mehr weiter transportiert werden kann und verworfen werden muss.
 +
** Alle Hosts müssen Fragmente bzw. Datengramme mit einer Größe von 576 Bytes oder weniger verarbeiten können.
 +
* Mit dem '''MF-Bit''' wird angezeigt, ob einem IP-Paket weitere Teilpakete nachfolgen.
 +
** Dieses Bit ist bei allen Fragmenten außer dem letzten gesetzt.
 +
 
 +
== Fragment Offset ==
 +
* Der Fragmentabstand (Fragment Offset) bezeichnet, an welcher Stelle relativ zum Beginn des gesamten Datengramms ein Fragment gehört.
 +
* Mit Hilfe dieser Angabe kann der Zielhost das Originalpaket wieder aus den Fragmenten zusammensetzen.
 +
* Da dieses Feld nur 13 Bit groß ist, können maximal 8192 Fragmente pro Datengramm erstellt werden.
 +
* Alle Fragmente, außer dem letzten, müssen ein Vielfaches von 8 Byte sein.  
 +
* Dies ist die elementare Fragmenteinheit.
 +
 
 +
 
 +
 
 +
== Routing ==
 
{{#drawio:fragmentierung-routing}}
 
{{#drawio:fragmentierung-routing}}
=Fragmentierung=
+
 
 +
== Fragmentierung ==
 
{{#drawio:fragmentierung}}
 
{{#drawio:fragmentierung}}
 +
 +
== Realität der Fragmentierung in modernen Netzen ==
 +
 +
In der heutigen Netzwerkpraxis ist die IP-Fragmentierung nahezu vollständig verdrängt worden. Das liegt vor allem daran, dass moderne Betriebssysteme das '''DF-Bit''' (Don't Fragment) im IP-Header standardmäßig auf '''1''' setzen.
 +
 +
* '''Das DF-Bit-Dilemma:''' Da fast alle Pakete mit gesetztem DF-Bit versendet werden, darf ein Router sie nicht fragmentieren, selbst wenn die MTU des nächsten Hops zu klein ist. Er verwirft das Paket stattdessen.
 +
* '''ICMP "Fragmentation Needed":''' Wenn ein Router ein Paket wegen des DF-Bits verwirft, sendet er eine ICMP-Nachricht (Type 3, Code 4) an den Absender zurück. Diese enthält die maximal erlaubte MTU für diesen Abschnitt.
 +
* '''Path MTU Discovery (PMTUD):''' Der sendende Host nutzt diese ICMP-Rückmeldungen, um seine Paketgröße dynamisch nach unten zu korrigieren. Erst wenn dieser Mechanismus (z. B. durch Firewalls, die ICMP blockieren) scheitert, entstehen die typischen "MTU-Black-Holes" (Verbindungsaufbau klappt, aber Datenübertragung stockt).
 +
 +
 +
 +
== Alternativen zur Vermeidung ==
 +
 +
Um sicherzustellen, dass Pakete gar nicht erst fragmentiert werden müssen, kommen zwei Techniken zum Einsatz:
 +
 +
* '''MSS Clamping:''' Vor allem bei DSL-Verbindungen (PPPoE) reduzieren Router den MSS-Wert (Maximum Segment Size) im TCP-Handshake künstlich. Dadurch "denken" die Endgeräte, sie müssten kleinere Pakete schicken, und die MTU-Grenze wird nie erreicht.
 +
* '''IPv6-Standard:''' In IPv6 wurde die Fragmentierung durch Router komplett abgeschafft. Hier ist PMTUD zwingend vorgeschrieben; Router leiten zu große Pakete niemals fragmentiert weiter, sondern verwerfen sie immer mit einer entsprechenden Fehlermeldung.

Aktuelle Version vom 29. März 2026, 10:01 Uhr

Fragmentierung

Die IP-Fragmentierung ermöglicht den Transport von Datagrammen über Netzabschnitte, deren maximale Übertragungseinheit (MTU) kleiner ist als die ursprüngliche Paketgröße.

Identification

  • Über das Identifikationsfeld kann der Zielhost feststellen, zu welchem Datengramm ein neu angekommenes Fragment gehört.
  • Alle Fragmente eines Datengramms enthalten die gleiche Identifikation.

Flags

  • Das Flags-Feld ist drei Bit lang. Die Flags bestehen aus zwei Bits namens DF (Don't Fragment) und MF (More Fragments).
  • Das erste Bit des Flags-Feldes ist ungenutzt bzw. reserviert.
  • Die beiden Bits DF und MF steuern die Behandlung eines Pakets im Falle einer Fragmentierung.
  • Mit dem DF-Bit wird signalisiert, dass das Datengramm nicht fragmentiert werden darf.
    • Dies gilt auch dann, wenn das Paket dann eventuell nicht mehr weiter transportiert werden kann und verworfen werden muss.
    • Alle Hosts müssen Fragmente bzw. Datengramme mit einer Größe von 576 Bytes oder weniger verarbeiten können.
  • Mit dem MF-Bit wird angezeigt, ob einem IP-Paket weitere Teilpakete nachfolgen.
    • Dieses Bit ist bei allen Fragmenten außer dem letzten gesetzt.

Fragment Offset

  • Der Fragmentabstand (Fragment Offset) bezeichnet, an welcher Stelle relativ zum Beginn des gesamten Datengramms ein Fragment gehört.
  • Mit Hilfe dieser Angabe kann der Zielhost das Originalpaket wieder aus den Fragmenten zusammensetzen.
  • Da dieses Feld nur 13 Bit groß ist, können maximal 8192 Fragmente pro Datengramm erstellt werden.
  • Alle Fragmente, außer dem letzten, müssen ein Vielfaches von 8 Byte sein.
  • Dies ist die elementare Fragmenteinheit.


Routing

Fragmentierung

Realität der Fragmentierung in modernen Netzen

In der heutigen Netzwerkpraxis ist die IP-Fragmentierung nahezu vollständig verdrängt worden. Das liegt vor allem daran, dass moderne Betriebssysteme das DF-Bit (Don't Fragment) im IP-Header standardmäßig auf 1 setzen.

  • Das DF-Bit-Dilemma: Da fast alle Pakete mit gesetztem DF-Bit versendet werden, darf ein Router sie nicht fragmentieren, selbst wenn die MTU des nächsten Hops zu klein ist. Er verwirft das Paket stattdessen.
  • ICMP "Fragmentation Needed": Wenn ein Router ein Paket wegen des DF-Bits verwirft, sendet er eine ICMP-Nachricht (Type 3, Code 4) an den Absender zurück. Diese enthält die maximal erlaubte MTU für diesen Abschnitt.
  • Path MTU Discovery (PMTUD): Der sendende Host nutzt diese ICMP-Rückmeldungen, um seine Paketgröße dynamisch nach unten zu korrigieren. Erst wenn dieser Mechanismus (z. B. durch Firewalls, die ICMP blockieren) scheitert, entstehen die typischen "MTU-Black-Holes" (Verbindungsaufbau klappt, aber Datenübertragung stockt).


Alternativen zur Vermeidung

Um sicherzustellen, dass Pakete gar nicht erst fragmentiert werden müssen, kommen zwei Techniken zum Einsatz:

  • MSS Clamping: Vor allem bei DSL-Verbindungen (PPPoE) reduzieren Router den MSS-Wert (Maximum Segment Size) im TCP-Handshake künstlich. Dadurch "denken" die Endgeräte, sie müssten kleinere Pakete schicken, und die MTU-Grenze wird nie erreicht.
  • IPv6-Standard: In IPv6 wurde die Fragmentierung durch Router komplett abgeschafft. Hier ist PMTUD zwingend vorgeschrieben; Router leiten zu große Pakete niemals fragmentiert weiter, sondern verwerfen sie immer mit einer entsprechenden Fehlermeldung.