0% ont trouvé ce document utile (0 vote)
45 vues16 pages

Tutoriel sur le simulateur NS3

Transféré par

معلم اول
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODP, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
45 vues16 pages

Tutoriel sur le simulateur NS3

Transféré par

معلم اول
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODP, PDF, TXT ou lisez en ligne sur Scribd

Tutoriel NS3

Eugen Dedu
M2 RIM
Université de Franche-Comté, Montbéliard, France
octobre 2009 (ns 3.6)

[Grands remerciements à Wassim Ramadan]


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 : [Link]

2
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 3

protocoles etc.
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

4
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++ : [Link] (2) au lieu de [Link] (1)
=> Command exited with code -11

5
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.)

6
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é

7
Exécution des scénarios

Script : C++ ou python, seul binding pour l'inst

Si fichier C++
– le fichier [Link] doit se trouver dans scratch
– ./waf --run scratch/test (compile [Link] et ns3 si
nécessaire + exécution)

./waf pour compiler seulement

Si fichier python
– [Link] se trouve n'importe où
– chemin/waf --pyrun [Link] --cwd `pwd`

[Link] se trouve dans le répertoire courant

crée les fichiers de sortie dans le répertoire courant 8

waf connaît les répertoires bibliothèque etc...
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 9
entre eux etc.)
Composants de base

Application Application

Nœud Nœud

Device Device

Canal
TopologyHelper

10
Applications disponibles

FIXME echoServer/Client - équivalent de CBR
(mais le serveur répond)

11
Exemple expliqué


Explications de [Link]

Exécution et affichage
– deux messages reçus ?

Modification du nombre de paquets

12
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;

[Link] 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) 13
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
14

pas d'outil de visualisation pour l'instant
Visualiser avec nam du ns2

#include "fstream"

std::ofstream file;

[Link] ("[Link]");

Pour chaque liaison [Link] (n0n1)
– file << "l -t * -s " << [Link](0)->GetId() << " -d
" << [Link](1)->GetId() << " -S UP -r " <<
1000000 << " -D " << 0.01 << " -c black" <<
std::endl;

[Link] ();

[Link] -v fileName=[Link] <[Link] >out.nam15
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

16

Vous aimerez peut-être aussi