Principes d'encapsulation et décapsulation
L'encapsulation/décapsulation est l'un des concepts importants de la superposition de protocoles sur Internet. La figure ci-dessous montre ce concept pour le petit inter-réseau discuté plus tôt.
Nous n'avons pas montré les couches pour les commutateurs de couche liaison car aucune encapsulation/décapsulation ne se produit dans ce périphérique. Dans la figure ci-dessus, nous montrons l'encapsulation dans l'hôte source, la décapsulation dans l'hôte de destination et l'encapsulation et la décapsulation dans le routeur.
Encapsulation sur l'hôte source
A la source, nous n'avons que l'encapsulation
- Au niveau de la couche application, les données à échanger sont appelées "message". Un message ne contient normalement pas d'en-tête ou de fin de message, mais si c'est le cas, on appelle l'ensemble le message. Le message est transmis à la couche transport.
- La couche de transport prend le message comme charge utile, c'est-à-dire la charge dont la couche de transport doit s'occuper. Elle ajoute à la charge utile l'en-tête de la couche transport, qui contient les identifiants des programmes d'application source et de destination qui veulent communiquer, ainsi que d'autres informations nécessaires à l'acheminement de bout en bout du message, telles que les informations nécessaires au contrôle du flux, des erreurs ou de la congestion. Le résultat est le paquet de la couche transport, qui est appelé segment (dans TCP) et datagramme utilisateur (dans UDP). La couche transport transmet ensuite le paquet à la couche réseau.
- La couche réseau prend le paquet de la couche transport comme données ou charge utile et ajoute son propre en-tête à la charge utile. L'en-tête contient les adresses des hôtes source et destination et d'autres informations utilisées pour le contrôle des erreurs de l'en-tête, les informations de fragmentation, etc. Le résultat est le paquet de la couche réseau, appelé datagramme. La couche réseau transmet ensuite le paquet à la couche liaison de données.
- La couche liaison de données prend le paquet de couche réseau comme données ou charge utile et ajoute son propre en-tête, qui contient les adresses de couche liaison de l'hôte ou du prochain saut (le routeur). Le résultat est le paquet de couche liaison, appelé trame. La trame est transmise à la couche physique pour la transmission.
Décapsulation et encapsulation au niveau du routeur
Au niveau du routeur, nous avons à la fois la décapsulation et l'encapsulation car le routeur est connecté à deux ou plusieurs réseaux.
- Une fois l'ensemble de bits transmis à la couche liaison de données, cette couche décapsulation le datagramme de la trame et le transmet à la couche réseau.
- La couche réseau inspecte uniquement les adresses de source et de destination dans l'en-tête du datagramme et consulte sa table de transfert pour trouver le prochain saut auquel le datagramme doit être livré. Le contenu du datagramme ne doit pas être modifié par la couche réseau du routeur, à moins qu'il ne soit nécessaire de fragmenter le datagramme s'il est trop gros pour être transmis par le lien suivant. Le datagramme est ensuite transmis à la couche liaison de données de la liaison suivante.
- La couche liaison de données de la liaison suivante encapsule le datagramme dans une trame et le transmet à la couche physique pour transmission.
Décapsulation sur l'hôte de destination
Au niveau de l'hôte de destination, chaque couche décapsule uniquement le paquet reçu, supprime la charge utile et transmet la charge utile au protocole de couche supérieure suivante jusqu'à ce que le message atteigne la couche d'application. Il faut dire que la décapsulation dans l'hôte implique une vérification d'erreur.