Cour simulation ns2

7,855 views
7,667 views

Published on

Published in: Education
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total views
7,855
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
367
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Cour simulation ns2

  1. 1. Support de cours Simulations vincent.gauthier@int-evry.fr http://www-public.int-evry.fr/~gauthier/jeudi 14 mai 2009
  2. 2. Simulations de Réseaux !!!!!!!!!jeudi 14 mai 2009
  3. 3. • Modélisation des systèmes • Simulation à événements discrets • Intervalles de confiances • Les simulateurs • Exemple de simulation • Conseilsjeudi 14 mai 2009
  4. 4. Modélisation des systèmesjeudi 14 mai 2009
  5. 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 quau travers de simulations, • Quand on désire visualiser les états dun système, • Quand on veut tester différentes optimisations pour améliorer un système déjà existant.jeudi 14 mai 2009
  6. 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. 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 dun • Une autre forme danalyse 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 limpact des variables sur les • Résultats pas forcément performances du système, généralisable, • Etude dun système sans • Résultats sont fonction des les contraintes matérielles. entrées du systèmejeudi 14 mai 2009
  8. 8. Types de modèles(1/2) Classification des modèlesjeudi 14 mai 2009
  9. 9. Types de modèles(2/2) • Simulations statiques • Monte Carlo: méthode applicable seulement si le temps na pas dinfluence (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 dentrée donnée, produit toujours le même résultat • Simulations Stochastiques • Entrées et sorties sont aléatoiresjeudi 14 mai 2009
  10. 10. Exemples • Files dattente • Variable détat : temps dattente • Réponse : Discret, Stochastique, Dynamique • Machines de production • Variable détat: occupé, en attente, en panne • Réponse : Discret, Stochastique, Dynamique • Bruits dun systèmes électronique • Variable détat: niveau de bruit • Réponse : Continue, Stochastique, Statiquejeudi 14 mai 2009
  11. 11. Simulation à événements discretsjeudi 14 mai 2009
  12. 12. Simulations à événements discrets (1/3) • Utilisation dun 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 lordonnanceur exécute un événement, il modifie la variable représentant le temps courant.jeudi 14 mai 2009
  13. 13. Simulations à événements discrets (2/3)jeudi 14 mai 2009
  14. 14. Simulations à événements discrets (3/3) Lunité de traitement ne modifie jamais le firetimejeudi 14 mai 2009
  15. 15. Exemplejeudi 14 mai 2009
  16. 16. Simulations à événements discrets (1/3) • Les simulateurs les plus couramment utilisés dans le domaine des réseaux, mais dautres 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èmejeudi 14 mai 2009
  17. 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é dutilisationjeudi 14 mai 2009
  18. 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 daccè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, 4jeudi 14 mai 2009
  19. 19. Simulateur de réseaux sans filjeudi 14 mai 2009
  20. 20. Intervalles de confiancesjeudi 14 mai 2009
  21. 21. Intervalles de confiances f = mxjeudi 14 mai 2009
  22. 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−1jeudi 14 mai 2009
  23. 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−1jeudi 14 mai 2009
  24. 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...etcjeudi 14 mai 2009
  25. 25. Exemplejeudi 14 mai 2009
  26. 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 dune distribution de probabilité est la valeur telle que la probabilité quune variable aléatoire suivant cette distribution lui soit inférieure ou égale vaut alpha. Bien entendu, alpha doit être compris entre 0 et 1, puisquil représente une probabilitéjeudi 14 mai 2009
  27. 27. Quantile – Quantile Plot ou test de conformité empirique (2/2)jeudi 14 mai 2009
  28. 28. Conclusion • Calculer lintervalle de confiance permet de connaître la  valeur de limpré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 jobtiens une moyenne de 5 a vec un intervalle de confiance de +/­3 !!!!! jeudi 14 mai 2009
  29. 29. Simulateursjeudi 14 mai 2009
  30. 30. Simulateurs • NS-2, SNS (NS distribué) • Jist + Swans (nouveau) • Jsim (nouveau) • Qualnet, Glomosim (performant) • Opnet (nombreux modèles)jeudi 14 mai 2009
  31. 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. 32. Simulations • Support: Lan, • TCP Mobile, satellite, ATM • Contrôle de congestion • IntServ/DiffServ • Application • Multicast • Web cache • Ad hoc • Multimédia • Transportjeudi 14 mai 2009
  33. 33. Simulations • Implémentation en C++ • Scénario en Otcl • Test de simulation avec Nam • Résultat, post processing : • perl • awk • gnuplot • xgraphjeudi 14 mai 2009
  34. 34. Simulations • NS exécute la simulation, NAM visualisation de la simulation • Gnuplot, Xgraph, Tracegraph, interprétation des résultatsjeudi 14 mai 2009
  35. 35. Structure de NS-2jeudi 14 mai 2009
  36. 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 NSjeudi 14 mai 2009
  37. 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. 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 particulierjeudi 14 mai 2009
  39. 39. Anatomie d’une simulationjeudi 14 mai 2009
  40. 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 simulateurjeudi 14 mai 2009
  41. 41. Otcl (1/3) • Instantiation • set Obj [new Class] • Méthode • $Obj Methode arg1 arg2 • Commande • [<commande>]jeudi 14 mai 2009
  42. 42. Otcl (2/3) • Fonction proc printArg {nom} { puts “hello $nom“ }jeudi 14 mai 2009
  43. 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 greetjeudi 14 mai 2009
  44. 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 runjeudi 14 mai 2009
  45. 45. Topologie • Nœuds • set n0 [$ns node] • set n1 [$ns node] • Liens et discipline de file dattente • $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 queuesjeudi 14 mai 2009
  46. 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 $nulljeudi 14 mai 2009
  47. 47. Trafic (2/3) • CBR • set src [new Application/Traffic/ CBR] • $src set packetSize_ 1500 • $src set rate_ 100Kbjeudi 14 mai 2009
  48. 48. Trafic (2/3) • TCP • FTP • set tcp [new Agent/TCP] • set ftp [new Application/ FTP] • set tcpsink [new Agent/ TCPSink] • $ftp attach-agent $tcp • $ns attach-agent $n0 $tcp • Telnet • $ns attach-agent $n1 • set telnet $tcpsink [newApplication/Telnet] • $ns connect $tcp $tcpsink • $telnet attach-agent $tcpjeudi 14 mai 2009
  49. 49. Monitor (1/2) • Monitor flow • $tcp fid_ 1; • set flowmon [$ns makeflowmon Fid] • set lien [$ns link $n0 $n1] • $ns attach-fmon $lien $flowmon • set fcl [$flowmon classifier] • %%% dans FINISH %%% • set stats_tcp [$fcl lookup auto 0 0 1] • set bw [$stats_tcp set bdepartures_]jeudi 14 mai 2009
  50. 50. Monitor (2/2) • Monitor queue • set monitor [ $ns queue-monitor $n0 $n1 stdout] • puts stdout “[ $monitor set pdepartures_ ]” • puts stdout “[ $monitor set barrivals_ ]” • puts stdout “[ $monitor set pdrops]”jeudi 14 mai 2009
  51. 51. Exemple de simulationjeudi 14 mai 2009
  52. 52. Simulation (1/3) • Trafic CBR • Protocole UDP • Lien 1Mb, discipline de file d ’attente FIFO • Délai 10msjeudi 14 mai 2009
  53. 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 runjeudi 14 mai 2009
  54. 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
  55. 55. Conseilsjeudi 14 mai 2009
  56. 56. Topologie Dumbbell évaluation de paramètres de bout en bout Parking Lot évaluation de paramètres changeant, RTT, équité ...etcjeudi 14 mai 2009
  57. 57. Conseils • Paramètres importants • taille de la fenêtre TCP, MAX RTT ne doit pas être limitatif • TCP “flavor” • Taille des files dattente (delais*BP) • Active queue Management • Problèmes • Durée des simulations • Topologie • RTTjeudi 14 mai 2009
  58. 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. 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

×