Le protocole IPv6 définit un jeu d'en-têtes comprenant l'en-tête IPv6 de base ainsi que les en-têtes d'extension IPv6. La figure suivante illustre les champs qui s'affichent dans l'en-tête IPv6 et l'ordre dans lequel ils apparaissent.
La liste suivante décrit la fonction de chaque champ d'en-tête.
Version – Numéro de version 4 bits du protocole Internet = 6.
Traffic class – Champ de classe de trafic 8 bits.
Flow label – Champ 20 bits.
Payload length – Entier sans signe 16 bits constituant le reste du paquet qui suit l'en-tête IPv6 (en octets).
Next header – Sélecteur 8 bits. Identifie le type d'en-tête qui suit immédiatement l'en-tête IPv6. Utilise la même valeur que le champ du protocole IPv4.
Hop limit – Entier sans signe 8 bits. Décrémentation de 1 par nœud transférant le paquet. Si la valeur du champ est définie sur zéro, le paquet est abandonné.
Source address – 128 bits. L'adresse du premier expéditeur du paquet.
Destination address – 128 bits. L'adresse du destinataire prévu du paquet. Le destinataire prévu n'est pas nécessairement le destinataire s'il existe un en-tête de routage facultatif.
Les options IPv6 sont placées dans des en-têtes d'extension distincts situés, dans un paquet, entre l'en-tête IPv6 et l'en-tête de la couche transport. La plupart des en-têtes d'extension IPv6 ne sont vérifiés ou traités par les routeurs qu'au moment où le paquet arrive à sa destination prévue. Cette fonction améliore de façon remarquable les performances du routeur pour les paquets qui contiennent des options. En effet, sous IPv4, toutes les options présentes dans un paquet doivent être vérifiées par le routeur.
À la différence des options IPv4, les en-têtes d'extension IPv6 possèdent une longueur indéfinie. De plus, le nombre d'options pouvant être incluses dans un paquet n'est pas limité à 40 octets. Grâce à cela et à la manière dont les options IPv6 sont généralement traitées, les options IPv6 peuvent servir à des fonctions difficiles d'utilisation dans IPv4.
Pour une meilleure gestion des en-têtes d'option suivants et du protocole de transport qui suit, les options IPv6 sont toujours des entiers avec une longueur multiple de 8 octets. Ce type d'entier permet de conserver l'alignement des en-têtes suivants.
Les en-têtes d'extension IPv6 ci-dessous sont actuellement définis :
Routing – Routage étendu tel que le routage IPv4 à la source lâche
Fragmentation – Fragmentation et réassemblage
Authentication – Intégrité, authentification et sécurité
Encapsulating Security Payload – Confidentialité
Hop-by-Hop options – Options spéciales requérant un traitement saut par saut
Destination options – Informations facultatives devant être vérifiées par le nœud de destination