3. • Modélisation des systèmes
• Simulation à événements discrets
• Intervalles de confiances
• Les simulateurs
• Exemple de simulation
• Conseils
jeudi 14 mai 2009
5. Intérêt de la simulation ?
• Quand on ne peut pas facilement observer les états du système,
• Quand on désire analyser l’enchaînement des événements dans le
système, ainsi que les relations de causes à effets,
• Quand on désire valider une solution analytique,
• Quand la complexité des interactions dans le système est telle
quelle ne peut être étudiée qu'au travers de simulations,
• Quand on désire visualiser les états d'un système,
• Quand on veut tester différentes optimisations pour améliorer un
système déjà existant.
jeudi 14 mai 2009
6. Les simulations sont elles toujours utiles ?
• Quand il y a une solution analytique ?
• Quand il est plus facile de faire directement des mesures
sur le système réel ?
• Quand il manque trop des données sur les systèmes à
étudier ?
• Quand on ne peut pas valider les résultats de
simulations ?
• Quand le système a étudier est trop complexe ?
jeudi 14 mai 2009
7. Avantages /Inconvénients
• Avantages • Inconvénients
• Observations des états du • La conception de modèles
systèmes, peut nécessiter des
compétences spéciales,
• Etudes des points de
fonctionnement d'un • Une autre forme d'analyse
système, plus proche de la réalité
est peut être nécessaire
• Etudes de systèmes à
échelle de temps variable, • Résultats difficilement
interprétables :
• Etudes de l'impact des
variables sur les • Résultats pas forcément
performances du système, généralisable,
• Etude d'un système sans • Résultats sont fonction des
les contraintes matérielles. entrées du système
jeudi 14 mai 2009
9. Types de modèles(2/2)
• Simulations statiques
• Monte Carlo: méthode applicable seulement si le temps n'a pas d'influence (Von
Neumann & Ulam, projet Manathan), utilise des tirages aléatoires et souvent
uniformes
• Simulations dynamiques
• Système qui change dans le temps
• Simulations Déterministes
• Qui ne contient pas de variable aléatoire, une variable d'entrée donnée, produit
toujours le même résultat
• Simulations Stochastiques
• Entrées et sorties sont aléatoires
jeudi 14 mai 2009
10. Exemples
• Files d'attente
• Variable d'état : temps d'attente
• Réponse : Discret, Stochastique, Dynamique
• Machines de production
• Variable d'état: occupé, en attente, en panne
• Réponse : Discret, Stochastique, Dynamique
• Bruits d'un systèmes électronique
• Variable d'état: niveau de bruit
• Réponse : Continue, Stochastique, Statique
jeudi 14 mai 2009
12. Simulations à événements discrets (1/3)
• Utilisation d'un ordonnanceur comme élément de base
du simulateur,
• Chaque événement représente un changement d'état,
couplé avec une variable qui indique le temps auquel
l'événement aura lieu,
• Ordonnanceur, gère une liste d'événements triés selon
leurs date de déclenchement,
• Lorsque que l'ordonnanceur exécute un événement, il
modifie la variable représentant le temps courant.
jeudi 14 mai 2009
16. Simulations à événements discrets (1/3)
• Les simulateurs les plus couramment utilisés dans le
domaine des réseaux, mais d'autres types de
simulateurs existent :
• Simulateur à pas fixes,
• Simulateur de modèle fluide.
• Les simulateurs à pas fixes sont peu utilisés car
gourmands en ressources,
• Simulateur de modèle fluide, nécessite la connaissance
d'équations différentielles permettant de calculer les
évolutions du système
jeudi 14 mai 2009
17. Simulations à événements discrets (2/3)
• Les simulateurs à pas fixe, scrutent l'évolution du
systèmes entre deux incréments de temps,
• Nécessitent de balayer tous les intervalles de temps
• Beaucoup plus coûteux que de sauter d'événements
en événements
• Simulent le système même quand il ne se passe rien
• Très peu utilisés de nos jours
• Simplicité d'utilisation
jeudi 14 mai 2009
18. Simulations à événements discrets (3/3)
• Les simulations avec des modèles fluides, ne sont pas
encore beaucoup développées
• N2NSoft (Baccelli)
• Alcatel : réseaux d'accès ADSL
• TCP peut être modélisé par un systèmes d'équations
différentielles (TCP Vegas)
• Plus besoin de modélisation au niveau paquets pour
avoir des résultats précis
F. BACCELLI, D. HONG
Interaction of TCP flows as Billiards,
IEEE/ACM Transactions on Networking (2005) 13, 4
jeudi 14 mai 2009
22. Intervalles de confiances (iid)
X = X1 , X2 , ....Xn
n
1
ˆ
µn = Xi
n i=1
n
1
ˆ
σn2
= (Xi − µn )
ˆ 2
n−1 i=1
Les intervalles de confiances sont de :
ˆ2
σn
ˆ
µn ± η √
n
η est le (1 − α/2) quantile de la distribution de Student tn−1
jeudi 14 mai 2009
23. Intervalles de confiances (iid)
Méthode Batch Mean divise les échantillons
en b bloc de taille m
m
1
Zi = Z2(i−1)+j
m j=1
b
¯ 1
Zb = Zj
b j=1
b
1 ¯
ˆ2
σb = (Zi − Zb )2
b−1 j=1
Les intervalles de confiances sont de :
¯ ˆ2
σb
Zb ± η
b
η est le (1 − α/2) quantile de la distribution de Student tb−1
jeudi 14 mai 2009
24. Intervalles de confiances (non iid)
Méthode Batch Mean, Legal avec intervalles de
confiances à 95%
¯
Zb ± εT
b
εT = 4.5 ˆ2
σb
n
Ne prend pas comme hypothèse que la moyenne des
blocs est i.i.d, distribution à queue lourde, processus
avec mémoire...etc
jeudi 14 mai 2009
26. Quantile – Quantile Plot
ou test de conformité empirique (2/2)
• Il est parfois nécessaire de déterminer ou de caractériser
la distribution des résultats obtenus :
• Est ce que les données sont i.i.d selon une loi normale ?
• Vérification rapide Quantile Plot
• Le alpha quantile d'une distribution de probabilité est la
valeur telle que la probabilité qu'une variable aléatoire
suivant cette distribution lui soit inférieure ou égale vaut
alpha. Bien entendu, alpha doit être compris entre 0 et 1,
puisqu'il représente une probabilité
jeudi 14 mai 2009
27. Quantile – Quantile Plot
ou test de conformité empirique (2/2)
jeudi 14 mai 2009
28. Conclusion
• Calculer l'intervalle de confiance permet de connaître la
valeur de l'imprécision de mesure,
• Il permet de stopper des simulations quand la précision
voulue est atteinte (je veux la moyenne avec une précisio
n de +/0.01)
• Valider qualitativement la valeur du résultat qu’on a obt
enu,
• Sur une échelle de 0 à 10 j'obtiens une moyenne de 5 a
vec un intervalle de confiance de +/3 !!!!!
jeudi 14 mai 2009
31. Pourquoi NS-2
• NS est le système • Un logiciel de
de référence simulation
multicouche
• Un outil libre
• Interface OTcl
• Ajout de
composants à la • Un noyau en C++
demande (scheduler...)
• Développement • Couches réseaux
orienté objets codées en C++
jeudi 14 mai 2009
32. Simulations
• Support: Lan, • TCP
Mobile, satellite,
ATM • Contrôle de
congestion
• IntServ/DiffServ
• Application
• Multicast
• Web cache
• Ad hoc
• Multimédia
• Transport
jeudi 14 mai 2009
33. Simulations
• Implémentation en C++
• Scénario en Otcl
• Test de simulation avec Nam
• Résultat, post processing :
• perl
• awk
• gnuplot
• xgraph
jeudi 14 mai 2009
34. Simulations
• NS exécute la simulation, NAM visualisation de la
simulation
• Gnuplot, Xgraph, Tracegraph, interprétation des
résultats
jeudi 14 mai 2009
36. Les composants de NS-2
• Ns, Le simulateur • Pre-processing:
• Nam, the • Générateur de
network trafic et topologie
animator (setdest)
• Visualise les fichiers • Post-processing:
de trace de NS
• Analyse des
• Nam editor: GUI fichiers de trace,
pour générer des Awk, Perl, ou Tcl
scripts NS
jeudi 14 mai 2009
37. • Modèle de trafic: • Routage (distance
vector , link state), ad
• Web, FTP, telnet, hoc (dsr, aodv)
constant-bit rate, real
audio • Discipline de file d’attente:
RED, drop-tail, etc
• Protocole de la couche
transport : • Liens physiques:
• Unicast: TCP (Reno, • Filaire (point-to-point,
Vegas, etc.), UDP LANs), wireless
(propagation multiple),
• Multicast: SRM satellite
• Routage et file
d’attente:
jeudi 14 mai 2009
38. Classes du Simulateur
• Application
• Générateur de trafic
• Agent
• Protocoles
• Nœud
• Nœuds du réseau
• Link
• Liens entre les noeuds
• Monitor
• Elaboration de statistique sur un lien particulier
jeudi 14 mai 2009
40. Interface OTcl
• Contrôle la simulation
• Un composant du simulateur
• Interaction avec le simulateur
• Les principales classes sont dans
l’interpréteur
• Manipulation (création, connections …)
des classes du simulateur
jeudi 14 mai 2009
42. Otcl (2/3)
• Fonction
proc printArg {nom} {
puts “hello $nom“
}
jeudi 14 mai 2009
43. • constructeur
# subclass:
Class Person Class Kid - superclass Person
# constructeur: Kid instproc greet {} {
Person instproc init {age} { $self instvar age_
$self instvar age_ puts “$age_ years old kid:
set age_ $age What’s up, dude?”
} }
# méthode:
Person instproc greet {} {
$self instvar age_ set a [new Person 45]
puts “$age_ years old: How set b [new Kid 15]
are you doing?” $a greet
} $b greet
jeudi 14 mai 2009
44. Evenements
• Crée l’ordonnanceur
• set ns [new Simulator]
• Ordonnance les événements
• $ns at <time> <event>
• <event>: une commande tcl
• $ns at 5.0 “finish”
• Lance le l’ordonnanceur
• $ns run
jeudi 14 mai 2009
45. Topologie
• Nœuds
• set n0 [$ns node]
• set n1 [$ns node]
• Liens et discipline de file d'attente
• $ns <liens> $n0 $n1 <bande passante> <délai>
<queue>
• <type de lien>: duplex-link, simplex-link
• <type de queue>: DropTail, RED, CBQ, FQ, SFQ,
DRR, diffserv RED queues
jeudi 14 mai 2009
46. Trafic (1/3)
• Exponentielle, on-off
• set src [new Application/Traffic/Exponential]
• set src [new Application/Traffic/Pareto]
• UDP
• set udp [new Agent/UDP]
• set null [new Agent/Null]
• $ns attach-agent $n0 $udp
• $ns attach-agent $n1 $null
• $ns connect $udp $null
jeudi 14 mai 2009
47. Trafic (2/3)
• CBR
• set src [new Application/Traffic/
CBR]
• $src set packetSize_ 1500
• $src set rate_ 100Kb
jeudi 14 mai 2009
52. Simulation (1/3)
• Trafic CBR
• Protocole UDP
• Lien 1Mb, discipline de file d ’attente FIFO
• Délai 10ms
jeudi 14 mai 2009
53. Simulation (2/3)
#creation de l ’instance de simulation
set ns [new Simulator]
#creation des fichier de trace
set nf [open out.nam w]
$ns namtrace-all $nf
proc finish {} {
global ns nf
$ns flush-trace
close $nf
exec nam out.nam &
exit 0
}
#scheduler
$ns at 5.0 "finish"
#lancement de la simulation
$ns run
jeudi 14 mai 2009
54. Simulation (3/3)
set n0 [$ns node]
set n1 [$ns node]
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
set cbr0 [new Application/Traffic/CBR]
$cbr0 attach-agent $udp0
set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
$ns connect $udp0 $null0
$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"
jeudi 14 mai 2009
56. Topologie
Dumbbell
évaluation de paramètres de
bout en bout
Parking Lot
évaluation de paramètres
changeant, RTT, équité ...etc
jeudi 14 mai 2009
57. Conseils
• Paramètres importants
• taille de la fenêtre TCP, MAX RTT ne doit pas être limitatif
• TCP “flavor”
• Taille des files d'attente (delais*BP)
• Active queue Management
• Problèmes
• Durée des simulations
• Topologie
• RTT
jeudi 14 mai 2009
58. Références
• [1] Mark Allman, Aron Falk, “On the Effective Evaluation of TCP,”
ACM Computer Communication review, vol. 25, no. 5, pp. 59 - 70,
1999.
• [2] Sally Floyd and Vern Paxson, “Difficulties of simulating the
Internet,” IEEE/ACM transaction on networking, vol. 9, no. 4, pp
392-403, 2001.
• [3] Sally floyd and Eddie Kohler, “Internet Research Needs Better
Models,” ACM Hotnets-1, October, 2002.
• [4] http://www.icir.org/models/bettermodels.html
• [5] V. Gauthier, S. Gam, "Les simulateurs", Chapter of the book
"Simulations des Réseaux (Traité IC2, série Réseaux et télécoms)",
Editor: Monique Becker, Andre Luc Beylot, chapter 7, Hermes, 2006,
ISBN 2-7462-1166-1.
jeudi 14 mai 2009
59. Références
• [6] S. Kurkowski, T. Camp and M. Colagrosso, "MANET simulation
studies: the incredibles," in SIGMOBILE Mobile Computer
Communication Revenue, vol. 9, no. 4, pp. 50 - 61, 2005.
• [7] D. Cavin, Y. Sasson and A. Schiper, "On the accuracy of MANET
simulators," In Proc of the Workshop on Principles of Mobile
Computing (POMC’02), Toulouse, France, October , 2002, pp. 38-43.
• [8] Jean-Yves Le Boudec, "Performance Evaluation Lecture Notes
(Methods, Practice and Theory for the Performance Evaluation of
Computer and Communication Systems)", http://icawww.epfl.ch/
perfval/lectureNotes.html
• [9] Averill M. Law and W. David Kelton, "Simulation Modeling and
Analysis, 3/e”, Mac Graw Hill, 2000.
• [10] F. Baccelli, D. Hong, "Interaction of TCP flows as Billiards," IEEE/
ACM Transactions on Networking, vol. 13, no. 4, 2005.
jeudi 14 mai 2009