Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 1014 minDébutant

TCP, UDP et ports : la couche transport

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • expliquer le rôle des ports ;
  • comparer TCP et UDP, et situer QUIC et HTTP/3 ;
  • décrire la poignée de main en trois temps de TCP ;
  • citer les ports à connaître et voir les ports ouverts d'une machine.

5 exercices corrigés1 schéma

La couche transport relie deux programmes, et pas seulement deux machines : le numéro de port (de 0 à 65 535) désigne le programme destinataire, TCP garantit une livraison complète et dans l'ordre grâce à une connexion établie en trois temps, et UDP envoie sans connexion ni garantie, plus vite. Ce chapitre explique les ports, le fonctionnement de TCP et d'UDP, leurs différences, les ports à connaître et les commandes pour voir les connexions d'une machine.

Les ports : à quel programme parler

Une adresse IP désigne une machine (plus exactement une interface). Mais sur un même serveur tournent souvent plusieurs services : un site web, un serveur SSH, une base de données. Le port dit à quel programme remettre les données. Si l'adresse IP est l'adresse d'un immeuble, le port est le numéro de l'appartement.

Un port est un nombre de 16 bits, de 0 à 65 535. L'IANA en distingue trois plages :

PlageNomUsage
0 à 1023Ports bien connus (well-known)Services standards : 22 SSH, 53 DNS, 443 HTTPS. Sous Linux, seul l'administrateur peut ouvrir un serveur sur ces ports.
1024 à 49151Ports enregistrésApplications : 3306 MySQL, 3389 bureau à distance, 5432 PostgreSQL
49152 à 65535Ports dynamiques (éphémères)Choisis au hasard par le système pour le côté client d'une connexion

Quand ton navigateur se connecte à un serveur web, le serveur écoute sur le port 443 ; ton système choisit pour toi un port source éphémère, par exemple 51544. Windows prend ses ports éphémères dans la plage de l'IANA ; Linux, par défaut, entre 32768 et 60999. Les réponses du serveur reviennent vers ce port, ce qui permet d'avoir plusieurs onglets ouverts vers le même site.

Une connexion est identifiée par cinq valeurs : protocole, adresse IP source, port source, adresse IP destination, port destination. Le couple « adresse IP + port » s'appelle un socket et se note 192.168.10.70:51544 (en IPv6, l'adresse est entre crochets : [2001:db8::10]:443).

TCP : la livraison garantie

TCP (Transmission Control Protocol) est un protocole orienté connexion et fiable. Avant d'envoyer des données, le client et le serveur établissent une connexion ; ensuite, TCP garantit que tout arrive, une seule fois, dans l'ordre.

La poignée de main en trois temps

ClientServeur1. SYNseq = 10002. SYN-ACKseq = 5000, ack = 10013. ACKseq = 1001, ack = 5001Connexion établie : les données circulentportéphémèreport443
La poignée de main TCP : SYN, SYN-ACK, ACK
  1. SYN : le client demande une connexion et annonce son numéro de séquence initial (ici 1000).
  2. SYN-ACK : le serveur accepte, annonce son propre numéro (5000) et accuse réception du SYN : ack = 1001, c'est-à-dire « j'attends maintenant ton octet numéro 1001 ».
  3. ACK : le client accuse réception du SYN du serveur (ack = 5001). La connexion est établie.

Si le port est fermé, le serveur répond au SYN par un segment RST (reset) : la connexion est refusée immédiatement. Si un pare-feu bloque silencieusement le port, le client ne reçoit rien et attend jusqu'à l'expiration du délai. Cette différence, « refusé » contre « délai dépassé », est précieuse pour dépanner.

Numéros de séquence et accusés de réception

TCP numérote chaque octet envoyé. Le destinataire répond par un ACK qui indique le prochain octet attendu. Si le client envoie 200 octets à partir du numéro 1001, le serveur répond ack = 1201. Un segment qui ne reçoit pas d'accusé dans le délai prévu est retransmis. Les numéros permettent aussi de remettre dans l'ordre des segments arrivés dans le désordre et d'éliminer les doublons.

Fenêtre et congestion

Le destinataire annonce une fenêtre : la quantité de données qu'il peut recevoir avant d'avoir à accuser réception. C'est le contrôle de flux : un serveur rapide ne noie pas un client lent. TCP adapte aussi son rythme à l'état du réseau : il accélère tant que tout passe et ralentit dès qu'il détecte des pertes. C'est le contrôle de congestion, qui évite qu'Internet s'effondre sous la charge.

Les drapeaux et la fermeture

L'en-tête TCP (20 octets au minimum) contient les ports, les numéros de séquence et d'accusé, la fenêtre, une somme de contrôle et des drapeaux : SYN (ouverture), ACK (accusé de réception), FIN (fin d'envoi), RST (réinitialisation brutale), PSH (transmettre sans attendre) et URG (données urgentes).

La fermeture normale se fait dans chaque sens : chaque côté envoie un FIN et reçoit un ACK. Une connexion passe par plusieurs états, que tu verras avec netstat ou ss : LISTEN (un serveur attend), ESTABLISHED (connexion ouverte), TIME_WAIT (connexion fermée depuis peu, en attente avant oubli), SYN_SENT (le client attend une réponse à son SYN, souvent le signe d'un port filtré).

UDP : envoyer sans attendre

UDP (User Datagram Protocol) est sans connexion et sans garantie. Il ajoute aux données un en-tête de 8 octets seulement (port source, port destination, longueur, somme de contrôle) et envoie. Pas de poignée de main, pas d'accusé, pas de retransmission, pas de remise en ordre.

C'est un avantage quand :

  • la rapidité compte plus que la perfection : voix sur IP, visioconférence, jeux en ligne. Un paquet de voix qui arrive en retard ne sert plus à rien ; mieux vaut le perdre que l'attendre ;
  • l'échange tient en une question et une réponse : une requête DNS, une demande DHCP, une synchronisation NTP. Établir une connexion coûterait plus cher que l'échange lui-même ;
  • on envoie à plusieurs destinataires : broadcast et multicast n'existent qu'en UDP.

Si une application sur UDP a besoin de fiabilité, c'est elle qui la gère : le client DNS renvoie sa question s'il n'a pas de réponse au bout d'un moment.

QUIC et HTTP/3 : le web passe aussi par UDP

QUIC est un protocole de transport plus récent (RFC 9000, 2021), construit au-dessus d'UDP. Il apporte la fiabilité de TCP, le chiffrement de TLS 1.3 intégré et un établissement de connexion plus rapide. HTTP/3 l'utilise : une bonne partie du trafic web des grands sites passe désormais par le port UDP 443. Conséquence pratique : un pare-feu qui n'autorise que TCP 443 n'empêche pas la navigation (le navigateur se rabat sur HTTP/2 en TCP), mais une règle « HTTPS » doit aujourd'hui penser aux deux.

TCP ou UDP : le comparatif

CritèreTCPUDP
ConnexionOui, poignée de main en trois tempsNon
FiabilitéAccusés de réception, retransmissionAucune garantie
OrdreGarantiNon garanti
Contrôle de flux et de congestionOuiNon
En-tête20 octets minimum8 octets
Diffusion et multicastImpossiblePossible
UsagesWeb (HTTP/1.1 et HTTP/2), SSH, courrier, transferts de fichiers, bases de données, bureau à distanceDNS, DHCP, NTP, SNMP, syslog, voix et vidéo, VPN WireGuard, QUIC

Les ports à connaître

PortProtocoleService
20, 21TCPFTP (données, commandes)
22TCPSSH, et SFTP qui passe par SSH
23TCPTelnet (non chiffré, à proscrire)
25TCPSMTP, entre serveurs de messagerie
53UDP et TCPDNS
67, 68UDPDHCP (serveur, client)
69UDPTFTP (démarrage réseau, sauvegarde de configurations)
80TCPHTTP
110TCPPOP3
123UDPNTP (heure)
143TCPIMAP
161, 162UDPSNMP (requêtes, alertes)
389TCP et UDPLDAP (annuaire, Active Directory)
443TCP et UDPHTTPS (UDP pour HTTP/3)
445TCPSMB (partages Windows)
465, 587TCPSMTP chiffré, soumission des courriels par les clients
514UDPSyslog
636TCPLDAPS (LDAP chiffré)
993, 995TCPIMAPS, POP3S
1194UDPOpenVPN (par défaut)
1812, 1813UDPRADIUS (authentification, comptabilité)
3306TCPMySQL et MariaDB
3389TCPRDP, bureau à distance Windows
5432TCPPostgreSQL
51820UDPWireGuard (par défaut)

Voir et tester les ports

BesoinWindowsLinux
Ports en écoute et connexions, avec le programmenetstat -ano (le PID en dernière colonne) ; Get-NetTCPConnectionss -tulpn (t TCP, u UDP, l en écoute, p programme, n numérique)
Tester si un port distant répondTest-NetConnection srv-gestion -Port 443nc -zv srv-gestion 443
Tester un service webcurl.exe -I https://intranet.sorbier.examplecurl -I https://intranet.sorbier.example

Exemple sur le serveur de gestion de Sorbier :

text
$ ss -tln
State   Recv-Q  Send-Q  Local Address:Port   Peer Address:Port
LISTEN  0       128           0.0.0.0:22          0.0.0.0:*
LISTEN  0       511           0.0.0.0:443         0.0.0.0:*
LISTEN  0       151         127.0.0.1:3306        0.0.0.0:*

Lecture : SSH (22) et HTTPS (443) écoutent sur toutes les interfaces (0.0.0.0) ; MySQL (3306) écoute seulement sur 127.0.0.1, la boucle locale. L'application web, qui tourne sur le même serveur, joint sa base ; une machine du réseau ne le peut pas, même sans pare-feu. C'est une bonne pratique.

Exercices

Exercice 1 sur 5 TCP ou UDP ? Réussi À revoir

Pour chaque usage, dis quel protocole de transport il utilise et pourquoi.

  1. Télécharger une image ISO de 5 Go.
  2. Demander l'adresse IP de www.sorbier.example.
  3. Un appel en visioconférence.
  4. Une connexion SSH à un serveur.
  5. Un poste qui cherche un serveur DHCP.
Voir la réponseMasquer la réponse de l'exercice 1
  1. TCP : chaque octet doit arriver, dans l'ordre ; un fichier corrompu est inutilisable.
  2. UDP (port 53) : une question, une réponse ; le client renvoie la question s'il n'obtient rien. DNS passe en TCP pour les grosses réponses et les transferts de zone.
  3. UDP : la rapidité prime ; un paquet de son en retard est inutile, il vaut mieux le perdre.
  4. TCP (port 22) : chaque frappe au clavier et chaque ligne affichée doit arriver intacte et dans l'ordre.
  5. UDP (ports 67 et 68) : le poste n'a pas encore d'adresse et doit diffuser sa demande à tout le réseau, ce que TCP ne sait pas faire.

Tu avais trouvé ?

Exercice 2 sur 5 Suivre les numéros de séquence Réussi À revoir

Un client ouvre une connexion avec le numéro de séquence initial 3000 ; le serveur choisit 9000.

  1. Donne les trois segments de la poignée de main (drapeaux, seq, ack).
  2. Le client envoie ensuite 500 octets. Quel numéro d'accusé de réception le serveur renvoie-t-il ?
  3. Le client envoie un SYN vers un port où aucun programme n'écoute. Que reçoit-il ? Et si un pare-feu bloque ce port en silence ?
Voir la réponseMasquer la réponse de l'exercice 2
  1. SYN, seq = 3000 ; SYN-ACK, seq = 9000, ack = 3001 ; ACK, seq = 3001, ack = 9001.
  2. Les 500 octets portent les numéros 3001 à 3500 : le serveur attend ensuite l'octet 3501, il renvoie ack = 3501.
  3. Port fermé : un segment RST, la connexion est refusée immédiatement (« connexion refusée »). Port filtré en silence : rien, le client renvoie son SYN plusieurs fois puis abandonne (« délai d'attente dépassé »).

Tu avais trouvé ?

Exercice 3 sur 5 Identifier les services Réussi À revoir

Une capture montre des connexions vers ces ports. Nomme le service.

22/TCP · 53/UDP · 123/UDP · 389/TCP · 445/TCP · 3389/TCP · 1812/UDP · 443/UDP

Voir la réponseMasquer la réponse de l'exercice 3

SSH · DNS · NTP · LDAP (annuaire, Active Directory) · SMB (partage de fichiers Windows) · RDP (bureau à distance) · RADIUS (authentification, par exemple du Wi-Fi d'entreprise) · HTTPS en HTTP/3 (QUIC).

Tu avais trouvé ?

Exercice 4 sur 5 Lire netstat Réussi À revoir

Sur un poste Windows de Sorbier, netstat -ano affiche (extrait) :

text
  Proto  Adresse locale         Adresse distante        État         PID
  TCP    0.0.0.0:3389           0.0.0.0:0               LISTENING    1132
  TCP    192.168.10.70:51544    198.51.100.80:443       ESTABLISHED  8420
  TCP    192.168.10.70:51602    192.168.10.178:445      ESTABLISHED  4
  TCP    192.168.10.70:51610    192.168.10.179:443      SYN_SENT     8420
  1. Quel service ce poste offre-t-il au réseau ? Est-ce normal ?
  2. Que fait le poste avec 192.168.10.178 ?
  3. Que signifie la dernière ligne ?
Voir la réponseMasquer la réponse de l'exercice 4
  1. Il écoute sur 3389, le bureau à distance, sur toutes ses interfaces. Sur un poste utilisateur, c'est à vérifier : si personne n'en a besoin, il faut le désactiver ou le limiter par le pare-feu aux postes du service informatique.
  2. Une connexion SMB (445) établie avec le serveur de fichiers : un lecteur réseau ou un partage ouvert. Le PID 4 est le noyau Windows (le client SMB).
  3. Le programme 8420 (le navigateur, qui a aussi la connexion HTTPS de la ligne 2) a envoyé un SYN au serveur de gestion sur le port 443 et attend toujours la réponse : le port est probablement filtré par les ACL du switch de cœur entre les deux VLAN (ou par le pare-feu du serveur), ou le serveur ne répond pas.

Tu avais trouvé ?

Exercice 5 sur 5 Écrire les règles de filtrage Réussi À revoir

Le switch de cœur de Sorbier, qui route entre les VLAN, filtre ces flux avec des ACL. Écris, sous forme de tableau (source, destination, protocole, port, action), les règles qui permettent aux postes (VLAN 10, 192.168.10.64/26) d'utiliser le DNS du serveur srv-ad (192.168.10.177), d'ouvrir les partages du serveur de fichiers (192.168.10.178) et l'application de gestion en HTTPS (192.168.10.179), puis interdisent tout le reste vers les serveurs.

Voir la réponseMasquer la réponse de l'exercice 5
N°SourceDestinationProtocolePortAction
1192.168.10.64/26192.168.10.177UDP et TCP53Autoriser
2192.168.10.64/26192.168.10.178TCP445Autoriser
3192.168.10.64/26192.168.10.179TCP (et UDP si HTTP/3 est activé)443Autoriser
4Tout192.168.10.176/28ToutToutRefuser

Les règles sont lues dans l'ordre : la règle de refus vient en dernier, sinon elle bloquerait tout. Les ACL d'un switch sont en général sans état : si l'on filtre aussi dans le sens retour (des serveurs vers les postes), il faut y autoriser explicitement les réponses (en TCP, avec le mot-clé established), alors qu'un pare-feu à état les laisse passer seul. Dans un vrai domaine Active Directory, les postes ont besoin d'autres ports vers le contrôleur de domaine (Kerberos 88, LDAP 389…) : c'est l'objet du cours Windows Server.

Tu avais trouvé ?

Chapitre terminé !

Fais les 5 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : DNS et DHCP : les deux services de baseRevoir le sommaire du cours