Pour pouvoir envoyer des données via des réseaux nu­mé­riques (Internet), vous avez besoin d’une adresse correcte, dans ce cas présent il s’agit d’une adresse IP. Les paquets de données ob­tien­nent une adresse IP, tout comme les lettres possèdent une adresse postale pour s’assurer qu’elles arrivent bien au bon des­ti­na­taire. Toutefois, leurs ho­mo­logues nu­mé­riques ne sont pas liés à un em­pla­ce­ment spé­ci­fique, en effet les adresses IP sont au­to­ma­ti­que­ment ou bien ma­nuel­le­ment affectées au pé­ri­phé­rique réseau lors de la con­fi­gu­ra­tion de la connexion. Dans ce processus, l’Internet Protocol, en français protocole Internet (mais appelé plus com­mu­né­ment protocole IP) joue un rôle important.

Nom de domaine
Votre domaine en un clic
  • 1 cer­ti­fi­cat SSL Wildcard par contrat
  • Fonction incluse Domain Connect pour une con­fi­gu­ra­tion DNS sim­pli­fiée
Dé­fi­ni­tion Internet Protocol

Internet Protocol, en abrégé IP, est le protocole primaire de la famille des pro­to­coles Internet et revêt donc une im­por­tance fon­da­men­tale notamment pour l’échange de messages dans les réseaux in­for­ma­tiques. Le protocole sans connexion, publié en 1974 par l‘Institute of Elec­tri­cal and Elec­tro­nics Engineers (IEEE) et spécifié comme standard dans le RFC 791, est prin­ci­pa­le­ment destiné à assurer le succès de l’envoi de paquets de l’ex­pé­di­teur au des­ti­na­taire. Dans ce but, le protocole IP spécifie un format qui définit le type de des­crip­tion des paquets de données (aussi appelés da­ta­grammes IP).

Le protocole IP : dé­fi­ni­tion et his­to­rique

Internet Protocol (IP) est un protocole sans connexion qui, en tant qu’élément central de la famille des pro­to­coles Internet (un ensemble d’environ 500 pro­to­coles réseau), est res­pon­sable de l’adressage et de la frag­men­ta­tion des paquets de données dans les réseaux nu­mé­riques. Avec le protocole de transport TCP (Trans­mis­sion Control Protocol), l’IP constitue la base de l’Internet. Pour envoyer un paquet de l’ex­pé­di­teur au des­ti­na­taire, le protocole IP définit une structure de paquets qui résume les in­for­ma­tions envoyées. Le protocole détermine la manière dont les in­for­ma­tions sur la source et la des­ti­na­tion des données sont décrites et sépare ces in­for­ma­tions des données in­for­ma­tives  dans l’en-tête IP. Ce type de format de paquet est également connu sous le nom de da­ta­gramme IP.

En 1974, l‘Institute of Elec­tri­cal and Elec­tro­nics Engineers (IEEE) a publié un document de recherche des in­for­ma­ti­ciens amé­ri­cains Robert Kahn et Vint Cerf qui décrivait un modèle de protocole pour une connexion mutuelle de paquets de réseau basé sur ARPANET, le pré­dé­ces­seur d’Internet. En plus du protocole de contrôle de trans­mis­sion TCP, le composant principal de ce modèle était le protocole IP, qui, en plus d’une couche d’abs­trac­tion spéciale, per­met­tait la com­mu­ni­ca­tion à travers dif­fé­rents réseaux physiques. Au cours des années suivantes, de plus en plus de réseaux de recherche ont été con­so­li­dés sur la base de cette com­bi­nai­son de pro­to­coles « TCP/IP », qui a fi­na­le­ment été spécifiée en 1981 comme standard dans le RFC 791.

IPv4 et IPv6 : les dif­fé­rences entre ces deux numéros de version

Toute personne qui se préoccupe des ca­rac­té­ris­tiques d’une adresse IP par­ti­cu­lière, par exemple, pour rendre les or­di­na­teurs adres­sables dans un réseau local, rencontre sans aucun doute les deux variantes IPv4 et IPv6. Cependant, il ne s’agit en aucun cas de la quatrième ou sixième gé­né­ra­tion du protocole IP, même si ce dernier a subi d’im­por­tants chan­ge­ments dans le passé. En fait, IPv4 est la première version of­fi­cielle d’Internet Protocol, alors que le numéro de version est uni­que­ment dû au fait que la quatrième version du protocole TCP est utilisée. IPv6 est le suc­ces­seur direct d’IPv4, le dé­ve­lop­pe­ment du protocole IPv5 a été in­ter­rompu pré­ma­tu­ré­ment pour des raisons éco­no­miques. Bien qu’il n’y ait pas eu d’autres versions depuis IPv4 et IPv6, le protocole IP a été révisé depuis sa première mention en 1974 (quand il n’existait pas in­dé­pen­dam­ment et faisait partie de TCP). L’accent a es­sen­tiel­le­ment été mis sur l’op­ti­mi­sa­tion du pa­ra­mé­trage de la connexion et de l’adressage. Par exemple, la longueur des bits des adresses hôte a été augmentée de 16 à 32 bits à un stade précoce, aug­men­tant ainsi l’espace d’adressage à environ quatre milliards de proxies possibles. Avec ses champs d’adresses 128 bits, l’IPv6 permet même d’afficher environ 340 sex­til­lions (un nombre avec 37 zéros) d’adresses dif­fé­rentes, répondant ainsi à la demande à long terme d’adresses Internet.

Comment est composé l’en-tête IP d’un da­ta­gramme ?

Comme nous l’avons déjà mentionné, le protocole IP garantit que chaque paquet de données soit précédé des pro­prié­tés struc­tu­relles im­por­tantes dans l’en-tête et assigné au protocole de transport approprié (gé­né­ra­le­ment TCP). La zone des données d’en-tête a été fon­da­men­ta­le­ment révisée pour la version 6, c’est pourquoi il est important de spécifier et dif­fé­ren­cier les en-têtes l’IPv4 et IPv6.

Structure de l’en-tête IPv4

Ainsi chaque en-tête IP commence toujours par une spé­ci­fi­ca­tion de 4 bits du numéro de version du protocole Internet, IPv4 ou IPv6. Il y a ensuite 4 autres bits sup­plé­men­taires, qui con­tien­nent des in­for­ma­tions sur la longueur de l’en-tête IP (IP header lenght), car celle-ci ne reste pas toujours constante. La longueur totale de l’en-tête est toujours calculée à partir de cette valeur mul­ti­pliée par 32 bits. Ainsi, la valeur la plus petite possible est 5 et cor­res­pond donc à une longueur d’en-tête de 160 bits (cor­res­pond à 20 octets) quand aucune option n’est ajoutée. Le maximum est la valeur 15, pour 480 bits (ce qui cor­res­pond à 60 octets). Les bits 8 à 15 (Type of Service) peuvent contenir des ins­truc­tions pour le trai­te­ment et la prio­ri­sa­tion du da­ta­gramme. Par exemple, l’hôte peut spécifier les points im­por­tants tels que notamment la fiabilité, le débit et le délai de trans­mis­sion des données.    La longueur totale indique la taille totale du paquet de données, en d’autres termes, la taille des données utiles est ajoutée à la longueur de l’en-tête. Le champ ayant une longueur de 16 bits, la limite maximale est de 65 635 octets. Le RFC 791 spécifie également que chaque hôte doit pouvoir traiter au moins 576 octets. Un da­ta­gramme IP peut être fragmenté ar­bi­trai­re­ment sur son chemin de l’hôte vers les routeurs ou autres pé­ri­phé­riques, mais les fragments ne doivent pas être plus petits que les 576 octets men­tion­nés. Les autres champs de l’en-tête IPv4 ont la sig­ni­fi­ca­tion suivante :

  • Iden­ti­fi­ca­tion : tous les fragments d’un da­ta­gramme ont le même numéro d’iden­ti­fi­ca­tion que celui qu’ils reçoivent de l’ex­pé­di­teur. En associant ce champ de 16 bits, l’hôte cible peut assigner des fragments in­di­vi­duels à un da­ta­gramme spé­ci­fique.

  • Flag (drapeau) : chaque en-tête IP contient 3 bits flag qui con­tien­nent des in­for­ma­tions et des di­rec­tives pour la frag­men­ta­tion. Le premier bit est réservé et a toujours la valeur 0, le second bit appelé « Don’t Fragment » indique si le paquet peut être fragmenté (0) ou non (1). Le dernier bit, appelé « More Fragments » indique si d’autres fragments suivent (1) ou si le paquet est complet ou s’il se termine par le fragment actuel (0).

  • Position du fragment : ce champ indique à l’hôte cible de l’endroit où se trouve un seul fragment, ce qui permet fa­ci­le­ment de compiler à nouveau l’ensemble du da­ta­gramme. La longueur de 13 bits signifie qu’un da­ta­gramme peut être divisé en un maximum de 8192 fragments.

  • Durée de vie (Time to Live, TTL) : pour s’assurer qu’un paquet ne migre pas d’un nœud à un autre dans le réseau in­dé­fi­ni­ment, il est envoyé avec une durée de vie maximale (Time to Live). La norme RFC spécifie l’unité en secondes pour ce champ de 8 bits, a noter que la durée de vie maximale est de 255 secondes. Pour chaque nœud de réseau passé, le TTL est réduit d’au moins 1. Si la valeur 0 est atteinte, le paquet de données est au­to­ma­ti­que­ment rejeté.

  • Protocole : le champ de protocole (8 bits) affecte le protocole de transport cor­res­pon­dant au paquet de données, par exemple, la valeur 6 re­pré­sente TCP ou la valeur 17 pour le protocole UDP. La liste of­fi­cielle de tous les pro­to­coles possibles est gérée et mise à jour par l’IANA (Internet Assigned Numbers Authority) depuis 2002.

  • Somme de contrôle de l’en-tête : le champ « Checksum » de 16 bits contient la somme de contrôle de l’en-tête. En raison de la di­mi­nu­tion du TTL par arrêt in­ter­mé­diaire, il faut le re­cal­cu­ler pour chaque nœud de réseau. L’exac­ti­tude des données de l’uti­li­sa­teur n’est pas vérifiée pour des raisons d‘ef­fi­ca­cité.

  • Adresse de la source et adresse de des­ti­na­tion : chaque 32 bits, soit 4 octets, sont réservés à l’adresse IP assignée de l’hôte source et cible. Ces adresses IP sont gé­né­ra­le­ment écrites sous la forme de 4 nombres décimaux séparés par des points. L’adresse la plus basse est 0.0.0.0, la plus haute est 255.255.255.255.

  • Options : le champ « options » étend le protocole IP avec des in­for­ma­tions sup­plé­men­taires qui ne sont pas fournies dans la con­cep­tion standard. Comme il ne s’agit que d’ajouts fa­cul­ta­tifs, le champ a une longueur variable, qui n’est limitée que par la longueur maximale de l’en-tête. Les options possibles sont, par exemple, « Security » (indique la con­fi­den­tia­lité d’un da­ta­gramme), « Record Route » (affiche tous les nœuds réseau passés, leur adresse IP pour tracer l’iti­né­raire du paquet) et « Time Stamp » (ajoute l’heure à laquelle un nœud en par­ti­cu­lier a été passé).

Structure de l’en-tête IPv6

L’en-tête du protocole IPv6, con­trai­re­ment à l’en-tête de son pré­dé­ces­seur, a une taille fixe de 320 bits (40 octets). Des in­for­ma­tions sup­plé­men­taires moins fré­quem­ment utilisées peuvent être ajoutées sé­pa­ré­ment entre l’en-tête standard et les données uti­li­sa­teur. Ces en-têtes d’extension (Extension Header) doivent être comparés avec le champ « options » du protocole IPv4 et peuvent être ajustés à tout moment sans avoir à modifier l’en-tête actuel. Cela vous permet notamment de dé­ter­mi­ner les chemins des paquets, de spécifier des in­for­ma­tions de frag­men­ta­tion ou d’initier une com­mu­ni­ca­tion cryptée via IPSec. Une somme de contrôle d’en-tête n’existe pas, au profit notamment de la per­for­mance. Comme pour IPv4, l’en-tête IP actuel commence par le numéro de version long de 4 bits de l’Internet Protocol. Le champ suivant « Classe de trafic » est équi­valent à l’entrée « Type of Service » dans l’ancienne variante de protocole. Ces 8 bits informent l’hôte cible sur le trai­te­ment qua­li­ta­tif du da­ta­gramme, comme dans la version pré­cé­dente, ce qui permet d’appliquer les mêmes règles. La nouveauté d’IPv6 est le FlowLabel ou iden­ti­fi­ca­teur de flux (20 bits), qui permet d’iden­ti­fier les flux de données à partir de paquets de donnés en continu. Ceci permet de réserver la bande passante et d’optimiser le routage. La liste suivante explique les in­for­ma­tions d’en-tête sup­plé­men­taires du protocole IP amélioré :

  • Taille des données uti­li­sa­teur : IPv6 transmet une valeur pour la taille des données uti­li­sa­teur trans­por­tées, y compris l’en-tête de l’extension (16 bits au total). Dans la version pré­cé­dente, cette valeur devait être sé­pa­ré­ment calculée en prenant la longueur totale moins la longueur de la ligne d‘en-tête.
  • En-tête suivant : le champ « Next Header » de 8 bits est l’équi­valent de la spé­ci­fi­ca­tion du protocole dans IPv4 et en tant que tel a repris sa fonction qui est l’af­fec­ta­tion du protocole de transport souhaité.
  • Nombre de sauts : le Hop Limit (8 Bit) définit le nombre maximum de stations in­ter­mé­diaires qu’un paquet peut traverser avant d‘être rejeté. Comme pour TTL dans IPv4, la valeur est réduite d’au moins 1 pour chaque nœud. 
  • Adresse de la source et adresse de des­ti­na­tion : la majorité des en-têtes Ipv6 con­tien­nent  les adresses de l’ex­pé­di­teur et du des­ti­na­taire. Comme men­tion­née pré­cé­dem­ment, ceux-ci ont une longueur de 128 bits (quatre fois la longueur des adresses IPv4). Il existe aussi des dif­fé­rences sig­ni­fi­ca­tives dans la notation standard. La version la plus récente d’Internet Protocol utilise des nombres hexa­dé­ci­maux et les divise en 8 blocs de 16 bits chacun. Les deux points sont utilisés au lieu des simples points pour la sé­pa­ra­tion. Une adresse IPv6 complète ressemble à ceci : 2001:0db8:85a3:08d3:1319:8a2e:0370:7344.

Comment fonc­tionne l’at­tri­bu­tion d’adresses IP ?

Pour que les da­ta­grammes dans leur en-tête puissent saisir les in­for­ma­tions élé­men­taires de l’adresse de la source et de l’adresse de des­ti­na­tion, ils doivent d’abord être affectés aux par­ti­ci­pants du réseau. Gé­né­ra­le­ment, il est important de faire la dis­tinc­tion entre les adresses IP internes et externes ou publiques. Trois plages d’adresses sont réservées aux premiers, qui sont utilisées pour la com­mu­ni­ca­tion dans les réseaux locaux :

  • 10.0.0.0 jusqu‘à 10.255.255.255
  • 172.16.0.0 jusqu‘à 172.31.255.255
  • 192.168.0.0 jusqu‘à 192.168.255.255

Le préfixe « fc00::/7 » est fourni pour les réseaux IPv6. Les adresses de ces réseaux ne sont pas ache­mi­nées sur Internet et peuvent donc être librement sé­lec­tion­nées et utilisées dans des réseaux privés ou des réseaux d’en­tre­prises. L’at­tri­bu­tion d’une adresse est effectuée ma­nuel­le­ment ou au­to­ma­ti­que­ment dès qu’un appareil se connecte au réseau, à condition que l’at­tri­bu­tion au­to­ma­tique d’adresse soit activée et qu’un serveur DHCP soit utilisé. A l’aide d’un masque de sous-réseau, un tel réseau local peut également être segmenté dans d’autres zones. Les adresses IP externes sont au­to­ma­ti­que­ment at­tri­buées par le four­nis­seur d’accès Internet respectif lors de la connexion Internet. Tous les appareils ou pé­ri­phé­riques sur Internet via un routeur commun accèdent au même IP externe. Ha­bi­tuel­le­ment, les four­nis­seurs at­tri­buent une nouvelle adresse Internet toutes les 24 heures, à partir d’une plage d’adresses qui leur a été assignée par l’IANA. Il en va de même pour l’arsenal quasi iné­pui­sable d’adresses IPv6, qui n’est que par­tiel­le­ment libérées pour une uti­li­sa­tion normale. En outre, cet arsenal n’est pas seulement divisé en adresses privées et publiques, mais il se distingue par des pos­si­bi­li­tés de clas­si­fi­ca­tion beaucoup plus po­ly­va­lentes dans ce que l’on nomme les domaines de validité et d’unicité (Address Scopes ou portée d’une adresse) :

  • Host Scope : l’adresse Loopback (de re­bou­clage) 0:0:0:0:0:0:0:1 peut être utilisée par un hôte pour s’envoyer des da­ta­grammes IPv6.
  • Link Local Scope : pour la con­nec­ti­vité IPv6, il est essentiel que chaque hôte puisse avoir sa propre adresse, même si  elle n’est valide que sur un réseau local. Cette adresse locale de liaison est iden­ti­fiée par le préfixe « fe80::/10 » et est né­ces­saire, par exemple, pour la com­mu­ni­ca­tion avec la pas­se­relle standard (routeur) afin de générer une adresse IP publique.
  • Unique Local Scope : il s’agit de la plage d’adresses sus­men­tion­née « fc00::/7 », réservée ex­clu­si­ve­ment à la con­fi­gu­ra­tion de réseaux locaux.
  • Site Local Scope : il s’agit d’un préfixe obsolète « fec0::/10 », qui a aussi été défini pour les réseaux locaux. Cependant, lors de la fusion de dif­fé­rents réseaux ou de l’éta­blis­se­ment de con­nexions VPN entre des réseaux numérotés avec des adresses locales, il y a eu des com­pli­ca­tions et la norme a été jugée obsolète.
  • Global Scope: chaque hôte qui veut se connecter à Internet a besoin de sa propre adresse publique. Ceci est obtenu par l’auto con­fi­gu­ra­tion, soit en utilisant le SLAAC (Stateless Address Au­to­con­fi­gu­ra­tion) soit le DHCPv6 (mécanisme d’at­tri­bu­tion des adresses).
  • Multicast-Scope : les nœuds de réseau, routeurs, serveurs et autres services réseau peuvent être combinés en groupes multicast à l’aide d’IPv6. Chacun de ces groupes a sa propre adresse, ce qui permet à un seul paquet d’atteindre tous les hôtes impliqués. Le préfixe « ff00::/8 » indique ainsi qu’une adresse de mul­ti­dif­fu­sion suit.

Comment le protocole IP règle la frag­men­ta­tion

Chaque fois qu’un paquet de données doit être envoyé via TCP/IP, la taille globale est au­to­ma­ti­que­ment vérifiée. Si cette valeur est su­pé­rieure à l’unité de trans­mis­sion maximale (MTU pour maximum trans­mis­sion unit) de l’interface réseau res­pec­tive, l’in­for­ma­tion est frag­men­tée, c’est-à-dire divisée en blocs de données plus petits. Cette tâche est exécutée soit par l’hôte ex­pé­di­teur (IPv6) soit par un routeur in­ter­mé­diaire (IPv4). Par défaut, le paquet est composé par le des­ti­na­taire, qui accède aux in­for­ma­tions de frag­men­ta­tion stockées dans l’en-tête IP ou dans l’en-tête d’extension. Dans des cas ex­cep­tion­nels, le réas­sem­blage peut aussi être pris en charge par un pare-feu, si ce dernier est configuré en con­sé­quence. 

Etant donné que l’IPv6 ne prévoit gé­né­ra­le­ment plus de frag­men­ta­tion et ne permet plus la frag­men­ta­tion du routeur, le paquet IP doit être de taille adéquate avant d’être envoyé. Si un routeur atteint un da­ta­gramme IPv6 qui dépasse l’unité de trans­mis­sion maximale, il le rejette et en informe l’ex­pé­di­teur sous la forme d’un message ICMPv6 de type 2 « Packet Too Big » (le paquet est trop vo­lu­mi­neux). L’ap­pli­ca­tion d’envoi de données peut main­te­nant créer des paquets plus petits et non frag­men­tés ou bien initier la frag­men­ta­tion. Ensuite, l’en-tête d’extension approprié est ajouté au paquet IP, ainsi l’hôte cible peut re­cons­ti­tuer les fragments in­di­vi­duels après réception.

Aller au menu principal