IP
Protocole IP
Lors d'une communication entre deux postes, le flux de données provenant de la couche transport — niveau 4 du modèle OSI — (par exemple des segments TCP) est encapsulé dans des paquets par le protocole IP lors de leur passage au niveau de la couche réseau. Ces paquets sont ensuite transmis à la couche de liaison de données — niveau 2 du modèle OSI — afin d'y être encapsulés dans des trames (par exemple Ethernet).
Lorsque deux terminaux communiquent entre eux via ce protocole, aucun chemin pour le transfert des données n'est établi à l'avance : il est dit que le protocole est « non orienté connexion ». Par opposition, pour un système comme le réseau téléphonique commuté, le chemin par lequel va passer la voix (ou les données) est établi au commencement de la connexion : le protocole est « orienté connexion ».
Services délivrés
Les protocoles IP assurent l'acheminement au mieux (best-effort delivery) des paquets. Ils ne se préoccupent pas du contenu des paquets, mais fournissent une méthode pour les mener à destination.
Fiabilité
Les protocoles IP sont considérés comme « non fiables ». Cela ne signifie pas qu'ils n'envoient pas correctement les données sur le réseau, mais qu'ils n'offrent aucune garantie pour les paquets envoyés sur les points suivants :
corruption de données
ordre d'arrivée des paquets (un paquet A peut être envoyé avant un paquet B, mais le paquet B peut arriver avant le paquet A)
perte, destruction ou duplication des paquet
Les datagrammes ( ou paquets) IP
Voici la signification des différents champs :
Version (4 bits) : il s'agit de la version du protocole IP que l'on utilise (actuellement on utilise la version 4 IPv4) afin de vérifier la validité du datagramme. Elle est codée sur 4 bits.
Longueur d'en-tête, ou IHL pour Internet Header Length (4 bits) : il s'agit du nombre de mots de 32 bits constituant l'en-tête (nota : la valeur minimale est 5). Ce champ est codé sur 4 bits.
Type de service (8 bits) : il indique la façon selon laquelle le datagramme doit être traité.
Longueur totale (16 bits): il indique la taille totale du datagramme en octets. La taille de ce champ étant de 2 octets, la taille totale du datagramme ne peut dépasser 65536 octets. Utilisé conjointement avec la taille de l'en-tête, ce champ permet de déterminer où sont situées les données.
Identification, drapeaux (flags) et déplacement de fragment sont des champs qui permettent la fragmentation des datagrammes.
Durée de vie appelée aussi TTL, pour Time To Live (8 bits) : ce champ indique le nombre maximal de routeurs à travers lesquels le datagramme peut passer. Ainsi ce champ est décrémenté à chaque passage dans un routeur, lorsque celui-ci atteint la valeur critique de 0, le routeur détruit le datagramme. Cela évite l'encombrement du réseau par les datagrammes perdus.
Protocole (8 bits) : ce champ, en notation décimale, permet de savoir de quel protocole est issu le datagramme :
ICMP : 1
IGMP : 2
TCP : 6
UDP : 17
Somme de contrôle de l'en-tête, ou en anglais header checksum (16 bits) :
Adresse IP source (32 bits) : ce champ représente l'adresse IP de la machine émettrice, il permet au destinataire de répondre
Adresse IP destination (32 bits) : adresse IP du destinataire du message