TCP : rôle, fonctionnement et limites

Auteur : Publié le

En bref : TCP est un protocole de transport, c’est-à-dire un ensemble de règles qui régissent le transfert de données entre des applications en réseau. Il assure la livraison des données dans le bon ordre, détecte les données manquantes et retransmet les fragments perdus. Il ne garantit toutefois pas que toute connexion aboutira et ne chiffre pas lui-même les informations transmises.

Quel rôle joue TCP sur internet ?

TCP, de l’anglais Transmission Control Protocol, intervient entre les applications et la couche chargée d’acheminer les paquets sur le réseau. Il est notamment utilisé pour le courrier électronique, les connexions à distance par SSH et de nombreuses connexions aux sites web. Grâce à TCP, l’application n’a pas à gérer elle-même l’ordre des fragments de données ni à les renvoyer en cas de perte.

TCP est souvent associé au sigle IP, mais ces protocoles remplissent des fonctions différentes. IP assure l’adressage et l’acheminement des paquets entre les appareils ; il ne garantit ni leur livraison ni leur ordre d’arrivée. TCP ajoute les mécanismes nécessaires à la transmission fiable d’un flux ordonné d’octets, autrement dit d’une suite de données lue par l’application.

On peut comparer ce fonctionnement à l’envoi des parties numérotées d’un document. IP aide à acheminer les envois vers le destinataire, tandis que TCP gère la numérotation, les accusés de réception et le renvoi des parties manquantes. Cette comparaison est simplifiée : en réalité, TCP numérote les octets, et non les pages d’un document.

Comment TCP établit-il une connexion et transmet-il les données ?

Avant que l’échange habituel de données ne commence, TCP établit une connexion. La procédure de base comporte trois étapes, appelées three-way handshake, ou poignée de main en trois temps :

  1. Le client envoie un message SYN pour proposer l’établissement d’une connexion.
  2. Le serveur répond par SYN-ACK, confirmant la proposition et communiquant ses propres paramètres initiaux.
  3. Le client envoie un ACK, qui accuse réception de la réponse du serveur.

Lors de cet échange, les deux parties définissent notamment les numéros de séquence initiaux, qui permettent de suivre la position des données dans le flux. L’établissement de la connexion ne signifie pas, à lui seul, que l’utilisateur est connecté à son compte ni que l’identité du serveur a été vérifiée.

Les données sont ensuite transmises sous forme de segments, c’est-à-dire de blocs contenant une partie des données et des informations de contrôle TCP. Le destinataire accuse réception des données reçues, et l’émetteur détecte les pertes probables à partir des accusés de réception ou du temps écoulé. Il renvoie les données manquantes : c’est la retransmission.

Si les segments arrivent dans le désordre, TCP les remet dans l’ordre avant de les transmettre à l’application. Il élimine aussi les doublons afin que l’application ne lise pas deux fois les mêmes octets. Si une panne dure trop longtemps, la connexion peut être interrompue sans que l’ensemble des données ait pu être livré.

Que garantit TCP et que ne fait-il pas ?

En plus de veiller à l’ordre des données, TCP régule le rythme de transmission. Le contrôle de flux évite que le destinataire reçoive davantage de données qu’il ne peut en accepter à un instant donné. Le contrôle de congestion adapte l’envoi aux conditions du réseau, en réduisant la pression sur les liaisons saturées.

TCP inclut également une somme de contrôle, qui aide à détecter les altérations accidentelles des segments. Il ne s’agit toutefois pas d’une protection cryptographique contre les modifications délibérées. Le chiffrement et l’authentification sont assurés par d’autres mécanismes, par exemple TLS, utilisé dans HTTPS.

Deux autres limites sont importantes :

Par exemple, si la connexion est interrompue pendant une commande, l’erreur TCP ne permet pas à elle seule de déterminer si la commande a été créée. Avant de renouveler l’opération, il faut vérifier son statut auprès de la boutique plutôt que de supposer que les données ne sont pas arrivées.

En quoi TCP diffère-t-il d’UDP ?

UDP est un autre protocole de transport. Il transmet des messages indépendants, appelés datagrammes, sans mécanisme intégré d’accusé de réception, de retransmission ou de remise en ordre. L’application peut ajouter ces mécanismes, mais UDP ne les fournit pas lui-même.

CaractéristiqueTCPUDP
Mode de transmissionFlux ordonné d’octetsDatagrammes distincts
Retransmission des données perduesIntégréeDépend de l’application
Établissement d’une connexionNécessaireAucune procédure de ce type dans UDP
Priorité habituelle selon l’usageIntégralité et ordre des donnéesMaîtrise des délais et des pertes par l’application

Lors du téléchargement d’un fichier, il faut récupérer tout fragment manquant : les mécanismes de TCP sont donc utiles. Pendant une conversation vocale, un fragment sonore arrivé trop tard peut être moins utile que le fait de laisser passer une brève coupure. C’est pourquoi les solutions en temps réel utilisent souvent UDP.

Cela ne signifie pas qu’UDP est toujours plus rapide ni que tous les sites utilisent TCP. HTTP/1.1 et HTTP/2 fonctionnent généralement sur TCP, tandis que HTTP/3 utilise QUIC, qui repose sur UDP. QUIC assure lui-même, entre autres, la transmission fiable des flux et le chiffrement.

Que signifie un port TCP dans les paramètres réseau ?

Un port est un numéro qui aide le système à diriger le trafic vers le bon service. L’adresse IP désigne un point du réseau, tandis que le port permet de distinguer les services accessibles à cette adresse. Un exemple courant est le port TCP 443, utilisé par HTTPS lorsqu’il fonctionne sur TCP.

TCP et UDP disposent d’espaces de ports distincts. Une règle de pare-feu autorisant TCP 443 n’autorise pas automatiquement UDP 443, souvent utilisé par HTTP/3. Un port ouvert ne prouve pas non plus que l’application fonctionne correctement ou de manière sécurisée.

Si vous configurez un pare-feu, consultez la documentation du service concerné pour vérifier le protocole requis, le numéro de port et le sens du trafic. Vous pourrez ainsi créer une règle précise plutôt que d’autoriser inutilement tout le trafic TCP et UDP.

Voir aussi : Que signifie www ?

À lire aussi

Découvrez comment PHP-FPM traite les requêtes PHP, son rôle face au serveur web et comment adapter ses processus au trafic.
Découvrez BIND, logiciel libre de serveur DNS : ses rôles, la gestion des domaines et les cas où le déployer vous-même.
Découvrez le registre polonais REGON, son numéro, ses différences avec NIP et KRS et comment vérifier les données d’une entreprise.