Si vous voyez cette note
c'est que votre navigateur refuse les scripts Java.

Des notes destinées à éclaircir certains points
ou à apporter d'intéressants suppléments d'information
sont programmées pour apparaître lorsqu'on passe le curseur de souris
sur des icônes telles que
          

Pour des raisons de sécurité, certains navigateurs
bloquent l'apparition de ces notes (programmées en JavaScript)
.

Des précieuses informations, aidant à comprendre,
à se repérer, à étendre ses connaisances sont alors perdues.
Ainsi que les réponses aux exercices,


AUTORISEZ DONC VOTRE NAVIGATEUR A OUVRIR CES SCRIPTS !


Ce site n'a aucun but commercial !
Il n ' installe pas de COOKIES

TCP/IP

7° Fragmentation des datagrammes
Sommaire

du Site
Choix par Menu ou Parcours Séquentiel
 
Avant : Entêtes IP
  
Suite : ARP - RARP


 

Pourquoi fragmenter les datagrammes (paquets) ?

La longueur des trames circulant dans un réseau
a généralement une limite dépendant surtout de sa constitution matérielle.

Le tableau ci-dessus donne les longueurs maximales des datagrammes IP pour divers types de réseaux.

Ces longueurs s'appellent MTU : Maximum Transfer Unit
Il est tenu compte de la longueur des entêtes de trames liaison qui encapsulent le datagramme et de la synchronisation.

Type de réseau
MTU ( Maximum Transfer Unit ) en octets
ETHERNET
1500
IEEE 802.3
1492
TOKEN RING
4 440 à 17 940
FDDI
4 352
IEEE 802.4
8 166
SMDS
9 180
X.25
1 007
Il ne faut pas confondre la fragmentation des paquets et le fractionnement du flux de données.

Lorsqu'un hôte envoie un flot de données ( un fichier par exemple ) dans un réseau,
il doit préalablement le fractionner en morceaux appelés tantôt trames, paquets, datagrammes,
suivant la couche à laquelle on se place.

Cette fragmentation a lieu au niveau de la couche 4.
Nous la verrons avec TCP et UDP.

Acteurs des opérations de fragmentation et de défragmentation

  • La fragmentation est mise en œuvre par les routeurs car ils sont seuls à pouvoir connaître les caractéristiques matérielles des réseaux auxquels ils sont reliés, jamais par les stations du réseau.

  • Les routeurs n'assemblent pas les datagrammes fragmentés. Cette opération est implémentée par le nœud de destination.

  • La fragmentation incombe à la couche de niveau 4.
    Voir sa mise en oeuvre pour TCP / IP dans la page consacrée à TCP :

Paramètres de fragmentation

Les paquets d'information fractionnés s'éparpillent dans le réseau et peuvent arriver dans le désordre , il est donc nécessaire d'indiquer sur chaque datagramme des quel "morceau" il s'agit.

Ces indications sont portées par l'entête IP que nous répétons ici.

Elles se composent des bits O - DF - MF et du mot de 13 bits OFFSET DU FRAGMENT

Champ
Information
O
Toujours zéro
DF
Dont' Fragment Ne pas fragmenter ce paquet
MF
More Fragments : ce datagramme n'est pas le dernier fragment du datagramme initial.
OFFSET DU FRAGMENT
Voir explication ci-dessous


Le champ OFFSET FRAGMENT
contient, pour chaque fragment,
le décalage entre le premier octet de données du datagramme non fragmenté
et le premier octet de données fragmentées qu'il transporte.

Ce décalage est zéro pour le premier fragment puisqu'il contient le début de l'ensemble des données à transmettre.

Cependant, la longueur de ce champ est de 13 bits, il ne permet d'écrire que les nombres entiers de 0 à 8192.
Or, la longueur maximale d'un datagramme s'écrit sur 16 bits et peut donc atteindre 65 535 octets.
On est donc convenu que le nombre écrit dans le champ " décalage de fragment "
indiquerait non pas un nombre d'octets mais un nombre de mots de 8 octets.
Ainsi si ce champ contient le nombre 100, le décalage indiqué est de 800 octets.
Lors de la fragmentation, il faudra donc faire en sorte que la longueur des données du datagramme fragment
soit un multiple de 8 octets.

Exemple.

Un datagramme est envoyé d'un réseau Token Ring à un hôte du réseau IEEE 802.4 à travers les routeurs A B.

La taille des datagrammes envoyés par les hôtes du réseau A est généralement égale à la MTU du réseau de départ,
soit 4440 pour A.
Supposons donc qu'un datagramme de 4440 octets soit envoyé par un hôte du réseau Token Ring
avec un champ d'identification égal à 500 par exemple.

Le routeur A fractionnera cette datagramme en fragments de dimension égale ou inférieure
à la MTU du réseau ETHERNET soit 1500 octets ou moins.
Nous allons examiner les caractéristiques des fragments qui en résultent.

Si on ne se sert pas des options,
l'en tête IP compte 20 octets.

La quantité de données à transmettre
est donc de 4440 - 20 = 4420 octets.

La quantité maximale d'octets
que peut transmettre, en un seul datagramme,
le réseau Ethernet est 1500 - 20 = 1480 octets.

Mais, pour tous les datagrammes
sauf le dernier, la quantité d'octets envoyés
doit être un multiple de 8.
Ceci afin de pouvoir remplir le champ
" décalage " comme vu plus haut.

Il se trouve que 1480
est un multiple de 8 : 1480 = 185 * 8.

Dans le cas contraire, nous aurions retenu le multiple de 8 immédiatement inférieur.

Divisons 4420 par 1480, résultat :
4420 = 2 * 1480 +1460

Nos utiliserons donc deux datagrammes transportant 1480 octets puis un dernier transportant 1460 octets.

Les fragments obtenus ne sont pas assemblés avant de traverser le réseau terminal IEEE 802.4
bien que sa MTU soit nettement plus élevée.
Leur assemblage interviendra à leur arrivée dans la couche IP de l'hôte de destination.
Il a tous les éléments en main pour le faire : le champ identification pour repérer les fragments d'un même datagramme,
les décalages pour les assembler dans l'ordre, le champ MF pour reconnaître le dernier fragment.

Choix par Menu ou Parcours Séquentiel
 
Avant : Entêtes IP
  
Suite : ARP - RARP

 




Retour à "Sommaire Signaux"
Retour à "Sommaire Transmission Signaux"
Retour à "Sommaire Réseaux"

Sommaire

du Site