. Format IPv6 .
Un brin de théorie.....juste un brin.

Les Titres:
.Format IPv6.
Pourquoi changer une équipe qui gagne ?
Format du datagramme IPv6
Version
Classe de trafic
Identificateur de flux
Longueur des données
En-tête suivante
Nombre de sauts
Adresses IPv6 Source et destination
Extensions
Données
Pourquoi changer une équipe qui gagne ?
Le protocole IP est un protocole de réseau (couche 3, pour la vision du modèle en couches de l'OSI). Le rôle de ce protocole est d'acheminer des informations d'une source vers un destinataire au travers d'une interconnexion de réseaux. Les paquets IP étant autonomes lors de leur acheminement, chacun d'entre eux est muni d'une adresse Source et d'une adresse Destination. Pour orienter les paquets vers leurs destinataires au travers des multiples réseaux interconnectés (Internet en est l'illustration), des équipements spécifiques les prennent en charge pour les relayer du mieux possible jusqu'à leur destination finale. Ces équipements sont les routeurs.
Tout cela sous entend au moins deux aspects fondamentaux.
Le premier aspect: Une machine doit avoir une adresse IP unique dans cette interconnexion de réseaux.
Le deuxième aspect: Les routeurs doivent avoir connaissance des routes pour relayer les paquets, ou à la rigueur, avoir connaissance d'un moyen de joindre ces routes.
Le protocole IP (version4) utilise des adresses sur 4 octets avec un découpage en classe identifiant la partie réseau de la partie hôte. Actuellement, IPv4 n'a pas un potentiel d'adressage suffisant pour répondre à toute la demande (quiconque souhaite obtenir une adresse IP doit monter patte blanche). Bref, des solutions temporaires ont été imaginées, par exemple la translation d'adresse "NAT" qui consite à masquer des adresses non officielles en adresses officielles pour se raccorder au réseau.
L'explosion d'Internet et donc du nombre d'adresses de réseaux IP allouées a fait grossir démesurément la taille des tables de routage ainsi que le maillage du réseau. Là encore, des solutions ont été apportés, "le CIDR", qui consiste à agréer des réseaux en définissant un résumé des routes afin de diminuer le nombre d'entrées dans les tables de routage. Malheureusement, le CIDR n'apporte qu'une toute relative amélioration car le déploiement non contrôlé des réseaux dans la jeunesse d'IP ne permet plus aujourd'hui d'optimiser ces résumés de route.
Le protocole IPv4 a su évoluer jusqu'à nos jours, mais quand est-il de demain ?
Pour les adresses c'est certain, 4 octets, cela devient insuffisant. Mais, ce n'est pas le seul critère. Il n'est pas certain du tout qu'IPv4 puisse répondre aux exigences actuelles et futures en terme de type de flux (vidéo, multimédia,...) et de prioritisation de trafic. La révision du TOS en DiffServ apporte un début de solution mais nombreux sont les routeurs qui ne le gère pas ou mal. Cela se traduit par une mauvaise priorité des flux dans les files d'attentes des routeurs et donc de sérieuse dégradations de la qualité de service.
Le protocole IPv4 va donc subir un sérieux toilettage. Dans ce cas, cela s'appelle un changement de version. Nous y sommes, IPv6 arrive. Bien entendu, la migration doit se faire en douceur et IPv4 cohabitera un bon moment avec IPv6, mais à terme il lui cédera la place.





Vous vous en doutez, ce champ prend la valeur 6 pour IPv6. Quoi de plus naturel !!!
Ce champ est composé de deux parties:
[[ _ D S c p_ ][ C U]]
6bits 2bits
DScp (6bits)
Les six premiers bits sont utilisés pour différencier les services DiffServ (code point).
Selon les types flux (data, video, audio,etc...) les contraintes techniques ne sont pas les mêmes. Certains flux sont proches du temps réel et exigent que les paquets soient quasiment traités immédiatement, d'autres moins exigeant peuvent être retardés dans le réseau si besoin est sans que cela n'apporte une quelconque gêne. En cas d'engorgement sur le réseau, pour sa survie, le réseau doit prendre des décisions. Parmi ces décisions, il y en a une qui consiste à supprimer certains paquets en transit afin de soulager la charge du réseau. Cette suppression de paquet peut être progressive en éliminant les paquets les moins importants en priorité ou en supprimant les paquets des utilisateur dépassant leur contrat de service (quota d'octets transmis pour un temps donné) . La différenciation des services permet de mettre en œuvre tous ces mécanismes.
CU (2bits)
Ce champ est réservé pour un futur usage, mais utilisé par les routeurs, il devrait servir à prévenir d'une congestion.


Identificateur de flux (20 bits)
Ce champ est remplit par la source et représente un numéro unique conservé pendant tout l'acheminement du paquet au travers du réseau jusqu'au destinataire pour le flux concerné. Ce champ identifie le type de flux qu'il est possible d'utiliser comme référence. Ainsi, les routeurs peuvent l'utiliser pour définir un contexte qui leur permet de commmuter les paquets beaucoup plus rapidement. Le gain de performance est indéniable.
Longueur des données (16 bits)
Ce champ indique en octet la taille du champ de données (données transportées par IPv. La longueur des en-têtes n'est pas comprise. Si ta taille des données devait être supérieure à 65535 octets, ce champ prendrait la valeur 0 et l'option jumbogramme de l'extension de proche en proche serait utilisé.
Ce champ spécifie le protocole transporté par IPv6, ce qui est similaire au champ "protocole" d'IPv4. Nous avons les valeurs 06=TCP, 17=UDP, 58=ICMPv6, etc.. qu'il est possible de consulter en éditant le fichier protocols (dans le répertoire etc, selon votre OS).
Contrairement à son prédécesseur IPv4 qui utilise un champ "option", par ailleurs limité en taille, la particularité d'IPv6 est de ne pas avoir ce champ mais d'utiliser un mécanisme d'extension. ll est possible par ce mécanisme d'en-tête suivante, d'encapsuler une extension qui contient aussi un champ "en-tête suivante" pouvant elle-même préciser la prochaine extension et ainsi de suite. Bref une cascade d'extensions encapsulées les unes dans les autres peuvent ainsi être utilisées avant éventuellement la couche Transport.


C'est la source (émetteur du paquet) qui rempli ce champ au départ. La valeur communément utilisée est 64, mais je l'ai déjà vu à 255.
Lorsqu'un paquet IPv6 traverse un routeur, ce champ est décrémenté de 1, si la valeur atteint 0 le paquet est détruit. Ainsi un paquet ne peut s'éterniser dans le réseau. Le réseau et les routeurs en particuliers ne doivent pas être engorgés par des paquets qui n'atteignent jamais leur destination. Lorsque le routeur détruit le paquet, il en avertit la source par un message ICMPv6.
Adresse IPv6 Source (128 bits)
Dans ce champ, se trouve l'adresse IPv6 (vous l'aviez deviné) de la machine émettant le paquet.
Adresse IPv6 Destination (128 bits)
Dans ce champ, se trouve l'adresse IPv6 de la machine destinataire du paquet.


Les extensions possibles sont:
0 hop-by-hop (ou de proche en proche)
43 Routage
44 Fragmentation
50 Confidentialité
51 Authentification
59 Fin des en-têtes
60 Destination
Par ailleurs, le RFC 2460 définit l'ordre de l'encapsulation lorsque plusieurs extensions se succèdent.
Dans ce champ, se trouve les données transportées par IPv6. Cela peut être par exemple un paquet ICMPv6 ou un segment TCP ou autre...
