MOOC:Compagnon Act20-s7
From Livre IPv6
Activité 20 : Notion de paquet et d'acheminement
L'Internet est une interconnexion de réseaux physiques. Pour réaliser cette interconnexion, une couche est superposée à chaque noeud. Cette couche dite de réseau met en oeuvre le protocole IP afin de rendre le service de connectivité qui consiste à transférer des paquets d'une source à la destination. Un protocole se définit comme les règles et le format des échanges entre au moins 2 entités communicantes en vue de réaliser une action ou de rendre un service. Nous avons vu dans la séquence précédente la notion d'adressage qui est indispensable pour identifier et localiser les noeuds du réseau. Nous allons dans cette séquence apprendre comment les communications de données sont mises en oeuvre dans l'Internet.
Le protocole de réseau IP
Le protocole IP (Internet Protocol) a pour fonction d'organiser le transfert de données d’un point d'extrémité à un autre d'un réseau. Les points d'extrémités sont les équipements terminaux tels que les stations des clients et les serveurs. Ils génèrent et reçoivent les paquets IP. Ils sont les sources et les destinations du trafic de données.
Tout nœud connecté peut communiquer avec un autre nœud de l'Internet en utilisant le protocole IP sans qu'il ait besoin de changer le format de l'unité de transfert, à savoir le paquet IP. IP est en quelque sorte le langage commun de tous les nœuds de l’Internet. Les points importants du fonctionnement d'IP sont les suivants :
- transparence des données <plutôt que principe du bout-en-bout> : aucun nœud intermédiaire ne traite de l’information transmise ; seuls l’émetteur et le destinataire de l’information sont concernés ;
- relayage de paquets en mode saut par saut : un paquet est transmis à un noeud qui le retransmet au noeud suivant et ainsi de suite, jusqu'à l'hôte destination ; ainsi le protocole IP assure un service de transfert des paquets de bout-en-bout ;
- acheminement en mode message (datagramme) : cela signifie que chaque paquet dispose des éléments nécessaires et suffisants pour son acheminement à travers le réseau. Chaque paquet est traité indépendamment des autres paquets. Il comporte l'adresse IP source et l'adresse IP destination.
La notion de paquet est essentielle dans le fonctionnement de l'Internet. Nous allons par la suite définir la notion de paquet.
Notion de paquet
Les données échangées dans l'internet sont découpées en blocs de taille limitée appelés paquets. Ce bloc de données est une séquence d'octets qui est transférée sans modification de son contenu d'une source à la destination finale selon le principe du bout-en-bout.
Ainsi lorsqu'un fichier doit être transféré, celui-ci va être découpé en paquets et à destination, les paquets seront ré-assemblés pour reconstituer le fichier. La raison d'un transfert en mode paquet trouve sa motivation dans le partage efficace des ressources du réseau. Dans les systèmes de communications, la ressource principale est la capacité d'écoulement des liens qui est appelée abusivement la bande passante. La bande passante normalement s'exprime en Hertz. Par abus de langage, en numérique elle s'exprime par un débit et l'unité est le bit/s.
Quand il existe des communications entre différentes paires de noeuds (sources et destinations) reliés entre eux par une suite de liens. La problématique porte sur le partage des ressources entre ces noeuds qui communiquent en même temps. Au niveau le plus fin, la question revient à définir comment partager un lien entre des communications simultanées. Il s'agit de la fonction de multiplexage. La figure 1 illustre la notion de multiplexage. Sur cette figure, 3 communications sont multiplexées sur un même lien.
En numérique le partage s'effectue en fonction du temps. La bande passante est découpée dans le temps. A un instant donné, un utilisateur utilise toute la ressource disponible mais pour une période de temps limitée. L'unité de partage élémentaire est donc l'intervalle de temps. Sachant que le support a un débit exprimé bit/s, l'intervalle de temps est une unité de temps, le produit de l'intervalle de temps et du débit donne l'équivalent en terme de quantité de données. D'un point de vue pratique l'intervalle de temps est occupé par la transmission d'un bloc d'octets. Le temps de transmission d'un bloc d'octets est équivalent à l'intervalle de temps.
Si le principe du découpage de la ressource est posé, il reste la politique d'attribution des intervalles de temps à définir. Le transfert de données en informatique présente un caractère très sporadique. Des périodes d'activités sont suivies de périodes de silence. En pendant les périodes d'activités, il est souhaitable d'obtenir un débit important afin de limiter le temps de transfert du fichier.
Dans ces conditions, l'attribution dynamique des intervalles de temps aux communications qui sont en activités représente une solution efficace. Les intervalles de temps qui pourraient être attribuées au communications inactives sont récupérés par celles qui sont actives. En fait une communication en période de silence n'utilise aucune ressource.
Comme nous l'avons préalablement indiqué, l'intervalle de temps se présente sous la forme d'un bloc d'octets de taille limitée. Ce bloc est constitué par les données produites par la source. Ce bloc de données est identifié comme appartenant à une communication à l'aide d'une en-tête. La combinaison de l'en-tête et du bloc de données forment le paquet.
Le paquet est donc l'unité de partage des ressources dans un réseau. La figure 2 montre une représentation du partage du lien de la figure 1. La transmission des paquets des 3 communications simultanées s'entrelacent au niveau du lien. En l'absence de toute activité, le support reste libre de toute utilisation. Ce mécanisme de multiplexage des communications par entrelacement des paquets des différentes communications simultanées est un moyen simple et efficace de partage dynamique des ressources du lien. Ainsi, lorsqu'une communication est silencieuse ou inactive, l'ensemble des ressources du lien restent partagées par les autres communications du multiplex.
La figure 3.a illustre la transmission de blocs de données dont la taille ne serait pas limitée. On observe que lorsque un gros bloc est en cours de transmission, il monopolise le support. En coupant ce bloc en bloc de taille plus limitée, la figure 3.b montre un entrelacement des blocs de données. Le partage de la ressource est dans cette situation est bien meilleur.
Le paquet c'est aussi plus qu'une unité de partage des ressources dans un réseau. C'est aussi l'unité de transfert. Un noeud de commutation reçoit des paquets. Il doit les aiguiller vers un lien en sortie pour atteindre sa destination. La commutation dans un noeud fonctionne sur le principe dit du "store and forward". Le paquet doit être reçu dans son intégralité pour être commuté. C'est à dire transmis sur le lien suivant. Un réseau à commutation de paquets comme l'Internet signifie que l'unité élémentaire d'acheminement est le paquet.
Le paquet a une taille limitée comme vue précédemment. Il a aussi une taille variable toujours par soucis d'efficacité. Le transfert de données en informatique est fondamentalement asymétrique. Dans un sens, circulent les données dans le sens inverse circulent les acquittements pour signaler la bonne ou mauvaise réception des données. Dans cet échange, il y a une grosse quantité de données dans un sens et une quantité plus faible dans l'autre sens avec les acquittements. La taille variable des paquets permet de prendre en compte cette asymétrie dans les quantités échangés.
Acheminement de paquet
Nous savons depuis la séquence de bienvenue que le protocole IP est dans une couche logicielle superposée au dessus des différents systèmes de transmissions. Cette couche est présente dans tous les noeuds de l'Internet. La conséquence de la superposition et le propre d'une architecture en couches consistent à ce que chaque unité de donnée d'une couche lorsqu'elle est passée à la couche inférieure est encapsulé dans l'unité de donnée de cette couche. La figure 4 illustre le transfert d'un fichier d'un client vers le serveur. Ce fichier est par exemple la requête effectuée par l'application du client. Le fichier (l'unité de données applicative) est découpée en paquet IP pour les raisons que nous avons exposé précédemment. Un paquet IP doit atteindre le serveur qui est la destination finale du transfert de données. Le paquet IP pour être transféré est passé au réseau 1 (un système de transmission comme Ethernet par exemple). Celui-ci va procéder à l'encapsulation du paquet IP dans son unité de donnée. A ce niveau on parle souvent de trame. Le paquet est ainsi transmis du client au routeur qui en recevant la trame désencapsule le paquet IP. Après avoir routé et commuté le paquet, le routeur transmet le paquet IP en le passant au réseau 2 afin qu'il soit reçu par le serveur. Celui-ci désencapsule le paquet de la trame qu'il a reçu, réassemble toutes les données des paquets qu'il reçoit pour reconstituer le fichier. Une fois ce fichier complet, l'application traite le fichier selon le contexte applicatif. Le paquet IP est transféré de la source à la destination par une succession de sauts (ou hop) d'un noeud à un autre. Pour ce transfert, le paquet subit une série d'encapsulations et de désencapsulations.
Chaque noeud utilise l'adresse de destination contenu dans l'en-tête pour prendre une décision de routage à savoir a qui doit être transmis le paquet IP pour le faire converger vers sa destination. Lorsque le système de transmission utilise un support multipoint, il faut avoir recours à une adresse physique, la fameuse adresse MAC qui est mise dans les cartes réseaux. L'adresse MAC du prochain noeud doit être mise dans la trame. Le résultat du routage du paquet IP retourne l'adresse IP du prochain noeud, le destinataire de la trame qui va encapsuler le paquet IP. Pour que la trame soit effectivement remise à ce noeud, il faut que l'adresse de destination de la trame soit justement l'adresse MAC de ce noeud. Cette adresse MAC est obtenu par résolution de l'adresse IP retournée par le routage. La trame avec la bonne adresse MAC de destination sera alors reçu par le next HOP qui pourra alors désencapsuler le paquet et procéder au routage pour trouver le noeud suivant qui doit recevoir le paquet. Et ainsi de saut en saut le paquet va arriver à sa destination finale en empruntant des liens de différentes natures.
Introduction de la séquence 2
Dans la première séquence, les différents types d'adresses IPv6 ont été présentés. Cette deuxième séquence va détailler les mécanismes protocolaires. Le fil rouge est la performance du traitement des datagrammes dans tous les équipements et en particulier les équipements intermédiaires tels que les routeurs ou les pare-feux.
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de cinq activités thématiques :
- A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;
- A22 : puis, vous aborderez les principes de l'acheminement et du routage ;
- A23 : ensuite, les points essentiels sur la détermination des tailles de paquets vous seront exposés ;
- A24 : ensuite, vous seront exposés les mécanismes d’encapsulation ;
- A25 : Dans cette activité, vous décomposerez les extensions de l’en-tête IP par le biais d'exemples ;
- A26 : enfin, vous pourrez observer l'acheminement de paquets IPv6 au moyen de cette activité pratique. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez pratiquer la communication IPv6 sans déstabiliser la configuration de votre ordinateur.