Aller au contenu
uencoder

TCP

TCP (Transmission Control Protocol) est un protocole de transport orienté connexion, fiable et ordonné ; il établit les connexions par poignée de main en trois temps et fournit un contrôle de flux à fenêtre glissante et des acquittements basés sur ACK.

Objectif

Il offre un transfert de données fiable qui arrive complet et dans l'ordre, adapté aux transferts de fichiers et au Web.

Mécanisme

Une poignée de main en trois temps établit la connexion (SYN, SYN-ACK, ACK) ; une fermeture en quatre temps la démonte. Les données sont numérotées et acquittées par le récepteur. Le contrôle de flux utilise une fenêtre glissante ; le contrôle de congestion utilise le démarrage lent et AIMD. La retransmission survient sur timeout. La machine à états compte 11 états.

Cas d’usage

  • Transport web HTTP/HTTPS
  • Connexion à distance SSH
  • Transfert de courrier SMTP
  • Transfert de fichiers (FTP/SFTP)

Exemples

  • entrée
    SYN seq=100
    Output
    SYN-ACK seq=200 ack=101

    The three-way handshake

Erreurs courantes

TIME_WAIT buildup exhausts ports
Tune tcp_tw_reuse or use a connection pool

Termes associés

Outils associés

References