Tester un réseau avant de le construire
Un collège veut savoir si son réseau tiendra quand toutes les classes regarderont une vidéo en même temps. Personne n’achète les câbles pour le découvrir. Les ingénieurs construisent le réseau dans un programme, un simulateur, et le lancent pour voir ce que feraient les paquets.
À la fin de cette leçon
Remarque
Je peux lancer un réseau simulé et lire son délai et ses pertes de paquets.
Mots-clés
- Simulateur : un programme qui imite un réseau.
- Nœud : un ordinateur du réseau.
- Délai : le temps que met un bit à traverser une liaison.
- Débit : le nombre de bits qu’une liaison transporte chaque seconde.
- Perte de paquets : des paquets envoyés qui n’arrivent jamais.
Pour commencer : ce que tu sais déjà
Remarque
Réponds dans ta tête. 1. Qu’est-ce qu’un paquet ? 2. Que fait un routeur ? 3. Une liaison plus rapide est-elle la même chose qu’une liaison plus courte ? Tu as besoin de la troisième réponse dans un instant.
Avant de commencer
Remarque
Appuie sur Démarrer le lab dans la barre en haut de cette leçon. Ce lab est une machine Ubuntu entière, rien que pour toi : elle met un peu plus de temps à démarrer qu’un conteneur. Chaque bouton Exécuter tape sa commande dans le terminal de la machine, l’une après l’autre, dans la même session. Si l’un d’eux dit que la machine démarre encore, attends quelques secondes et appuie de nouveau. Pour les regarder, ou pour taper les tiens, appuie sur Ouvrir le terminal dans la barre.
Un réseau est un petit programme
Tes fichiers sont dans le dossier ns3. La première commande y entre. first.cc crée deux nœuds, les relie par une liaison et envoie un paquet à un serveur d’écho, qui le renvoie. sim build le compile avec ns-3 et prend quelques secondes. Le programme s’appelle ensuite first. Lance-le : la première ligne dit quand le client a envoyé son paquet, et la deuxième quand la réponse est revenue.
cd ns3Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
sim build first.ccAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
./firstAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Vérifie
Astuce
Combien de temps l’aller-retour a-t-il pris ? Réponse : un peu plus de 7 millisecondes. Le client a envoyé à 2 secondes et la réponse est arrivée vers 2,0074 secondes.
Une trace montre chaque paquet
ns-3 a aussi écrit first-0-0.pcap, l’enregistrement de chaque paquet qui a traversé l’interface du nœud 0. Un fichier pcap est le vrai format que lisent des outils comme tcpdump. sim pcap le liste, un paquet par ligne, avec son instant en secondes. Il y a deux lignes : la requête à 2.000000 et la réponse quelques millisecondes plus tard, chacune avec 1024 octets de données.
sim pcap first-0-0.pcapAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Une erreur fréquente
Attention
Beaucoup pensent que le débit d’une liaison est la vitesse à laquelle un paquet voyage. Ce n’est pas le cas. Le délai est le temps que met un bit à traverser, et le débit est la vitesse à laquelle un nœud peut déposer des bits sur la liaison. Une liaison lente fait durer l’envoi d’un gros paquet. Une liaison longue fait durer l’arrivée de chaque paquet, gros ou petit.
Le délai et le débit sont deux choses différentes
Les deux réglages se donnent en ligne de commande. La première commande donne à la liaison un long délai et garde le débit. La deuxième garde le délai et ralentit le débit à 1 Mbps. Compare les deux avec l’aller-retour de tout à l’heure, un peu plus de 7 ms. Un délai de 50 ms ajoute environ 96 ms, parce que le paquet traverse deux fois. Ralentir le débit ajoute environ 13 ms, parce que chaque bit met plus de temps à être déposé sur le fil.
./first --delay=50msAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
./first --rate=1MbpsAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Vérifie
Astuce
Quel réglage la taille du paquet change-t-elle ? Réponse : le débit. Un paquet plus gros a plus de bits à déposer sur le fil, et le délai est le même pour tous les paquets.
Un goulot d’étranglement perd des paquets
bottleneck.cc a des émetteurs qui ont chacun une liaison rapide vers un routeur, et une liaison plus lente entre le routeur et le récepteur. FlowMonitor compte ce que chaque flux a envoyé et ce qui est arrivé. Avec deux émetteurs de 4 Mbps vers le goulot de 10 Mbps, tous les paquets arrivent. La deuxième commande envoie cinq flux de 1 Mbps vers une liaison de 4 Mbps : environ un cinquième de chaque flux est perdu, parce que la file du routeur est pleine et qu’il jette ce qu’il ne peut pas retenir.
sim build bottleneck.ccAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
./bottleneck --senders=2Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
./bottleneck --senders=5 --each=1Mbps --bottleneck=4MbpsAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Vérification finale
Astuce
Réponds sans revenir en arrière. 1. Que fait un simulateur ? 2. Qu’est-ce qu’un fichier pcap ? 3. Quel réglage un paquet plus gros ralentit-il, le délai ou le débit ? 4. Quand un paquet est-il perdu à un goulot d’étranglement ? Réponses : il imite un réseau dans un programme ; un enregistrement des paquets sur une interface ; le débit ; quand on envoie plus que la liaison ne peut transporter et que la file est pleine. Ouvre maintenant le README.md de ton dossier personnel avec cat ~/README.md : tu écris deux scénarios.
Pour les enseignants
Astuce
Cette leçon est un petit exemple de leçon travaillée dans un lab : les étapes et les boutons Exécuter forment la leçon, et le lab est la copie de chaque élève. Elle se déroule dans un lab VM : chaque élève a sa propre machine Ubuntu avec ns-3 installé, et un bouton Exécuter tape dans son terminal et montre ce qui s’est affiché. Points clés : 1. Un simulateur imite un réseau dans un programme. 2. Une trace enregistre chaque paquet. 3. Le délai et le débit sont deux choses différentes, et un paquet plus gros est ralenti par le débit. 4. Des paquets sont perdus quand on envoie plus qu’une liaison ne transporte. Erreur fréquente : croire que la vitesse et le délai sont la même chose. Matériel : le lab et un navigateur. Conseil : avant la commande à 1 Mbps, demandez à la classe ce qui changera le plus, le délai ou le débit. Le lab lui-même a une vérification qui note deux programmes C++ avec des valeurs cachées.