Couche 4 - Transport : TCP vs UDP

Le protocole IP nous permet d'envoyer et de recevoir des paquets de données d'un ordinateur à un autre. Mais si nous avons plusieurs applications qui fonctionnent sur l'ordinateur (navigateur, un logiciel d'e-mail, une radio, ...), comment faire pour savoir à quel logiciel délivrer les paquets ?

C'est le rôle des ports dans un ordinateur... On aborde ici la couche 4 du modèle théorique TCP / IP que l'on verra un peu plus dans le détail à la fin de ce cours.

Nous allons commencer par expliquer le protocole UDP qui permettra de comprendre le protocole TCP, plus évolué !

Le protocole UDP

Comme pour les portes d'un immeuble, on peut attribuer un numéro unique à chaque logiciel dans l'ordinateur :

Ces ports sont des informations présentes dans les datagrammes du protocole UDP (User Datagram Protocol).

RemarqueProblème de l'UDP

On peut envoyer des paquets de données d'un ordinateur à un autre (IP) et s'adresser au bon logiciel (UDP), cependant il y a encore des problèmes :

  • Des paquets peuvent se perdre.

  • Rien ne permet de savoir s'ils sont bien arrivés.

  • La taille des paquets est limitée (1500 octets environ). Et si je veux envoyer une photo de 100 000 octets ?

C'est le rôle de TCP (Transmission Control Protocol) de régler tous ces éventuels problèmes. Voyons cela dans le détail...

Meme sur l'UDP

Le protocole TCP

TCP sait faire :

  • Tout ce que UDP sait faire, notamment avec les ports.

  • Vérifier que le destinataire est prêt à recevoir les données.

  • Découper les gros paquets en paquets plus petits.

  • Numéroter les segments, vérifier qu'ils arrivent à destination (les redemander sinon), les réordonner.

  • Émettre des accusés de réception.

Par exemple, pour envoyer le message "Salut, comment ça va ?", voilà ce que fait TCP (chaque flèche représente 1 paquet IP):

Protocole TCP par l'exemple

À l'arrivée, sur l'ordinateur 204.66.224.82, la couche TCP reconstitue le message "Salut, comment ça va ?" à partir des trois paquets IP reçus et le donne au logiciel qui est sur le port 80.

Conclusion

Avec TCP/IP, on peut maintenant communiquer de façon fiable entre logiciels situés sur des ordinateurs différents.

TCP/IP est utilisé dans des domaines très divers :

  • Dans le navigateur internet, le protocole HTTP utilise le protocole TCP/IP pour envoyer et recevoir des pages HTML, des images GIF, JPG et toutes sortes d'autres données.

  • FTP est un protocole qui permet d'envoyer et recevoir des fichiers. Il utilise également TCP/IP.

  • Votre logiciel de courrier électronique utilise les protocoles SMTP et POP3 pour envoyer et recevoir des e-mails. SMTP et POP3 utilisent eux aussi le protocole TCP/IP.

  • Votre navigateur (et d'autres logiciels) utilise le protocole DNS pour trouver l'adresse IP d'un ordinateur à partir de son nom (par exemple, trouver l'adresse IP 216.58.208.227 à partir de « www.google.fr »). Le protocole DNS utilise les protocoles UDP/IP et TCP/IP en fonction de ses besoins.

Il existe ainsi de nombreux protocoles qui utilisent TCP/IP ou UDP/IP.

RemarqueDifférences entre UDP et TCP

Par rapport au protocole UDP, le protocole TCP permet des communications fiables.

L'inconvénient est qu'il nécessite une négociation ("Bonjour, prêt à communiquer ?" etc.), ce qui prend un peu plus de temps...