Exemple de Simulation: Label Label
Exemple de Simulation: Label Label
Exemple de Simulation: Label Label
Pour observer le fonctionnement de NS-2 et de son outil de simulation NAM, nous avons simulé un
montage réseau simple, correspondant au diagramme suivant :
Pour cela, nous avons créé six nœuds NS-2 (node), reliés par des liens full duplex (duplex-link)
supportant des débits différents, un temps d'accès au medium de 10 ms, avec un algorithme de file
d'attente DropTail2 pour la gestion des files d'attente.
1re méthode :
Sélectionnez
set n0 [$ns node]
$n0 label "source UDP"
set n1 [$ns node]
$n0 label "source TCP"
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
$n0 label "destination UDP"
set n5 [$ns node]
$n0 label "destination TCP"
2e méthode :
Sélectionnez
set nbNodes 5
for {set i 0} {$i < $nbNodes } {incr i} {
set n$i [$ns node]
lappend NodeList $n$i
}
Nous avons ensuite créé un agent UDP (Agent/UDP) attaché au nœud n0 (attach-agent) qui permet
à n0 de transmettre des paquets UDP sur le réseau. Puis, nous avons créé un agent pour envoyer
des paquets à débit constant (Constant Bit Rate -CBR-Application/Traffic/CBR) attaché à l'agent
UDP défini précédemment (attach-agent).
Sélectionnez
# Création de l'agent implanté dans n0
set udp [new Agent/UDP]
$ns attach-agent $n0 $udp
# Traffic CBR de 500 octets toutes les 5 ms pour UDP0
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp
Sélectionnez
# Création de l'agent implanté dans n0
set tcp [new Agent/TCP]
$ns attach-agent $n1 $tcp
Nous avons enfin créé un agent vide, destiné à recevoir les paquets UDP sans les traiter
(Agent/Null). On l'attache au nœud n4 (attach-agent) puis on connecte l'agent UDP et l'agent vide
(connect).
Sélectionnez
# Création d'un agent vide, destiné à recevoir les paquets implantés dans
n3
set null0 [new Agent/Null]
$ns attach-agent $n4 $null0
$ns connect $udp $null0
Contrairement au UDP (protocole de transport sans connexion), TCP est un protocole orienté
connexion ce qui demande une certaine coordination entre la source et la destination, pour cela
nous avons mis un agent (Agent/TCPSink) au nœud de destination qui permet de communiquer
avec le nœud source
Sélectionnez
# Création d'un agent vide, destiné à recevoir les paquets implantés dans
n3
set tcpsink [new Agent/TCPSink]
$ns attach-agent $n5 $tcpsink
$ns connect $tcp $tcpsink
Enfin, on indique que les traces de simulation doivent être logées, qu'on souhaite lancer NAM à la
fin de la simulation, que celle-ci va durer 10 secondes et que le CBR ne sera émis qu'à partir de la
0.5ème seconde de simulation, et jusqu'à la 14.5ème seconde.
Sélectionnez
# Création du simulateur
set ns [new Simulator]
# Création du fichier de traces NS-2
set nf [open out.nam w]
$ns namtrace-all $nf
# Coloration des classes : bleu pour udp (classe 1) et rouge pour tcp
(classe 2)
$ns color 1 Blue
$ns color 2 Red
# Le traffic issu des agents udp0 et udp1 est envoyé vers null0
$ns connect $udp $null0
$ns connect $tcp $tcpsink