L'IPv4 est en service depuis 1983, date à laquelle le protocole a été mis en place sur le réseau ARPANET (Advanced Research Projects Agency Network), l'ancêtre d'Internet. Internet repose essentiellement sur l'IPv4, qui est toujours le protocole de couche réseau le plus répandu.
Un paquet IPv4 comporte deux parties :
- En-tête IP – indique les caractéristiques du paquet.
- Données utiles – contient les informations du segment de couche 4 et les données en elles-mêmes.
Comme le montre la figure, un en-tête de paquet IPv4 comporte des champs contenant des informations importantes sur le paquet. Ces champs contiennent des nombres binaires, examinés par le processus de couche 3. Les valeurs binaires de chaque champ indiquent divers paramètres du paquet IP.
Les champs importants de l'en-tête IPv4 sont les suivants :
- Version – contient une valeur binaire de 4 bits indiquant la version du paquet IP. Pour les paquets IPv4, ce champ est toujours 0100.
- Services différenciés – anciennement appelé champ de type de service, le champ Services différenciés est un champ de 8 bits utilisé pour définir la priorité de chaque paquet. Les 6 premiers bits définissent la valeur DCSP (Differentiated Services Code Point) qui est utilisée par un mécanisme de qualité de service. Les 2 derniers bits identifient la valeur de notification explicite de congestion qui peut être utilisée pour empêcher l'abandon de paquets pendant les périodes d'encombrement du réseau.
- Time-to-live (durée de vie, TTL) – contient une valeur binaire de 8 bits utilisée pour limiter la durée de vie d'un paquet. Cette durée est indiquée en secondes mais est généralement appelée « nombre de sauts ». L'expéditeur du paquet définit la valeur de durée de vie initiale et celle-ci diminue de un chaque fois que le paquet est traité par un routeur, ou effectue un saut. Si la valeur du champ TTL (durée de vie) arrive à zéro, le routeur rejette le paquet et envoie un message de dépassement de délai ICMP à l'adresse IP source. La commande traceroute utilise ce champ pour identifier les routeurs utilisés entre la source et la destination.
- Protocole – cette valeur binaire de 8 bits indique le type de données utiles transportées par le paquet, ce qui permet à la couche réseau de transmettre les données au protocole de couche supérieure approprié. Les valeurs habituelles sont notamment ICMP (1), TCP (6) et UDP (17).
- Adresse IP source – contient une valeur binaire de 32 bits qui représente l'adresse IP source du paquet.
- Adresse IP de destination – contient une valeur binaire de 32 bits qui représente l'adresse IP de destination du paquet.
Les deux champs les plus souvent utilisés sont les adresses IP source et de destination. Ces champs indiquent d'où vient et où va le paquet. Généralement, ces adresses ne changent pas lors du déplacement de la source vers la destination.