TCP (Transmission Control Protocol)

1. Introduction à TCP

Le protocole TCP (Transmission Control Protocol) est l'un des protocoles majeurs de la suite TCP/IP utilisée pour l'échange de données sur Internet.
Il se situe au niveau transport dans le modèle TCP/IP et vise à fournir :

Dans le modèle OSI, TCP se trouve au niveau 4 (transport).


2. Caractéristiques principales de TCP


3. Le segment TCP : structure et champs importants

Un segment TCP est l'unité de données échangée entre deux hôtes au niveau transport. Les champs les plus importants de l'en-tête TCP (20 octets minimum) sont :


4. Établissement de la connexion : Three-Way Handshake

4.1 Principe général

Avant que deux machines (par exemple un client et un serveur) puissent échanger des données via TCP, elles doivent établir une connexion. On parle de handshake en trois temps (Three-Way Handshake). Les trois segments échangés contiennent des indicateurs (flags) spécifiques : SYN et ACK.

Étape 1 : SYN

Le client envoie au serveur un segment contenant :

À ce moment, le client se trouve en état SYN_SENT (il attend une réponse du serveur).

Étape 2 : SYN + ACK

Le serveur, qui reçoit la requête SYN, envoie en retour un segment :

Le serveur passe en état SYN_RECEIVED, il attend la finalisation de l'acquittement par le client.

Étape 3 : ACK

Le client, après avoir reçu le segment SYN+ACK, répond :

Une fois ce dernier ACK reçu et validé par le serveur, la connexion est considérée établie. Le client est en état ESTABLISHED, de même que le serveur.

4.2 Récapitulatif schématisé

État final : La connexion est établie (ESTABLISHED) des deux côtés.


5. Transfert de données

Une fois la connexion établie, chaque hôte peut envoyer des segments de données. Les points clés :


6. Fermeture de la connexion : Four-Way Handshake

La fermeture d'une connexion TCP est légèrement différente et se fait généralement en quatre échanges (bien qu'il existe un cas simplifié à trois échanges si les deux envois FIN/ACK arrivent en même temps).

Après ce dernier ACK, la connexion est totalement fermée des deux côtés.


En résumé

Le protocole TCP se caractérise par :

Tous ces mécanismes permettent d'assurer un transfert de données fiable et sécurisé entre applications sur un réseau IP.

En résumé :

C'est grâce à cette fiabilité de bout en bout que TCP est utilisé pour des applications sensibles aux pertes (HTTP, FTP, SMTP, etc.).
Pour des applications en temps réel ou tolérantes à la perte (par exemple la voix sur IP, la vidéo en streaming), on préférera parfois UDP, qui ne fournit pas la même fiabilité ni le même contrôle de flux.


⬆️ Retour en haut de la page