top of page
L'encapsulation IP

Afin de tenir compte des transformations et de la fragmentation, chaque datagramme se voit ajouté plusieurs champs, permettant de procéder au ré-assemblage ultérieur. Ce mécanisme, appelé l’encapsulation, permet de fournir les informations liées à chaque couche de passage du datagramme et de pouvoir faire en sorte d’acheminer correctement l’information vers son destinataire.

Encapsulation des données

Lors d’une transmission, les données traversent chaque couche du modèle TCP/IP de la machine émettrice et à chacune d’elles, une nouvelle information, appelée entête, est ajoutée au paquet de données. Il s’agit d’un ensemble de d’informations garantissant la transmission. Au niveau de la machine réceptrice, l’information transite alors par chacune des couches du modèle, l’entête est lue, puis supprimée. Ainsi, à la réception, le message se présente dans son état originel :

encaps.gif

A chaque couche, le paquet se transforme, puis qu’on lui ajoute de nouveaux entêtes dont les appellations changent au fil des couches :

  • Le paquet de données est appelé message, au niveau de la couche Application.

  • Le message après encapsulation, s’appelle un segment sur la couche Transport.

  • Le segment une fois encapsulé s’apparente à un datagramme.

  • Pour finir, à la couche Accès réseau, on parle de trame.

encapsulation.gif
transmissionpaquet.jpg

Au final, si l’on prend l’exemple d’une transmission d’un paquet depuis un client, à destination d’un serveur, on peut représenter le flux binaire et d’encapsulation de la façon suivante :Au final, si l’on prend l’exemple d’une transmission d’un paquet depuis un client, à destination d’un serveur, on peut représenter le flux binaire et d’encapsulation de la façon suivante :

Fragmentation et en-tête IP

Rappelez-vous le format du paquet IP. Les octets 5 à 8 de l’entête se nomment Identificateur, Flag et Fragment Offset. Nous avions dit que ces octets étaient réservés à la fragmentation (ou segmentation, comme vous voulez !).

 

Expliquons un peu mieux à quoi servent ces octets :

  • Le champ Identificateur (2 octets) : c’est un numéro d’identification inscrit par l’émetteur du paquet. Tous paquets émis par une même machine à l’attention d’un même destinataire porte un numéro d’identification différent. En cas de fragmentation, ce numéro d’identification est recopié dans tous les fragments du paquet d’origine. Ceci permettra au destinataire de repérer tous les fragments d’un même paquet et de reconstituer le paquet d’origine.

  • Le champ Flag (3 bits) : il permet de gérer la fragmentation :

    • bit 0: réservé – toujours positionné à 0

    • bit 1 : dit bit DF (Don’t Fragment) – S’il est positionné à 0, la fragmentation est autorisée – S’il est positionné à 1 la fragmentation est interdite. Dans ce dernier cas, si le paquet est trop volumineux pour être encapsulé dans une trame, dont le MTU est inférieur à la taille du paquet, la passerelle qui devrait réaliser la fragmentation retournera à l’émetteur du paquet un ICMP « Paquet non fragmentable ».

    • bit 2 : dit bit MF (More Fragment) – S’il est positionné à 0 il indique que le paquet reçu est le dernier du paquet d’origine. S’il est positionné à 1, il indique que le paquet reçu est un fragment du paquet d’origine mais pas le dernier fragment. Un paquet qui n’a pas été fragmenté aura donc toujours ce bit à 0.

  • Le champ Fragment Offset : indique la position du premier octet de données du paquet reçu dans la partie donnée du paquet d’origine. Le premier fragment à donc toujours la valeur 0 (position du premier octet), de même que tous paquets non fragmentés.

bottom of page