IPv6-Header und Extension Headers

IPv6-Header

Jedes IPv6-Datenpaket besteht aus einem Header (Kopf) und dem Payload, in dem sich die Nutzdaten befinden. Der Header ist den Nutzdaten vorangestellt.
Bei IPv6 ist der Header auf einfache Verarbeitung optimiert. Konkret bedeutet das, dass einem Bereich mit fester Länge von 40 Byte besteht, der nur Informationen enthält, die für das IP-Routing wichtig sind. Optionale Informationen sind im Extension Header ausgelagert, der sich zwischen Header und Payload befindet, und von denen es mehrere geben kann. Allerdings dürften die meisten IPv6-Pakete ohne Extension Header auskommen.

Aufbau des IPv6-Headers

Aufbau des IPv6-Headers

Um die Verarbeitung der IPv6-Pakete zu vereinfachen wurde die Länge des IPv6-Headers auf 40 Byte fest definiert. Optionale Informationen werden in die Extension-Headers verlagert. Der feste Teil des IPv6-Headers enthält unter anderem die IPv6-Adresse von Sender und Empfänger. Das IPv4-Feld Time-to-live (TTL) ist das Hop Limit. Auf die Prüfsummenberechnung und Fragmentierung wird verzichtet, was den IPv6-Routern das Leben erleichtert.

Bedeutung der Felder im IPv6-Header

Feldinhalt Bit Beschreibung
Version 4 Hier ist die Version des IP-Protokolls abgelegt, nach der das IP-Paket erstellt wurde.
Traffic Class 8 Der Wert des Feldes definiert die Priorität des Paketes.
Flow Label 20 Das Flow Label kennzeichnet Pakete für ein viel schnelleres Routing. Das MPLS macht dieses Verfahren allerdings überflüssig.
Payload Length 16 Hier steht die im IP-Paket transportierten Daten in Byte. Bisher musste der Wert aus dem Feld Paketlänge abzüglich dem Feld IHL ermittelt werden.
Next Header 8 Hier ist das übergeordnete Transportprotokoll angegeben. Bei IPv4 hieß das Feld einfach Protokoll.
Hop Limit 8 Dieses Feld enthält die Anzahl der verbleibenden weiterleitenden Stationen, bevor das IP-Paket verfällt. Es entspricht dem TTL-Feld von IPv4. Jede Station, die ein IP-Paket weiterleitet, muss von diesem Wert 1 abziehen.
Source-Address 128 An dieser Stelle steht die IP-Adresse der Station, die das Paket abgeschickt hat (Quell-IP-Adresse).
Destination-Address 128 An dieser Stelle steht die IP-Adresse der Station, für die das Paket bestimmt ist (Ziel-IP-Adresse).
IPv6-Header-Erweiterungen
jeweils 64 Bit
(8 Byte)
Im IPv6-Header können optional Informationen im separaten Header dem IP-Kopf angehängt werden. Bis auf wenige Ausnahmen werden diese Header-Erweiterungen von IP-Routern nicht beachtet.

Extension Header bzw. Header Extensions

IPv6 Extension Header bzw. Header Extensions

Optionale Header-Informationen sind im sogenannten Extension Header zwischen Header und Payload untergebracht. Das hat den Vorteil, dass es keine Größenbeschränkung für Optionen gibt und neue Optionen eingeführt werden können ohne den Header zu verändern. Die einzige Grenze liegt darin, dass ein Extension Header im Datenpaket Platz finden muss, was unter Umständen den Platz für den Payload reduziert, weil das IPv6-Paket in seiner Gesamtheit nur eine bestimmte Größe haben darf.

Ein Extension Header wird vom Sender zwischen IPv6-Header und den Nutzdaten (TCP- oder UDP-Datagramm) eingefügt. Die Header können verkettet werden. Die Reihenfolge muss aber eingehalten werden und jeder Header darf nur einmal vorkommen. Mit einer Ausnahme. Befindet sich ein Routing Header im Paket, darf davor ein weiterer Destination Options Header stehen.
Die Größe einer Header-Erweiterung muss ein Vielfaches von 64 Bit (8 Byte) betragen, um die Verarbeitung zu vereinfachen.

Extension Header werden, von einer Ausnahme abgesehen, vom Ziel verarbeitet, was wesentlich effizienter ist. Der Hop-by-Hop Options Header muss von jedem Routern auf dem Pfad zum Ziel ausgewertet werden. Wenn er vorhanden ist, muss er direkt auf den IPv6-Header folgen.

IPv6-Extensions

Header-Erweiterungen tragen eine definierte Nummer, die sich in das bestehende System der Protokollnummern einfügt.

Nummer Extension Header
0 Hop-by-Hop Options
43 Routing
44 Fragment
51 Authentication Header (AH)
50 Encapsulation Security Payload (ESP)
60 Destination Options
135 Mobility
139 Host Identity Protocol
140 Shim6 Protocol
59 No Next Header (Ende eines Header-Stapels)

Die Reihenfolge bei einer Verkettung entspricht die der Tabelle mit Ausnahme des Destination Options Header, der ein zweites mal vorkommen darf.
Alle Extension Header enthalten ein Next-Header-Feld, in dem der nächste Extension Header oder das darüberliegende Protokoll gekennzeichnet ist.

Übersicht: IPv6