Aujourd'hui, nous allons commencer par nous concentrer sur TCP. Plus tôt dans le chapitre consacré à l'architecture en couches, nous avons évoqué un point important : au niveau de la couche réseau et en dessous, il s'agit principalement de connexions entre hôtes. Autrement dit, votre ordinateur doit connaître l'emplacement d'un autre ordinateur pour pouvoir s'y connecter. Cependant, la communication sur un réseau est souvent une communication interprocessus plutôt qu'une communication intermachine. C'est pourquoi le protocole TCP introduit la notion de port. Un port ne peut être occupé que par un seul processus, ce qui permet une communication directe entre les processus d'application s'exécutant sur des hôtes différents.
La couche transport a pour rôle d'assurer la communication directe entre les processus applicatifs s'exécutant sur différents hôtes ; elle est donc également appelée protocole de bout en bout. La couche transport masque les détails techniques du réseau, permettant ainsi au processus applicatif de percevoir un canal de communication logique de bout en bout entre les deux entités de la couche transport.
TCP signifie Transmission Control Protocol (protocole de contrôle de transmission) et est un protocole orienté connexion. Cela signifie qu'avant qu'une application puisse envoyer des données à une autre, les deux processus doivent effectuer une négociation (ou « handshake »). Cette négociation est un processus logique qui garantit la transmission fiable et la réception ordonnée des données. Lors de la négociation, une connexion est établie entre les hôtes source et destination par l'échange de paquets de contrôle et la définition de paramètres et de règles afin d'assurer la réussite de la transmission des données.
Qu'est-ce que TCP ? (Mylinking'sPrise réseauetCourtier de paquets réseaupourrait traiter les paquets TCP ou UDP)
TCP (Transmission Control Protocol) est un protocole de communication de couche transport orienté connexion, fiable et basé sur un flux d'octets.
Orienté vers la connexionL'orientation connexion signifie que la communication TCP est de type un à un, c'est-à-dire une communication point à point de bout en bout, contrairement à UDP, qui peut envoyer des messages à plusieurs hôtes simultanément ; la communication un à plusieurs est donc impossible.
FiableLa fiabilité du protocole TCP garantit que les paquets sont acheminés de manière fiable jusqu'au destinataire, quelles que soient les modifications de la liaison réseau, ce qui rend le format des paquets du protocole TCP plus complexe que celui du protocole UDP.
Basé sur les flux d'octetsLa nature du protocole TCP, basée sur un flux d'octets, permet la transmission de messages de toute taille et garantit l'ordre des messages : même si le message précédent n'a pas été entièrement reçu, et même si les octets suivants ont été reçus, TCP ne les transmettra pas à la couche application pour traitement et supprimera automatiquement les paquets en double.
Une fois la connexion établie entre l'hôte A et l'hôte B, l'application utilise uniquement la ligne de communication virtuelle pour envoyer et recevoir des données, garantissant ainsi leur transmission. Le protocole TCP gère des tâches telles que l'établissement, la déconnexion et le maintien de la connexion. Il est important de noter que le terme « ligne virtuelle » désigne ici uniquement l'établissement de la connexion ; la connexion TCP, quant à elle, indique simplement que les deux parties peuvent entamer la transmission de données et en assurer la fiabilité. Le routage et le transport sont gérés par les équipements réseau ; le protocole TCP lui-même ne s'occupe pas de ces détails.
Une connexion TCP est un service bidirectionnel (full-duplex), ce qui signifie que les hôtes A et B peuvent échanger des données dans les deux sens.
Le protocole TCP stocke temporairement les données dans le tampon d'envoi de la connexion. Ce tampon d'envoi est l'un des caches configurés lors de l'établissement de la connexion en trois étapes. Par la suite, TCP enverra les données du cache d'envoi au cache de réception de l'hôte de destination au moment opportun. En pratique, chaque homologue dispose d'un cache d'envoi et d'un cache de réception, comme illustré ici :
Le tampon d'envoi est une zone mémoire gérée par l'implémentation TCP côté émetteur et utilisée pour stocker temporairement les données à envoyer. Lors de l'établissement de la connexion (protocole TCP en trois étapes), le tampon d'envoi est initialisé et utilisé pour stocker les données. Sa taille est ajustée dynamiquement en fonction de la congestion du réseau et des retours du destinataire.
Un tampon de réception est une zone de mémoire gérée par l'implémentation TCP côté réception et utilisée pour stocker temporairement les données reçues. TCP stocke ces données dans le cache de réception et attend que l'application de niveau supérieur les lise.
Notez que la taille des caches d'envoi et de réception est limitée ; lorsque le cache est plein, TCP peut adopter certaines stratégies, telles que le contrôle de congestion, le contrôle de flux, etc., pour assurer une transmission de données fiable et la stabilité du réseau.
Dans les réseaux informatiques, la transmission de données entre hôtes s'effectue par segments. Qu'est-ce qu'un segment de paquet ?
Le protocole TCP crée un segment TCP, ou segment de paquet, en divisant le flux entrant en blocs et en ajoutant un en-tête TCP à chaque bloc. Chaque segment ne peut être transmis que pendant une durée limitée et ne peut excéder la taille maximale de segment (MSS). Lors de sa transmission, un segment de paquet traverse la couche liaison de données. Cette dernière possède une unité de transmission maximale (MTU), qui correspond à la taille maximale des paquets pouvant transiter par la couche liaison de données. La MTU est généralement liée à l'interface de communication.
Quelle est donc la différence entre MSS et MTU ?
Dans les réseaux informatiques, l'architecture hiérarchique est essentielle car elle tient compte des différences entre les différents niveaux. Chaque couche possède une appellation spécifique : au niveau transport, les données sont appelées segments, et au niveau réseau, paquets IP. Ainsi, l'unité de transmission maximale (MTU) correspond à la taille maximale des paquets IP pouvant être transmis par la couche réseau, tandis que la taille maximale de segment (MSS) est un concept de la couche transport qui désigne la quantité maximale de données pouvant être transmise par un paquet TCP.
Notez que lorsque la taille maximale de segment (MSS) est supérieure à l'unité de transmission maximale (MTU), la fragmentation IP est effectuée au niveau de la couche réseau, et TCP ne divise pas les données volumineuses en segments adaptés à la taille de la MTU. Une section de la couche réseau est dédiée à la couche IP.
structure des segments de paquets TCP
Explorons le format et le contenu des en-têtes TCP.
Numéro de séquenceLors de l'établissement de la connexion TCP, un nombre aléatoire est généré par l'ordinateur et sert de valeur initiale. Ce numéro de séquence est ensuite envoyé au destinataire via le paquet SYN. Pendant la transmission des données, l'émetteur incrémente ce numéro en fonction de la quantité de données envoyées. Le destinataire vérifie l'ordre des données à partir de ce numéro de séquence. Si les données sont désordonnées, il les réordonne afin de rétablir l'ordre correct.
Numéro d'accusé de réceptionIl s'agit d'un numéro de séquence utilisé dans le protocole TCP pour accuser réception de données. Il indique le numéro de séquence des prochaines données que l'émetteur s'attend à recevoir. Dans une connexion TCP, le récepteur détermine quelles données ont été reçues avec succès en fonction du numéro de séquence du segment de paquet de données reçu. Lorsque le récepteur reçoit les données avec succès, il envoie un paquet ACK à l'émetteur, contenant le numéro d'accusé de réception. Après réception du paquet ACK, l'émetteur peut confirmer la bonne réception des données avant d'envoyer l'accusé de réception.
Les bits de contrôle d'un segment TCP comprennent les éléments suivants :
bit ACKLorsque ce bit est à 1, cela signifie que le champ de réponse d'accusé de réception est valide. Le protocole TCP spécifie que ce bit doit être positionné à 1, sauf pour les paquets SYN lors de l'établissement initial de la connexion.
Bit RSTLorsque ce bit est à 1, cela indique qu'il y a une exception dans la connexion TCP et que la connexion doit être forcée à être déconnectée.
Bit SYNLorsque ce bit est défini sur 1, cela signifie que la connexion doit être établie et que la valeur initiale du numéro de séquence est définie dans le champ du numéro de séquence.
FIN bitLorsque ce bit est à 1, cela signifie qu'aucune donnée supplémentaire ne sera envoyée à l'avenir et que la connexion est souhaitée.
Les différentes fonctions et caractéristiques du protocole TCP sont incarnées par la structure des segments de paquets TCP.
Qu'est-ce que l'UDP ? (Mylinking)Prise réseauetCourtier de paquets réseaupourrait traiter les paquets TCP ou UDP)
Le protocole UDP (User Datagram Protocol) est un protocole de communication sans connexion. Contrairement à TCP, UDP ne propose pas de mécanismes de contrôle complexes. Le protocole UDP permet aux applications d'envoyer directement des paquets IP encapsulés sans établir de connexion. Lorsqu'un développeur choisit d'utiliser UDP plutôt que TCP, l'application communique directement avec le réseau IP.
Le nom complet du protocole UDP est User Datagram Protocol, et son en-tête ne fait que huit octets (64 bits), ce qui est très concis. Le format de l'en-tête UDP est le suivant :
ports de destination et de sourceLeur objectif principal est d'indiquer à quel processus UDP doit envoyer les paquets.
Taille du paquetLe champ de taille du paquet contient la taille de l'en-tête UDP plus la taille des données.
Somme de contrôleConçu pour garantir la transmission fiable des en-têtes et des données UDP, le rôle de la somme de contrôle est de détecter si une erreur ou une corruption s'est produite lors de la transmission d'un paquet UDP afin de garantir l'intégrité des données.
Différences entre TCP et UDP dans MylinkingPrise réseauetCourtier de paquets réseaupourrait traiter les paquets TCP ou UDP
TCP et UDP diffèrent sur les points suivants :
ConnexionTCP est un protocole de transport orienté connexion qui nécessite l'établissement d'une connexion avant tout transfert de données. UDP, en revanche, ne requiert pas de connexion et peut transférer les données immédiatement.
Objet de serviceLe protocole TCP est un service bidirectionnel (un à un), c'est-à-dire qu'une connexion ne comporte que deux points de terminaison pour communiquer. En revanche, le protocole UDP prend en charge les communications interactives un à un, un à plusieurs et plusieurs à plusieurs, permettant ainsi de communiquer simultanément avec plusieurs hôtes.
FiabilitéLe protocole TCP assure la transmission fiable des données, garantissant leur intégrité, leur intégrité et leur réception à la demande. En revanche, le protocole UDP, bien qu'il fasse de son mieux, ne garantit pas une transmission fiable. Des pertes de données et d'autres problèmes peuvent survenir lors de la transmission.
Contrôle de la congestion, contrôle des débitsLe protocole TCP dispose de mécanismes de contrôle de congestion et de contrôle de flux, qui ajustent le débit de transmission en fonction de l'état du réseau afin de garantir la sécurité et la stabilité des données. Le protocole UDP, quant à lui, ne possède pas ces mécanismes ; même en cas de forte congestion du réseau, son débit d'envoi reste inchangé.
En-têteLe protocole TCP possède un en-tête long, généralement de 20 octets, qui augmente avec l'utilisation des champs d'options. En revanche, le protocole UDP possède un en-tête fixe de seulement 8 octets, ce qui réduit sa surcharge liée à l'en-tête.

Scénarios d'application TCP et UDP :
TCP et UDP sont deux protocoles de couche transport différents, et ils présentent certaines différences dans leurs scénarios d'application.
Le protocole TCP étant orienté connexion, il est principalement utilisé dans les scénarios nécessitant une transmission fiable des données. Voici quelques cas d'utilisation courants :
transfert de fichiers FTPLe protocole TCP permet de garantir que les fichiers ne sont ni perdus ni corrompus pendant le transfert.
HTTP/HTTPSLe protocole TCP garantit l'intégrité et l'exactitude du contenu web.
Le protocole UDP étant sans connexion, il ne garantit pas la fiabilité des transmissions, mais il se caractérise par son efficacité et sa capacité à fonctionner en temps réel. L'UDP convient aux scénarios suivants :
Le trafic à faible débit, tel que le DNS (Domain Name System)Les requêtes DNS sont généralement des paquets courts, et UDP peut les traiter plus rapidement.
Communication multimédia telle que la vidéo et l'audioPour la transmission multimédia avec des exigences élevées en temps réel, le protocole UDP peut fournir une latence plus faible afin de garantir que les données puissent être transmises en temps opportun.
Communication diffuséeLe protocole UDP prend en charge la communication un-à-plusieurs et plusieurs-à-plusieurs et peut être utilisé pour la transmission de messages de diffusion.
Résumé
Aujourd'hui, nous avons découvert le protocole TCP. TCP est un protocole de communication de couche transport, orienté connexion, fiable et basé sur un flux d'octets. Il garantit la transmission fiable et la réception ordonnée des données grâce à l'établissement d'une connexion, d'une poignée de main et d'un accusé de réception. Le protocole TCP utilise des ports pour réaliser la communication entre les processus et fournit des services de communication directe aux processus applicatifs s'exécutant sur différents hôtes. Les connexions TCP sont bidirectionnelles (full-duplex), permettant des transferts de données bidirectionnels simultanés. À l'inverse, UDP est un protocole de communication non connecté, qui ne garantit pas la fiabilité et convient à certains scénarios exigeant une grande réactivité. TCP et UDP diffèrent par leur mode de connexion, leur objet de service, leur fiabilité, leur contrôle de congestion, leur contrôle de flux et d'autres aspects, et leurs cas d'utilisation sont également différents.
Date de publication : 3 décembre 2024



