Code-Garage #44 - Les protocoles d'internet : TCP/IP

Durée: 8m2s

Date de sortie: 10/01/2023

La suite de protocoles TCP/IP sont à l'origine d'internet, grâce au concept de "packet switching". Découvrons ensemble comment chaque donnée d'internet est acheminée d'une machine vers une autre !

Notes de l'épisode :

Salut et bienvenue dans ce nouvel épisode du podcast de Code Garage,
je m'appelle Nicolas Brondin Bernhardt et aujourd'hui on va parler d'un sujet important,
la suite de protocoles TCP-IP. TCP-IP c'est une des implémentations de ce qu'on appelle
le paquette switching, ou on peut appeler en français la commutation de paquets,
et ça constitue réellement la base de notre internet moderne. Alors si vous voulez en savoir plus
sur l'histoire de la création internet, vous pouvez écouter un des épisodes précédents du
podcast, mais aujourd'hui on va se concentrer sur la partie technique. Donc le TCP-IP autrement
dit c'est une manière de transmettre des données en les découpant en plusieurs paquets de taille
réduite pour les envoyer sur le réseau. Contrairement à ce qu'on entend souvent,
TCP-IP c'est pas un protocole mais une suite de protocoles, qu'on appelle généralement le
internet protocole suite. Chaque paquet de données contient deux boîtes imbriquées,
la partie TCP, la petite boîte et la partie IP, la grosse boîte dans laquelle TCP est contenu.
La partie IP contient les informations sur l'adresse de l'expéditeur et du destinataire
afin que le paquet soit bien transmis sur le réseau et arrive à la bonne machine distante,
c'est très important. Et de son côté, la partie TCP va s'assurer que la machine expéditrice
puisse être tenue au courant si le paquet n'est pas arrivé à destination et gérer le renvoi des
données si besoin. On parle d'encapsulation parce que comme je le disais avant, le segment TCP est
encapsulé, inclus, dans ce qu'on appelle le datagram IP, la boîte dont je parlais précédemment.
Parce qu'il faut d'abord que le paquet arrive à la bonne machine identifiée par son adresse pour
que les données soient distribuées à la bonne application identifiée par son port, 80 pour
HTTP, 22 pour SSH, 21 pour FTP, etc. Pour pouvoir fournir des informations d'erreurs de transmission,
TCP doit établir une connexion entre l'expéditeur et le destinataire, c'est pour ça qu'on parle
de protocoles en mode connecté. Une session TCP fonctionne globalement en trois phases,
l'ouverture de la connexion, le transfert des données et la gestion des erreurs et la fermeture de la
connexion. Alors un datagram IP, comme je l'ai dit tout à l'heure, donc la première couche,
la boîte qui arrive en même temps, mais qui on va dire en capsule la deuxième,
va avoir plein de données différentes, donc entre un bit et quelques bits de données. Je ne
vais pas vouloir dire tout, mais il y en a qui sont plus importantes. Donc le premier qui est
important, c'est le protocole. Ça indique le protocole utilisé pour acheminer les données contenues
dans ce qu'on va appeler le payload. Le payload, c'est tout l'endroit où on va mettre les données
dans le dessous. Donc vous vous rappelez, je vous parlais de grosse boîte et de petites boîtes,
et bien la partie data, c'est la petite boîte, tout ce qui est encapsulé. Et donc par exemple
pour le protocole TCP, la valeur de ce champ là, il sera égal à 0 1 1 0, ce qui donne le chiffre
6 et qui équivaut à une trame TCP en dessous. Ensuite on va avoir la source adresse, donc l'adresse
source qui contient l'adresse IP de la machine qui a envoyé le paquet, l'adresse de destination qui
contient évidemment l'adresse de la machine sensor sauvera le paquet, et donc le payload data qui
contient toutes les données à transporter. Ici le contenu de data, ce serait des données TCP. Pareil,
les données TCP, c'est un datagram, un ensemble de données binaires mises les unes à la suite des
autres qui contient plein d'informations. En plus des réels données encapsulées, notamment pour le
routage, donc ça veut dire les deux adresses des ports, les deux adresses de ports au début des paquets,
mais aussi des données de gestion d'erreur pour vérifier que les paquets arrivent bien dans le
bon ordre et qu'ils sont tous au complet afin de conserver l'intégrité des données. On va en reparler
un petit peu après parce que ça c'est une vraie spécificité de TCP, c'est qu'il envoie tous les
paquets, il faut que tous les paquets soient arrivés à bon port. Et après, tous les protocoles
applicatifs utilisent cette suite de protocoles en encapsulant eux-mêmes leurs données à l'intérieur
de ces datagram qui seront acheminés sur le réseau par les mêmes mécaniques que je viens de vous
expliquer. Tous les outils que vous utilisez quotidiennement ont le même fonctionnement sous
jacan, donc HTTP, FTP, SMTP pour les mails, ils ont tous la même vision du réseau internet à
travers des paquets TCP-IP. Alors attention parce que certains protocoles applicatifs
utilisent en réalité pas la suite de protocoles TCP-IP mais UDP-IP. Donc je vais pas vous expliquer
en détail le fonctionnement mais la grosse différence c'est comme je vous le disais TCP-IP
envoie tous les paquets dans le bon ordre et la machine qui reçoit les paquets, si il en manque un,
et bien la donnée sera corrompue, sera pas lisible, sera pas valide puisque c'est l'objectif
de TCP-IP d'envoyer tout, une contrainte d'intégrité de toute la chaîne de données jusqu'à temps
par exemple que le fichier mettons en FTP soit envoyé au complet. UDP-IP lui de son côté ne va
pas attendre que tous les paquets aillent dans le bon ordre, les paquets peuvent arriver dans des ordres
et surtout s'il y a de la perte de paquets c'est ok. Alors pour qu'elle par exemple qu'à
d'usages on utilise de l'UDP-IP et bien ça peut être par exemple pour transmettre des données
en temps réel ok des données en temps réel et bien s'il manque un paquet c'est peut-être pas très
grave parce qu'on sait qu'il va y en avoir un qui va être envoyé directement derrière. C'est
pour ça par exemple que sur des streams vidéo en live et bien on parle de perte de paquets mais
le stream continue quand même simplement la qualité baisse où l'image frise le son frise etc.
Et ben c'est ça c'est parce que en dessous on utilise de l'UDP-IP qui va être peut-être un peu
plus rapide parce qu'il n'y a pas de gestion d'erreur parce que les paquets perdus et bien
sont perdus et c'est pas grave. En tout cas si on vient à TCP chaque paquet va traverser le réseau
de passerelle en passerelle grâce à l'adresse IP du dessiner inter quelqu'on tient et en renvoyant
les paquets perdus en chemin ok. Chaque fois qu'un paquet est perdu en TCP-IP il est renvoyé. Une fois
reçu le paquet il sera acheminé au port contenu dans la trame TCP pour le fournir à la bonne
application port 80 par exemple pour arriver sur le serveur bruit. Lorsque chaque paquet qui constitue
une donnée unique a été reçu et bien ils sont fusionnés et ils sont enfin utilisés par l'application
en question. Si la machine souhaite envoyer une réponse et bien elle aura l'adresse complète
l'IP et le port de la machine d'origine dans la trame TCP-IP il lui suffit à un plus qu'à
renvoyer des paquets dans l'autre sens. J'espère que cet épisode vous aurez été utile que vous
aurez appris des choses alors évidemment je vous ai pas donné tout en détail et là en
audio vous pouvez pas avoir les trames TCP-IP sous les yeux je vous conseille d'aller les voir sur
internet si vous avez l'occasion et l'envie. Mais voilà c'était un petit peu une introduction.
J'espère que vous aurez appris des choses. Moi je vous donne rendez-vous la semaine prochaine pour
un prochain épisode ou sinon je vous donne rendez-vous sur code-garage.fr vous le connaissez
code garage c'est le site de formation où vous pouvez avoir accès à tous les cours simplement
pour 19 euros 99 par mois et là vous avez des cours sur githé github sur SQL et MySQL sur
comment devenir freelance ou pour tous les juniors et toutes les juniors bah simplement apprendre
à améliorer son profil et savoir se vendre pour les recruteurs quand vous cherchez un job ou une
alternance.

Les infos glanées

Je suis une fonctionnalité encore en dévelopement

Signaler une erreur

Code-Garage

Découvrons ensemble des sujets passionnants autour du métier de dev et de la programmation en général !
Tags
Card title

Lien du podcast

[{'term': 'Technology', 'label': None, 'scheme': 'http://www.itunes.com/'}]

Go somewhere