Fondamentaux
TCP et UDP
TCP et UDP sont deux protocoles de transport. Ils permettent aux applications de communiquer, mais avec deux philosophies différentes : fiabilité pour TCP, simplicité et faible latence pour UDP.
TCP
TCP est orienté connexion. Avant l'échange de données, le client et le serveur établissent une connexion.
Three-Way Handshake
Client Serveur
SYN ───────►
◄─────── SYN-ACK
ACK ───────►
Ce mécanisme permet aux deux machines de se mettre d'accord avant d'envoyer les données applicatives.
Caractéristiques
- vérification de réception
- réémission des paquets perdus
- ordonnancement des données
- contrôle d'erreur
- adapté à HTTP, HTTPS, SSH, SMTP
Flags importants
| Flag | Rôle |
|---|---|
SYN | Demande d'ouverture de connexion |
ACK | Accusé de réception |
FIN | Fermeture propre |
RST | Réinitialisation brutale |
PSH | Demande de transmission rapide à l'application |
Les flags TCP sont utiles pour comprendre les scans, les connexions bloquées et certains comportements anormaux.
États fréquents
| État | Signification |
|---|---|
LISTEN | Le service attend des connexions |
ESTABLISHED | La connexion est active |
TIME-WAIT | Fermeture en cours côté TCP |
SYN-SENT | Connexion demandée mais pas encore établie |
ss -tan
UDP
UDP est sans connexion. Il envoie les données sans vérifier leur bonne réception.
Caractéristiques
- faible latence
- peu de surcharge réseau
- pas de réémission automatique
- adapté à DNS, DHCP, VoIP, streaming et jeux en ligne
UDP ne signifie pas forcément "non fiable" au niveau applicatif. Certaines applications ajoutent leurs propres mécanismes de contrôle, de retransmission ou de chiffrement.
Comparaison
| Caractéristique | TCP | UDP |
|---|---|---|
| Connexion préalable | Oui | Non |
| Vérification des données | Oui | Non |
| Réémission | Oui | Non |
| Fiabilité | Élevée | Faible |
| Rapidité | Moyenne | Élevée |
Attention aux raccourcis
TCP n'est pas automatiquement sûr et UDP n'est pas automatiquement dangereux. Le risque dépend du service exposé, de sa configuration, des données échangées et du contexte réseau.
Commandes utiles
Afficher les services en écoute :
ss -tuln
Options importantes :
-t: TCP-u: UDP-l: services en écoute-n: affichage numérique
Tester un port TCP :
nc -vz example.com 443
Observer rapidement une connexion HTTP :
curl -I https://example.com
Capturer du trafic avec tcpdump :
sudo tcpdump -i any host example.com
Pourquoi c'est important
Comprendre TCP et UDP aide à lire un scan de ports, analyser une capture réseau, identifier un service exposé et reconnaître des flux suspects.
En défense, les points à regarder sont souvent :
- ports en écoute non attendus
- connexions sortantes inhabituelles
- volume anormal vers une destination
- nombreuses tentatives de connexion échouées
- trafic UDP vers des destinations peu connues
