3.3 LEs éTApEs DE siMuLATioN
La simulation avec NS-2 passe en
général par trois phases:
- Définition de la topologie du réseau :
on crée les noeuds, avec les caractéristiques de chacun, ainsi
que les liens entre les noeuds. On peut définir sur chaque lien, le
délai, la bande passante, le fait qu'il soit simplexe ou duplexe et le
type de file d'attente se trouvant à son
extrémité.
L'exemple suivant montre comment définir une
topologie Anneau :
#
========================================================================= #
Creation d' une tolpologie # #
=========================================================================
for { set i 0} {$i <
7} { incr i} { ;# Boucle de creation de
7 noeuds
set n($i) [$ns
node] ;# La creation d'un noeud
}
for { set i 0} {$i <
7} { incr i} { ;# Boucle pour creer les
liens
;# Creation d'un lien bidirectionel
$ns duplex-link $n($i) $n
( [ expr ($i+1)%7])
1Mb 10ms RED
} ;# Et les caracteristiques associees
|
Création d'une topologie
anneau
Afin d'obtenir la topologie 3.1
suivante :
Figure 3.1 -
Exemple de Création d'une topologie.
- Spécification du scénario de la
simulation : l'utilisateur spécifie les différents agents de la
communication qui vont agir pendant la simulation. Il spécifie aussi la
succession des différentes opérations (à l'instant
t1, envoi des données, à l'instant t2
arrêt d'émission).
- Exploitation des résultats : cette
dernière phase consiste en un recueil des statistiques de la simulation.
Ces dernières peuvent être exploitées directement par
NS-2 en faisant appel aux outils qui l'accompagnent, ou bien
elles seront archivées pour une utilisation ultérieure par
d'autres outils de traitements statistiques.[OB10]
3.4 COMMENT RéALISER UNE SIMULATION?
La simulation nécessite des données qui
caractérisent l'environnement, tels que la surface du réseau, la
topologie utilisée, le protocole à simuler ... etc.
Généralement, ces données ne sont pas définies en
NS. Pour cela, l'utilisateur doit définir les informations
(données) en utilisant le langage C++.
Afin de réaliser un algorithme, nous devons
créer deux fichiers source écrits en langage C++ (*.h,
*.cc).
Le premier (*.h) est un fichier
d'en-tête, qui contient la structure des messages échangés
entre les sites, le deuxième (*.cc) contient les fonctions
nécessaires de l'algorithme (envoi et réception des messages, ..
.).
La compilation de ces fichiers nous permet d'avoir un
fichier de type objet (*.o), ce dernier doit être
intégré dans le simulateur NS-2, en lui ajoutant
à la variable OBJ_CC du fichier (makefile), enfin, on
recompile le noyau de NS par la commande make écrite dans un
terminal.
On peut résumer les étapes de
réalisation d'un algorithme dans la figure
3.2.
Figure 3.2 - Les
étapes de simulation.[OB10]
Pour tester et utiliser ces programmes, nous avons
crée les fichiers (*.tcl) qui contient la topologie du
réseau, ensuite on appel les fonctions du code C++, et enfin la
visualisation de simulation.
La sortie standard est un fichier d'animation
(*.nam) pour visualiser la simulation, et un fichier de trace
(*.tr) qui contient toutes les informations obtenues après la
simulation, ces informations sont très générales et
nécessitent des filtres pour bien les exploiter. C'est la raison pour
laquelle, nous avons utilisé un fichier texte (*.txt) qui ne
contient que les informations importantes pour notre
simulation.[OB10]
Nous pouvons résumer les étapes de
réalisation d'une simulation par la figure 3.3
:
Figure 3.3 -
Réalisation d'une
simulation.[LK09]
|