Documente Academic
Documente Profesional
Documente Cultură
Le Simulateur NS2
Dr. MOHAMMED BOUHORMA
Ce document prsente quelques ateliers basiques sur le simulateur des rseaux filaires et sans fils NS2 : Network Simulator 2
1
Ateliers NS2 Computer Sciences Department
Introduction Gnrale
Les rseaux informatiques connaissent une expansion importante grce plusieurs moyens qui ont pu se dvelopper au
cours du temps. Devant l'volution des techniques et de la technologie, de nombreuses solutions sont envisageable pour un
mme problme. La simulation permet ainsi de tester sans aucun cot ces nouvelles technologies, les nouveaux protocoles
mais aussi d'anticiper les problmes qui pourront se poser dans le futur.
NS 2 : Network Simulator 2
NS est un outil logiciel de simulation de rseaux informatiques. Il est principalement bti avec les ides de la conception
par objets, de rutilisabilit du code et de modularit. Il est devenu aujourd'hui un standard de rfrence en ce domaine. C'est
un logiciel dans le domaine public disponible sur l'Internet. Son utilisation est gratuite. Le logiciel est excutable tant sous
Unix que sous Windows. Le simulateur NS actuel est particulirement bien adapt aux rseaux commutation de paquets et
la ralisation de simulations de petite taille. Il contient les fonctionnalits ncessaires l'tude des algorithmes de routage
unicast ou multicast, des protocoles de transport, de session, de rservation, des services intgrs, des protocoles
d'application comme HTTP. De plus le simulateur possde dj une palette de systmes de transmission (couche 1 de
l'architecture TCP/IP), d'ordonnanceurs et de politiques de gestion de files d'attente pour effectuer des tudes de contrle de
congestion.
Du point de vue de lutilisateur, la mise en uvre de ce simulateur se fait via une tape de programmation qui dcrit la
topologie du rseau et le comportement de ses composants, puis vient ltape de simulation proprement dite et enfin
linterprtation des rsultats. Cette dernire tape peut tre prise en charge par un outil annexe, appel nam qui permet une
visualisation et une analyse des lments simuls.
2
Ateliers NS2 Computer Sciences Department
Installation
Linstallation de NS2 peut se faire sous Windows utilisant loutil Cygwin comme mulateur de
lenvironnement linux ou encore sous une distribution linux en suivant les tapes suivantes :
$cd ns-allinone-2.xx
$./install
5) Aprs fin de linstallation, il faut configure les variable denvironnement depuis le fichier ~/ .bashrc
$gedit ~/.bashrc
3
Ateliers NS2 Computer Sciences Department
#=======================
# LD_LIBRARY_PATH
OTCL_LIB=/your/path/ns-allinone-2.xx/otcl-1.13
NS2_LIB=/your/path/ns-allinone-2.xx/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB
# TCL_LIBRARY
TCL_LIB=/your/path/ns-allinone-2.xx/tcl8.4.14/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB
# PATH
XGRAPH=/your/path/ns-allinone-2.xx/bin:/your/path/ns-allinone-2.xx/tcl8.4.14/unix:/your/path/ns-allinone-2.31/tk8.4.14/unix
NS=/your/path/ns-allinone-2.xx/ns-2.xx/
NAM=/your/path/ns-allinone-2.xx/nam-1.13/
PATH=$PATH:$XGRAPH:$NS:$NAM
#=======================
Aprs taper la commande :
$ source ~/.bashrc
1) Accder au dossier ns-2.xx :
$cd ns-2.xx
Taper la commande
$make
Et par la suite la commande :
$./validate
A ce point linstallation sest bien termine.
NB : A cause de quelques problmes de compatibilit de compilateurs et de bibliothques il faut appliquer quelques patchs
pour remdier ces bugs .
Syntaxe: patch p0 < [nom_patch].patch
4
Dr. BOUHORMA, A.BOUDHIR
Ateliers NS2 Computer Sciences Department
ATELIER N 1
Cest ainsi que deux nouveaux nuds sont cres portant les tiquettes
n0 et n1.
Dfinir les nuds du rseau, f) Par la suite lobjet simulator fais appel la
Dfinir les liens entre chaque nud, procdure finish aprs 6 seconde du temps du
a) Dabord il faut crer lobjet simulator en lanant la commande : simulation.
set ns [new Simulator] $ns at 6.0 "finish"
g) Le lancement de la simulation seffectue en lanant
b) Ouverture en mode w ( Ecriture ) le fichier
la commande :
qui sera utilis comme fichier de traces pour la
visualisation : $ns run
proc finish {} {
global ns nf
$ns flush-trace
close $nf
exec nam atelier1.nam &
exit 0
}
Fig1 : Rsultat de simulation
d) Les deux lignes suivantes dfinissent les deux
nuds du rseau :
5
Ateliers NS2 Computer Sciences Department
ATELIER N2
d) Il faut spcifier quel instant lagent CBR doit
envoyer et arrter lenvoi des paquets utilisant la
commande at utilis comme suit :
OBJECTIF :
$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"
Cet atelier vise la simulation dun trafic gnrateur CBR 'constant bit rate' e) Termier la simulation faisant appel la
en crant un agent UDP. Pour cela on exploitera le mme fichier tcl labor en procdure finish aprs 6 seconde du temps du
Atelier 1.
simulation.
A fin de gnrer un fichier de trace .tr vous tes amen rajouter ( $ns at 6.0 "finish"
ltape b)) les lignes suivantes : f) Le lancement de la simulation seffectue en
lanant la commande :
set f [open atelier2.tr w]
$ns trace-all $f $ns run
a) Dans les lignes suivantes, on cre lagent UDP
quon lattache au nud n0, puis on attache le trafic
CBR lagent UDP.la taille des paquets est 500
bytes ainsi que le paquet sera envoy chaque 0.005
secondes. (i.e 200 paquets /s).
6
Dr. BOUHORMA, A.BOUDHIR
Ateliers NS2 Computer Sciences Department
Cet Atelier vise la ralisation dun transfert FTP entre deux Dfinissez cinq autres nuds dans le fichier TP1.tcl
nuds dun rseau. Pour cela, il va falloir au pralable : que vous appellerez n1, n2, n3, n4, n5.Une fois les Nuds
dfinis, on peut dclarer les liens. Nous voulons obtenir la
a) Dfinir les nuds du rseau,
b) Dfinir les liens entre chaque nud, topologie ci-dessous :
c) Dfinir des agents TCP adquats pour les deux nuds
qui vont communiquer, Le lien entre les nuds n0 et n2 se dfini de la manire suivante :
d) Dfinir la couche applicative FTP de ces deux nuds.
$ns duplex-link $n0 $n2 10Mb 10ms DropTail
a) Dclaration de la simulation et des fichiers de sortie :
#Dclaration d'une nouvelle simulation
Cette ligne dfini le lien entre n0 et n2 avec les caractristiques
set ns [new Simulator] suivantes :
#Dclaration des fichiers contenant les rsultats
set ftrace [open atelier3.tr w] liaison full duplex (lien bidirectionnel)
set nf [open atelier3.nam w] bande passante : 10Mb pour chaque sens
$ns namtrace-all $nf
#Procdure qui termine la simulation dlai de propagation de 10ms
proc finish {} Option : Droptail
{
global ns ftrace nf 10Mb ,10ms
$ns flush-trace
close $nf
close $ftrace
exec nam atelier3.nam &
exit 0
}
7
Dr. BOUHORMA, A.BOUDHIR
Ateliers NS2 Computer Sciences Department
Comme aussi on peut dfinir la taille du buffer en file dattente : set ftp [new Application/FTP]
$ftp set agent_ $tcp0
$ns set queue-limit $n0 $n2 20
8
Dr. BOUHORMA, A.BOUDHIR
Ateliers NS2 Computer Sciences Department
9
Dr. BOUHORMA, A.BOUDHIR
Ateliers NS2 Computer Sciences Department
10
Dr. BOUHORMA, A.BOUDHIR
Ateliers NS2 Computer Sciences Department
11
Dr. BOUHORMA, A.BOUDHIR
Ateliers NS2 Computer Sciences Department
Les paramtres et options de simulation pouvant tre dclare dune iii. La fonction de la classe channel est de dlivrer les paquets de
manire globale : nuds sans fil a ces voisins se trouvant dans la porte de
captage. (Voir Channel.cc).
set val(chan) Channel/WirelessChannel
set val(prop) Propagation/TwoRayGround
set val(netif) Phy/WirelessPhy La classe WirelessPhy de la couche physique a comme rle
set val(mac) Mac/802_11 lenvoi et la rception de parquets du canal ( Channel).
set val(ifq) Queue/DropTail/PriQueue
set val(ll) LL
set val(ant) Antenna/OmniAntenna set chan_ [new $val(chan)]
set val(ifqlen) 50
set val(nn) 2
12
Dr. BOUHORMA, A.BOUDHIR
Ateliers NS2 Computer Sciences Department
13
Dr. BOUHORMA, A.BOUDHIR
Ateliers NS2 Computer Sciences Department
ATELIER N7
OBJECTIF : Dclaration du canal, model de propagation radio et de topographie :
14
Dr. BOUHORMA, A.BOUDHIR
Ateliers NS2 Computer Sciences Department
15
Dr. BOUHORMA, A.BOUDHIR
Ateliers NS2 Computer Sciences Department
Tp7 atelier7.tr
Fig.5 : Fichiers filtrs
le script awk enregistr sous un fichier (stat.awk) pourra tre lanc suite
la commande :
BEGIN {
i=0;
count1=0;
count2=0;
}
{
action = $1;
16
Dr. BOUHORMA, A.BOUDHIR
Ateliers NS2 Computer Sciences Department
17
Dr. BOUHORMA, A.BOUDHIR
Ateliers NS2 Computer Sciences Department
$ns at $time "$node setdest <x2> <y2> <speed>" i) Arrt et lancement de simulation :
18
Dr. BOUHORMA, A.BOUDHIR
Ateliers NS2 Computer Sciences Department
if (action == "r"){
nombres_de_paquets_transmis = nombres_de_paquets_transmis +1 ;
Travail faire: }
1) Plusieurs simulations sont raliser en variant le protocole if (action == "s"){
utilis, la vitesse des nuds (entre 5 et 30m/s), et retirant pour nombres_de_paquets_recus = nombres_de_paquets_recus +1 ;
}
chaque cas lnergie consomme par le sink tout en remplissant if (action == "f"){
le tableau suivant : nombres_de_paquets_forwardes = nombres_de_paquets_forwardes +1 ;
}
if (action == "D"){
Protocol Speed (m/s) PS PR DR Energy of sink nombres_de_paquets_dropes = nombres_de_paquets_dropes +1 ;
AODV 5 }
if(niveau == "IFQ") {
10 nombres_de_paquets_dropes_IFQ++;
15 }
}
20 END {
30 printf "les noeuds ont transmis %f paquets\n",
DSDV 5 nombres_de_paquets_transmis;
printf "les noeuds ont recu %f paquets\n", nombres_de_paquets_recus;
10 printf "les noeuds ont forwarde %f paquets\n",
15 nombres_de_paquets_forwardes;
20 printf "les noeuds ont drope %f paquets\n",
nombres_de_paquets_dropes;
30 printf "les noeuds ont drope %f paquets IFQ\n",
DSR 5 nombres_de_paquets_dropes_IFQ;}
10
15 Le calcul est bas sur les formules mentionnes dans le tableau
20 suivant :
30
NB :
Le calcul de PS, PR et PDR et lnergie du sink sera fait par script awk :
BEGIN {
nombres_de_paquets_transmis = 0 ;
nombres_de_paquets_recus = 0 ;
nombres_de_paquets_forwardes = 0 ;
nombres_de_paquets_dropes = 0 ; A la fin, tracer lvolution de DR et de lnergie en fonction de la
nombres_de_paquets_dropes_IFQ = 0;
}
vitesse des nuds pour chaque protocole.
{
action = $1;
temps = $2;
19
Dr. BOUHORMA, A.BOUDHIR