Das IPv6 Protokoll

Die Felder im IPv6 Header

FeldnameLängeInhalt des Feldes
Die Felder im IPv6 Header
Version4 bits6 (0110, 0x6)
Traffic Class1 Byte Priorisierung (s. RFC 2474)
Flow Label20 bitsfür gleichartige Pakete -> effizientes Routing
Payload Length2 BytesLänge der Daten nach dem IPv6 Header
Next Header1 ByteProtokoll Nummer oder Extension-Header
Hop Limit1 ByteAnzahl der Routerhops
Quelladresse16 Bytes 
Zieladresse16 Bytesendgültiger Empfänger bzw. Adresse des nächsten Hops (z.B. wenn ein Routing Header vorhanden ist)
Summe der Bytes40 

Die aktuelle Liste aller Protokoll- und Headerwerte findet man bei der IANA.

WertBeschreibung
Next Header Werte
0 (0, 0x0)in IPv4 reserviert und nicht benutzt
in IPv6 Hop-by-Hop Option Header
1 (0001, 0x1)ICMP IPv4
2 (0010, 0x2)IGMP IPv4
4 (0100, 0x4)IP in IP encapsulation
6 (0110, 0x6)TCP
8 (1000, 0x8)EGP
9 (1001, 0x9)IGP (Cisco IGRP)
17 (0001 0001, 0x11)UDP
41 (0010 1001, 0x29)IPv6
43 (0010 1011, 0x2B)Routing Header
44 (0010 1100, 0x2C)Fragmentation Header
45 (0010 1101, 0x2D)IDRP
46 (0010 1110, 0x2E)RSVP
47 (0010 1111, 0x2F)GRE
50 (0011 0010, 0x32)Encryted Security Payload Header
51 (0011 0011, 0x33)Authentication Header
58 (0011 1010, 0x3A)ICMPv6
59 (0011 1011, 0x3B)No Next Header für IPv6
60 (0011 1100, 0x3C)Destination Options Header
88 (0101 1000, 0x58)EIGRPv4 und EIGRPv6
89 (0101 1001, 0x59)OSPF
108 (0110 1100, 0x6C)IP Payload Compression Protocol
115 (0111 0011, 0x73)L2TP
132 (1000 0100, 0x84)SCTP
135 (1000 0111, 0x87)Mobility Header (Draft)
136-252nicht zugewiesen
253-254für Experimente und Testzwecke
255 (1111 1111, 0xFF)Reserviert

Extension Header

Extension Header sind zusätzliche Header, die Infos für die Netzwerkschicht (IP-Layer) beinhalten. Diese Header werden nur bei Bedarf eingefügt und liegen außerhalb des IP-Headers. Extension Header müssen ein Vielfaches von 8 Bytes lang sein.

Es sind 6 Basis Extension Header definiert, die immer implementiert sein müssen:

Extension Header dürfen höchstens einmal vorkommen, Destination Options Header dürfen höchstens zweimal vorkommen. Die Header müssen in einer definierten Reihenfolge auftreten:

  1. IPv6 Header
  2. Hop-by-Hop Options Header
  3. Destination Options Header (Optionen für Router)
  4. Routing Header
  5. Fragment Header
  6. Authentication Header
  7. Encapsulation Security Payload Header
  8. Destination Options Header (Optionen für den endgültigen Empfänger)
  9. Upper-Layer Header

Hop-by-Hop Options Header

FeldnameLängeInhalt des Feldes
Felder des Hop-by-Hop Options Header
Next Header1 Byte Typ des folgenden Headers
Header Extension Length1 ByteLänge des Hop-by-Hop Extension Headers in 8 Byte Einheiten ohne die ersten 8 Byte
OptionsvariabelBesteht aus Option Type, Option Data Length und dem Datenteil

Die ersten zwei Bits des Option-Feldes geben die Art der Verarbeitung bei Nichterkennen der Option an. Das nächste Bit zeigt an, ob die Information in der Option geändert werden kann (1) oder nicht (0):

Wert der ersten beiden BitsBedeutung
Anweisung bei Nichterkennen von Optionen
00übergehen und Verarbeitung fortführen
01Paket verwerfen
10Paket verwerfen und ICMPv6 Parameter Problem an den Absender retour schicken
11Paket verwerfen und ICMPv6 Parameter Problem an den Absender retour schicken, falls Empfänger keine Multicast- Adresse ist
Option Jumbogramm (RFC 2675)

Mit der Option Jumbogramm kann die maximale Paketgröße von 65535 Bytes (216-1 … das Payload-Feld im IPv6 Header ist 2 Bytes/16 bits lang) auf 4.294.967.295 Bytes (232-1 … das Jumbo Payload Length Field ist 32 bits groß) vergrößert werden.

Wird die Option Jumbogramm benutzt muß das Payload Length Feld auf 0 gesetzt sein und das Next Header Feld ebenfalls 0 (der Next Header ist ein Hop-by-Hop Option Header). Der Option Type Wert für Jumbogramme ist 194. UDP und TCP müssen ebenfalls entsprechende Erweiterungen für Jumbogramme besitzen.

Option Alert Header (RFC 2711)

Damit wird Routern angezeigt, dass in nicht für sie adressierten Paketen wichtige Informationen enthalten sind, die ausgewertet werden müssen. Solche Informationen werden derzeit von MLD und RSVP eingesetzt.

Die ersten 3 Bit des Option Type sind 0 gesetzt (ist einem Router die Option nicht bekannt, einfach weiterleiten). In den verbleibenden 5 bits ist der Typ 5 definiert. Das Data Length Feld beinhaltet 2, d.h. das nachfolgende Value Feld ist 2 Bytes lang:

Inhalt Value FeldBedeutung
Werte im Value Feld
0Paket enthält eine MLD-Nachricht
1Paket enthält eine RSVP-Nachricht
2Paket enthält eine Active Networks Nachricht
3 - 35Paket enthält einen Aggregated Reservation Nesting Level (RFC 3175, RSVP)
36 - 65535reserviert von IANA

Weiter Werte findet man in der aktuellen Liste der Router Alert Werte.

Routing Header

Der Routing Header wird im vorangegangenen Header mit dem Wert 43 angezeigt.

Im Routing Header wird eine Liste von Routern angegeben, über die das Paket weitergeleitet werden muß. Der Router muß von allen Routern in der Liste verarbeitet werden.

FeldnameLängeInhalt des Feldes
Format des Routing Headers
Next Header1 ByteBeschreibt den Typ des folgenden Headers
Header Extension Length1 ByteLänge des Routing Headers in 8 Byte Einheiten, ohne die ersten 8 Byte
Routing Type1 ByteTyp des Routing Headers
Segments Left1 ByteAnzahl der Nodes bis zum Erreichen des Ziels
Type Specific Datavariabelvom Routing Type abhängig

Der Routing Type 2 wird bei Mobile IPv6 definiert.

Kann ein Router den Routing Type nicht identifizieren und steht das Segments Left Feld auf 0, muß er mit dem nächsten Header fortfahren. Ist das Segments Left Feld ungleich 0, dann wird das Paket verworfen und eine ICMPv6 'Parameter Problem' Nachricht an den Absender versandt.

Fragment Header

Der Fragment Header wird im vorhergegangenen Header mit dem Wert 44 angezeigt.

FeldnameLängeInhalt des Feldes
Format des Fragment Headers
Next Header1 ByteErster Header Type des fragmentierbaren Teils des ursprünglichen Pakets
Reserved1 Byteauf 0 gesetzt
Fragement Offset13 bitsOffset der Daten in 8 Byte Einheiten
Reserved2 bitsauf 0 gesetzt
M-Flag1 bit0 -> letztes Paket, 1 -> weitere Pakete
Identification4 Byteskennzeichnet den Fragment Set

Die Fragmentierung erfolgt ausschließlich beim sendenden Host, der vorher mittels Path MTU Discovery die größtmögliche Paketgröße ermittelt hat.