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=100OutputSYN-ACK seq=200 ack=101The three-way handshake
Erreurs courantes
- TIME_WAIT buildup exhausts ports
- Tune tcp_tw_reuse or use a connection pool