Justement, en passant par Internet, vous utilisez le plus grand réseau du monde. Comment les machines discutent? Ou plutôt, comment les hommes discutent à travers les machines? Il n'y a rien de sorcier, le principe est même assez simple. On prend deux ordinateurs et on veut passer un message d'un ordinateur à un autre. Ok! Let's see what we can do... Le plus simple pour commencer est de voir le principe de "discussion" entre un ordinateur et... une imprimante!
Le cable parallèle
Vous savez sans doute que les ordinateurs fonctionnent uniquement avec des 0 et des 1, regroupés par 8, ce qui donne des octets. Le cable qui relie l'ordinateur à l'imprimante est un cable parallèle. Il contient beaucoup de fils, mais on va supposer, puisque ce n'est que le principe qui nous interesse, qu'il n'a que 9 fils.
Imaginons que l'on veuille faire passer un octet à l'imprimante, soit "01100111" par exemple. L'octet utilisera 8 fils, chaque bit ( 0 ou 1 ) sera sur un fil distinct. Allons-y, envoyons notre octet...
Aucun fil n'a de courant pour l'instant. On envoie du courant dans le 9ème fil. L'imprimante détecte ce courant et sait que cela veut dire "Je vais envoyer un octet". Ensuite si on veut envoyer un 0, on ne met pas de courant sur le fil concerné, et si on veut envoyer 1, on met du courant.
Pour envoyer "01100111", on n'envoie pas de courant sur les fils 1, 4 et 5, et on envoie du courant dans les fils 2, 3, 6, 7 et 8.
Et voilà! L'imprimante n'a plus qu'à regarder sur les fils si il y a du courant ou pas : on vient de faire passer des informations d'une machine à une autre. L'octet envoyé sera ensuite traité par la machine comme elle l'entend ( comme si une machine entendait... ).
Le cable série
Il y a beaucoup moins de fils et pour cause : l'octet passe sur un seul fil. Le principe est le même, sauf qu'au lieu d'avoir 1 fil par bit ( 0 ou 1 ), ils passent tous par le même.
L'ordinateur envoie du courant sur un autre fil. Cela signifie "Je vais envoyer un octet".
A l'autre bout, l'autre ordinateur se prépare et regarde sur le fil de réception. Il attend une seconde, regarde sur le fil, y'a t'il du courant? Si oui, c'est un 1, sinon, c'est un 0. Il attend une seconde, regarde une nouvelle fois, et ainsi de suite.
Les 0 et les 1 sont envoyés les uns à la suite des autres, et c'est pour cela que le cable série est réputé pour être très lent.
Dans la réalité, ce n'est évidemment pas en secondes que se compte les temps d'attente...
Contrôle de parité
Dès lors qu'on envoie des données d'un endroit à un autre, on aime vérifier que ce qu'on a envoyé est identique à ce qu'on a reçu. Pour cela, on peut utiliser le contrôle de parité. Ce système est quelquefois utilisé sur les modems.
D'ailleurs, au passage, un modem (Modulation-Démodulation) est juste un petit ordinateur qui sait envoyer et recevoir des données par une ligne de téléphone classique.
Pour vérifier les données, on calcule la parité. C'est à dire qu'on compte le nombre de 1 de l'octet. Si ce nombre est pair, on envoie 0, si ce nombre est impair, on envoie 1.
Par exemple, pour "01100111" on envoie 1 (5 uns donc impair) comme bit de parité.
Celui qui envoie l'octet envoie aussi le bit de parité qu'il a calculé.
Celui qui reçoit l'octet fait le même calcul et regarde si il a le même résultat.
Si le résultat n'est pas le même, il demande simplement à l'expéditeur de recommencer à envoyer l'octet parce qu'il y a eu une erreur. Cette solution ne couvre pas toutes les erreurs, mais en détecte une majorité... Il est rare d'avoir 2 bits mauvais dans un seul transfert d'octet, et c'est la condition pour que le contrôle de parité ne fonctionne pas.
Les trames
Le but est d'envoyer des informations d'une machine à une autre, et on sait maintenant comment faire avec le cable parallèle ou série. Il ne reste plus qu'à être capable de les envoyer partout à travers le monde et de voir comment les ordinateurs du monde entier se comprennent même si il ne sont pas identiques...
On envoie donc une suite de 0 et 1, il ne reste plus qu'à tout mettre dans le bonne ordre.
Ce qu'on envoie sur le réseau, cette suite de 0 et de 1 qui concerne une communication à une moment donné est appelé trame.
Pour en apprendre un peu plus sur la façon dont les trames sont organisées, vous pouvez allez faire un tour à la page "Qu'est-ce qu'un protocole"... Le modèle OSI est égalment expliqué.
Adresse IP et adresse MAC
Maintenant que nous savons ce qu'on envoie, il faut que le destinataire le reçoive...
Cela fonctionne comme une ligne de téléphone : votre voix doit être amenée rapidement vers votre interlocuteur, quelque soit l'endroit du monde où il se trouve... Pour cela, chaque ordinateur à deux adresses : une adresse IP et une adresse MAC.
L'adresse IP est en quelque sorte le nom de votre ordinateur sur un réseau. Avec cette adresse, on peut situer votre ordinateur dans le monde car on sait à quel réseau il appartient.
L'adresse MAC est l'adresse physique de l'ordinateur : c'est son nom, quelque soit l'endroit où il est. Ainsi, une fois que le réseau est trouvé grâce à l'adresse IP, l'adresse MAC permet d'être repéré de façon unique.
On associe donc un nom de réseau ( adresse IP ) et une adresse sur ce réseau ( adresse MAC ) pour envoyer les informations au bon destinataire.
Ainsi, si quelqu'un veut vous parler, il envoie un message du style "Est-ce que quelqu'un a vu l'ordinateur d'adresse IP xxx.xxx.xxx.xxx?" et vous lui répondez en lui envoyant votre adresse MAC pour qu'il sache physiquement où vous êtes.
Ainsi, tout se passe comme quand quelqu'un vous cherche et qu'il ne vous connait pas : il commence par chercher la pièce où vous êtes et demande à voix haute : "Est-ce que X est là?" et vous lui répondez...
Serveur DHCP
Lorsque vous passez par un opérateur quelconque pour vous connecter, il arrive souvent que vous n'avez pas d'adresse IP fixe. En fait, à chaque fois que vous vous connectez, le serveur DHCP vous attribue une adresse IP pour la connection et vous l'enlève quand vous vous déconnectez.
Acheminement des données
Lorsqu'on envoie une trame, il y a des boitiers intermédiaires qui savent dans quelle direction il faut envoyer la trame. Ces boitiers peuvent être des routeurs, des switchs, des hubs et autres. Différentes techniques sont utilisées pour que votre message soit envoyé vers le bon ordinateur!
On sait maintenant que les ordinateurs discutent entre eux, qu’ils s’envoient des petits messages et qu’ils ont une adresse personnelle.
Si vous avez lu la partie "Qu’est qu’un protocole ?", vous savez également comment les données sont placées dans les trames. Si vous ne l’avez pas lu, je vous conseille de le lire maintenant, et en particulier la partie sur le modèle OSI... où vous risquez de ne pas tout comprendre de ce qui va suivre !*
Différentes voies pour acheminer les données
Bien sûr, Internet est absolument immense. Mais ce dont je vais parler ici existe aussi dans un RLE** ( réseau local d’entreprise )... Il existe beaucoup de réseaux différents, mais le principe est toujours le même et il y a trois types de « machines » utilisées pour acheminer les données : les hubs (« concentrateurs » en français, mais personne n’utilise ce mot), les switchs (commutateurs en français, même remarque) et les routeurs.
Les hubs
C’est ce qu’il y a de plus simple. Ca se présente comme une petite boîte allongée (genre multiprise en ligne) avec pleins de prises « RJ45 » (mais si, vous voyez bien, c’est les petites prises qu'il y a sur les cartes réseaux) côte à côte. Il y a quand même une prise de courant, mais c’est à peu près tout. Chaque ordinateur est connecté à une des prises.
Les hubs sont souvent utilisés quand il s’agit de relier quelques ordinateurs ensemble pour un petit réseau local. Le principe est simple, dès que quelque chose arrive sur une des prises, il est automatiquement répéter sur toutes les autres prises. C’est pour cela qu’en français, on appelle ça un répéteur...
Ainsi, dès qu’un ordinateur dit quelque chose, tout le monde l’entend et l’ordinateur concerné traite l’information... C’est pour cette raison que ce système ne peut être utilisé que lorsqu’il n’y a que peu d’ordinateurs, car s’il y a 100 ordinateurs qui parlent en même temps et que tout le monde entend tout ce que tout le monde dit, ça devient vite le b... comme le montre le schéma suivant :
Donc, pour pouvoir connecter plus d’ordinateurs, on a inventé les switchs...
Les switchs
Les switchs sont un peu plus intelligents. C’est déjà un peu plus gros qu’un hub parce qu’on commence à mettre des choses dedans...
Il y a toujours ce principe de prises où sont connectés les différents ordinateurs (mais on peut aussi mettre d’autres switchs, ou des hubs, ou ce que l’on veut...). La différence avec le hub, c’est que le switch sait quels sont les ordinateurs qui sont autour de lui. Ainsi, si il reçoit une trame pour l’ordinateur X, il ne l’envoie qu’à l’ordinateur X et pas aux autres. Il commute (il branche) l’entrée des données vers la sortie où est l’ordinateur concerné. C’est pour cela qu’on appelle ça un commutateur en français...
A noter malgré tout que les switchs font beaucoup de progrès ces temps-ci, ils sont maintenant presque aussi doués que les routeurs (que l’on va voir juste après). Leur fonction première reste quand même celle décrite ci-dessus.
Les routeurs
C’est ce que l’on fait de mieux pour acheminer les données. Le routeur est quasiment un ordinateur à part entière. Il est capable de décoder les trames jusqu’à retrouver l’adresse IP et de diriger l’information dans la bonne direction. On peut aussi définir dans les trames le chemin où doit passer la trame, le routeur peut comprendre tout cela... Le fait de définir ou de diriger une trame s’appelle « router » une trame. C’est pour cela qu’on les appelle des routeurs.
Ainsi, vous pouvez donner des informations de routage aux informations que vous envoyez et les faire passer par Hong-Kong puis San Francisco si ça vous amuse*** !
Résumé
Les hubs ne regardent pas ce qu’il y a dans les trames, ils se contentent de répéter l’information. Comme il n’y a aucune analyse du contenu de l’information, on dit qu’ils travaillent au niveau 1 (physique) du modèle OSI.
Les switchs sont capables d’analyser un peu l’information contenue dans la trame, de repérer l’adresse MAC de la destination et d’envoyer la trame vers le bon ordinateur. On dit que les switchs travaillent au niveau 2 du modèle OSI.
Pour les routeurs, retenez simplement qu’ils sont assez puissants et qu’ils travaillent jusqu’au niveau 3 du modèle OSI. Ils sont capable d’analyser le contenu des trames.
On appelle ces machines des éléments réseaux. On distingue les éléments actifs (les switchs et les routeurs puisqu’ils analysent le contenu des trames) et les éléments passifs (hubs : pas d’analyse).
Nous voilà donc avec nos hubs, nos switchs et nos routeurs (les éléments du réseaux) dispersés à travers le monde... Mais comment diable font-ils pour savoir qui est où ?
C’est ce qu’on va essayer de voir maintenant...
Acheminement des données
Les ordinateurs et les éléments du réseaux ont tous une passerelle par défaut. Qu’est-ce que c’est ? C’est là où on va lorsqu’on ne sait pas où aller... Vous envoyez quelque chose sur le réseau. On commence par demander à ces voisins si c’est à eux qu’on écrit. Si ce n’est pas le cas, on va vers la passerelle par défaut qui est généralement le routeur le plus proche. Le routeur regarde l’adresse IP, et la compare avec les adresses qu’il connait. S’il ne connait pas, il les envoie vers sa passerelle par défaut à lui qui est sans doute un autre routeur plus important. Il faut noter malgré tout que les routeurs stockent des informations sur les adresses et là où elles sont. De plus, le routeur est capable d’analyser une partie de l’adresse, et si l’adresse est, par exemple, 193.152.0.36 et qu’il ne connait exactement cette adresse, peut-être a t’il malgré tout une information sur 193.152.x.x ou 193.x.x.x et sait donc où envoyer la trame...
Ainsi, de routeurs en routeurs, de switchs en switchs puis de hubs en hubs (mais il y a aussi d’autres éléments), les trames se balladent jusqu’à atterir dans les bras de celui qui l’attendait avec impatience !
Il est également à noter que une fois que le destinataire a été trouvé une première fois, tout le monde note dans ces fichiers l’endroit où il est pour que les autres trames de la communications soient rapidement envoyées.
Serveur DNS
Juste un petit mot sur le DNS (domain name server). C'est un serveur (un ordinateur très demandé par les autres) qui est capable d'associer un nom à une adresse IP.
Vous tapez sous Netscape ou Internet Explorer "www.yahoo.fr". Le serveur DNS reconnaît le nom et associe l'adresse IP à laquelle il faut envoyer l'information. C'est un peu comme un annuaire: si vous dites "Monsieur Dupont", vous ne savez pas où envoyer la lettre. Vous regardez dans l'annuaire (le DNS) et vous avez l'adresse qui est associée au nom. Si le premier server DNS que vous rencontrez ne connait pas Monsieur Dupont, il demande simplement à un collègue un peu plus informé !
Le premier serveur DNS qui reconnaît le nom vous renvoie l’adresse IP associée et le tour est joué!
Et voilà... J’espère que c’est compréhensible et que vous êtes maintenant incollable sur les éléments du réseaux...
* si vous l’avez lu et que vous ne comprenez quand même pas ce qui suit, vous pouvez toujours me le dire par mail car je crois que ce n'est pas vous le problème, mais plutôt mes explications...
** ce n’est pas pour faire bien que je mets ce genre d’acronymes, c’est juste parce que ceux qui sont à fond dans les sciences ont souvent du mal à parler normalement... alors autant que vous en connaissiez quelque uns si vous devez (par hasard) parler avec l’un d’entre eux!
***que voulez-vous, les informaticiens ont des façons très particulières de s’amuser...