Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parHenriette Laurent Modifié depuis plus de 8 années
1
Tutoriel NS3 Eugen Dedu M2 RIM Université de Franche-Comté, Montbéliard, France octobre 2009 (ns 3.6) [Grands remerciements à Wassim Ramadan]
2
2 Introduction ● Simulateur discret des réseaux informatiques – basé événement ● Toutes les couches du réseau ● Beaucoup de protocoles réseau et de types de liens ● (Modèles de mobilité) ● Site Web + doc : http://www.nsnam.org
3
3 Comparaison avec ns2 ● ns3 : – écrit en C++ – supporte wi-fi beaucoup mieux – (plusieurs fois) plus rapide en exécution (tout est déjà compilé) – scripts (scénarios) en C++ ou python – en plein développement, le futur de ns2 ● ns2 : – écrit en C++ et OTcl – scripts (scénarios) en tcl – beaucoup plus ancien => beaucoup plus de protocoles etc.
4
4 Features de ns3 ● Génère des fichiers pcap ● Exécution utilisant le temps réel (horloge de simulation = horloge de la machine) ● Framework de statistiques ● Utilisation de la pile réseau de la machine possible (linux au moins) – ns3 sur 2 machines, réseau réel – 2 ns3 sur une machine, pile réseau de la machine
5
5 Quelques fonctionnalités actuellement manquantes en ns3 ● tcp : tahoe seulement ● dccp, tfrc n'existent pas ● red n'existe pas ● Pas de visualisateur graphique ● Erreurs difficiles à discerner – ex. en C++ : n1n2.Get (2) au lieu de n1n2.Get (1) => Command exited with code -11
6
6 Comparaison avec d'autres simulateurs réseau ● Gratuit (GPL) ● Fournit beaucoup de protocoles ● ns2 est le plus utilisé en recherche sur les réseaux ● ns2 : pas très précis dans des cas précis (wi-fi, application, topologie réseau, temps de traitement des paquets etc.)
7
7 Installation ● Télécharger depuis son site Web et décompresser ● Exécuter./waf – waf est un outil de configuration et compilation, un des nouveaux outils qui veulent remplacer autotools&make – waf est écrit en python, qui doit être déjà installé
8
8 Exécution des scénarios ● Script : C++ ou python, seul binding pour l'inst ● Si fichier C++ – le fichier test.cc doit se trouver dans scratch –./waf --run scratch/test (compile test.cc et ns3 si nécessaire + exécution) ●./waf pour compiler seulement ● Si fichier python – test.py se trouve n'importe où – chemin/waf --pyrun test.py --cwd `pwd` ● test.py se trouve dans le répertoire courant ● crée les fichiers de sortie dans le répertoire courant ● waf connaît les répertoires bibliothèque etc...
9
9 Composants de base ● Application (SE inclus) (classe Application en C++) – ex. : UdpEchoClientApplication, UdpEchoServerApplication ● Nœud = hôte/routeur (classe Node en C++) ● Device = carte réseau (matériel + driver) (classe NetDevice en C++) ● Canal = médium de communication (lien par ex.) (classe Channel en C++) ● Helper de topologie = facilite la connexion entre nœud, device et canal (adresse IP, connexion entre eux etc.)
10
10 Composants de base Application Nœud Device Application Nœud Device Canal TopologyHelper
11
11 Applications disponibles ● FIXME echoServer/Client - équivalent de CBR (mais le serveur répond)
12
12 Exemple expliqué ● Explications de first.cc ● Exécution et affichage – deux messages reçus ? ● Modification du nombre de paquets
13
13 Programmation en python par rapport à C++ ● import ns3 au lieu des #define ● Ordre des instructions parfois légèrement différent, par ex. x = y() au lieu de y x; ● Classe.methode au lieu de Classe::methode ● En général : – quelques fonctions ne sont pas disponibles ● log, fichier de traces.tr (mais pcap si) – pas de compilation (voir plus haut) – installation multi-utilisateur possible (en C++ il faut avoir des droits d'écriture en scratch et build)
14
14 Analyse des résultats : fichiers de trace ● Trace : informations sur les paquets échangés sur le réseau ● Types de fichiers : – pcap ● un fichier par interface réseau ● visualisables avec wireshark etc. – tr (spécifique à ns3) ● un pour toute la simulation ● fichier texte, à déchiffrer soi-même – l'en-tête IP et l'en-tête UDP/TCP complets (sauf somme contrôle), pas de données, l'id de l'émetteur MAC ● pas d'outil de visualisation pour l'instant
15
15 Visualiser avec nam du ns2 ● #include "fstream" ● std::ofstream file; ● file.open ("links.info"); ● Pour chaque liaison pointToPoint.install (n0n1) – file GetId() GetId() << " -S UP -r " << 1000000 << " - D " << 0.01 << " -c black" << std::endl; ● file.close (); ● tr2nam.awk -v fileName=out.tr out.nam
16
16 Divers ● Routage (OSPF) obligatoire si dans le cas réel il est nécessaire (en ns2 s'était automatique) ● Les fichiers pcap commencent toujours à t=0, c'est normal, car sur une interface on ne connaît pas le temps global de simulation
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.