Couche de Transport TCP-IP
Fonctions de la couche de transport TCP-IP
La couche de transport est fondamentale pour le bon fonctionnement de l’architecture réseau des différentes couches TCP-IP. La couche Internet, ne peut pas garantir, la livraison des informations vers sa destination.
C’est la couche de transport qui portera ce rôle.
Les deux protocoles de cette couche, les plus courants sont TCP et UDP. Ils gèrent la communication de plusieurs applications et fournissent des services de communication directement au processus d’application de l’hôte.
Le service de base offert par la couche de transport c’est le suivi de la communication individuelle entre les applications sur les hôtes sources et destination. Ce service s’appelle le multiplexage de session, et il est exécuté par UDP et TCP. Une différence majeure entre TCP et UDP est que TCP garantit la bonne livraison des données, chose que UDP ne fait pas.
La couche de transport du modèle TCP-IP correspond à a couche 4 du modèle OSI. Si vous entendez le terme « Layer 4 », cela fait référence à la couche 4.
Des communications multiples arrivent très couramment, par exemple, faire des recherches sur le Web tout en utilisant FTP pour transférer un fichier.
Multiplexage de session « Sessions Multiplexing »
Le multiplexage de session est le processus par lequel un hôte IP peut supporter simultanément plusieurs sessions et gérer les flux sur un seul lien. Une session est créée lorsqu’une machine source doit envoyer des données à une machine de destination. Le plus souvent, ce processus implique une réponse, mais cela n’est pas obligatoire.
Identification des applications
Pour transmettre les données aux applications, la couche de transport doit identifier l’application cible. Les protocoles de transport TCP-IP utilisent des numéros de port pour accomplir cette tâche. Chaque processus, qui doit accéder au réseau, reçoit un numéro de port unique pour cet hôte. Le numéro de port est utilisé dans l’entête de la couche de transport pour indiquer de quelle application est associée cette donnée.
Segmentation
TCP prend des blocs de données de taille différente de la couche d’application et les prépare pour les transporter sur le réseau. L’application repose sur TCP pour s’assurer que chaque fragment est divisé en segments plus petits correspondants au MTU qui signifie Maximum Transmission unit
« La MTU permet de définir la taille maximale en octet, du paquet pouvant être transmis en une seule fois ». UDP ne fournit pas de services de segmentation. Il s’attend à ce que le processus d’application effectue lui-même la segmentation et lui fournisse des blocs de données ne dépassant pas le MTU des couches inférieures.
La MTU du protocole IP est de 1500 octets. Des MTU plus grandes sont possibles, mais 1500 octets est la taille normale. |
Contrôle de flux (Flow Control)
Si un expéditeur transmet des paquets plus rapidement que le récepteur puisse les recevoir, le récepteur obligera l’expéditeur à les retransmettre. TCP est responsable de la détection des paquets abandonnés et de leur retransmission. Un taux élevé de retransmissions produira une latence dans le canal de communication. Pour réduire l’impact de la latence liée à la retransmission, une méthode de contrôle des flux est nécessaire pour maximiser le taux de transfert et minimiser les retransmissions.
Le contrôle de flux TCP repose sur les retours générés par le récepteur. Pour chaque morceau de données qui est envoyé, l’expéditeur attend une réponse du récepteur avant d’envoyer la partie suivante. Cependant, si le RTT, qui signifie Round Trip Time, est dépassé, la retransmission produira un fort ralentissement, inacceptable pour la qualité de service du réseau. Pour augmenter l’efficacité du réseau, un mécanisme appelé « windowing » est combiné avec le contrôle de flux flow contrôle de base. Windowing permet à un ordinateur récepteur de faire connaitre la quantité de données qu’il peut recevoir avant de transmettre un accusé de réception à l’ordinateur qui a émis les données. Il permet ainsi d’éviter la congestion dans le réseau.
Connexion orientée (Connected-Oriented)
Dans la couche de transport, un protocole orienté connexion établit une connexion de session entre deux hôtes IP puis maintient la connexion pendant toute la transmission. Une fois la transmission terminée, la session est terminée. Le protocole TCP fournit un transport fiable orienté connexion pour les données d’application.
-
Fiabilité
La fiabilité du TCP a trois objectifs principaux :
- Détecter et retransmettre les paquets abandonnés
- Détecter et réhabiliter les données en double ou hors service
- Et éviter la congestion dans le réseau
Fiable (Reliable) & Meilleur Effort (Best-Effort)
Les termes Reliable et Best-Effort décrivent deux types de connexions entre les ordinateurs.
TCP c’est un protocole orienté connexion qui est conçu pour assurer un transport fiable, un flux contrôlé et une garantie de la livraison des paquets IP’s. C’est pour cette raison qu’il est qualifié de protocole « fiable ».
UDP c’est un protocole sans connexion qui repose sur les applications pour effectuer le séquençage et la détection des paquets abandonnés, il est considéré comme « Best effort ». Chaque protocole possède des points forts qui les rendent utiles pour des applications particulières.
Fiable (Connexion orientée) ou avec établissement d’une connexion
Certains types d’applications nécessitent une garantie que les paquets arrivent en toute sécurité et arrivent bien dans l’ordre. Chaque paquet manquant peut corrompre toute la chaine de données.
TCP utilise 3 chemins pour établir une connexion. Sa méthodologie est comparable à un appel téléphonique. Le téléphone sonne, la partie appelée dit « bonjour », et l’appelant dit également « bonjour ». Voici les étapes en réelles :
- En premier, la source de la connexion envoie un paquet SYNqui signifie : Synchronisation, à la destination demandant une session. Le numéro de séquence commence par un 0.
- En second, la destination répond au SYN avec un SYN-ACK: Synchronisation-ACKnowledgment, et augmente le numéro de séquence par 1.
- Et pour finir, si la source accepte le SYN-ACK, elle envoie un paquet ACK:ACKnowledgment, pour établir la connexion.
Parmi les applications
Les plus courantes qui utilisent TCP, on retrouve les navigateurs Web, l’email, le FTP (comme le logiciel Filezilla), les imprimantes en réseau, et les transactions de base de données.
Lorsque l’ordinateur émetteur transmet des données, il attribue un numéro de séquence à chaque paquet. Le récepteur répond ensuite avec un numéro d’accusé de réception qui est égal au prochain numéro de séquence attendu. Cet échange de séquence et les numéros d’accusé de réception permettent au protocole de reconnaitre lorsque des données ont été perdues, ou en double.
Meilleur effort Best Effort (sans connexion)
La fiabilité n’est pas toujours nécessaire. Par exemple, si un ou deux segments d’un flux vidéo en streaming ne parviennent pas, cela créerait juste une perturbation momentanée dans le flux. Cette perturbation peut apparaitre comme une distorsion momentanée de l’image, mais l’utilisateur peut ne pas la remarquer. Dans les applications en temps réel, telles que la diffusion audio et vidéo, les paquets abandonnés peuvent être tolérés tant que le pourcentage global de paquets n’est pas dépassé.
Parmi les applications les plus courantes qui utilisent UDP, on retrouve le DNS (Domain Name System), la vidéo en streaming, la Voip (Voice Over IP), ou bien le TFTP (Trivial File Transfert Protocol)
UDP fournit aux applications une livraison optimale et n’a pas besoin de conserver des informations d’état sur les données qu’elle à envoyer précédemment. Contrairement à TCP, UDP n’a pas besoin d’établir de connexion avec le récepteur, c’est un protocole sans connexion. Cela est souhaitable pour les applications qui nécessitent une communication plus rapide, sans contrôle ni vérification.
TCP vs UDP
Pour comprendre les différences entre les protocoles TCP et UDP, nous allons prendre l’illustration d’un service postal.
TCP-Envoi de courrier certifié
Prenons l’exemple d’un envoi en recommandé de plusieurs documents. Chaque document est envoyé dans sa propre enveloppe. Le numéro de suivi obtenu à la poste correspond au numéro de séquence du paquet ip. Le service postal utilisera n’importe quel camion et n’importe quel chemin, pour faire parvenir les courriers au destinataire. Comme c’est un envoi en recommandé, le transporteur demandera une signature au destinataire, afin de confirmer à l‘expéditeur qu’il est bien arrivé.
Si une enveloppe est perdue en transit, l’expéditeur ne recevra pas l’accusé de réception et avec le numéro de recommandée il saura qu’elle document il faut retournée ou retransmettre.
UDP-Envoi de courrier ordinaire
Les services UDP peuvent être comparés à l’envoi postal d’une simple lettre. La poste fera ses meilleurs efforts pour livrer le courrier, mais ça s’arrête là. Il ne garantira pas la livraison et ne sera pas responsable en cas de non-livraison
Caractéristiques de TCP
Les applications utilisent les services de TCP pour fournir une fiabilité des données entre les hôtes. TCP comprend plusieurs fonctionnalités importantes qui permettent de fournir une transmission de données fiable.
- TCP fonctionne à la couche de transport de la pile TCP-IP (comparable à la couche 4 du modèle OSI).
- Il fournit un accès à la couche réseau (comparable à la Couche 3 du modelé OSI.)
- C’est un mode connecté. Il nécessite que les périphériques réseau mettent en place une connexion pour pouvoir échanger des données. Les systèmes finaux se synchronisent les uns avec les autres pour gérer les flux de paquets et s’adaptent pour éviter une congestion réseau.
- il fournit une vérification des erreurs grâce au contrôle fait dans le paquet IP : Checksum
Checksum est une somme de contrôle, qu’ont appelé aussi l’empreinte du paquet IP. C’est un nombre qu’on ajoute au message pour permettre au récepteur de vérifier si le message est bien arrivé en entier.
- Une connexion TCP est une paire de circuits virtuels, une dans chaque direction, donc il fonctionne en mode full-duplex.
- Les segments TCP sont numérotés et séquencés afin que la destination puisse réorganiser les segments et déterminer si les données manquent.
- Lors de la réception d’un ou plusieurs segments TCP, le destinataire renvoie un accusé de réception à l’expéditeur pour indiquer qu’il a reçu le segment. Les échanges constants sur la communication constituent la base de la fiabilité au sein de la session TCP. Lorsque la source reçoit un accusé de réception, elle sait que les données ont été livrées avec succès. Si la source ne reçoit pas d’accusé dans une période prédéterminée, elle retransmet ces données vers la destination. La source peut également mettre fin à la connexion si elle détermine que le récepteur n’est plus sur la connexion.
- TCP fournit des services de récupération dans lesquels le destinataire peut demander la retransmission d’un segment.
- TCP fournit des mécanismes qui permette de contrôler le flux.
La fiabilité de livraison de données est essentielle pour les applications telles que les transferts de fichiers, les services de base de données, le traitement des transactions et d’autres applications dans lesquelles la livraison de chaque paquet doit être garantie.
Les segments TCP sont envoyés en utilisant des paquets IP. L’entête TCP fournit des informations comme le contrôle du débit, la fiabilité et d’autres caractéristiques. Chaque champ a une fonction spécifique.
Les champs de l’entête TCP incluent :
- Un champ Source Port qui correspond Numéro du port appelant
- Un champ Destination Port : Pour le Numéro du port appelé
- Des champs Sequence Number et Acknowledgment Number :utilisé pour la fiabilité et évite la congestion
- D’un champ Header Length: qui correspond à la taille de l’entête
- Un champ Reserved : réserve pour une utilisation future
- Un champ Flags : qui permet de Contrôler l’en-tête TCP
- Windows Size : qui correspond à la taille de la fenêtre
- Le champ Checksum : est la somme de contrôle de l’entête et des champs utilisés, pour la vérification des erreurs
Caractéristiques UDP
Les applications utilisent UDP pour fournir des communications de données à hautes performances et à faible cout pour les hôtes. UDP comprend plusieurs fonctionnalités qui permettent une transmission de données à faible latence.
UDP est un protocole simple qui fournit des fonctions de couche de transport de base :
- Comme TCP, il fonctionne à la couche de transport de la pile TCP-IP
- UDP fournit aux applications un accès à la couche réseau sans la surcharge des mécanismes de fiabilité.
- C’est un protocole sans connexion dans lequel un datagramme à sens unique est envoyé à une destination sans notification préalable au périphérique de destination.
- Il effectue simplement une petite vérification d’erreur. Un datagramme UDP comprend une valeur de somme de contrôle qui est optionnelle, le récepteur peut utiliser ce datagramme s’il souhaite tester l’intégrité des données.
- Fournit un service de meilleure qualité, mais ne garantit pas la livraison des données. Les paquets peuvent être mal acheminés, dupliqués ou perdus.
- Ne récupère pas les paquets perdus ou corrompus. UDP s’appuie sur les applications qui utilisent ses services de transport pour assurer la récupération.
- En raison de sa faible surcharge, UDP est idéal pour des applications comme le DNS (Domain Name System) ou NTP (Network Time Protocol),
Voici à quoi ressemble un entête UDP :
Les protocoles de couche d’application qui utilisent UDP sont essentiellement DNS, SNMP, pour les mails, DHCP, le protocole de routage RIP , TFTP, NFS qui signifie Network File System, et aussi les jeux en ligne et vidéo en streaming.
Applications TCP-IP
UDP et TCP utilisent des ports logiciels internes pour supporter plusieurs conversations entre différents périphériques réseau. Pour différencier les segments et les datagrammes pour chaque application, TCP et UDP ont tous deux des champs d’entête qui identifient de manière unique ces applications. Ces identifiants uniques sont les numéros de port.
Certaines des applications compatibles TCP-IP incluent :
- FTP, qui signifie file transfert protocole, utilise par défaut le port 21. C’est un service, pour transférer des fichiers entre systèmes.
- SSH qui signifie, Secure Shell, utilise par défaut le port 22. Il offre la possibilité d’accéder à distance à d’autres ordinateurs, serveurs et périphériques réseau. SSH permet à un utilisateur de se connecter à un hôte distant et d’exécuter des commandes. Les messages SSH sont cryptés.
- Telnet pour terminal network, utilise le port 23, c’est le prédécesseur de SSH. Il envoie des messages dans un texte clair et non chiffré. La plupart des organisations utilisent plutôt SSH pour les communications à distance.
- HTTP pour HyperText Transfert Protocole, utilise le port 80. Il est principalement utilisé par les navigateurs web.
- HTTPS, qui est comme HTTP, mais en version sécurisé, utilise le port 443. Il combine à la fois HTTP avec un protocole de sécurité de type SSL/ TLS.
- DNS signifie Domain Name System, il utilise le port 53. Il est utilisé pour résoudre les noms Internet en adresses IP. DNS utilise un ensemble distribué de serveurs pour résoudre les noms associés aux adresses numérotées.
- TFTP pour Trivial File Transfert Protocol, utilise le port 69. C’est un service sans connexion. Les routeurs utilisent TFTP pour transférer des fichiers de configuration et des images IOS Cisco.
- Et pour simple Network Management Protocol, utilise le port 161. C’est un protocole de couche d’application qui facilite l’échange d’informations. Par exemple SNMP permet aux administrateurs réseau de gérer : les performances du réseau, de trouver et de résoudre les problèmes et de planifier la croissance du réseau. Nagios, utilisé pour la supervision réseau, se base sur le protocole SNMP.
Suivez le parcours CCNA sur le site Formip et retrouvez tous nos cours pour réussir votre CCNA sur la chaîne YouTube de Formip.