+ de 700 vidéos sur le CCNA
  • N°1 de la certification Cisco Francophone
  • + de 8000 abonnés
  • + de 400 000 vidéos vues

La couche de transport avec TCP et UDP

La couche Transport est utilisée pour configurer une connexion afin de pouvoir échanger des données entre périphériques réseau.

Les 2 protocoles de la couche transport qui sont le plus fréquemment utilisés sont :

  • | TCP
  • |Et UDP

La différence entre les deux est que :

  • |TCP est un protocole fiable.
  • |UDP est un protocole non fiable.

Alors pourquoi UDP serait-il aussi important, alors que TCP est + fiable ?

Admettons que vous souhaitez télécharger sur internet un film en full HD qui fait 20 GO.
Imaginez qu’au bout de 10GO, quelques paquets ne parviennent pas sur votre PC. Et bien une fois téléchargé, votre fichier serait corrompu et certainement impossible à ouvrir.
C’est pourquoi dans ce cas, on utilisera plutôt le protocole TCP,

afin de s’assurer que le transport de votre téléchargement sur votre PC soit fiable.

Prenons maintenant un autre exemple : vous êtes ingénieur réseau, et vous vient à l’idée d’utiliser une solution de téléphonie sur IP pour remplacer vos bons vieux téléphones analogiques.

On aurait tendance à penser qu’il faudrait utiliser un transport fiable comme TCP, pour nos communications téléphoniques.

Et bien se serait une mauvaise idée… car comme TCP corrige les erreurs, cela signifie que les données qui ne sont pas parvenues entre deux téléphones seraient retransmises…

Si dans une communication, vous entendez quelques choses de votre correspondant, qu’il l’aurait dit, quelques secondes auparavant, la communication risque d’être très étrange…

Comme il s’agit d’une communication en temps réel, nous ne voulons pas de retransmission.

Il vaut mieux perdre quelques paquets VOIP, que de les recevoir en retard.

C’est pourquoi dans cet exemple le protocole UDP est le plus approprié.

|TCP est un protocole de la couche transport orienté connexion, ce qui signifie qu’il va établir une connexion, avant de transférer des données.

UDP est un protocole de la couche transport « sans connexion », il envoie donc directement les données sans ce soucier s’il arrive ou non.

Le séquençage signifie que nous utilisons un numéro de séquence, c’est-à-dire que les paquets sont numérotés pour s’assurer de les retrouver dans le bon ordre à l’arrivée.

Le protocole de la couche transport UDP n’a pas cette fonctionnalité.

|Voici à quoi ressemble une en-tête UDP:

C’est grâce au numéro de port source et destination qu’on sait pour quel type d’application le paquet est destiné.

Le champ « Checksum » qui se traduit littéralement par : « Somme de contrôle » ou qui est aussi appelé « Emprunte », est un nombre, ajouté au paquet à transmettre, pour permettre au récepteur de vérifier que le message reçu est bien celui qui a été envoyé.

|Pour résumé, le protocole UDP :

  • |Fonctionne sur la couche de transport du modèle OSI.
  • |C’est un protocole sans connexion, c’est-à-dire qu’il envoie juste des données.
  • |Les erreurs sont tout de même limitées grâce au champ « Checksum » de son en-tête.
  • |C’est un protocole qui fournit son meilleur effort sans pour autant être fiable.
  • |Et il n’y a aucune fonctionnalité permettant de récupérer des données qui auraient été perdues.

|Voyons maintenant les détails du protocole de transport TCP. Comme il est fiable, il va “configurer” une connexion avant de commencer à envoyer des données.


|Cette connexion se fait en trois étapes.

Prenons l’exemple du PC A qui veut envoyer des données au PC B de manière fiable. Nous allons donc utiliser TCP.

|En premier le PC A, enverra un message TCP « SYN », pour indiquer au PC B qu’il veut établir une connexion.
Dans l’exemple le numéro de séquence est le « 1 ».

|Ensuite, Le PC B répondra au PC A, en envoyant un message « SYN, ACK ». Le numéro de séquence est 100. Il s’agit d’un nombre aléatoire.

Et le ACK est égal à 2, ce qui signifie qu’il reconnaît bien avoir reçu le 1er message du PC A,qui portait le numéro 1, et qu’il est prêt pour le message suivant.

|Et dans la dernière étape, le PC A enverra un accusé de réception vers le PC B. Dans l’exemple, il envoie un « ACK=101 », ce qui signifie qu’il reconnaît bien le numéro de séquence « 100 » du PC B.

Alors pour résumer et simplifier un peu les choses :

  • |Le PC A envoie un TCP SYN. Pour dire au PC B qu’il veut lui parler.
  • |Ensuite le PC B envoie un TCP SYN, ACK, pour informer le PC A qu’il accepte de l’écouter et en même temps, lui dit qu’il veut aussi lui parler.
  • |Et pour finir, Le PC A envoie un accusé de réception TCP. C’est-à-dire qu’il accepte à son tour d’écouter le PC B.

Maintenant que la connexion est établie, les données peuvent être envoyées.


Nous allons désormais parler d’une fonctionnalité que dispose le protocole TCP.

C’est le « contrôle de flux » plus connu sous le nom de « Flow Control »
cela permet d’éviter d’envoyer trop de données que le récepteur ne pourrait gérer…

Dans chaque segment TCP, le récepteur peut spécifier combien de données en octets il veut recevoir, pour ne pas être débordé ou surchargé…

Continuions notre exemple :

|Le PC A à bien établi une connexion en 3 étapes avec le PC B.

Il envoie 15 octets de données. Ici le numéro de séquence est « 10 ».


|Le PC B va répondre en envoyant un “ACK = 11” qu’on pourrait traduire par :

“merci j’ai reçu vos 15 octets, maintenant envoyez-moi le reste”.

TCP est un protocole fiable, c’est pourquoi l’ensemble des paquets échangé est tracé.

Plus la taille des données est grande, et plus votre débit sera élevé. Ce qui est logique, car on envoie moins d’ACK que de données.

|TCP est un protocole assez complexe, par exemple, |rien que son en-tête comporte beaucoup plus de champs que celle de UDP.

Comme pour UDP, il y’a un champ pour les ports sources et de destinations. Toujours utilisé pour déterminer le type d’application.

On voit que 32 bits sont utilisés pour les numéros de séquence, et juste en dessous, il y a aussi 32 bits pour l’accusé de réception.

Le champ “Flags” est l’endroit où TCP définit les différents types de messages comme le “SYN” ou le “ACK”.

Le champ « window size » est la taille de la fenêtre, c’est là, où est spécifié le nombre d’octets de données qui sera envoyé avant de recevoir l’accusé de réception à l’autre bout.

Et pour finir, il y a le champ checksum, qui permet de contrôler que les données n’ont pas été perdu…

|Pour résumer, TCP :

  • |est un protocole fiable.
  • |Avant d’envoyer des données, il établit une connexion en 3 étapes.
  • |Après avoir envoyé une certaine quantité de données, un accusé de réception (ACK), validera la bonne réception à l’autre bout.
  • |Pour éviter la surcharge, un nombre limité d’octets est envoyé.
  • |Et il peut effectuer des retransmissions en cas d’erreurs.