Flux, protocole etc

Salut

Après une première tentative sur NFtables, je viens de comprendre que je n’arriverais à rien sans comprendre un minimum comment fonctionne les échanges sur les réseaux…
(je semble parfois réfractaire… mais au final j’écoute ce qu’on me donne comme conseil sur le forum :wink: )

Toujours dans l’idée de ne pas devenir un expert :wink: s’il y avait des gens dispo pour m’expliquer les grandes lignes… style j’explique à un enfant de 10 ans comment cela marche…

Dis papa il passe quoi dans le fin RJ45

J’ai crus comprendre que les informations (données) pas sous forme de flux par parquets petit bout par petit bout… ces paquets sortes de wagons on une sorte de carte d’identité et utilisent différents protocoles TPC UDP, des adresses, des ports…

Et parfois ses petits trains de paquet sifflent avant d’arriver en gare (avec des Ping / Icmp).

Si vous avez l’âme pédagogique et que la caricature ne vous fait pas peur…

Alors je suis a l’écoute du Chef de Gare :wink:

Je trouve que l’image avec le train, les wagons, les points d’aiguillages, les gares (ports) le tout roulant sur des lignes de chemin de fer (rj45) semble une image explicite

Salut,

La question est ancienne, mais pas idiote et peut être utile aux non informaticiens qui cherchent à un peu mieux comprendre comment marche un réseau (Internet en est un !). Alors, je me risque à raconter une histoire de trains et de wagons, l’analogie n’est pas mal !

Déjà, le titre le laisse entendre, il ne faut pas mélanger “flux” et “protocoles”. Sans trop entrer dans les détails (pour ceux que ça intéresse, vous pouvez déjà lire la page Wikipédia sur les 7 couches OSI) , disons que les ordinateurs vont utiliser des conventions pour discuter entre eux, ce qu’on appelle des protocoles. Il y a plusieurs niveaux de protocoles (7 en tout), disons pour faire très simple qu’il faut déjà que les signaux électriques soient compatibles, puis qu’on sache comment on s’envoie des données d’une manière générale, puis ce que représentent ces données et comment on sait qui correspond à quoi (ce qui nous donnerait ici un modèle simplifié en 3 couches). Autrement dit, il faut d’abord savoir comment on fait circuler des marchandises (on utilise un train qui roule sur des rails), comment on répartit les marchandises dans le train, puis enfin ce qu’on va trouver dans chaque wagon. Voilà pour les protocoles. Pour les flux, ce sont simplement les marchandises en circulation.

Je propose qu’on laisse de côté les protocoles TCP et UDP qui concernent la couche 4 du modèle OSI, ainsi qu’ICMP (couche 3) pour se concentrer sur le protocole IP de la couche 3 (IP=Internet Protocol, c’est lui qui donne son nom à l’adresse IP qu’il définit).

Ici, il s’agit de définir comment les marchandises vont pouvoir circuler dans le réseau et arriver à leur destinataire. On se fout ici de quel genre de marchandise il s’agit (page de site internet, mail, visioconférence…), on ne transporte que des paquets de données sans s’occuper de leur contenu.

Lorsqu’un ordinateur veut envoyer des données à un autre, il va les ranger dans des wagons. Chaque wagon contient la même quantité de données, qui vont donc être réparties dans plusieurs wagons. Et sur chaque wagon, on indique un numéro d’ordre, le nom du destinataire et son adresse. On accroche chaque wagon dès qu’il est prêt au premier train qui passe, et c’est parti !

Le train va arriver à une gare de triage (un routeur). Là, on va répartir les wagons dans d’autres trains au départ, en fonction des adresses indiquées sur chacun. On comprend bien ici que nos wagons du départ sont très probablement répartis sur plusieurs trains différents, qui ne vont d’ailleurs pas tous suivre forcément le même itinéraire. On va ainsi traverser plusieurs gares (routeurs), et à chaque fois on lira l’adresse indiquée sur le wagon pour le rattacher à un train capable de le prendre en charge et de le mener au moins un bout de chemin vers sa destination finale.

Quand enfin notre wagon arrive à l’adresse indiquée, l’ordinateur qui le reçoit va regarder deux choses : à qui il est destiné (quel port) et son numéro d’ordre. On attend que tous les wagons d’un même ensemble de données soit arrivés, on les remet dans le bon ordre grâce au numéro indiqué, et on les envoie au destinataire final repéré par le numéro de port.

Et voilà : les données sont reçues par l’ordinateur distant !

Mais dans la pratique, ce n’est pas aussi simple : pour diverses raisons, il y a parfois des wagons qui se perdent. Pas grave : dès qu’on s’en aperçoit, on demande à l’expéditeur d’en renvoyer un avec le même contenu. C’est à cela, entre autres, que servent les autres couches du modèle OSI et les autres protocoles.

Parlons maintenant un peu des protocoles de la couche 7 (couche “application”) : ce sont, entre beaucoup d’autres, les protocoles HTTP (pour les pages WEB), SMTP (pour le mail), XMPP (pour la messagerie instantannée)… Ils vont tout simplement servir à ce que l’expéditeur mette dans le wagon les données sous une forme précise et les range correctement de sorte que le destinataire sache les exploiter correctement.

Voilà : c’est très schématique et simpliste, mais j’espère que ça permettra de dissiper un peu le brouillard et de démystifier la magie qui entoure les communications numériques.

Non, l’analogie est mauvaise. Il n’y a pas de trains.

Les ports et numéros de séquence ne sont pas des propriétés du protocole IP mais des protocoles de transport comme TCP. Faudrait savoir.

Une analogie que je donne parfois et qui parle est le courrier: Tu as deux formes d’échanges: les lettres (UDP) et le téléphone (TCP).
Pour t’adresser à quelqu’un tu as un nom (URL), un annuaire (DNS) qui te donne l’adresse/numéro de téléphone correspondant. L’adresse est constitué d’un immeuble (la machine) et d’un numéro de boite aux lettres ou d’un numéro de téléphone standard et d’un numéro de poste. (IP et port)

Quand tu téléphones (TCP), tu dis allo, ça répond allo, tu dis ça va?, ça répond oui, et tu vas dans le vif du sujet. Donc un protocole de communication avec un dialogue.

Quand tu envois un roman à la personne, tu mets tout ça dans plusieurs lettres parce que c’est trop gros, et tu balances le tout dans la boite (UDP). La personne reçoit les lettres en désordre et il peut en manquer.

Il faut se méfier des analogies, ça peut donner une fausse image mais celle là me parait pas mal

1 J'aime

Salut,

@fran.b
Pas mal, tes analogies :slight_smile: Je note ça dans un coin !

@PascalHambourg

Merci pour ces précisions et rectifications.

J’étais parti sur cette histoire de trains à la demande de @scam, l’idée ne me semblait pas si mauvaise et j’ai voulu m’amuser à la suivre.

Mais c’est vrai que j’aurais pu (dû !) préciser qu’il n’y a pas de trains mais simplement des wagons auto-tractés (autorails) totalement indépendants les uns des autres. Et tenter d’être plus précis dans le rôle des différentes couches et différents protocoles. J’avais cru comprendre que @scam cherchait plus à avoir une vision globale, et du coup je n’ai pas trop cherché l’exactitude sur ces points. À tort bien sûr.

C’est toute la difficulté de la vulgarisation : il y a souvent des choix cornéliens à faire entre la précision (parfois nécessaire pour ne pas donner d’idées fausses, souvent simplement pour ne pas choquer les spécialistes puristes) et la facilité de compréhension par un public non initié. On a alors deux possibilités : vulgariser au risque d’être parfois imprécis, voire pas très exact ou alors considérer que le monde est divisé en deux groupes dans lesquels chacun doit rester bien à sa place et condamnés à ne pas se comprendre, celui des ignares et celui des spécialistes…

Maintenant, s’il y a un moyen de raconter cette histoire d’autorails (tout ou partie) de manière claire et simple pour le profane en respectant mieux la réalité, je suis avide d’apprendre par l’exemple à mieux vulgariser :wink: