.st0{fill:#FFFFFF;}

Réseau

Comment communiquent les ordinateurs ?

 janvier 27, 2020

By  Thierry DAUGER

Comme nous l’avons vu dans un autre article, les ordinateurs parlent en binaire. Les photos, les sons, les musiques, les vidéos…tout n’est que 0 et 1. C’est pratique puisque l’on peut ainsi tout sauvegarder et transporter. Et comme nous allons le voir ici, nous pouvons même tout partager, grâce à la magie des réseaux !

Pourquoi les réseaux ?

Disquette
Avant, il y avait les disquettes…mais ça, c’était avant !

Même si ça peut paraître normal de nos jours, il n’y a pas si longtemps (enfin quelques décennies quand même J), les ordinateurs ne pouvaient pas communiquer entre eux autrement que par des médias, comme des disquettes par exemple. Pas super pratique quand il fallait transmettre un dossier à Maurice du 8ème alors que l’on travaillait au 1er !

C’est pourquoi, vers 1960, des chercheurs ont mis au point un moyen de communication entre les ordinateurs : le réseau local. Si c’était assez rudimentaire au début, l’armée américaine s’en est mêlé et a fait communiquer ces réseaux locaux entre eux pour devenir au final ce que l’on connaît maintenant sous le nom d’Internet…

Il existe beaucoup de normes différentes de réseau. La norme TCP/IP s’est imposée, sans doute portée par l’explosion d’Internet où elle est majoritairement utilisée.

Un peu de théorie des réseaux

Couches du modèle Internet
Le modèle internet

Difficile de parler de réseau sans parler de norme et surtout du modèle Internet[1]. C’est une norme de communication réseau composée de 4 couches. Ces couches représentent les différentes étapes de transformation que subissent les données depuis une application (tel qu’un navigateur internet) jusqu’au réseau (comme ton Wifi).

La couche Application, représente les protocoles de haut niveau comme HTTP, FTP, DNS… D’ailleurs, on reparlera de tous ses termes dans un prochain article dédié à internet. La couche Transport se charge de la conversation entre les 2 machines.  La couche IP se charge du bon acheminement des données jusqu’à destination. Et enfin, la couche « Accès réseau » définit le côté physique du réseau comme par exemple les signaux électriques sur Ethernet, les ondes sur le Wifi et bien d’autres…

Les données qui circulent sur le réseau sont des paquets. Tout ça paraît peut-être un peu flou comme ça, mais nous allons voir cela concrètement avec un exemple. Tu verras, ce n’est pas compliqué 🙂

La transformation des données

Le client et le serveur

La plupart du temps, quand 2 machines souhaitent dialoguer entre elles via le réseau, la machine qui établit le dialogue est appelé le client, la machine qui répond est le serveur. On parle alors d’architecture client/serveur[2]. Pour comprendre comment les données voyagent sur le réseau, prenons l’exemple du chargement d’une page web dans un navigateur internet. Dans ce cas, l’application cliente sera le navigateur web. L’application serveur sera le serveur web sur lequel se trouve la page. Quand tu veux afficher la page, le navigateur émet une requête vers le serveur Web. Celui-ci répond en lui renvoyant les données contenues dans la page.

Dialogue client-serveur
Architecture Client / Serveur

Tout ça, ce n’est que la face visible de l’iceberg. Voyons maintenant tout ce qu’il s’est passé au niveau réseau.

Application

Pour commencer, le navigateur utilise un protocole de haut niveau, le HTTP (HyperText Transfert Protocol). Dans le monde du réseau, un protocole, c’est la façon dont on va dialoguer avec les autres. C’est un peu comme la langue dans la vie de tous les jours, comme par exemple l’anglais pour les affaires ou le français pour la diplomatie.

HTTP est le protocole utilisé par les sites Web. Le navigateur créé donc un message HTTP à destination du serveur Web. On parle d’une requête HTTP. Tout ceci se passe dans la couche « Application » du modèle internet dont on a parlé plus haut. Ce message est ensuite confié à la couche TCP.

TCP, le découpeur-médiateur

Avant de partir sur le réseau, le message HTTP est saucissonné en petite morceaux. Cela va permettre aux différentes couches du réseau de, par exemple, redemander des paquets qui seraient perdus ou surtout, de laisser de la place pour tout le monde. Eh oui, imagine par exemple quand tu es sur la route et qu’elle se rétrécie en passant de deux voies à une seule. Si tu dois laisser passer un convoi de 3 km de long, tu vas attendre longtemps ! Mais s’il n’y a que des voitures, tout le monde va n’attendre qu’un petit peu et passera chacun son tour. En réseau, c’est le multiplexage[3] des paquets.

Multiplexage des paquets

C’est pour un recommandé ?

La couche transport est capable d’envoyer les données de 2 façons différentes :

  • Soit en mode datagramme, c’est le mode UDP[4]. C’est un peu comme quand tu envoies une lettre par La Poste. Tu l’envoies et tu fais confiance pour que cela arrive. De plus, si tu envoies plusieurs lettres, rien ne garantit qu’elles arrivent dans l’ordre où tu les as postées, comme les paquets en UDP.
  • Soit en mode connecté, c’est le mode TCP[5]. C’est un peu comme si tu envoyais une lettre en recommandé avec accusé de réception. En plus, cerise sur le gâteau, on te garantit que si tu envoies plusieurs lettres, elles arrivent dans l’ordre où tu les as postées ! C’est ce mode qui est utilisé par HTTP et de nombreux autres protocoles.
Découpage TCP
Découpage des données par TCP

La mise en paquet

Pour faire tout cela, ces morceaux de données sont « habillés » avec des informations comme les ports source et destination, la longueur des données ou une somme de contrôle. On appelle cet habillage un entête. Ce morceau de données avec son entête s’appelle un paquet.

Oh là là, c’est quoi tout ça ?

La somme de contrôle, c’est un calcul fait sur toutes les données pour pouvoir vérifier qu’elles ne contiennent pas d’erreur. Cela existe sur plein de numéro de la vie courante, comme ton numéro de CB, ton numéro de sécu ou encore ton numéro de compte bancaire.

Quant aux ports, ils déterminent les interlocuteurs sur les machines. Eh oui, sur une machine, il peut avoir plusieurs applications qui souhaitent communiquer sur le réseau. Chacune aura son numéro de port dédiée. Certains numéros de ports sont dit « well-known », « bien connus » en français, comme le port 80 pour HTTP ou 443 pour HTTPS.

L’entête TCP contient des informations en plus par rapport à UDP. Par exemple, elle contient un numéro de séquence qui permet au destinataire de rassembler les paquets dans l’ordre ou ils ont été émis.

IP, le livreur

Pour envoyer un courrier par La Poste, on utilise des adresses de destinataire et d’expéditeur. Dans le monde du réseau TCP/IP, c’est pareil. On parlera alors d’adresses source et destination. C’est la couche IP qui se charge de tout cela.

Tu as sans doute déjà entendu parler des adresses IP. Elles sont représentées par une suite de 4 nombres, chacun compris entre 1 et 255 (Comme par exemple 216.58.201.227). On ne les voit pas souvent car la plupart du temps, elles se cachent derrière les noms des sites web comme www.informatiquesanscomplexe.com !

En fait, une adresse IP est un entier de 32 bits de longs. Mais comme 32 bits, c’est long à écrire et pas facile à lire, on utilise une représentation décimale de 4 octets (4 x 8 bits).

Dialogue réseau
Exemple de dialogue réseau

Sur un réseau, chaque machine à une adresse IP unique. Par exemple, quand la machine 1 veut envoyer des données à la machine 2, l’adresse 10.0.0.1 est l’adresse source et 10.0.0.2 est l’adresse destination.

Quand on configure le réseau d’un ordinateur, 3 données sont essentielles :

  • Son adresse IP, qui définit de manière unique l’ordinateur sur le réseau.
  • Son masque de sous réseau.
  • Sa passerelle par défaut.

Passerelle par défaut

La passerelle par défaut, c’est une adresse IP qui se trouve dans le réseau proche de la machine. Dans notre exemple, ce serait donc une adresse en 10.0.0.X, comme par exemple 10.0.0.254.

Lorsqu’une machine veut envoyer des données vers une autre machine, la couche IP vérifie avec le masque de sous-réseau si l’adresse destination fait partie de son réseau proche (sous-réseau). Si c’est le cas, elle communique directement avec elle. Sinon, elle envoie les données à sa passerelle par défaut. Et c’est cette passerelle qui va se charger d’acheminer ces données vers la machine distante, comme un serveur web par exemple.

Réseau proche & distant
Réseau proche / Réseau distant

Masque de sous-réseau

Le masque de sous-réseau est un masque de 32 bits lui aussi, qui permet à l’ordinateur de savoir si l’adresse de destination vers laquelle on veut envoyer des données est sur le même sous-réseau ou non. Comme pour l’adresse IP, on le note avec une représentation décimale de 4 octets.

Dans notre exemple, la machine 1, dont l’adresse est 10.0.0.1 a un masque de sous-réseau égale à 255.255.255.0. Cela veut dire que toutes les machines dont l’adresse est en 10.0.0.X font partie de son réseau proche.

Le masque donne en fait le nombre de bit à prendre en compte dans l’adresse IP, en partant de la gauche. C’est pourquoi, si tu regardes dans le tableau ci-dessous, c’est une suite de 1 et une suite de 0. Le nombre de 1 est en fait le nombre de bits de l’adresse IP qui correspond au réseau proche. C’est aussi pour cela que, souvent, on le voit noté en /XX où XX est le nombre de 1. Dans notre exemple, on le noterait /24.

Masque de sous réseau
Le masque d’une adresse IP

Une fois passé par la couche IP, notre paquet a encore grossi. En effet, la couche IP l’habille aussi d’un entête contenant entre autres l’adresse source, l’adresse destination ou une somme de contrôle là aussi.

Entêtes TCP/IP
Un message contient des données et des entêtes

L’aventure commence

Une fois ce paquet constitué, il est envoyé sur le réseau. Suivant le type de réseau sur lequel il va partir, il va, là aussi, se voir ajouter d’autres entêtes.

Et une fois arrivé à destination, chaque couche va lire l’entête qui lui correspond pour en extraire les informations qui lui sont utiles.

La couche IP vérifie que le paquet est bien pour la machine en question. Si c’est le cas, elle retire son entête et passe le paquet à la couche TCP qui va lire le port destination afin de connaître l’application destinatrice du paquet. Mais un schéma vaut plus que du texte !

Encapsulation TCP/IP
Encapsulation TCP/IP

Le réseau, en résumé

Voilà, maintenant tu sais un peu mieux comment les données transitent sur les réseaux. Pour résumer, ce n’est pas compliqué, le réseau c’est un peu comme le courrier postal.

Les adresses IP correspondent à l’adresse d’un immeuble et les ports TCP correspondent à un habitant de l’immeuble.

Par exemple, quand Maurice (port 3485) qui habite 10 rue de Lyon à Paris (IP 10.0.0.1) veut envoyer une requête au serveur web de Marcel (port 80) qui habite 132 rue de Paris à Marseille (IP 132.43.235.12), c’est comme s’il envoyait une lettre recommandée avec accusé de réception (transmission d’une requête en TCP).

Tout ça, c’est résumé dans la vidéo ci-dessous.

Et comme on vient de le voir, tout cela ouvre plein de possibilité sur Internet et donc plein d’articles à venir sur l’Informatique Sans Complexe !


[1] https://www.frameip.com/tcpip/
[2] https://www.supinfo.com/articles/single/2519-architecture-client-serveur
[3] http://perso.citi.insa-lyon.fr/afraboul/net/cours004.html
[4] https://fr.wikipedia.org/wiki/User_Datagram_Protocol
[5] https://fr.wikipedia.org/wiki/Transmission_Control_Protocol

Thierry DAUGER


Your Signature

  • Merci pour cet article et cette vidéo qui sont très instructifs. Il y a un vrai travail pour rendre l’information accessible à tous ! Félicitation !

    • Thierry DAUGER dit :

      Merci pour ce commentaire encourageant ! Bienvenue sur l’Informatique Sans Complexe !

  • {"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

    Subscribe to our newsletter now!

    >