IPv4
IPv4 (Internet Protocol version 4) est la première version d'Internet Protocol (IP) à avoir été largement déployée, et qui forme encore en 2025 la base de la majorité des communications sur Internet, par rapport à l'IPv6. Elle est décrite dans la Modèle:RFC de Modèle:Date, remplaçant la Modèle:RFC, définie en Modèle:Date.
Chaque interface d'un hôte IPv4 se voit attribuer une ou plusieurs adresses IP codées sur Modèle:Unité. Au maximum 4 294 967 296, soit 232 adresses peuvent donc être attribuées simultanément en théorie (en pratique, un certain nombre ne sont pas utilisables).
L'épuisement des adresses IPv4 a conduit au développement d'une nouvelle version d'IP, IPv6, et à la transition d'IPv4 vers IPv6 afin d'adopter cette nouvelle version. Le manque d'adresse IPv4 est dans un premier temps contourné grâce à l'utilisation de techniques de traduction d'adresses (NAT) ainsi que par l'adoption du système CIDR. Le nombre d'adresses IP Version 4 publiques est arrivé officiellement à saturation le Modèle:Date.
Représentation d'une adresse IPv4
Une adresse IPv4 est représentée sous la forme de quatre nombres entiers séparés par des points comme 193.43.55.67
. Chacun des nombres représente un octet. La plage d'attribution s'étend de 0.0.0.0 à 255.255.255.255, sachant qu'il existe des contraintes empêchant l'utilisation de certaines adresses (réservée, masque, broadcast, etc.)
En-tête IPv4
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Version d'IP | Longueur de l'en-tête | Type de service | Longueur totale | ||||||||||||||||||||||||||||
Identification | Indicateur | Modèle:Lang | |||||||||||||||||||||||||||||
Durée de vie | Protocole | Somme de contrôle de l'en-tête | |||||||||||||||||||||||||||||
Adresse source | |||||||||||||||||||||||||||||||
Adresse destination | |||||||||||||||||||||||||||||||
Option(s) + remplissage |
Version (Modèle:Unité) :
- Version d'IP utilisée. Ici, 4.
Longueur de l'en-tête ou IHL (pour Modèle:Lang) (Modèle:Unité) :
- Ce champ indique en binaire sur 4 bits la longueur totale de l'en-tête et cette longueur est donnée, non pas en bit, ni en octet, mais en mots de Modèle:Unité (=4 octets). La longueur donnée correspondrait au nombre de lignes du schéma précédent. La valeur est comprise entre 5 et 15, car il y a Modèle:Unité minimum et on ne peut dépasser Modèle:Unité d'option. La longueur maximale d'un en-tête est donc de 15*4 octets soit Modèle:Unité.
Type de service ou ToS (pour Modèle:Lang) (Modèle:Unité) :
- Ce champ permet de distinguer différentes qualités de service différenciant la manière dont les paquets sont traités. Composé de Modèle:Unité de priorité (donc 8 niveaux) et trois indicateurs permettant de différencier le débit, le délai ou la fiabilité.
- Il se décline au fil des RFC. Au départ (Modèle:RFC) nous avions :
Bits 0-2: Precedence. Bit 3: 0 = Normal Delay, 1 = Low Delay. Bits 4: 0 = Normal Throughput, 1 = High Throughput. Bits 5: 0 = Normal Reliability, 1 = High Reliability. Bit 6-7: Reserved for Future Use.
- Le champ DSCP généralise ensuite le champ TOS (Modèle:RFC, Modèle:Date-) :
Bits 0-5: DSCP (Differentiated Services Code Point) Bits 6-7: CU (Currently Unused)
- En Modèle:Date- (Modèle:RFC) le champ CU est utilisé pour la gestion des congestions<ref>cf. registres DSCP par l'IANA</ref> :
Bits 0-5: DSCP (Differentiated Services Code Point) Bits 6-7: ECN (Explicit Congestion Notification)
Longueur totale en octets ou Modèle:Lang (Modèle:Unité) :
- Nombre total d'octets du datagramme, en-tête IP comprise. Donc, la valeur maximale est Modèle:Unité.
Identification (Modèle:Unité) :
- Numéro permettant d'identifier les fragments d'un même paquet.
Indicateurs ou Modèle:Lang (Modèle:Unité) :
- (Premier bit [bit de poids fort]) actuellement inutilisé.
- (Deuxième bit) DF (Modèle:Lang) : lorsque ce bit est positionné à 1, il indique que le paquet ne peut pas être fragmenté. Si le routeur ne peut acheminer ce paquet (taille du paquet supérieure à la MTU), il est alors rejeté.
- (Troisième bit) MF (Modèle:Lang) : quand ce bit est positionné à 1, on sait que ce paquet est un fragment de données et que d'autres doivent suivre. Quand il est à 0, soit le fragment est le dernier (et dans ce cas le fragment offset est différent de 0), soit le paquet n'a pas été fragmenté.
- Position du fragment par rapport au paquet de départ, en nombre de mots de Modèle:Unité. Lorsque la valeur indiquée est 0, il s'agit du premier fragment.
Durée de vie ou TTL (pour Modèle:Lang) (Modèle:Unité) :
- Initialisé par l'émetteur, ce champ est décrémenté d'une unité généralement à chaque saut de routeur. Quand TTL = 0, le paquet est abandonné et un message ICMP est envoyé à l'émetteur pour information.
Protocole (Modèle:Unité) :
- Numéro du protocole au-dessus de la couche réseau : TCP = 6, UDP = 17, ICMP = 1.
- Ce champ permet d'identifier le protocole utilisé par le niveau supérieur :
- Modèle:Lang ou ICMP est repéré par les bits 00000001, qu'on écrit souvent en hexadécimal avec 01
- Modèle:Lang ou TCP par les bits 00000110, soit 06
- Modèle:Lang ou UDP par les bits 00010001, soit 11 en hexadécimal
Somme de contrôle de l'en-tête ou Modèle:Lang (Modèle:Unité) :
- Complément à un de la somme complémentée à un de tout le contenu de l'en-tête afin de détecter les erreurs de transfert. Si la somme de contrôle est invalide, le paquet est abandonné sans message d'erreur.
Adresse source (Modèle:Unité) :
- Adresse IP de l'émetteur sur Modèle:Unité.
Adresse destination (Modèle:Unité) :
- Adresse IP du récepteur Modèle:Unité.
Options (0 à Modèle:Unité par mots de Modèle:Unité) :
- Facultatif.
[[Remplissage (cryptographie)|Remplissage ou Modèle:Lang]] :
- Champ de taille variable comprise entre 0 et Modèle:Unité. Il permet de combler le champ option afin d'obtenir un en-tête IP multiple de Modèle:Unité. La valeur des bits de bourrage est 0.
Fragmentation
Sur une interface déterminée, une trame a une taille maximale, appelée Modèle:Lang ou MTU. Lorsque la longueur du paquet (datagramme) est supérieure, l'information sera fragmentée. La taille maximum supportée par IPv4 (car codée sur Modèle:Unité) est de Modèle:Unité mais les réseaux ne prennent généralement pas en charge de trames de telles longueurs, en général on trouve des MTU de l'ordre de Modèle:Unité (Ethernet).