Skip to content

Apport de connaissances : Protocole TCP

Le protocole UDP de la couche transport est simple à mettre en oeuvre, mais il a en contre-partie des inconvénients :

  • un paquet, émis selon le protocole UDP, peut être perdu, et cela sans notification particulière pour le logiciel à l'origine de l'envoi ;
  • si un logiciel envoie deux paquets selon le protocole UDP, il n'y aucune garantie que le logiciel distant reçoive ces paquets dans le même ordre.

Le protocole TCP

Le protocole TCP permet :

  • la réception de paquets dans l'ordre ;
  • de détecter les erreurs de transmission ;
  • de retransmettre automatiquement les paquets perdus ou corrompus.

Une connexion TCP entre un serveur et un client est mise en place en 3 temps :

  • le serveur choisit un numéro de séquence et envoie au client un paquet nommé SYN indiquant le numéro de séquence choisie ;
  • le client réceptionne ce paquet et choisit à son tour un numéro puis renvoie un paquet SYN-ACK contenant le numéro de séquence du serveur incrémenté de 1 et le numéro choisi ;
  • à la réception de ce paquet le serveur est connecté et renvoie un dernier paquet ACK au client contenant les numéros de séquences incrémentés.
  • à la réception de ce paquet le client est connecté.

A l'issue de ce processus, le serveur et le client partage une information commune : une paire de nombres.

Le serveur peut alors envoyer les paquets de données en poursuivant la numérotation (incrémentation correspondant à la taille en octets des paquets échangés).

Les avantages sont que :

  • si le client reçoit les trois paquets dans le désordre, il peut les réorganiser selon leur numéro ;
  • si le client ne reçoit pas un paquet, le serveur peut choisir de le réémettre.