Vous êtes sur la page 1sur 13

Table des matires

2
3
1. Simulation dune topologie simple3
a) Par script3
b) Graphiquement (avec NAM)6
2. Simulation de congestion dans un rseau10
Introduction
Dans le cadre des travaux pratiques du cours , nous avons simul plusieurs configurations
de rseaux, essentiellement dans le but dtudier les modalits de fonctionnement des diffrents types
de files dattentes.

Pour cela, nous avons utilis le logiciel de simulation NS2 (Network Simulator 2), dont le
langage ddition de script est le TCL/TK. Ce rapport prsente les rsultats de nos exprimentations.

Aprs une brve description plus des objectifs du TP et des outils mis en uvre, ce rapport
prsente ltudie de certains protocoles de routages ainsi que les conclusions de nos exprimentations.
Chapitre 1 - Initiation Outil de simulation
de rseaux : NS-2

Dans cette partie, il sera question de crer notre premier script de simulation et appliquer ainsi
que de nous familiariser avec le simulateur NS-2, tout en dcouvrant les fonctionnalits quoffre ce
dernier travers ltude et llaboration de scripts qui font appel des outils comme nam qui
visualise la simulation ou encore xgraph qui permet de reprsenter les traces de la simulation sous
forme de courbes.

1. Simulation dune topologie simple


a) Par script
Pour observer le fonctionnement de NS-2 et de son outil de simulation NAM, nous avons simul
un montage rseau simple, correspondant au diagramme suivant

Figure : schma de topologie simuler


Pour raliser notre simulation, nous allons crer deux nuds NS-2 (Node : n0 et n1), relis par
un lien full duplex (duplex-link) supportant un dbit de 1Mbps, avec un temps daccs au medium de
10 ms, et qui utilisera lalgorithme de file dattente DropTail pour la gestion des congestions.

Nous allons ensuite crer un agent UDP (Agent/UDP) attach au nud n0, qui permettra n0
de transmettre des paquets UDP sur le rseau. Puis, nous allons crer un envoi de paquets dbit
constant (Constant Bit Rate CBR) attach lagent UDP dfinit prcdemment.

Nous allons aussi crer un agent vide (Agent/Null), destin recevoir des paquets UDP sans
les traiter. Nous le lierons au nud n1, puis on connectera lagent UDP et lagent vide.
Enfin, nous allons indiquerons dans le script :

que les traces de simulation doivent tre logges


quon souhaite lancer NAM la fin de la simulation
que la simulation va durer 5 secondes et que le CBR ne sera mis qu partir de la 1re
seconde de simulation, et jusqu la 4.5me seconde.
# ici on crer notre simulateur
set ns [new Simulator]

# On cr un fichier de trace qui sera utilis par le visualisateur


set nf [open out.nam w]

# ensuite on indique NS o logger ses traces


$ns namtrace-all $nf

# cette procdure va lancer le visualisateur NAM une fois la simulation


termine
proc finish {} {
# ici on force l'criture dans le fichier de log des traces
global ns nf
$ns flush-trace
close $nf

# ici on lance la visualisation avec NAM


exec nam out.nam &

# enfin on quitte le script TCL


exit 0
}

# On cr donc nos 2 noeuds n0 et n1


set n0 [$ns node]
set n1 [$ns node]

# Ici on connecte nos 2 noeuds avec un lien duplex 1Mb, temps


propagation 10ms, et file d'attente DropTail
$ns duplex-link $n0 $n1 1Mb 10ms DropTail

# On cr un agent UDP et on le lie n0


set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0

# On cr une source de trafic CBR: packetSize_=500octets,


interval_=5ms
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005

# connexion de la source CBR $cbr0 l'agent UDP $udp0


$cbr0 attach-agent $udp0

# Cration de l'agent Null pour la rception des paquet dans le noeud 1


set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
# On connecte les agents Null et UDP
$ns connect $udp0 $null0

# Dclenchons le trafic CBR pour t=1s et l'arrter pour t=4.5s


$ns at 1 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"

# On arrte la simulation aprs 5s


$ns at 5.0 "finish"

# Nous dmarrons le moteur de simulation


$ns run

On lance ensuite la simulation et la visualisation du rsultat laide de la commande :


$ ns tp1_exo1_question1.tcl

Lexcution de cette commande nous renvoi le rsultat suivant1 :

1
La simulation a t ralise sur la distribution Linux Ubuntu 16.04
Figure 1: sortie NAM du script TCL

b) Graphiquement (avec NAM)


Pour effectuer cette simulation grce loutil nam il suffit de taper la commande suivante
pour lancer loutil :
$ nam

La fentre suivante souvre


Figure 2: Ouverture du simulateur NAM

Une fois NAM ouvert, cliquer sur File -> New NAM Editor pour ouvrir une fentre ddition vide

Figure 3: Editeur vide du simulateur

Une fois notre diteur ouvert nous allons tout dabord insrer les nuds n1 et n2, et ensuite tablir
un lien entre les deux nuds
Figure 4: cration des nuds et du lien

Nous allons prsent crer un agent UDP et le lier au nud 1

Figure 5: cration de l'agent UDP

Nous allons crer ensuite une source de trafic CBR tel quil se dclenche t=1s et sarrte t=4.5s,
avec un intervalle de transmission des paquets 0.005s
Figure 6: cration de la source de trafic CBR

Enfin nous allons crer un agent Null pour la rception des paquets dans le nud 2 et connecter
les agents Null et UDP

Figure 7: Cration d'un agent Null et liaison avec l'agent UDP

Enfin nous entrons la dure de la simulation et nous enregistrons notre travail

Figure 8: Configuration de la dure de la simulation


2. Simulation dune topologie avec 4 noeuds
Pour cela nous allons raliser une simulation correspondant au diagramme suivant :

Le script pour raliser ce schma est le suivant :


# ici on crer notre simulateur
set ns [new Simulator]

# On cr un fichier de trace qui sera utilis par le visualisateur


set nf [open out.nam w]

# ensuite on indique NS o logguer ses traces


$ns namtrace-all $nf

# cette procdure va lancer le visualisateur NAM une fois la simulation


termine
proc finish {} {
# ici on force l'criture dans le fichier de log des traces
global ns nf
$ns flush-trace
close $nf

# ici on lance la visualisation avec NAM


exec nam out.nam &

# enfin on quitt le script TCL


exit 0
}

# On dfini les diffrentes couleur que nous allons utiliser


$ns color 1 Blue
$ns color 2 Red

# On cr les diffrents noeuds


set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]

# Ici on connecte nos 2 noeuds avec un lien duplex 1Mb, temps


propagation 10ms, et file d'attente DropTail
$ns duplex-link $n0 $n2 2Mb 10ms DropTail
$ns duplex-link $n1 $n2 2Mb 10ms DropTail
$ns duplex-link $n2 $n3 1.7Mb 20ms DropTail

# On configure la taille du buffer entre n2 et n3 10


$ns queue-limit $n2 $n3 10

# On positionne nos noeuds dans NAM


$ns duplex-link-op $n0 $n2 orient right-down
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n2 $n3 orient right

# On configure nos connexion TCP et TCPSink


set tcp [new Agent/TCP]
$tcp set class_ 2
$ns attach-agent $n0 $tcp

set sink [new Agent/TCPSink]


$ns attach-agent $n3 $sink
$ns connect $tcp $sink
$tcp set fid_ 1

# On spare les agents TCP et TCPSink


$ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink"

# On configure maintenant notre connexion FTP


set ftp [new Application/FTP]
$ftp attach-agent $tcp
$ftp set type_ FTP

# Configuration de la connexion UDP


set udp [new Agent/UDP]
$ns attach-agent $n1 $udp

set null [new Agent/Null]


$ns attach-agent $n3 $null
$ns connect $udp $null
$udp set fid_ 2

# Cration de la source CBR et liaison de la source avec l'agent UDP


set cbr [new Application/Traffic/CBR]
$cbr attach-agent $udp
$cbr set type_ CBR
$cbr set packet_size_ 1000
$cbr set rate_ 1mb
$cbr set random_ false
# On configure le dmarrage et l'arrt de nos connexions CBR et FTP
$ns at 0.1 "$cbr start"
$ns at 1.0 "$ftp start"
$ns at 4.0 "$ftp stop"
$ns at 4.5 "$cbr stop"

# On arrte la simulation aprs 5s


$ns at 5.0 "finish"

# Nous dmarrons le moteur de simulation


$ns run

Nous avons donc au niveau de NAM, linstant t=1.288591, lcran suivant :

Figure 9: simulation congestion dans un rseau


Chapitre 2 - Simulation de rupture dun
lien entre deux nuds du rseau

Dans cette partie, il sera question de simuler le comportement dun rseau lors de la rupture
dun lien entre deux nuds du rseau. Pour effectuer cette simulation nous allons utiliser les
protocoles de routages de type Vecteur distance (Distance Vector : DV) et Etat de liens (Link State :
LS).