Le transport des datagrammes IP par différents réseaux physiques
Le mécanisme d'encapsulation
Le mécanisme de fragmentation
La longueur théorique maximale d'un datgramme IP est de 65535 octets. En pratique la taille maximale du datagramme est limitée par la longueur maximale des trames transportées sur le réseau physique.
La fragmentation du datagramme internet devient alors nécessaire dès que sa taille ne lui permet plus d'être directement transporté dans une seule trame physique.
Les modules internet des équipements prennent en charge le découpage et le réassemblage des datagrammes.
Gestion de la fragmentation
Dans l'en-tête du datagramme les informations suivantes sont utilisées pour gérer la fragmentation :
-L'indicateur bit ''Dernier Fragment'', indique au récepteur lors de sa remise à zéro qu'il s'agit du dernier fragment.
-Le champ ''indentification'' (16 bits) sert à distinguer les fragments d'un datagramme de ceux d'un autre datagramme.
-Le champ ''fragment offset'' (12 bits) indique au récepteur la position du fragment dans le datagramme original.
Exemple pour fragmenter un long datagramme, un module internet crée par exemple deux nouveaux datagrammes formés de la façon suivante :
1 - Le contenu de l'entête du datagramme original est recopié dans les deux nouveaux en-têtes.
2 - Les données du datagramme original sont divisées en deux portions, dont la (ou les premières) est multiple de 8 octets. La taille de la seconde (donc ici la dernière) portion n'est pas nécessairement un multiple de 8 octets.
3 - Pour le premier datagramme issu de la fragmentation :
- Le bit ''Dernier fragment'' est basculé à 1
- Le champ ''Longueur totale'' est renseigné avec la taille du datagramme.
- Le champ ''fragment offset'' est renseigné avec la valeur du même champ du datagramme original plus celle de la position du fragment reçu dans ce datagramme. Ce champ est calculé de la même façon pour tous les datagrammes issus d'une fragmentation.
4 - Pour le second datagramme
- Le bit ''Dernier fragment'' est placé à la même valeur que celui du datagramme original.
- Le champ ''fragment offset'' est renseigné avec la valeur du même champ du datagramme original plus celle de la position du fragment reçu dans ce datagramme.
Pour réassembler les fragments d'un datagramme internet, le module destination réassemble les datagrammes dont les valeurs des quatre champs suivants sont identiques :
- Identification
- @IP source
- @IP destination
- Protocole
La recombinaison est réalisée en replaçant la portion de données contenue dans chaque fragment dans un tampon à la position relative indiquée par le champ ''Fragment Offset'' lu dans l'entête.
Le dernier fragment aura son bit ''Dernier fragment'' à zéro.
Exemple de fragmentation
Présentation du datagramme IP
Les fonctions de la couche IP
Les fonctions d'IP sont les suivantes :
- Acheminement des datagrammes à travers les réseaux IP.
- Fragmentation et réassemblage des paquets, pour adapter les datagrammes aux caractéristiques des réseaux physiques.
- Technique de destruction des paquets ayant transités trop longtemps sur un réseau.
- Multiplexage de protocoles.
- Routage dynamique et auto-adaptatif.
- Nombreuses options possibles
Ce que ne fait pas IP:
- Pas de garantie d'acheminement.
- Pas de contrôle d'erreur
- Pas de contrôle de flux
- Pas de reséquencement des données.