Ein IP-Paket besteht zunächst wieder aus IPv6-Header
und IPv6-Payload (wie IPv4), außerdem kann es noch aus optionalen IPv6-Headern
bestehen.
Aufgrund der Vergrößerung der Adressen wurde der IPv6-Header im Vergleich zum
IPv4-Header von 20 Byte auf 40 Byte angehoben. Die Gesamtzahl der
Funktionsfelder wurde jedoch von 12 auf 8 minimiert. Die Reduzierung der Felder
hat den Vorteil der einfacheren Verarbeitung. Außerdem ist die Bearbeitungszeit
eines IP-Pakets im Router maßgeblich von der Anzahl der Funktionsfelder
abhängig, die Header-Vergrößerung auf 40 Byte fällt dabei nicht so stark ins
Gewicht. Deshalb war bei der Neuentwicklung von IPv6 eine Verkleinerung dieser
Felder von großer Bedeutung um eine Beschleunigung der Datenübertragung zu
ermöglichen. Außerdem wurde beim IPv6 im Vergleich zum IPv4 auf eine Checksumme
verzichtet, um den Routern die aufwendige Überprüfung- und damit Rechenzeit- zu
ersparen. Ein Übertragungsfehler muss deshalb in den oberen Schichten erkannt
werden.
Der IPv6-Header steuert mit seinen Feldern die Funktion des Protokolls.
Der elementare IPv6-Header auch IPv6-Basis-Header genannt ist in RFC 2460 definiert.
Der IPv6-Basis-Header besteht aus folgenden Feldern:
| Version (4-Bit) |
Priorität (8-Bit) |
Flow-Label (20-Bit) |
||
|
Payload(“Nutzlast”-)Länge (16-Bit) |
Nächster Header (8-Bit) |
Hop Limit (8-Bit) |
||
| IP-Adresse des Absenders (4*32-Bit) | ||||
| IP-Adresse des Empfängers (4*32-Bit) | ||||
| „Nutz“-Daten | ||||
Gibt die IP-Versionsnummer an. Bei IPv6 steht hier eine "6".
Hierfür sind 4-Bit reserviert.
Hier kann vom Absender angegeben werden , mit welcher Priorität die Pakete auf dem Weg zum Empfänger behandelt werden sollen. Dabei haben die Router des Transportweges die Möglichkeit, je nach Netzauslastung und Belegung des Class Feldes, Pakete auf unterschiedlichen Wegen zum Empfänger zu senden, zu verwerfen oder bei Bedarf die Werte des Class-Feldes zu verändern. Hierfür stehen 8-Bit zur Verfügung.
Der Wert in diesem Feld wird benutzt, um Pakete zu kennzeichnen, für die eine besondere Behandlung durch IPv6 Router gewünscht wird, z.B. Echtzeitanwendungen. In diesem Fall wird eine Zufallszahl abgelegt, welche für jeden Absender eindeutig sein muss.
Dieses Feld soll die Router vor allem beim Verarbeiten von Video- und Audiodaten unterstützten, in dem das Feld als Hash-Code verwendet wird.
Enthält die Anzahl der Nutzdaten-Bytes, die in diesem IP-Paket transportiert werden (Die Anzahl der Bytes hinter diesem IP-Header bis zum Ende des gesamten Pakets). Hier sind 16 Bit reserviert.
Dieser Wert enthält den Code des in diesem Paket folgenden Headers.
Dieser Wert gibt die maximale Anzahl von Routern an, die das IP-Paket während des "routen" durchlaufen darf. Dabei dekrementiert jeder Router der das Paket weiterleitet. Hat der Wert 0 erreicht, wird das Paket verworfen. Der Router der das Paket verworfen hat, sendet an den Absender eine Fehlermeldung. Das Hop Limit ist dazu da, das IP-Pakete die nicht zugestellt werden können nicht beliebig lange im Netz kreisen sondern nach einer eingestellten Anzahl von Routern verworfen werden.
Dieser Wert enthält den Code des in diesem Paket folgenden Headers.
Dieses Feld gibt die 128 Bit lange IPv6-Ziel-Adresse an.
Durch die optionalen Header, die bei IPv6 erstmalig verwendet werden, wird Rechenzeit gespart, da beim „routen“ der IP-Pakete nur der Basis-Header von den Routern überprüft wird. Bei Verwendung mehrerer optionaler Header werden sie einfach aneinandergefügt. Allerdings ist dabei auf die Reihenfolge zu achten, da jeder Header die Identifikation des nachfolgenden Headers enthält. Optionale Header stehen zwischen dem Basis-Header und der Nutzlast.
Dieser Header ist der einzigste der von den Routern überprüft werden muss.
Dieser Header wird verwendet, um Optionen zu transportieren, welche bei
jedem Transportschritt ausgewertet werden müssen. Länge des Headers
8-Byte.
Mit Hilfe dieses Headers kann bestimmt werden, welche Router, das IP-Paket von der Quelle von der es gesendet wird bis zum Ziel, es passieren soll. Dieses Header darf 8-Byte lang sein.
Dieser Header wird zur Fragmentierung von IP-Paketen verwendet. Falls die Nutzdaten für ein IPv6-Paket zu groß sind teilt dieser Header das Paket in mehrere kleinere Einheiten und fügt sie nach der Übermittlung wieder zusammen.
Er dient als so genannter Erweiterungs-Header, d. h. bei Erweiterung von IPv6 können neue Optionen hinzugefügt werden.