Les bases du SI - Les protocoles TCP / UDP (3/6)

Les bases du SI - Les protocoles TCP / UDP (3/6)
Photo by Omar Flores / Unsplash

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 - Transmission Control Protocol / UDP - User Datagram Protocol

TCP a été créé avec deux objectifs :

  1. Garantir que les paquets sont délivrés
  2. 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 :

  1. Il ne garantit pas que les paquets sont délivrés
  2. 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 :

  1. Le client envoie un paquet TCP au serveur avec le flag SYN et une séquence aléatoire
  2. 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
  3. Le client complète la synchronisation en envoyant le flag ACK

Cette enchainement permet de synchroniser la séquence et le acknowledgment.