4.1 - Rôles

Rôle

La couche transport est chargée de l’établissement d’une session de communication temporaire entre deux applications et de l’acheminement des données entre ces deux applications.

role-transport role-transport

Une application génère les données à envoyer d’une application sur un hôte source vers une application sur un hôte de destination, quels que soient le type d’hôte de destination, le type de support sur lequel aura lieu la transmission, le chemin emprunté par les données, l’encombrement de la liaison ou la taille du réseau.

La couche transport

  • Fournit une méthode d’acheminement des informations sur l’ensemble du réseau qui garantit que les données peuvent être correctement rassemblées au niveau du destinataire.
  • Segmente les données et se charge des contrôles nécessaires à la réorganisation de ces segments de données en différents flux de communication.
  • Dans le cadre de la suite de protocoles TCP/IP, ces processus de segmentation et de réorganisation peuvent être réalisés à l’aide de deux protocoles de couche transport très différents : TCP (Transmission Control Protocol) et UDP (User Datagram Protocol).

La couche tranport est responsable de trois principale tâches :

  • Suivre des conversations individuelles
  • Segmenter des données et reconstruire des segments
  • Identifier l’application appropriée pour chaque flux de communication

Suivi des conversations individuelles

role-couche-transport-01 role-couche-transport-01

Chaque ensemble de données transitant entre une application source et une application de destination est appelé une conversation. Un hôte peut héberger plusieurs applications qui communiquent sur le réseau simultanément. Chacune de ces applications communique avec une ou plusieurs applications sur un ou plusieurs hôtes distants. La couche transport est chargée de garantir ces multiples conversations et d’en effectuer le suivi.

Segmentation des données et reconstitution des segments

role-couche-transport-02 role-couche-transport-02

Les protocoles de couche transport disposent de services qui segmentent les données d’application en blocs de données de taille appropriée. Il s’agit notamment de l’encapsulation devant s’appliquer à chaque bloc de données.

  • Un en-tête, utilisé pour la réorganisation, est ajouté à chaque bloc de données. Cet en-tête est utilisé pour suivre le flux de données.
  • Au niveau du destinataire, la couche transport doit pouvoir reconstituer un flux de données complet utile pour la couche application à partir des blocs de données.
  • Les protocoles intervenant au niveau de la couche transport gèrent la façon dont les informations d’en-tête de la couche transport sont utilisées pour réassembler les blocs de données en flux qui seront transmis à la couche application.

Identification des applications

role-couche-transport-04 role-couche-transport-04

De nombreux services ou applications peuvent s’exécuter en même temps sur chaque hôte du réseau. Pour que les flux de données atteignent les applications auxquelles ils sont destinés, la couche transport doit identifier l’application cible. Pour cela, la couche transport affecte un identificateur à chaque application. Cet identificateur est appelé numéro de port. Chaque processus logiciel ayant besoin d’accéder au réseau se voit affecter un numéro de port unique sur son hôte. La couche transport utilise ces ports pour identifier l’application ou le service.

Multiplexage de conversations

L’envoi de certains types de données (par exemple, un flux vidéo en continu) sur le réseau en tant que flux de communication complet peut utiliser toute la bande passante disponible et empêcher d’autres communications d’avoir lieu en même temps. Ceci rend également difficiles la reprise sur erreur et la retransmission des données endommagées.

multiplexage multiplexage

La segmentation des données en parties plus petites permet à plusieurs communications différentes, provenant de nombreux utilisateurs, d’être imbriquées (multiplexées) sur le même réseau. La segmentation des données par les protocoles de couche transport permet d’envoyer et de recevoir des données tout en exécutant plusieurs applications simultanément sur un ordinateur.

Sans segmentation, une seule application pourrait recevoir des données. Par exemple, pour un flux vidéo en continu, le support serait monopolisé par le flux de communication, au lieu d’être partagé. Il serait impossible de recevoir des e-mails, de parler sur une messagerie instantanée et d’afficher des pages Web tout en regardant la vidéo.

Pour identifier chaque segment de données, la couche transport ajoute un en-tête contenant des données binaires au segment. Cet en-tête contient des champs de bits. Ce sont les valeurs contenues dans ces champs qui permettent aux différents protocoles de couche transport d’exécuter des fonctions diverses de gestion des communications de données.

Fiabilité de la couche transport

fiabilité fiabilité

La couche transport est également responsable de la gestion des exigences de fiabilité d’une conversation. Des applications différentes ont des exigences différentes en matière de fiabilité du transport.

Le protocole IP ne s’occupe que de la structure, de l’adressage et du routage des paquets (rappelez vous des propriétés du protocole IP : sans connexion, acheminement au mieux et indépendant du support). Il ne fixe pas le mode d’acheminement ou de transport des paquets : C’est les protocoles de transport qui définissent comment transmettre les messages entre les hôtes. La suite de protocoles TCP/IP propose deux protocoles de couche transport : TCP et UDP :

  • TCP est un protocole de couche transport fiable et complet, qui garantit que toutes les données arrivent à destination.
  • UDP est un protocole de couche transport très simple qui ne permet pas de garantir la fiabilité.

TCP

Comme indiqué précédemment, le protocole TCP est un protocole de transport fiable. Le transport TCP revient à envoyer des paquets qui sont suivis de la source à la destination. Si l’expédition de FedEx est divisée en plusieurs colis, un client peut vérifier en ligne l’ordre des livraisons.

Ses trois fonctions de fiabilité de base sont :

  • Suivi des segments de données transmis ;
  • Les accusés de réception des données ;
  • La retransmission des données n’ayant pas fait l’objet d’un accusé de réception.

TCP découpe un message en petits morceaux appelés segments. Les segments, numérotés en séquence, sont ensuite passés au processus IP pour être assemblés en paquets. TCP conserve une trace du nombre de segments qui ont été envoyés à un hôte donné à partir d’une application spécifique. Si l’expéditeur ne reçoit pas d’accusé de réception au bout d’un certain temps, il suppose que les segments ont été perdus, et il les retransmet. Seule la partie du message qui a été perdue est renvoyée, pas l’intégralité. Sur l’hôte récepteur, TCP est responsable de la reconstitution des segments de message et de leur transmission à l’application. Les protocoles FTP (File Transfer Protocol) et HTTP (Hypertext Transfer Protocol) sont des exemples d’applications qui utilisent le protocole TCP pour assurer l’acheminement des données.

Ces processus assurant la fiabilité augmentent la surcharge des ressources du réseau du fait des opérations d’accusé de réception, de suivi et de retransmission. Pour prendre en charge ces opérations assurant la fiabilité, un nombre plus important de données de contrôle est échangé entre les hôtes qui expédient et ceux qui reçoivent les données. Ces informations de contrôle sont contenues dans un en-tête TCP.

UDP

Tandis que les fonctionnalités de fiabilité TCP assurent l’efficacité des communications entre les applications, elles engendrent également une surcharge supplémentaire et des éventuels retards de transmission. Un compromis doit être établi entre la valeur accordée à la fiabilité et la charge qu’elle représente sur le réseau. Imposer une surcharge pour garantir la fiabilité de certaines applications peut réduire l’utilité de l’application et peut même porter préjudice à l’application. Dans ce cas, le protocole UDP représente un meilleur protocole de transport.

  • Le protocole UDP fournit uniquement des fonctions de base permettant d’acheminer des segments de données entre les applications appropriées avec peu de surcharge et de vérification des données.

  • Le protocole UDP est un protocole d’acheminement au mieux.

  • Analogie : UDP revient à poster une lettre normale, sans accusé de réception. L’expéditeur de la lettre ne sait pas si le destinataire peut recevoir la lettre et le bureau de poste ne doit ni suivre la lettre ni informer l’expéditeur si la lettre n’arrive pas à la destination finale.

Le bon protocole de couche transport pour la bonne application

Bon-Protocole-Pour-Bonne-App Bon-Protocole-Pour-Bonne-App

Les protocoles TCP et UDP sont des protocoles de transport valides. En fonction des besoins des applications, un ou deux de ces protocoles de transport peuvent être utilisés. Les développeurs d’applications doivent déterminer quel type de protocole de transport est approprié en fonction des exigences des applications.

Pour certaines applications, les segments doivent arriver dans un ordre donné pour être traités correctement. Pour d’autres applications, toutes les données doivent être entièrement reçues pour être utilisées. Dans les deux cas, le protocole TCP est utilisé comme protocole de transport.

Exemple :

  • Les applications telles que les bases de données, les navigateurs Web et les clients de messagerie ont besoin que toutes les données envoyées arrivent à destination dans leur état d’origine. Toute donnée manquante risque de corrompre la communication en la rendant incomplète ou illisible. Par conséquent, ces applications sont conçues pour utiliser le protocole TCP car cette surcharge supplémentaire pour le réseau est indispensable pour ces applications.

Dans d’autres cas, une application peut tolérer une certaine perte lors de la transmission de données sur le réseau, mais pas les retards de transmission. Le protocole UDP est le choix idéal pour ces applications, car il implique moins de surcharge sur le réseau. Le protocole UDP est à privilégier pour la lecture audio/vidéo en continu et la voix sur IP (VoIP). Les accusés de réception ralentiraient la livraison, et les retransmissions ne sont pas souhaitables.

Exemples :

  • Flux vidéo : Si un ou deux segments en continu n’arrivent pas à destination, cela ne fait que créer une interruption momentanée du flux. Cela peut se traduire par une distorsion de l’image que l’utilisateur ne remarquera peut-être même pas. Cependant, l’image produite par un flux vidéo en continu serait fortement dégradée si le périphérique de destination devait rendre compte des données perdues et retarder la lecture le temps qu’elles arrivent. Dans ce cas, il est donc préférable de fournir la meilleure qualité vidéo possible en fonction des segments reçus et de renoncer à la fiabilité.

  • Radio sur Internet : Si une partie du message est perdue pendant sa transmission via le réseau, elle n’est pas retransmise. Si certains paquets manquent, il se peut que la personne qui écoute entende de légères interruptions dans le son. Si TCP était utilisé et si les paquets perdus étaient renvoyés, la transmission serait interrompue pour recevoir ces paquets, et l’interruption se remarquerait davantage.