Les bases du SI - Les protocoles TCP / UDP (3/6)
Le transport réseau est incertain et on ne peut pas compter dessus. il arrive souvent que certains paquets (trames) soient perdus lors de leur transfert d'une source vers une cible.
Nous allons voir comment cela fonctionne avec TCP et UDP.
TCP
TCP a été créé avec deux objectifs :
- Garantir que les paquets sont délivrés
- S'assurer qu'une connexion existe entre la source et la cible avant de transférer de l'information
TCP est le protocole le plus utilisé sur internet ; il est notamment présent dans les clients mails, les navigateurs ou les clients FTP.
UDP
De son côté, UDP est beaucoup plus simpliste :
- Il ne garantit pas que les paquets sont délivrés
- Il est connectionless, ce qui signifie qu'il est bien plus rapide que TCP
UDP est utilisé dans la VoIP et pour les services de streaming en particulier.
Ports
Les ports 0 à 1023 sont appelés les well-kown ports car ils sont utilisés par la plupart des services connus :
- SMTP : 25
- SSH : 22
- POP3 : 110
- IMAP : 143
Pour lister les ports et connexions TCP ouverts, vous pouvez utiliser ces commandes :
# Windows
> netstat -ano
# Linux
$ netstat -tunp
Three Way Handshake
Pour établir une connexion TCP, il est nécessaire de réaliser 3 étapes appelées Three Way Handshake :
- Le client envoie un paquet TCP au serveur avec le flag SYN et une séquence aléatoire
- Le serveur répond avec le flag SYN + ACK et une autre séquence aléatoire. Le ACK est toujours un simple incrément du SYN envoyé par le client
- Le client complète la synchronisation en envoyant le flag ACK
Cette enchainement permet de synchroniser la séquence et le acknowledgment.