Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Les bases de la simulation de réseau

La leçon complète est à lire ici. Créez un compte gratuit pour la pratiquer dans un labo en direct.

Labo de machine virtuelle12 min de lecture9 commandes

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.

Commande
cd ns3

Affiché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.

Commande
sim build first.cc

Affiché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.

Commande
./first

Affiché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.

Commande
sim pcap first-0-0.pcap

Affiché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.

Commande
./first --delay=50ms

Affiché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.

Commande
./first --rate=1Mbps

Affiché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.

Commande
sim build bottleneck.cc

Affiché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.

Commande
./bottleneck --senders=2

Affiché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.

Commande
./bottleneck --senders=5 --each=1Mbps --bottleneck=4Mbps

Affiché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.

À propos de ce labo et de sa source: Lab Simulation de réseau : le simulateur ns-3 dans une VM Ubuntu privée

Vous enseignez à une classe ? Proposez ces leçons à vos élèves avec correction et un labo pour chaque élève.