IP-Fragmentierung

IP-Fragmentierung

Die IP-Fragmentierung bezeichnet die Aufteilung eines IP-Datenpaketes auf mehrere physikalische Datenblöcke, falls die Gesamtlänge des Datenpaketes größer als die Maximum Transmission Unit der Netzwerkschnittstelle ist.

Inhaltsverzeichnis

Hintergrund

Im einfachsten Fall passt das gesamte IP-Datagramm in einen physikalischen Datenblock und erreicht somit die höchste Effizienz. Es gibt jedoch keine festen Vorgaben bzgl. einer festen Paketgröße von IP-Datenpaketen, außerdem ist die maximal mögliche Paketgröße abhängig von den verwendeten Infrastrukturkomponenten, da jede Paket-Switching-Technik unterschiedliche maximale Paketgrößen zulässt.

Zielsetzung

Ziel bei der Einführung der Fragmentierung im Internetprotokoll (IP) war es, die zugrundeliegende Netzwerkstruktur für den Benutzer zu verstecken (Schichtenmodell) und somit die Protokollimplementierung von der Hardware unabhängig zu gestalten.

Arbeitsweise

Sobald der IP-Stack (vgl. auch OSI-Modell oder TCP/IP-Referenzmodell) ein Datenpaket zum Versenden enthält, prüft dieser, ob die Paketgröße eine Aufteilung anhand der für die zu verwendende Netzwerkschnittstelle gegebene MTU notwendig macht. Ist dies nötig, so teilt dieser das vorhandene Datenpaket in mehrere Datenpakete auf. Dieser Vorgang wird als Fragmentierung bezeichnet. Diese Fragmentierung kann sowohl beim ursprünglichen Sender stattfinden oder auch auf Routern, die zwischen Sender und Empfänger liegen. Wird ein IP-Datagramm fragmentiert, so wird es erst beim Empfänger wieder zusammengesetzt (Ausnahme: ggf. zwischengeschaltete Firewalls, die speziell angewiesen wurden, ein sogenanntes reassembly durchzuführen, bevor die Daten weitergeleitet werden). Sollte es nötig sein, kann auch ein bereits fragmentiertes Paket weiter fragmentiert werden (etwa bei einem Wechsel der Übertragungstechnik).

Jedes Datagramm, das fragmentiert wurde, erhält und enthält statt des Datagramm-Headers des Originalpaketes einen sog. Fragmentheader, der unter anderem den sogenannten Offset der in diesem Paket versendeten Datenportion in Relation zum Originalpaket angibt. Der Fragment-Offset (13 bit im IP-Header) wird dabei in 8-Byte-Blöcken angegeben, also wenn das erste Datagramm 1000 Byte Nutzdaten enthält, dann ist der Fragment-Offset des zweiten Paketes 125 (= 1000 Byte / 8 Byte). Somit kann nur das letzte Fragment eine Nutzdaten-Menge haben, die nicht ein Vielfaches von 8 Byte ist. Weiterhin ist zu beachten, dass der Fragment-Offset bei 0 beginnt (der Eintrag im ersten Fragment) und deswegen der Offset des zweiten Paketes im genannten Beispiel 125 und nicht etwa 126 ist. Bei allen Fragmenten, außer dem letzten, wird das More-Fragments-Flag gesetzt. Ins Längen-Feld des IP-Headers wird bei allen Fragmenten die Länge des jeweiligen Fragments eingetragen, und für jeden Header wird die IP-Header-Prüfsumme separat berechnet, während der Rest des Headers dem Originalheader vor der Fragmentierung entspricht.

Der Empfänger hat nun die Aufgabe, das Original aus den in den Paketheadern vorhandenen Informationen wieder zusammenzusetzen, indem er alle Fragmente mit gleichem IP-Header (mit Ausnahme der für jedes Fragment separaten Information) nimmt und sie anhand ihres Offsets in die richtige Reihenfolge bringt. Da jedes einzelne Fragment ein eigenständiges Paket darstellt, kann es auch vorkommen, dass diese Einzelteile nicht geordnet ankommen. Es ist auch möglich, dass einzelne Fragmente verlorengehen oder defekt sind. Es ist dann Sache des Empfängers, das Paket zu verwerfen und die Daten erneut anzufordern, wodurch eine höhere Netzwerklast entstehen kann.

Per Definition kann die IP-Schicht keine Angaben darüber machen, ob ein Paket im Verlauf seiner Übertragung fragmentiert wird oder nicht. Einzige Ausnahme: Der Sender kann das sog. Don't-Fragment-Flag setzen, welches alle beteiligten Kommunikationssysteme (Router, Gateways etc.) anweist, keine Fragmentierung vorzunehmen. Für den Fall, dass eine Fragmentierung doch notwendig wäre, wird das Paket verworfen und dem Sender eine ICMP Fehlermeldung vom Typ 3 (destination unreachable) mit Code 4 (fragmentation required but don't fragment bit set) gesendet, welche besagt, dass das Ziel für unfragmentierbare Pakete dieser Größe nicht erreichbar sei.

Auswirkungen

Obwohl die Zielsetzung eine für höhere Schichten (z. B. TCP/UDP) transparente Implementierung ist, gibt es zwei Punkte, in denen dieses nicht ganz erreicht wird:

  • Die Fragmentierung kann großen Einfluss auf den Datendurchsatz haben und beeinflusst diesen im Allgemeinen negativ.
  • Geht ein fragmentiertes Paket des originalen Paketes verloren, so muss das gesamte Original erneut übertragen werden. IP hat jedoch keine Sicherungs- bzw. Timeoutmechanismen und ist hierbei auf die Sicherungsfunktionen höherer Schichten wie die des TCP angewiesen.

Aus genannten Gründen wird versucht, Fragmentierung immer so weit wie möglich zu vermeiden.

IPv6

Bei IPv6 ist es Routern nicht mehr erlaubt, Pakete zu fragmentieren. Der Absender wird bei Fragmentierungsbedarf immer mit einer ICMPv6-Nachricht vom Typ 2 (Packet Too Big) informiert. Dieser kann daraufhin seine Paketgrößen dadurch senken, dass die kommunizierende Anwendung kleinere, unfragmentierte Pakete erzeugt, oder dadurch, dass fragmentiert wird. Im zweiten Fall beginnt der Sender nach dem IPv6-Header einen Fragment Extension Header (Protokoll 44) einzufügen, der die Parameter der Fragmentierung enthält, denn diese sind im IPv6-Header nicht mehr vorgesehen. Beim Filtern von Paketen sollte beachtet werden, dass das Next Header Feld im IPv6-Header bei fragmentiertem Datenverkehr auf Protokoll 44 verweist und nicht mehr auf die ursprüngliche Protokollnummer, wie beispielsweise 17 für UDP, diese verschiebt sich in das Next Header Feld des Fragment Extension Headers.

Verbreitung im Internet

Laut Erhebungen in Schweden aus dem Jahr 2007[1] war das „don’t fragment“ (DF) Bit bei etwa 91% der im Internet versendeten IPv4-Pakete gesetzt, der fragmentierte Datenverkehr machte lediglich 0,06% aller Pakete aus. Frühere Ergebnisse deuten auf fragmentierten IPv4-Verkehr von unter 1% gemessen in Paketanzahl und unter 2% gemessen in Datenvolumen hin, es wird aber auch auf starke Schwankungen bei den Messungen aufmerksam gemacht[2].

Einzelnachweise

  1. Wolfgang John, Sven Tafvelin: Analysis of Internet Backbone Traffic and Header Anomalies observed (englisch)
  2. Colleen Shannon, David Moore: Beyond Folklore: Observations on Fragmented Traffic (englisch)

Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Fragmentierung — (lat. frāgmentum ‚(Bruch)Stück, Überbleibsel‘ zu frangere ‚brechen‘; ieren Bildung neuzeitl.) hat mehrere Bedeutungen. Fragmentierung steht in der Informatik: in TCP/IP Netzwerken für die Aufteilung eines IP Datenpaketes auf mehrere physikalische …   Deutsch Wikipedia

  • Fragmentierung (Dateisystem) — Visualisierung der Fragmentierung und des anschließenden Defragmentiervorgangs Unter Fragmentierung (Fragment = Bruchstück) versteht man die verstreute Speicherung von logisch zusammengehörigen Datenblöcken des Dateisystems auf einem… …   Deutsch Wikipedia

  • Fragmentierung — Zerlegung; Zerteilung; Segmentierung; Diversifikation * * * Frag|men|tie|rung [lat. fragmentum =Bruchstück]: die als ↑ Heterolyse verlaufende Spaltung eines Moleküls in zwei oder mehr Fragmente nach dem allg. Schema a b c d X → (a b)+ + c=d + X‒ …   Universal-Lexikon

  • Fragmentierung — Frag|men|tie|rung die; , en <zu ↑...ierung>: 1. (veraltet) das Fragmentieren. 2. ungeordnete Zergliederung eines Speichers in Bereiche, die von Programmen od. Daten belegt sind (EDV); vgl. ↑...ation/...ierung …   Das große Fremdwörterbuch

  • Eschenmoser-Fragmentierung — Unter der Eschenmoser Fragmentierung, oft auch Eschenmoser Ohloff oder Eschenmoser Tanabe Fragmentierung versteht man eine organisch chemische Reaktion zur Synthese von Alkinen und Ketonen aus α,β ungesättigten Ketonen bzw. davon abgeleiteten α,β …   Deutsch Wikipedia

  • Interne Fragmentierung — Als Interne Fragmentierung oder deutsch Verschnitt bezeichnet man in der Informatik den Effekt, dass bei einer Einteilung von Daten auf Speicherblöcke diese nur zum Teil gefüllt werden können. Ein ähnlicher Effekt ist die Externe Fragmentierung.… …   Deutsch Wikipedia

  • Corey-Winter-Fragmentierung — Die Corey Winter Fragmentierung ist eine chemische Reaktion, die der Synthese von Alkenen aus 1,2 Diolen dient. Hierzu werden neben dem Diol Thiophosgen und Trimethylphosphit benötigt. Die Reaktion ist nach ihren Entdeckern Elias James Corey Jr.… …   Deutsch Wikipedia

  • Externe Fragmentierung — Mit externer Fragmentierung ist die Einteilung eines Speicherbereiches in Fragmente, die genutzt sind, und in Fragmente, die nicht genutzt sind aber allozierbar sind, gemeint. Externe Fragmentierung kann zu ineffizienter Speichernutzung führen,… …   Deutsch Wikipedia

  • Geographische Entwicklungsforschung — Fragmentierung und Marginalisierung in Comas, Lima Verbrannter …   Deutsch Wikipedia

  • Proteinoxidation — Fragmentierung einer Polypeptidkette[1] …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”