Vous avez découvert d'où vient Internet. Reste à comprendre comment deux machines communiquent réellement à travers lui. Après avoir nommé les équipements du réseau, nous allons dérouler un échange de paquets sur un simulateur, puis prendre une vraie mesure sur le réseau du lycée : combien de temps met un message pour aller à l'autre bout du monde, et en revenir ? La réponse réserve quelques surprises.
Voici un schéma représentant une version miniature et simplifiée d'Internet.
Figure 1 - Internet simplifié
Les réseaux locaux sont de petits réseaux constitués d'un ensemble de machines à l'échelle d'une maison, d'une entreprise, d'un lycée. Les machines d'un même réseau local peuvent communiquer directement entre elles.
Le plus simple pour relier des machines dans un même réseau local est d'utiliser un switch (ou commutateur), un équipement sur lequel on branche les câbles Ethernet de toutes les machines. Voici deux photos de switchs :
Un switch
Crédit : KoS, Domaine public, via Wikimedia Commons.
Switch!
par Andrew Hart, CC BY-SA 2.0, via Flickr.
Chaque réseau local peut être relié à Internet s'il est connecté à un routeur. Les routeurs sont des machines qui connectent deux ou plusieurs réseaux et qui guident les messages échangés — on parle de paquets. Si une machine d'un réseau local veut communiquer avec une machine d'un autre réseau local, son message va passer de routeur en routeur. Chaque fois qu'un routeur reçoit un paquet, il décide grâce à des algorithmes à qui l'envoyer pour qu'il se rapproche du destinataire : c'est le routage des paquets.
Voici une photo d'un routeur :
Routeur Cisco CRS-1 (2004)
Crédit : Photo fournie par Cisco Systems Inc., CC BY-SA 3.0, via Wikimedia Commons.
Internet est un immense réseau constitué de petits réseaux (locaux) interconnectés par des routeurs. C'est pour cela qu'on dit qu'Internet est le réseau des réseaux.
Pour que deux machines s'échangent des messages, elles doivent respecter un protocole de communication, c'est-à-dire un ensemble de règles précisant le format des informations échangées, la manière de les échanger, et la manière d'établir puis de terminer la communication. Sur Internet, ce protocole est TCP/IP.
Dans un réseau, chaque machine possède une adresse IP. Pour qu'une machine A puisse envoyer un message à une machine B, elle va utiliser son adresse IP (comme on écrit l'adresse du destinataire sur une enveloppe postale).
Les adresses IP (version 4) sont de la forme :
X.X.X.Xoù chaqueXest une valeur comprise entre 0 et 255. Exemple :199.232.170.217est une adresse IP.
Sur le schéma du mini-réseau (Figure 1) ci-dessus :
✍️ Question 1 : Combien de réseaux locaux avez-vous entourés ? Combien de routeurs un paquet doit-il traverser, au minimum, pour aller de la machine M1 à la machine M17 ?
✍️ Question 2 : En une phrase, à quoi sert un switch ? À quoi sert un routeur ?
Ouvrez le simulateur interactif et déroulez l'échange d'un message du poste A vers le poste B, à l'autre bout du réseau.
Déroulez-le pas à pas avec les flèches, ou lancez-le en continu, et répondez aux questions ci-dessous sur le rôle du serveur DNS, du protocole IP (Internet Protocol) et du protocole TCP (Transmission Control Protocol).
Vous pouvez cliquer sur un routeur pour le mettre en panne, et le réparer d'un second clic.
↗ Ouvrir le simulateur dans une page dédiée
Simulateur interactif : https://info-mounier.fr/snt-projet/simulateur-tcp-ip
💻✍️ Question 3 : Pourquoi la machine A doit-elle commencer par interroger un serveur DNS ? Autrement dit, à quoi sert un serveur DNS ?
💻✍️ Question 4 : Que fait le protocole IP au moment où A envoie son message ? Que serait-il impossible de faire si IP n'écrivait pas l'adresse de l'expéditeur ?
💻✍️ Question 5 : Le protocole TCP assure deux choses.
a) Comment A peut-il être
certain qu'un paquet est bien arrivé chez B ?
b) À quoi sert le numéro porté par chaque
paquet ?
💻✍️ Question 6 : En cliquant sur un routeur au bon moment, faites en sorte de bloquer un paquet pendant son trajet. Que se passe-t-il alors ? Que fait TCP ?
Ouvrez l'invite de commandes de Windows : dans le menu Démarrer, tapez Invite de commandes (ou cmd), puis cliquez sur
l'icône Invite de commandes.
💻✍️ Question 7 : Tapez ipconfig puis validez avec Entrée, et relevez l'adresse IPv4
de votre ordinateur. Comparez-la ensuite à celles de vos voisins immédiats : que constatez-vous
sur les premiers nombres ?
Les machines appartenant à un même réseau (local) possèdent des adresses IP dont le début est identique (la partie commune initiale correspond à l'adresse du réseau, la suite permet des distinguer les différents machines connectés sur ce réseau).
💻✍️ Question 8 : Tapez maintenant ipconfig /all et cherchez la ligne
« Serveurs DNS ». Notez l'adresse IP qui s'y trouve : c'est la machine que votre ordinateur
interroge, exactement comme le poste A du simulateur.
Comme il n'est pas commode pour un humain de retenir des adresses IP, on utilise des adresses symboliques :
www.lemonde.frplutôt que151.101.x.x. C'est le serveur DNS qui connaît les correspondances entre les deux et qui répond à votre machine quand elle demande « quelle est l'adresse IP de ce nom ? ».
La commande ping envoie un petit paquet à une machine et mesure le temps que met la réponse à
revenir : c'est l'aller-retour, qu'on appelle la latence. Elle se mesure en
millisecondes (ms), c'est-à-dire en millièmes de seconde.
Dans l'invite de commandes, tapez :
ping -4 www.lemonde.fr
Remarque : le -4 demande une adresse IP dans sa version 4 (IPv4) donc de la forme X.X.X.X.
Repérez dans le résultat les deux informations suivantes :
Moyenne = ... ms : c'est la latence
moyenne des 4 paquets.✍️ Question 9 : Notez les deux valeurs trouvées dans le résultat de la commande ping -4 www.lemonde.fr :
Votre enseignant attribue deux destinations à votre binôme : une proche et une lointaine. Leur distance depuis Angers est donnée dans le tableau ci-dessous.
Dans les deux questions qui suivent, vous allez devoir parier sur la latence jusqu'à chacune des deux destinations attribuées à votre binôme, et ensuite la mesurer effectivement avec la commande ping (ce sont les questions 10 et 11).
| Destination | Ville, pays | Distance depuis Angers | Adresse IP qui répond | Latence moyenne (ms) |
|---|---|---|---|---|
www.univ-angers.fr |
Angers, France | 0 km | ||
www.univ-nantes.fr |
Nantes, France | 100 km | ||
info-mounier.fr |
Gravelines, France | 450 km | ||
www.ucl.ac.uk |
Londres, Royaume-Uni | 450 km | ||
www.ethz.ch |
Zurich, Suisse | 700 km | ||
www.unipd.it |
Padoue, Italie | 1 000 km | ||
www.uio.no |
Oslo, Norvège | 1 600 km | ||
www.helsinki.fi |
Helsinki, Finlande | 2 200 km | ||
www.mit.edu |
Boston, États-Unis | 5 400 km | ||
www.utoronto.ca |
Toronto, Canada | 5 900 km | ||
www.iitb.ac.in |
Mumbai, Inde | 7 200 km | ||
www.ubc.ca |
Vancouver, Canada | 7 900 km | ||
www.usp.br |
São Paulo, Brésil | 9 100 km | ||
www.uct.ac.za |
Le Cap, Afrique du Sud | 9 200 km | ||
www.u-tokyo.ac.jp |
Tokyo, Japon | 10 000 km | ||
www.uba.ar |
Buenos Aires, Argentine | 10 800 km | ||
www.nus.edu.sg |
Singapour | 11 000 km | ||
www.anu.edu.au |
Canberra, Australie | 17 200 km | ||
www.usyd.edu.au |
Sydney, Australie | 17 200 km | ||
www.auckland.ac.nz |
Auckland, Nouvelle-Zélande | 18 800 km |
✍️ Question 10 — le pari : Pour chacune de vos deux destinations, avant de mesurer, écrivez votre estimation de la latence moyenne, en millisecondes. Dit autrement, combien de temps pensez-vous que prend un aller-retour entre votre machine et chacune de vos deux destinations ?
✍️ Question 11 — la mesure : Lancez ping -4 sur chacune de vos deux destinations et relevez,
pour chacune, l'adresse IP qui répond et la latence moyenne.
Reportez ensuite ce deux valeurs dans le tableau partagé.
⌛ Les questions 12 et 13 qui suivent seront traitées lorsque tous les binômes auront reporté leurs valeurs dans le tableau.
Pour patienter, si l'une de vos destinations n'a répondu à aucun des 4 paquets envoyés, passez à la question 14. Sinon, passez directement à la dernière section facultative Pour aller plus loin ou compléter le bilan à la toute fin de ce document.
✍️ Question 12 : Quand le tableau partagé est rempli, classez les destinations de la plus rapide à la plus lente. Cet ordre correspond-il à l'ordre des distances ? Citez au moins une destination pour laquelle ce n'est pas le cas.
✍️ Question 13 — la conclusion : Deux élèves discutent devant le tableau de la classe.
— « Pour savoir dans quel pays se trouve la machine qui héberge un site, il suffit de regarder son nom :
.jp, c'est au Japon,.fr, c'est en France. »— « Non. Il faut mesurer : le nom, on peut l'écrire comme on veut, alors que la latence, elle, ne ment pas. »
Qui a raison ? Justifiez votre réponse en citant deux lignes précises du tableau de la classe.
Ce que la latence permet de détecter porte un nom. Les grands sites ne sont pas hébergés sur une machine, mais recopiés sur des serveurs répartis dans le monde entier : quand vous demandez une page, c'est le serveur le plus proche de vous qui répond. Le nom d'un site ne dit donc pas où sont ses données — le temps de réponse, lui, en donne un indice mesurable.
✍️ Question 14 : Une destination au moins n'a répondu à aucun des 4 paquets. Peut-on en conclure que cette machine est en panne, ou que le site est inaccessible ? (Indice : essayez d'ouvrir ce site dans le navigateur.)
Rendez-vous sur le site pour accéder à cette section facultative.
La commande tracert affiche la liste des routeurs traversés par les paquets, ainsi que le
temps de réponse de chacun.
Dans l'invite de commandes, tapez :
tracert -h 15 www.univ-angers.fr
-h 15 limite la recherche aux 15 premiers routeurs, sinon la commande est très longue.
✍️ Question 15 : Regardez les cinq premières lignes. Reconnaissez-vous quelque chose
dans les noms affichés (un opérateur, une ville, un pays) ? Et pourquoi, à votre avis,
certaines lignes n'affichent-elles que des étoiles * * * ?
Les étoiles ne signifient pas que le paquet est perdu : elles signifient que ce routeur-là a choisi de ne pas répondre. Beaucoup d'équipements, pour des raisons de sécurité, restent muets quand on les interroge. Le réseau fonctionne, mais il ne vous doit aucune explication sur son fonctionnement.
Dans une fibre optique, la lumière se déplace à environ $v = 200\,000$ km/s. Un paquet parcourt deux fois la distance $d$ qui vous sépare de la destination : l'aller, puis le retour. La durée minimale de cet aller-retour vaut donc :
$$ t = \frac{2 \times d}{v} $$
Avec $d$ en kilomètres et $v$ en km/s, ce calcul donne $t$ en secondes. Pour l'obtenir en millisecondes, on multiplie par $1000$ :
$$ t = \frac{2 \times d}{200\,000} \times 1000 = \frac{d}{100} $$
La distance en kilomètres divisée par 100 donne la latence minimale en millisecondes.
Pour Canberra, à $16\,800$ km : $16\,800 / 100 = 168$ ms. Aucun message ne peut faire mieux — et en pratique il fait toujours un peu moins bien, car les câbles ne suivent pas la ligne droite et chaque routeur traversé prend un peu de temps.
✍️ Question 16 : Calculez ce minimum physique pour vos deux destinations. Combien de fois la latence que vous avez mesurée dépasse-t-elle ce minimum ?
✍️ Question 17 : Cherchez dans le tableau de la classe une destination dont la latence mesurée serait inférieure à son minimum physique.
La question b) mérite qu'on s'y arrête. Une mesure de ce genre peut réfuter : une latence trop courte prouve que la machine n'est pas là où on le croyait. Mais elle ne peut pas confirmer : une latence normale ne prouve rien, car la machine qui répond peut se trouver n'importe où entre vous et la destination annoncée. C'est une limite qu'on retrouve dans beaucoup de mesures, en informatique comme ailleurs.
Complétez les pointillés avec les mots : TCP · routage · serveur DNS · IP · réseau des réseaux · latence · routeurs · paquets · adresse IP
À retenir — Le nom d'un site ne dit pas où sont ses données. Où vivent nos données est une question qui se mesure, elle ne se devine pas.
Ce qu'on réinvestit dans le projet
Notre application vivra elle aussi sur une machine allumée quelque part (un serveur). Cette phrase à retenir nous oblige à poser la question dès maintenant : où sera cette machine, et qui la possède ? Ces considérations seront très importantes pour notre application, car elle manipulera probablement des données personnelles et il faudra veiller à respecter de manière rigoureuse le RGPD : Règlement Général sur la Protection des Données. C'est exactement le sujet d'une des prochaines séances — et ce sera l'une des décisions du pôle Juridique plus tard dans l'année.
Germain Becker, lycée Emmanuel Mounier, ANGERS