kubenow
Se connecterCommencer gratuitement

R.17 · Le transport et le diagnostic

TCP et UDP : ports, connexions et choix du protocole

Leçon théorique · questionnaire de validation · gratuit, dans le navigateur

IP amène un paquet d'une machine à une autre ; la couche transport l'amène à la bonne application, grâce aux ports, et décide du niveau de fiabilité. Deux protocoles se partagent presque tout le trafic : TCP, fiable et ordonné, et UDP, léger et sans garantie. Savoir lequel utilise un service, et sur quel port, sert tous les jours pour écrire une règle de pare-feu ou dépanner un « ça ne répond pas ».

Ce que vous saurez à la fin : expliquer le rôle des ports, décrire l'ouverture et la fermeture d'une connexion TCP, comparer TCP et UDP, citer les ports des services courants et voir sur une machine qui écoute sur quel port.

1. Les ports : à quelle application parler

Une machine fait tourner de nombreux services sur une seule adresse IP. Le port (un nombre de 0 à 65 535) désigne l'application. Une connexion est identifiée par cinq valeurs : protocole, IP source, port source, IP destination, port destination.

Plage Nom Usage
0 à 1023 Ports bien connus Services standard (22, 80, 443…) ; sous Linux, réservés à root
1024 à 49 151 Ports enregistrés Applications (3306 MySQL, 5432 PostgreSQL, 6443 API Kubernetes)
49 152 à 65 535 Ports éphémères Choisis au hasard par le client, côté source

Quand votre navigateur contacte https://exemple.fr, il part d'un port éphémère (par exemple 51 234) vers le port 443 du serveur.

2. TCP : une connexion fiable

Son en-tête porte de quoi numéroter, acquitter et réguler chaque échange :

4 · TransportPortssource 51234, destination 443
4 · TransportSéquence et ACKnuméro du premier octet envoyé, prochain octet attendu
4 · TransportDrapeauxSYN, ACK, FIN, RST, PSH
4 · TransportFenêtreoctets acceptés sans nouvel accusé
7 · ApplicationDonnéesla requête de l'application
L'en-tête TCP : ce qui rend la connexion fiable

Avant tout échange, TCP ouvre une connexion, en trois messages (three-way handshake) :

  1. SYN : le client demande l'ouverture et annonce son numéro de séquence de départ ;
  2. SYN-ACK : le serveur accepte, accuse réception et annonce le sien ;
  3. ACK : le client accuse réception ; la connexion est établie et les données circulent.

Ensuite, TCP garantit que tout arrive, dans l'ordre :

  • chaque octet est numéroté (numéro de séquence) et le destinataire accuse réception (ACK) ;
  • ce qui n'est pas acquitté à temps est retransmis ;
  • la fenêtre (window) règle combien de données peuvent être envoyées sans attendre d'accusé : elle s'agrandit quand tout va bien et rétrécit en cas de pertes, c'est le contrôle de flux et de congestion.

La fermeture se fait proprement avec FIN et ACK dans chaque sens, ou brutalement avec RST. Un connection refused est justement un RST : la machine répond, mais rien n'écoute sur ce port.

3. UDP : envoyer et oublier

UDP n'ouvre aucune connexion : il envoie des datagrammes, sans accusé, sans retransmission, sans ordre garanti. Son en-tête fait 8 octets, contre 20 au minimum pour TCP.

TCP UDP
Connexion Oui (handshake) Non
Fiabilité, ordre Garantis (ACK, retransmission) Aucune garantie
Contrôle de flux Fenêtre glissante Aucun
En-tête 20 octets minimum 8 octets
Usages Web, SSH, e-mail, bases de données, API DNS, DHCP, voix et vidéo en direct, NTP, SNMP, syslog

UDP convient quand une donnée en retard ne sert plus à rien (la voix) ou quand l'application gère elle-même la fiabilité. QUIC, le transport de HTTP/3, est construit sur UDP pour cette raison.

4. Les ports à connaître

Port Protocole Service
20, 21 TCP FTP (données, commandes)
22 TCP SSH, SCP, SFTP
23 TCP Telnet (en clair : à proscrire)
25 TCP SMTP (envoi d'e-mails)
53 UDP et TCP DNS (TCP pour les grosses réponses et les transferts de zone)
67, 68 UDP DHCP (serveur, client)
69 UDP TFTP (images et configurations d'équipements)
80 TCP HTTP
110, 143 TCP POP3, IMAP
123 UDP NTP (l'heure)
161, 162 UDP SNMP (requêtes, alertes traps)
443 TCP (et UDP pour HTTP/3) HTTPS
514 UDP Syslog

5. Qui écoute sur ma machine ?

ss -tlnp                   # TCP en écoute (-t), numérique (-n), avec le processus (-p)
ss -ulnp                   # la même chose en UDP
ss -tn state established   # les connexions TCP établies
nc -vz exemple.fr 443      # tester qu'un port distant répond
! Cisco IOS : un routeur ou un commutateur montre ses propres connexions
show control-plane host open-ports
show tcp brief

Le diagnostic en trois cas : timeout (rien ne revient : un pare-feu jette les paquets, ou la route manque), connection refused (RST : la machine est joignable mais aucun service n'écoute), connexion établie mais erreur (le problème est dans l'application, couche 7).

Contenu aligné sur les programmes publiés par la CNCF (KCNA, CKAD, CKA, CKS), par le Linux Professional Institute (LPIC-1) et par Cisco (CCNA 200-301). KubeNow n'est ni affilié ni approuvé par la CNCF, la Linux Foundation, le LPI ou Cisco ; CKA, CKAD, CKS et KCNA sont des marques de la Linux Foundation, LPIC-1 est une marque du Linux Professional Institute, Cisco et CCNA sont des marques de Cisco Systems.