Jason : Dans cette
leçon, nous allons discuter des types de
protocoles IP, y compris TCP, UDP, et
des concepts de méthodes sans connexion
et orientées connexion.
Qu'est-ce que le TCP ?
TCP est un protocole de contrôle de transmission.
Il s'agit d'un protocole orienté connexion,
ce qui signifie qu'il s'agit d'un moyen
fiable de transporter des segments à travers notre réseau.
Désormais, si un segment est abandonné,
le protocole demandera un accusé de réception à chaque
fois.
Et s'il ne reçoit pas cet accusé de réception,
il va renvoyer l'information.
C'est la raison pour laquelle nous appelons ce protocole un protocole à connexion
complète, car il s'agit d'un type d'information bidirectionnelle
: je vous envoie des informations et
je vérifie que vous les avez bien reçues en écoutant
que vous les avez reçues et que vous me donnez une réponse.
Examinons maintenant ce petit diagramme
à l'écran pendant une seconde.
Vous allez voir que j'ai un client à gauche
et un serveur à droite.
Le client va envoyer ce que l'on appelle un paquet
syn, ou paquet de synchronisation,
au serveur.
Lorsque le serveur reçoit
ce message, il renvoie
au client un accusé de réception de synchronisation,
appelé syn ack.
Lorsque le client reçoit cet accusé de réception,
il renvoie son propre accusé de réception au serveur.
C'est ce qu'on appelle l'ack.
Lorsque nous faisons ce syn, syn ack, ack, c'est ce
que nous appelons une poignée de main à trois voies.
En gros, c'est le client qui dit : "Hé,
serveur, es-tu prêt à recevoir des informations ? Le serveur répond alors : "Bien
sûr".
Pourquoi pas ?
"Envoyez-moi des informations. Et le client dit
: "Voilà, c'est parti. Ensuite, la transmission va commencer parce
que nous avons établi cette poignée de
main à trois et que nous savons que les deux
parties sont prêtes à communiquer.
"Maintenant, vous êtes prêts ? "Oui, je le
suis. "Le voici.
Chaque
fois que ces données, que nous appelons un segment,
sont envoyées sur le réseau, un accusé
de réception est reçu et nous indique que la communication
bidirectionnelle s'est déroulée avec
succès.
Si ce serveur s'attend à recevoir
100 informations, mais qu'il n'en
a reçu que 98, il dira au client : "Vous
m'aviez dit que vous
alliez m'envoyer 100 choses, mais vous ne m'en avez
envoyé que 98.
"Envoyez-moi les deux choses qui me manquent. Ensuite, une retransmission
a lieu.
De cette façon, la communication
peut se dérouler pour nous et nous pouvons toujours
nous assurer que nous recevons
ce que nous sommes censés recevoir
parce que nous avons ce renvoi des paquets à travers le
réseau.
Il est utilisé pour toutes les données du réseau
qui doivent être assurées d'arriver à leur destination finale.
J'aime à penser que c'est comme un courrier certifié.
Si je veux envoyer un message au fisc, par exemple, je veux m'assurer
qu'il le recevra et qu'il ne se perdra
pas dans le courrier.
Je peux donc payer un peu plus cher pour obtenir un
reçu certifié qui, une fois arrivé à destination,
doit être signé par la personne concernée et m'être
renvoyé par la poste.
Ainsi, lorsque
je recevrai le reçu,
je saurai que le fisc a bien reçu mon courrier.
C'est ainsi que fonctionne le TCP.
D'autre part, nous avons
un autre protocole connu sous le nom d'UDP.
UDP est ce que l'on appelle un protocole sans connexion, ce qui signifie
qu'il n'a pas besoin d'attendre les connexions.
UDP signifie User Datagram Protocol (protocole de datagramme utilisateur).
La raison pour laquelle nous l'appelons
datagramme est que si vous utilisez UDP, vous
utilisez ce type de données.
Il s'agit d'un datagramme.
L'UDP n'est pas fiable et
transmet des segments
appelés datagrammes.
Et s'ils sont abandonnés,
l'expéditeur n'en saura jamais rien.
Pourquoi voudrais-je envoyer des choses dont l'expéditeur
n'est pas au courant et pour lesquelles
je ne reçois aucun accusé de réception ?
L'UDP est très utile pour le streaming audio et visuel, car il permet d'envoyer
un grand nombre de données et il y a beaucoup moins
de frais généraux lorsque l'on utilise l'UDP, parce qu'il
n'y a pas cette constante poignée de main à trois
pour l'établir et qu'il n'y
a pas toutes les vérifications et tous les
équilibres associés à l'utilisation du TCP.
L'utilisation d'UDP permet
donc d'augmenter les performances de votre réseau,
car il n'y a aucune retransmission.
Vous finirez par laisser tomber des informations.
N'est-ce pas une mauvaise chose ?
Pourquoi voudrions-nous laisser tomber des informations ?
Pour certaines applications, cela n'a
pas vraiment d'importance.
Par exemple, vous êtes en train de visionner cette vidéo.
Et si j'abandonnais pendant 1/100 de seconde,
le remarqueriez-vous ?
C'est pourquoi l'UDP est
si efficace, car nous pouvons laisser
tomber 1/100 du temps et vous ne le remarquerez
même pas, et il n'y aura pas de retransmission.
Mais avec le TCP, la mise en mémoire tampon
sera beaucoup plus importante, car
il faudra attendre, puis
se faire renvoyer l'information,
la placer au bon endroit et
la restituer.
Ainsi, en raison de cet accusé de réception et de
ce surdébit, chaque seconde de cette vidéo
finira par l'agrandir et utiliser beaucoup
plus de bande passante.
C'est l'une des principales
raisons pour lesquelles nous utilisons UDP pour les flux vidéo et audio.
Faisons un petit résumé du TCP par rapport à l'UDP.
Car il s'agit d'un concept très, très important.
En fait, si vous avez vos notes à portée de main,
j'écrirais ce tableau que je vais
vous présenter maintenant,
alors que nous parlons de TCP et d'UDP.
Parce que c'est vraiment important.
Tout d'abord, le TCP est fiable, il dispose d'une
poignée de main à trois voies,
alors que l'UDP n'est pas très fiable.
C'est un protocole peu fiable
car il n'y a pas de poignée de main à trois.
Le TCP est ce que nous appelons un protocole orienté connexion
ou un protocole à connexion complète parce que nous
avons cette poignée de main à trois
voies dans les accusés de réception,
alors que l'UDP est sans connexion.
C'est la méthode du feu et de l'oubli.
Je commence à envoyer des informations
et j'espère que vous les recevrez.
TCP utilise la retransmission de segments et le contrôle de flux
qui est géré par le fenêtrage.
En revanche, UDP ne
prévoit ni retransmission ni fenêtrage.
Avec le TCP, nous avons
une segmentation de notre séquençage de tous
nos différents segments.
Avec UDP, il n'y a pas de séquençage.
Cela signifie que lorsque j'enverrai tous les
documents, je les enverrai dans l'ordre approprié,
de 1 à 100.
Je le ferai pour TCP et UDP.
Maintenant, si vous manquez certains de
ces éléments, ou s'ils arrivent dans
un ordre différent parce qu'ils empruntent un chemin
différent sur le réseau,
avec TCP, ils sont séquencés,
de sorte qu'il sait que vous en avez un à 1000
et qu'il les remet dans le bon ordre.
Avec UDP, quel que soit
le nom sous lequel ils arrivent,
c'est ainsi qu'ils seront diffusés.
Ainsi, il peut arriver
un, 50, deux, 500,
trois, quatre, cinq,
six, 20, dans n'importe quel ordre aléatoire.
Et c'est ainsi que vous l'entendrez.
Ainsi, dans le cas d'une vidéo, vous pouvez entendre des
sauts ou des grincements aigus, ou quelque
chose de ce genre, parce
que l'une de ces images peut avoir été désordonnée.
Maintenant, lorsque nous revenons
au TCP, il va reconnaître chacun de ces segments.
Il s'agit donc d'une reconnaissance.
Si je ne la reçois pas,
je sais que je ne l'ai
pas reçue et je peux la faire retransmettre, puis
la recevoir à nouveau.
Avec UDP, il n'y a pas d'accusé de réception.
Encore une fois, l'UDP a beaucoup moins de frais généraux parce
qu'il n'y a pas de connexion,
pas de fenêtrage, pas de retransmission, pas
de séquençage et pas d'accusé de réception.
Maintenant, si vous devez envoyer quelque
chose et que vous voulez être sûr que la personne
l'a reçu, vous devez vraiment utiliser TCP comme protocole de choix.
C'est pourquoi nous allons vraiment utiliser TCP pour des
activités telles que les services bancaires, les sites web et le
commerce électronique, etc.
Mais si nous avons quelque chose qui contient beaucoup
de données, comme un flux audio ou vidéo,
l'UDP est vraiment bien adapté, car nous n'avons
pas besoin d'obtenir
chaque morceau du fichier.
Nous pouvons sauter un peu ici
et là, et ce n'est pas grave.
- : [Un autre instructeur] En ce qui concerne TCP
et UDP, nous avons parlé du fait qu'il s'agit de protocoles
à connexion complète ou orientés connexion,
et de protocoles sans connexion.
Permettez-moi donc de vous donner quelques
exemples de protocoles qui utilisent soit TCP, soit UDP, afin que vous puissiez
comprendre pourquoi nous utilisons l'un ou l'autre.
Tout d'abord, examinons
le protocole TCP et
nos protocoles orientés connexion ou à connexion complète.
Cela comprend des éléments tels que SSH, HTTP ou HTTPS.
Pourquoi aurions-nous besoin d'une orientation vers les connexions dans ces cas-là ?
Dans le cas de l'utilisation de quelque chose comme SSH,
je fais de la communication bidirectionnelle
et du contrôle de serveurs ou de postes de travail distants,
et je peux le faire sur le port 22.
Je veux m'assurer que je le fais
d'une manière orientée vers la connexion ou pleine de connexion.
Ainsi, lorsque j'envoie une commande et que je dis
"redémarrer le serveur",
je sais que cette commande est bien arrivée
et que le redémarrage du serveur aura lieu.
De même, lorsque nous utilisons HTTPS, nous devons nous assurer
que nous disposons d'un protocole à connexion
complète ou orientée vers la connexion utilisant TCP.
La raison en est, encore une
fois, que nous voulons nous assurer
que ce que nous envoyons est bien reçu sur place.
Il peut s'agir d'éléments tels que l'authentification
lorsque nous essayons de nous connecter à un site
web en utilisant notre nom d'utilisateur et
notre mot de passe, ou encore les informations
que nous recevons en retour de ce site web,
telles que le solde de nos comptes et nos informations bancaires.
En revanche, si
nous utilisons le protocole UDP,
nous travaillons sans connexion.
J'ai déjà mentionné le fait que
nous l'utilisons tout le temps
pour des choses telles que le streaming audio et vidéo.
Mais en plus de cela, nous
l'utilisons aussi pour des choses comme le DHCP et le
protocole de transfert de fichiers triviaux, connu sous le nom de TFTP.
Si vous vous souvenez
bien, le DHCP est utilisé comme protocole de contrôle dynamique
de l'hôte et fonctionne sur les ports 67 et 68.
Lorsque vous rejoignez un réseau,
votre appareil, s'il est configuré
pour une attribution dynamique de son adresse
IP, envoie un message de diffusion sur ce réseau à la recherche
d'un serveur DHCP.
C'est pourquoi nous l'utilisons comme un protocole sans connexion.
En effet, si ces informations sont envoyées et que personne ne répond,
votre client les enverra à nouveau en espérant
que quelqu'un d'autre sera présent.
C'est ainsi que fonctionne le DHCP.
Il va permettre l'envoi d'un message de
diffusion, puis attendre une réponse.
S'il ne reçoit pas de
réponse dans un certain
délai, il rediffuse simplement son message
et recherche à nouveau un nouveau serveur DHCP.
De même, le TFTP (Trivial File Transfer
Protocol), qui opère sur le port
69, fonctionne sans connexion en
utilisant le protocole UDP comme
moyen de transport.
La raison en est que
TFTP est le Trivial File Transfer Protocol, et que nous n'avons donc
pas besoin d'avoir l'assurance que chaque paquet
a été envoyé et reçu avec ces accusés de réception,
ce qui crée beaucoup plus
de surcharge si nous utilisons TCP.
L'utilisation d'UDP permet donc
un transfert de fichiers plus rapide lorsque
l'on utilise quelque chose comme TFTP, au lieu
d'utiliser un protocole qui nécessite plus de connexions, comme FTP.