Beruflich Dokumente
Kultur Dokumente
TP : Simulation NS2
Objectif: créer un réseau et un trafic puis simuler utilisant NS2 le réseau créé.
Travail demandé:
I. Créez un fichier d'extension .tcl dans votre espace de travail contenant les lignes de
codes suivantes pour simuler le trafic échangé entre deux nœuds:
global ns nf tf
$ns flush-trace
close $nf
close $tf
exec nam out.nam &
exit 0
}
#creation des nœuds dans ce cas deux nœuds seulement
set n0 [$ns node]
set n1 [$ns node]
#connexion udp
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
#cbr sur udp ( génération de type de trafic)
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0
#null
set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
1- Topologie du réseau :toutes les lignes de transmission sont des liaisons full-duplex de
1Mbps de débit de transmission, 10ms délai de propagation, et où il y a des files d’attente.
2- Agents de transport: l’agent source de la connexion entre les nœuds 2 et 1 est TCP qui peut
être défini de la manière suivante:
set tcp [new Agent/TCP].
Les paquets TCP sont de taille 500 octets.
La connexion entre les noeuds 3 et1 est de type UDP avec des tailles de paquets de 500
octets.
3- Application: L‘application FTP de TCP commence à l’instant 0s. Le générateur de trafic
CBR commence à l’instant 1s et les paquets qui sont de taille 500 octets arrivent toutes les
5ms
4- La durée de simulation est égale à 10s.
#(CBR/UDP) [3]
# \
# 0--[1]
# /
#(FTP/TCP) [2]
#
#fichiers de trace
set nf [open out.nam w]
set tf [open out.tr w]
set wndt [open windowVsTime w]
#procedure finish
proc finish {} {
#var globales
global ns nf tf wndt tcp
$ns flush-trace
close $nf
close $tf
close $wndt
puts "total ack packets: [$tcp set nackpack_]"; #nbr paquets ack recus
puts "total retransmitted packets: [$tcp set nrexmitpack_]";#nbr packets retransmis
puts "Avg throughput: [expr 0.008*[$tcp set ndatabytes_]/[$ns now]] Kbps"; # débit
en kbit/s
}
#création des nœuds
set n0 [$ns node]
set n1 [$ns node]
#agent udp n3
set udp [new Agent/UDP]
$ns attach-agent $n3 $udp
$udp set packetSize_ 500
$udp set fid_ 2; #rouge
#agent null n1
set null [new Agent/Null]
$ns attach-agent $n1 $null
#agent tcp n2
set tcp [new Agent/TCP]
$ns attach-agent $n2 $tcp
$tcp set packetSize_ 500
$tcp set fid_ 1; #bleu
#agent tcpsink n1
set sink [new Agent/TCPSink]
$ns attach-agent $n1 $sink