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
Remarque : Problè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...
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):
À 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.
Remarque : Diffé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...