- Network simulator
-
Network Simulator
Network Simulator ou plus communément NS est un logiciel libre de simulation par événements discrets très largement utilisé dans la recherche académique et dans l'industrie. Il est considéré par beaucoup de spécialistes des télécommunications comme le meilleur logiciel de simulation par événements discrets, en raison de son modèle libre, permettant l'ajout très rapide de modèles correspondant à des technologies émergentes. Il est basé sur l'utilisation de langages de scripts pour la commande des simulations (tcl/tk) alors que le cœur des simulations est implémenté avec le langage C++.
Le logiciel NS est fourni avec une interface graphique (NAM) permettant de démontrer le fonctionnement des réseaux, ce qui en fait un outil à la valeur pédagogique très intéressante.
Sommaire
installation
sous windows
Avec Cygwin installé sur votre OS, il suffit de l'installer de la même facon que sous linux. Pensez seulement à vérifier que vous posséder bien les packages X11 ou Xfree86.
| Trouvez les détails de l'installation ici (wiki en anglais)
sous linux
Fonctionne sur toutes les distributions linux.
Sous openSuse par exemple, c'est très simple, il suffit de | telecharger les sources puis placer les dans le répertoire de votre choix.
Dans ce repertoire taper:
tar xvf ns-allinone-2.33.tar.gz
pour décompresserrentrer dans le répertoire
cd ns-allinone-2.33
et lancer l'installation avec
./install
Si vous rencontrez un problème ou une erreur avant la fin de la compilation c'est sans doute qu'il vous manque un package. Reperez dans les erreurs la ligne qui pause problème, par exemple un problème avec gcc. Vérifiez avec Yast (ou autre application d'installation de votre distribution linux) que vous possédez bien la librairie demandée. Les problèmes les plus courants sont:
- une mauvaise version d'une librairie (gcc par exemple)
- une librairie de developpement manquante car l'installation de base de linux ne les installe par forcement. ( par exemple xfree86-devel ou xorg-devel peuvent manquer)
Recommencez erreur après erreur en relançant l'installation
Une fois tout installé n'oubliez pas de créer un lien symbolique ou de faire un export PATH pour pouvoir utiliser network simulator.Le plus simple étant de faire ceci: ("si vou êtes encore dans le repertoire ns-allinone-2.33)
ln -s bin/ns /usr/local/bin/ns
et n'oubliez pas
ln -s bin/nam /usr/local/bin/nam
Voila maintenant de n'importe quelle console vous pourrez taper ns pour lancer network simulator. C'est surtout très important pour pouvoir appeler ns ou nam depuis un fichier tcl.
utilisation
Voici les bases pour creer une petite simulation ultra simple. D'abord vous verrez le code permettant d'utiliser ns avec le nam. Puis vous verrez comment creer une topologie. Et enfin comment initier une communication entre deux noeuds de cette topologie.
les bases
#+++++++++++++++++++ # # creation du simulator # #+++++++++++++++++++++++
#creation du simulateur => NB :on aurait pu l'appeler autrement que ns set ns [new Simulator]
#on redirige la sortie vers un fichier nam => *.nam => NB: un autre nom que nf est possible set nf [open out.nam w]
#on demande à ns de tout tracer dans le fichier nam $ns namtrace-all $nf
#procedure obligatoire qui ferme tout proprement proc finish {} { global ns nf $ns flush-trace close $nf exec nam out.nam & exit 0 }
creation de topologie
#++++++++++++++++++++++++++++++++++++ # # creation de la topologie # #+++++++++++++++++++++++++++++++++++++++
#on creer des noeuds
#set nomDunoeud [$varSimulateur node] => NB: varSimulateur est le nom du simulateur : ici ns set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node]
#on creer les liens
#$varSimulateur typeDeLiens $varNoeud $varNoeud2 vitesseLien delaiLiens typeQueue $ns duplex-link $n0 $n1 1Mb 10ms DropTail $ns duplex-link $n2 $n1 1Mb 10ms DropTail $ns duplex-link $n2 $n3 1Mb 10ms DropTail $ns duplex-link $n0 $n3 1Mb 10ms DropTail $ns duplex-link $n0 $n2 1Mb 10ms DropTail
Echange de données
#+++++++++++++++++++++++++++++++++++++++ # # simulation des paquets de données # #+++++++++++++++++++++++++++++++++++++
#creer un agent udp set udp0 [new Agent/UDP] #attache cet agent au noeud n0 $ns attach-agent $n0 $udp0
#un generateur de traffic est cree #NB CBR = "constant bit rate" set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ 0.005 # = 200 paquets / sec $cbr0 attach-agent $udp0 #$cbr0 attach-agent $udp0 # on attach a l agent udp
#on creer un agent null qui sera le puit set null0 [new Agent/Null] $ns attach-agent $n1 $null0
#les deux agents sont connectés entre eux $ns connect $udp0 $null0
#on lance les comm des agents avec start et stop $ns at 0.5 "$cbr0 start" # demare 0.5 seconde apres le debut $ns at 4.5 "$cbr0 stop" # s'arrete 0.5 secondes avant la fin
pour finir
Ce code est à mettre obligatoirement tout à la fin
#on appel la procedure finish dans 5 secondes $ns at 5.0 "finish"
#on demarre ns $ns run
NotaBene
Le code donné en exemple est tiré d'un très bon tutoriel, cette explication n'est autre qu'une traduction/simplification commentée par mes soins. Si vous désirez plus d'info et pour allez plus loin allez sur le lien suivant :
liens externes
pour toutes les anciennes versions de NS
- Portail des logiciels libres
Catégories : Logiciel sous licence libre | Logiciel de simulation | Logiciel pour Windows | Logiciel pour Unix
Wikimedia Foundation. 2010.