TCP UDP et transport de bout en bout
Définition
TCP (Transmission Control Protocol) et UDP (User Datagram Protocol) sont les deux protocoles majeurs de la couche Transport (Host-to-Host) dans TCP/IP. TCP offre un transport fiable, oriente connexion. UDP offre un transport leger, sans connexion. Les deux utilisent des numeros de port pour multiplexer les applications.
Contexte
CCST demande de connaitre les differences fondamentales entre TCP et UDP, le concept de three-way handshake, les numeros de port well-known et la notion de fiabilite.
Détails techniques
Comparaison TCP vs UDP
| Critère | TCP | UDP |
|---|---|---|
| Type | Orienté connexion | Sans connexion |
| Fiabilité | Oui (ACK, retransmission) | Non |
| Ordre | Séquencement garanti | Pas de séquencement |
| Controle de flux | Oui (windowing) | Non |
| Overhead | 20 octets (en-tete minimum) | 8 octets |
| Vitesse | Plus lent (controles) | Plus rapide |
| Exemples | HTTP, HTTPS, FTP, SSH, SMTP | DNS (requetes), DHCP, TFTP, SNMP, VoIP |
Three-way handshake (TCP)
Client Serveur
| |
|---- SYN -------------->| (1) Le client demande une connexion
|<--- SYN-ACK -----------| (2) Le serveur accepte et repond
|---- ACK -------------->| (3) Le client confirme
| |
|==== Connexion etablie ====|
| |
|<--- DATA / ACK ------->| (echange de donnees)
| |
|---- FIN -------------->| (fermeture)
|<--- ACK ---------------|
|<--- FIN ---------------|
|---- ACK -------------->|
Numeros de port
| Plage | Nom | Usage |
|---|---|---|
| 0 – 1023 | Well-known ports | Services standards (HTTP=80, SSH=22, DNS=53...) |
| 1024 – 49151 | Registered ports | Applications enregistrees (MySQL=3306, RDP=3389...) |
| 49152 – 65535 | Dynamic / ephemeral | Ports source aleatoires attribues par le client |
Ports well-known a connaitre pour CCST
| Port | Protocole | Service |
|---|---|---|
| 20/21 | TCP | FTP (data / control) |
| 22 | TCP | SSH / SFTP |
| 23 | TCP | Telnet |
| 25 | TCP | SMTP |
| 53 | UDP/TCP | DNS |
| 67/68 | UDP | DHCP |
| 69 | UDP | TFTP |
| 80 | TCP | HTTP |
| 110 | TCP | POP3 |
| 123 | UDP | NTP |
| 143 | TCP | IMAP |
| 161/162 | UDP | SNMP |
| 443 | TCP | HTTPS |
Socket
Un socket identifie de maniere unique une connexion : IP source : port source ↔ IP destination : port destination.
Exemple : 192.168.1.10:49200 → 93.184.216.34:443 (HTTPS).
Fiabilite TCP : windowing et ACK
- Le client envoie
Nsegments avant d'attendre un ACK (fenetre de tailleN). - Si un segment est perdu, le recepteur signale le dernier segment recu correctement et l'emetteur retransmet.
- La taille de la fenetre s'ajuste dynamiquement (TCP slow start, congestion avoidance).
Exemple concret
Un navigateur ouvre une page HTTPS. Il etablit d'abord un three-way handshake TCP vers le port 443 du serveur. Puis il negocie TLS. Les donnees HTML sont transmises de facon fiable (chaque segment est acquitte). En parallele, un telephone VoIP utilise UDP sur le port 5060 (SIP) pour la signalisation et les ports RTP (UDP) pour la voix — perdre un paquet voix est preferable a attendre une retransmission TCP.