Aller au contenu
Accueil

TCP : définition, rôle et fonctionnement du protocole Internet

TCP : définition, rôle et fonctionnement — Comprenez comment le protocole Internet garantit l'ordre, la fiabilité et le contrôle du trafic pour des échanges réseau sûrs et efficaces.

Le protocole de contrôle de transmission (TCP) est l'un des principaux protocoles de la suite Internet. Souvent cité avec IP sous la forme "TCP/IP", il complète le protocole Internet (IP) : tandis que l'IP s'occupe de l'acheminement des paquets vers la bonne adresse, le TCP garantit la transmission fiable, ordonnée et contrôlée des données entre deux applications communicantes.

Qu'est‑ce que TCP ?

TCP est un protocole orienté connexion et fiable qui fonctionne au-dessus d'IP. Il offre aux applications un flux de données continu et géré, en prenant en charge :

  • la mise en ordre des paquets reçus ;
  • la détection et la retransmission des données perdues ;
  • le contrôle de flux pour éviter d'inonder le récepteur ;
  • le contrôle de congestion pour limiter l'impact sur le réseau.

Fonctionnement général

Avant d'échanger des données, deux hôtes établissent une connexion TCP. Les données sont découpées en segments, chacun comportant un en‑tête TCP et une portion de données. Chaque segment est identifié par un numéro de séquence ; le destinataire envoie des accusés de réception (ACK) indiquant le prochain numéro de séquence attendu. En cas de segments manquants ou corrompus, le destinataire ne progressera pas dans l'accusé, ce qui déclenche une retransmission du côté émetteur.

Établissement et terminaison d'une connexion

Le processus d'établissement suit le mécanisme dit du "three‑way handshake" :

  • L'émetteur envoie un segment SYN (synchronize) avec un numéro de séquence initial.
  • Le destinataire répond par un segment SYN+ACK confirmant le SYN et fournissant son propre numéro de séquence initial.
  • L'émetteur envoie un ACK final et la connexion est établie.

La terminaison peut être réalisée de façon ordonnée à l'aide de segments FIN (fin de transmission) échangés puis accusés, ou brusquement par un RST (reset) en cas d'erreur ou d'interruption.

Contrôle de flux et contrôle de congestion

TCP met en œuvre deux mécanismes distincts mais complémentaires :

  • Contrôle de flux : le récepteur annonce une fenêtre (window) qui indique combien d'octets il peut recevoir sans envoyer d'ACK. L'émetteur s'ajuste à cette fenêtre pour ne pas déborder le tampon du destinataire.
  • Contrôle de congestion : l'émetteur adapte sa vitesse en fonction de l'état du réseau. Les algorithmes usuels incluent Slow Start, Congestion Avoidance, et les mécanismes de Fast Retransmit / Fast Recovery. L'idée générale est d'augmenter progressivement le débit jusqu'à détecter une perte (signe de congestion), puis de réduire temporairement la fenêtre de congestion pour laisser le réseau se rétablir.

Format d'un segment TCP (champs essentiels)

Un en‑tête TCP contient plusieurs champs importants :

  • Ports source et destination : identifient les applications (ex. HTTP sur le port 80).
  • Numéro de séquence et numéro d'accusé de réception (ACK) : pour ordonner et confirmer les données.
  • Data offset : taille de l'en‑tête TCP.
  • Flags : bits de contrôle (SYN, ACK, FIN, RST, PSH, URG).
  • Window : taille de la fenêtre de réception.
  • Checksum : vérification d'intégrité de l'en‑tête et des données.
  • Options : par exemple MSS (Maximum Segment Size), Window Scale, SACK, timestamps.

La somme de contrôle couvre l'en‑tête TCP, les données et un pseudo‑entête IP afin d'améliorer la détection d'erreurs.

Retransmission et gestion des pertes

TCP calcule un délai d'attente de retransmission (RTO) basé sur les mesures du temps aller‑retour (RTT). Si un segment n'est pas accusé avant le RTO, il est retransmis. Les optimisations modernes incluent :

  • SACK (Selective Acknowledgment) : permet au récepteur d'indiquer précisément quels blocs de données ont été reçus, évitant des retransmissions inutiles.
  • Retransmission rapide : déclenchée par la réception de plusieurs ACKs dupliqués (souvent trois), ce qui permet de réagir plus vite qu'en attendant le RTO.

Ports et applications

TCP utilise des ports pour distinguer les services. Exemples courants :

  • HTTP/HTTPS (web) : ports 80 et 443
  • SMTP (mail) : port 25
  • FTP : ports 20/21
  • SSH : port 22

Les sockets TCP (adresse IP + port) représentent l'extrémité de la communication et permettent aux applications d'envoyer/recevoir des flux de données fiables.

Différences entre TCP et UDP

  • TCP : orienté connexion, fiable, contrôle de flux/congestion, plus lent et avec surcharge d'en‑tête.
  • UDP : sans connexion, non fiable, faible latence et moindre surcharge — adapté aux flux temps réel (voix, vidéo, jeux) où la perte occasionnelle est tolérable.

Aspects pratiques et limites

  • TCP est stateful : les routeurs NAT ou pare‑feux conservent l'état des connexions ; si cet état est perdu, la connexion peut échouer.
  • La performance TCP dépend du MSS et du MTU ; le fractionnement (fragmentation) peut impacter la latence.
  • Certaines applications choisissent UDP avec des mécanismes applicatifs pour contourner les limites de TCP (par ex. QUIC pour HTTP/3 qui repose sur UDP).
  • Les extensions récentes (window scaling, SACK, timestamps) améliorent le comportement de TCP sur les réseaux modernes à haute latence ou haut débit.

Historique et normalisation

Le fonctionnement de TCP a été défini initialement dans la RFC 793 (1981) et a fait l'objet de nombreuses extensions et améliorations depuis. De nombreuses RFCs décrivent les algorithmes de contrôle de congestion, les options et les optimisations utilisées aujourd'hui.

Points à retenir

  • TCP garantit une transmission fiable et ordonnée des données entre applications.
  • Il utilise un établissement de connexion (three‑way handshake), des numéros de séquence et des ACK pour suivre l'état de la communication.
  • Il combine contrôle de flux et contrôle de congestion pour adapter le débit aux capacités du récepteur et du réseau.
  • Malgré son overhead, TCP reste le choix privilégié pour les applications nécessitant la fiabilité (web, mail, transferts de fichiers).

Importance du PCT

Le TCP permet aux programmes informatiques de communiquer plus facilement entre eux, généralement par l'intermédiaire d'un réseau informatique. Lorsqu'un programme veut envoyer beaucoup de données, le TCP se charge de diviser les données, de les envoyer à travers le réseau et de les rassembler correctement sur un autre ordinateur. Au cours du processus, le protocole IP choisit les fils et les "intersections" qui seront utilisés pour envoyer toutes les données de la manière la plus rapide. Pour ce faire, il utilise des paquets.

S'il y a beaucoup de gens qui utilisent le réseau, il peut être surchargé. Il arrive aussi que les conditions météorologiques, les pannes de courant et d'autres problèmes rendent la communication difficile. Les routeurs sur Internet utilisent ce qu'on appelle l'équilibrage de charge pour tenter de résoudre certains de ces problèmes. Mais les informations peuvent être livrées en mauvais état, se perdre ou même être dupliquées. Le protocole TCP est conçu pour détecter tous ces problèmes et tenter de les résoudre. Cela peut prendre un certain temps, c'est pourquoi l'internet semble parfois lent. Une fois que le récepteur TCP a finalement reconstitué une copie parfaite des données transmises à l'origine, il transmet ces données au programme informatique qui l'a demandé. De cette façon, le programme n'a pas besoin de connaître le réseau, et le TCP n'a pas besoin de connaître les données du programme.

Articles liés

Auteur

AlegsaOnline.com TCP : définition, rôle et fonctionnement du protocole Internet

URL: https://fr.alegsaonline.com/art/101176

Partager