Master Informatique 1 - RES Architecture des réseaux


M1 RES - Travaux sur machine encadrés 8/10

Introduction à NS2/NAM

Nous nous intéressons dans ce TME à un outils de simulation de réseau appelé NS2 (Network Simulator 2). Ce logiciel a été développé dans un contexte académique au sein du LBL, du Xerox PARC, de l'UCB et de USC/ISI (c'est cette dernière institution qui maintient le code actuellement).

NS2 est un simulateur à événements discrets qui permet d'exécuter tout type de scenarii sur des topologies définies par l'utilisateur. Pour visualiser les résultats, un outil graphique a été développé : NAM (Network AniMator). C'est principalement avec ce dernier que nous travaillerons. NAM permet, outre la visualisation des résultats de simulation, l'édition de scenarii simples permettant d'éviter de descendre au niveau programmation de NS2 (basée sur du Tcl objet).

1 Remarques préalables

1.1 Documentation

Avant d'exécutez l'outil graphique, veuillez consulter la documentation de NAM en ligne. En particuliez,  consultez le manuel de NS qui contient une section sur NAM.

1.2 Exécution

La réalisation des simulations génère des fichiers de taille imposante. Il est impératif d'utiliser un répertoire local à la machine pour votre travail. Par exemple /tmp/mon_login/:

[mon_login@localhost:~] $ mkdir /tmp/mon_login
[mon_login@localhost:~] $ cd /tmp/mon_login
[mon_login@localhost:/tmp/mon_login] $ nam
...

Les configurations créées avec l'éditeur doivent utiliser le suffixe .ns, et les traces des simulations terminent par .nam. Noubliez pas de recopier les configurations (en déplaceant les fichiers locaux sur votre compte utilisateur) et d'effacer les traces à la fin de la séance:

[mon_login@localhost:/tmp/mon_login] mv *.ns ~/
[mon_login@localhost:/tmp/mon_login] rm *.nam
[mon_login@localhost:/tmp/mon_login] cd ; rmdir /tmp/mon_login

2 Edition avec NAM

Après avoir exécuté NAM, une fenêtre de contrôle apparaît. Dans le menu File choisissez New Nam Editor... Un éditeur de scenario NS apparaît. Cet outil permet de réutiliser l'environnement graphique de NAM pour générer des scripts NS simples que vous pourrez simuler ultérieurement avec NS puis visualiser le résultat avec à nouveau NAM.

2.1 Objets de base

A partir de l'éditeur, vous pouvez manipuler quatre type d'objets:
Que représentent-ils ? Quels paramètres pouvez vous modifier ?

2.2 Actions de base

Avec l'éditeur, vous pouvez créer des objets, les manipuler (position, paramètre... ) ou les détruire.
Lorsque vous êtes satisfait de votre configuration, sauvegardez la. Le fichier résultant est un script NS (utilisez le sufixe .ns). Vous pouvez alors lancer une simulation. Cette action correspond à exécuter la commande NS sur le script correspondant à votre configuration. Un fichier trace de la simulation est généré (suffixe .nam). NAM affichera automatiquement une fenêtre de visualisation de cette trace.

3 Exécution avec NS2

Vous allez tester une première configuration avec deux noeuds. Cliquez sur l'icone représentant un noeud et placer deux instances dans la fenêtre d'édition. Cliquez ensuite sur sur l'icone représentant un lien et reliez les deux noeuds précédents. Editez les paramètres associés au lien : indiquez un débit de 2Mbits et un délais de 200ms.  Définissez ensuite deux agents : TCP sur le premier noeud et TCPSink sur le second noeud. Reliez les deux agents entre eux et parametrez une taille de  paquet de 41 octets typique du trafic telnet. Pour finir, intégrez une source telnet avec un temps inter-emission moyen de 200ms sur l'agent TCP. Sauvegardez votre configuration. Observez le script NS générée dans le répertoire avec votre éditeur de texte habituel.
Lancez la simulation. A la fin de la génération de la trace, une fenêtre NAM de visualisation est lancée. Avant de l'utiliser, observez la trace NAM générée dans le répertoire. Revenez à la visualisation et démarrez l'animation correspondant à la simulation. Expliquez ce que vous observez.
Pour affiner les paramètres de simulation, vous pouvez directement modifier le script NS avec votre éditeur de texte puis lancer la simulation manuellement avec la commande ns.

4 Scenarii à réaliser

4.1 Scenario avec pertes

Réalisez une topologie linéaire avec trois noeuds et recherchez quelles sont les possibilités d'intégrer des pertes au niveau du noeud central. Visualisez le phénomène avec l'agent et la source de votre choix.  Utiliser ensuite une configuration avec TCP permettant d'observez les mécanismes de fiabilité mis-en-oeuvre par ce dernier.

4.2 Scenario multi-trafics

Réalisez une topologie en "H" avec 6 noeuds (les noeuds 1 et 2 sont reliés au noeud 3, lui-même relié au noeud 4, qui à son tour est relié aux noeuds 5 et 6) et deux agents: un TCP (entre les noeuds 1 et 5) et un UDP (entre les noeuds 2 et 6). Chaque lien a un délai de 20ms et un débit de 1Mbps. La connexion TCP supporte un générateur de type FTP qui démarre à t=5s. La transmission UDP supporte un générateur de type CBR qui démarre t=0 à débit nul, puis émet à t=10s à 0,5 Mbps pendant 5s, puis débit nul, puis émet à t=20s à 1Mbps pendant 5s, puis finalement débit nul. Observez et analysez les pertes et la réaction de TCP.

Logo UPMC 1/1 OF Tme8 v4.c