Le protocole IP fait partie de la couche Internet de la suite de protocoles TCP/IP. C'est un des protocoles les plus importants d'Internet car il permet l'élaboration et le transport des datagrammes IP (les paquets de données), sans toutefois en assurer la « livraison ». En réalité, le protocole IP traite les datagrammes IP indépendamment les uns des autres en définissant leur représentation, leur routage et leur expédition.
Le protocole IP détermine le destinataire du message grâce à 3 champs :
Les données circulent sur Internet sous forme de datagrammes (on parle aussi de paquets). Les datagrammes sont des données encapsulées, c'est-à-dire des données auxquelles on a ajouté des en-têtes correspondant à des informations sur leur transport (telles que l'adresse IP de destination).
Les données contenues dans les datagrammes sont analysées (et éventuellement modifiées) par les routeurs permettant leur transit.
Voici ce à quoi ressemble un datagramme :
| 32 bits | ||||
|---|---|---|---|---|
| Version
(4 bits) | Longueur d'en-tête
(4 bits) | Type de service
(8 bits) | Longueur totale
(16 bits) | |
| Identification
(16 bits) | Drapeau
(3 bits) | Décalage fragment
(13 bits) | ||
| Durée de vie
(8 bits) | Protocole
(8 bits) | Somme de contrôle en-tête
(16 bits) | ||
| Adresse IP source
(32 bits) | ||||
| Adresse IP destination
(32 bits) | ||||
| Données | ||||
Voici la signification des différents champs :
Comme nous l'avons vu précédemment, la taille d'un datagramme maximale est de 65536 octets. Toutefois cette valeur n'est jamais atteinte car les réseaux n'ont pas une capacité suffisante pour envoyer de si gros paquets. De plus, les réseaux sur Internet utilisent différentes technologies, si bien que la taille maximale d'un datagramme varie suivant le type de réseau.
La taille maximale d'une trame est appelée MTU (Maximum Transfer Unit), elle entraînera la fragmentation du datagramme si celui-ci a une taille plus importante que le MTU du réseau.
| Type de réseau | MTU (en octets) |
|---|---|
| Arpanet | 1000 |
| Ethernet | 1500 |
| FDDI | 4470 |
La fragmentation d'un datagramme se fait au niveau des routeurs, c'est-à-dire lors de la transition d'un réseau dont le MTU est important à un réseau dont le MTU est plus faible. Si le datagramme est trop grand pour passer sur le réseau, le routeur va le fragmenter, c'est-à-dire le découper en fragments de tailles inférieures au MTU du réseau et de telle façon que la taille du fragment soit un multiple de 8 octets.

Le routeur va ensuite envoyer ces fragments de manière indépendante et les réencapsuler (ajouter un en-tête à chaque fragment) de telle façon à tenir compte de la nouvelle taille du fragment. De plus, le routeur ajoute des informations afin que la machine de destination puisse réassembler les fragments dans le bon ordre. Rien ne dit toutefois que les fragments arriveront dans le bon ordre, étant donné qu'ils sont acheminés indépendamment les uns des autres.
Pour tenir compte de la fragmentation, chaque datagramme possède plusieurs champs permettant leur réassemblage :
Le routage IP fait partie intégrante de la couche IP de la suite TCP/IP. Le routage consiste à assurer l'acheminement d'un datagramme IP à travers un réseau en empruntant le chemin le plus court. Ce rôle est assuré par des machines appelées routeurs, c'est-à-dire des machines reliées (reliant) au moins deux réseaux.
Pour plus d'informations le mieux est de se reporter à la RFC 791 expliquant de manière détaillée le protocole IP :
Découvrez ici tout ce qui vous attend dans la nouvelle version du célèbre système d'exploitation.