Der IPv6 Header
- Definiert im RFC 2460
- fix 40 Bytes
- davon je 16 Bytes für Absender- und Empfängeradresse
Die Felder im IPv6 Header
Feldname | Länge | Inhalt des Feldes |
---|---|---|
Die Felder im IPv6 Header | ||
Version | 4 bits | 6 (0110, 0x6) |
Traffic Class | 1 Byte | Priorisierung (s. RFC 2474) |
Flow Label | 20 bits | für gleichartige Pakete -> effizientes Routing |
Payload Length | 2 Bytes | Länge der Daten nach dem IPv6 Header |
Next Header | 1 Byte | Protokoll Nummer oder Extension-Header |
Hop Limit | 1 Byte | Anzahl der Routerhops |
Quelladresse | 16 Bytes | |
Zieladresse | 16 Bytes | endgültiger Empfänger bzw. Adresse des nächsten Hops (z.B. wenn ein Routing Header vorhanden ist) |
Summe der Bytes | 40 |
Die aktuelle Liste aller Protokoll- und Headerwerte findet man bei der IANA.
Wert | Beschreibung |
---|---|
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-252 | nicht zugewiesen |
253-254 | fü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:
- Hop-by-Hop Options Header (RFC 2460)
- Routing Header (RFC 2460)
- Fragment Header (RFC 2460)
- Destination Options Header (RFC 2460)
- Authentication Header (RFC 4302)
- Encapsulating Security Payload Header (RFC 4303)
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:
- IPv6 Header
- Hop-by-Hop Options Header
- Destination Options Header (Optionen für Router)
- Routing Header
- Fragment Header
- Authentication Header
- Encapsulation Security Payload Header
- Destination Options Header (Optionen für den endgültigen Empfänger)
- Upper-Layer Header
Hop-by-Hop Options Header
Feldname | Länge | Inhalt des Feldes |
---|---|---|
Felder des Hop-by-Hop Options Header | ||
Next Header | 1 Byte | Typ des folgenden Headers |
Header Extension Length | 1 Byte | Länge des Hop-by-Hop Extension Headers in 8 Byte Einheiten ohne die ersten 8 Byte |
Options | variabel | Besteht 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 Bits | Bedeutung |
---|---|
Anweisung bei Nichterkennen von Optionen | |
00 | übergehen und Verarbeitung fortführen |
01 | Paket verwerfen |
10 | Paket verwerfen und ICMPv6 Parameter Problem an den Absender retour schicken |
11 | Paket 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 Feld | Bedeutung |
---|---|
Werte im Value Feld | |
0 | Paket enthält eine MLD-Nachricht |
1 | Paket enthält eine RSVP-Nachricht |
2 | Paket enthält eine Active Networks Nachricht |
3 - 35 | Paket enthält einen Aggregated Reservation Nesting Level (RFC 3175, RSVP) |
36 - 65535 | reserviert 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.
Feldname | Länge | Inhalt des Feldes |
---|---|---|
Format des Routing Headers | ||
Next Header | 1 Byte | Beschreibt den Typ des folgenden Headers |
Header Extension Length | 1 Byte | Länge des Routing Headers in 8 Byte Einheiten, ohne die ersten 8 Byte |
Routing Type | 1 Byte | Typ des Routing Headers |
Segments Left | 1 Byte | Anzahl der Nodes bis zum Erreichen des Ziels |
Type Specific Data | variabel | vom 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.
Feldname | Länge | Inhalt des Feldes |
---|---|---|
Format des Fragment Headers | ||
Next Header | 1 Byte | Erster Header Type des fragmentierbaren Teils des ursprünglichen Pakets |
Reserved | 1 Byte | auf 0 gesetzt |
Fragement Offset | 13 bits | Offset der Daten in 8 Byte Einheiten |
Reserved | 2 bits | auf 0 gesetzt |
M-Flag | 1 bit | 0 -> letztes Paket, 1 -> weitere Pakete |
Identification | 4 Bytes | kennzeichnet 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.