53
Universit´ e Paul Sabatier Master ISTR – Sp´ ecialit´ e ASTR Simulation de syst` emes en r´ eseau avec ns2 Guthemberg Silvestre (http://guthemberg.co.nr) UE R´ eseau et Commande Ann´ ee 2014-2015.

Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Universite Paul SabatierMaster ISTR – Specialite ASTR

Simulation de systemes en reseau avec ns2

Guthemberg Silvestre(http://guthemberg.co.nr)

UE Reseau et Commande

Annee 2014-2015.

Page 2: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Sommaire.

I Les objectifs du cours,

I Les systemes connectes en reseau,

I La simulation,

I Une introduction au ns2,

I Collecte et analyse des resultats,

I Exemple de simulation.

Page 3: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Les objectifs du cours.

Page 4: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Le cours a les objectifs suivants :

I Comprendre le phenomene de congestion pouvant apparaıtre dans unreseau,

I Acquerir des connaissances sur les files d’attente et leurs politiquesd’ordonnancement,

I Appliquer les connaissances acquises dans d’autres modules.

Page 5: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Les etapes pour atteindre nos objectifs :

I Etude du comportement d’un protocole de transport comme TCP,

I Utilisation de mecanismes d’asservissement issus de l’automatique,

I Realisation de simulations et analyse des resultats obtenus.

Page 6: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Les systemes connectes en reseau.

Page 7: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Nous nous interessons aux systemes connectes en reseau.

Nœud A Routeur Routeur Nœud B

Page 8: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Les couches reseau se communiquententre nœuds voisins ou en pair-a-pair.

NœudA

Routeur RouteurNœud

B

Application

Transport

IP

Accès réseau

Application

Transport

IP

Accès réseau

IP IP

nœud-à-nœud

Accès réseau

Accès réseau

Fibre,Satellite,

etc.Ethernet

Flux de données

Topologie du réseau

Ethernet

processus-à-processus

Page 9: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Encapsulation de donnees et pile de protocoles TCP/IP.

Nœud B

Ethernet IP TPC FTP

Ethernet

IP ARP

TCP UDP

FTP Telnet

Routeur Routeur

Nœud A

Page 10: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Les couches Application et Transport.

I Application: Telnet (terminal a distance), FTP (transfert de fichier),etc.

I Transport: TCP (fiabilite et performance), UDP (performance), etc.

Page 11: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Le TCP utilise un espace en memoirepour stoker les segments.

window size window size

application application

TCP

Nœud A Nœud B

I Window size: pour ecriture et lecture des segments TCP,

I Utile pour le controle de congestion,

I Exemples d’algorithmes: tahoe, Reno, New Reno, et SACK TCP.

Page 12: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Les couches Internet, Acces Reseau et les queues.

queue queueNœud A

Routeur

Accesreseau

IP IP

Accesreseau

Transport

Application

queue

I Les files d’attente :I Presentes dans tout interface reseau / routeur,I Classer les paquets suivant des priorites (Qualite de Service),I Algorithmes d’ordonnancement: Drop-Tail, SFQ (Stochastic Fair queu-

ing), FQ (Fair Queuing), DRR (Deficit Round Robin), RED (RandomEarly-Detection) et CBQ (Class-Based Queueing).

Page 13: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Algorithmes d’ordonnancement.

Nœud A

Routeur Routeur

Nœud BFlux 1Flux 2

Transport

IP

I DropTail :Routeur

IPqueue

F1F2F2F2F2F1

F2F2F2

F1

I SFQ (Stochastic Fair queuing) :Routeur

IPqueue

F1F2F2F2F2F1

F2F2F2

F1

Page 14: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

La couche Acces Reseau.

I Permet de gerer l’acces au support (si partage),

I Types basiques de lien : Simplex et Duplex.I Protocoles dependant du support physique :

I Ethernet/LAN : CSMA-CD,I Wi-Fi : 802.11*, TDMA,I Satellite : Unslotted Aloha, TDMA/DAMA.

Page 15: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Nous pouvons emuler l’envoi de donneespar TCP en utilisant l’outil iperf.

Clientip:localhostport:56500

Serveurip:localhost

port: 5001 (commplex-link)

window size window size

application: iperf iperf

I Les outils pour emuler l’exemple:

I iperf: un outil pour mesurer la bande-passante,I tcpdump: un outil pour capturer du trafic reseau.

Page 16: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Les etape pour faire tourner l’exempled’envoi de donnees par TCP.

I Le Serveur attend des connexions sur le port 5001 :

I Le tcpdump permet la collecte de paquets pour l’analyse :

I le Client ouvre une nouvelle connexion pour envoyer 1KByte :

Page 17: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Analyse : les paquets de notre connexion TCP peuventetre regroupes en trois types selon leur flags.

Page 18: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Ou trouver des informations complementairessur les systemes connectes en reseau ?

I Les outils iperf et tcpdump: iperf −−help (ou man iperf), tcpdump-help (man tcpdump)

I Un cours introductoire en ligne :

http://courses.cs.washington.edu/courses/csep561/13au/

I Autres references :I Seth, Sameer, and M. Ajaykumar Venkatesulu. TCP/IP architecture,

design and implementation in Linux. Vol. 68. John Wiley & Sons,2009.

I Anderson, Al, and Ryan Benedetti. Head First Networking. O’ReillyMedia, Inc., 2009.

Page 19: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

La simulation.

Page 20: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

La simulation permet de comprendre le comportementd’un systeme avec moins d’efforts.

réalisme

efforts

simulation

émulation

systèmeréel

Page 21: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Le systeme reel et son emulation.

I Experiences sur le systeme reel :I Resultats probants,I (Quand il est possible) La mise en place est eventuellement couteuse.

I Son emulation :I La prise en compte de plusieurs facteurs (logiciels et/ou materiels)

contribuent a l’obtention des resultats plus fiables,I Problemes liees au passage a l’echelle.

Page 22: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Exemples des systemes de diffusion de video sur Internet.

I Exemples: YouTube, Netflix, etc..

Page 23: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Les plate-formes cloud publiques nouspermettent d’emuler des systemes en reseaux.

I Exemples: PlanetLab.

I Autres: Microsoft Azure, Amazon EC2, etc.

Page 24: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

La simulation utilise des modelespour representer le systeme.

I Avoir une comprehension du comportement du systeme,

I Permet de passer a l’echelle plus facilement,I Pour valider le modele, les resultats peuvent etre croises avec des

donnees du systeme reel,I Modelisation mathematique : Monte Carlo simulation, bootstrap, theorie

des reseaux, etc.I Modelisation informatique : transmission de messages d’une simulation

orientee evenements, protocoles de routages de paquets, etc.

Page 25: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Exemples des simulateurs.

I PeerSim ( http://peersim.sourceforge.net/).

I OMNeT++ ( http://www.omnetpp.org/).

I SimGrid (http://simgrid.gforge.inria.fr/).

I ns2 (http://www.isi.edu/nsnam/ns/) et ns3 (http://www.nsnam.org/) .

Page 26: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Temps de transmission de donnees entre deux nœuds.

Client Serveurdonnées

écriture

lecture

temps de transmission= temps d'écriture+ délai + temps de lecture

délai

10 Mbps

20 ms

10KB

données

Page 27: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Ou trouver des informations complementairessur la simulation ?

I Jain, Raj. The art of computer systems performance analysis. JohnWiley & Sons, 2008.

I Wehrle, Klaus, Mesut Gunes, and James Gross. Modeling and toolsfor network simulation. Heidelberg: Springer, 2010.

Page 28: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Une introduction au ns2.

Page 29: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

ns2, le network simulator 2, est un simulateur aevenements discrets concu pour la recherche sur reseau.

I L’ordonnanceur d’evenements discret maintient l’etat du systeme.

Ordonnanceurd'événements

tête

time_uid_next_handlerhandler()

Objetréseau

time_uid_next_handlerObjetréseau

handler()

chemin de donées

Page 30: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

ns2 a une riche librairie d’objets reseau et protocoles.

I Conception modulaire qui facilite la mise en place de modifications,

I ns2 utilise deux langages principales:

I Une librairie d’objets reseau et protocoles ecrite en C++ (Files d’attente,Liens, Sources et Puits. . . ),

I Un interpreteur script OTcl (une version du Tool Command Languageorientee objet).

Page 31: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

La representation d’un nœud.

unicast node

agent

application

link

link

addrclassifier

portclassifier

nodeentry

Page 32: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

La representation d’un lien simplex.

I Lien entre deux noeud,

I Parametres: delai, bande passante, type de file d’attente, etc..

Page 33: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Les files t’attente sont presentes dans toutes interfacesreseau et sont indispensables pour l’echange de paquets.

I Stocker les paquets en attendant l’envoi :I Presence de congestion,I Volonte de reguler le flux de donnees.

I Classifier les paquets suivant des priorites :I Mecanismes de Qualite de Service (QdS).I Indispensables dans les reseaux de communication.

Page 34: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Gestion de la congestion avec les files d’attente.

I Definies dans la classe Queue,I Composants de base :

I Methode enque : Ajoute un paquet dans la file,I Methode deque : Enleve un paquet dans la file,I Parametre len : Taille de la file.

I Algorithmes disponibles: DropTail, RED, SFQ, etc.

Page 35: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Les adresses et ports des couches Reseau et Transport.

I Deux types d’adressage :I Adressage hierarchique : declaration de plusieurs niveaux, proche de

IP mais plus complexe.I Adressage plat : utilisation de l’identifiant du nœud, plus abstrait donc

plus simpliste.

I Utilisation de ports :I Similaire aux ports reels,I Permettent de retrouver un agent,I Port 255 utilise par l’agent de routage.

Page 36: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Les objets de la classe application permettent degenerer du trafic sur le systeme en reseau simule.

I Les applications communes : Telnet et FTP.

I Autres generateurs de trafic : CBR, Pareto, Exponential, Trace.

Page 37: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Une application doit etre attachee unagent pour etablir une communication.

I Un agent est une entite du nœud qui communique avec l’exterieur(e.g. Protocole de Transport, Protocole de Routage, etc.)

0 1

tpcagent

ftpapplication

tcp_sink

I Si aucune action n’est necessaire en reception, l’agent null peut etreutilise.

Page 38: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

L’utilisateur decrit une simulation avec script en OTcl.

I Definition du systeme en reseau a etre simuler et des resultats :I La topologie du reseau, les protocoles et les applications,I Duree simulee et evenements particuliers a etre introduits,I Collecte des metriques de performance.

I A chaque variable TCL du script correspond un objet C++ (le lienetant assure en TCL).

Page 39: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

L’interaction des composants pendant une simulation.

La commande suivante lance la simulation defini dans exemple 01.tcl:

Page 40: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Le Network AniMator (NAM) nous permetde visualiser la communication simulee.

Page 41: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

L’exercice consiste a simuler les transferts defichiers sur un reseau entre deux nœud avec ns2.

I Le Client envoie des fichiers de 10KB au Serveur en trois configura-tions differentes :

I Premiere, envoie des fichiers par une application CBR (Constant Bi-tRate) sur UDP comme protocole de transport;

I Deuxieme, CBR sur TCP;I Troisieme, FTP sur TCP (en effet, la taille de la fenetre TCP (buffer)

doit avoir approximativement la taille du fichier a etre transfere).

Client Serveur

10 Mbps

20 ms

10KB

I Vous trouvez en ligne un squelette du script tcl pour la premieresimulation. Pour le telecharger par un terminal unix/linux :

wget http://homepages.laas.fr/gdasilva/scripts/squelette.tcl

Page 42: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Ou trouver des informations complementairessur ns2 ?

I Comment installer ns2 (Mac et linux):

http://www.nsnam.com/2011/11/

installation-of-network-simulator-ns235.html

http://nsnam.isi.edu/nsnam/index.php/Downloading_and_

installing_ns-2

I Comment utiliser ns2 :

http://www.isi.edu/nsnam/ns/doc/index.html

http://www.isi.edu/nsnam/ns/tutorial/

http://nile.wpi.edu/NS/

http://nile.wpi.edu/NS/simple_ns.html

I La liste de parametres par defaut :

ns-allinone-RELEASE/ns-x.xx/tcl/lib/ns-default.tcl

Page 43: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

L’exercice de lecture et simulation.

1. Choisir un article a lire. (liste suggeree : http://homepages.laas.fr/gdasilva/liste_de_confs.txt);

2. Faire un resume de l’article, puis indiquer au moins deux points fortset deux points faibles;

3. Ecrire un script tcl qui simule un systeme (inspire) de l’article;

Page 44: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Collecte et visualisation de resultats dessimulations.

Page 45: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

ns2 permet d’enregistrer les traces d’unesimulation dans un fichier texte.

### Traces en t e x t e b r u t ASCIIset a l l [ open a l l . t r a c e w]$ns t r a c e− a l l $ a l l

### P r o c e d u r e de f i n a l i s a t i o nproc f i n i s h {} {

g l o b a l ns n f a l l$ns f l u s h− t r a c ec l o s e $n fc l o s e $ a l lexec nam out.nam &e x i t 0

}

Page 46: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Les resultats sont collectes par quatre objets.

Page 47: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Le fichier texte de traces contient des informationssur les evenements en ordre chronologique.

Event TimeFromNode

ToNode

PktType

PktSize

Flags Fid SrcAddr

DestAddr

SeqNum

PktId

= enqueue= dequeue= recv (at the output of the link)= dropped

+-rd

e.g. cbr, tcp, etc.

From, To are recorded by link events. Addr in "node.port" format.

One can set aFlow ID for each(agent) sourcein OTcl script.

Seq. Number can repeat (retrasmission).Pkt ID is always unique.

− 5 .016736 1 3 c b r 160 −−−−−−− 1 1 . 0 4 . 0 19 2803r 5 .016752 3 0 ack 40 −−−−−−− 0 4 . 1 0 . 0 1374 2765+ 5 .016752 0 3 tc p 1500 −−−−−−− 0 0 . 0 4 . 1 1394 2805− 5 .016752 0 3 tc p 1500 −−−−−−− 0 0 . 0 4 . 1 1394 2805

Page 48: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Nous pouvons collecter des informationsspecifiques d’une file d’attente.

I Le mecanisme monitor-queue collecte des echantillons de l’etatd’une file :

### f i c h i e r pour l e s queue t r a c e sset queue [ open q u e u e . t r a c e w]

# S u r v e i l l e r l a f i l e d ’ a t t e n t e e n t r e n3 e t n4# , c o l l e c t e r des i n f o s t o u s l e s 0 . 1 s e c , e t# l e s e n r e g i s t r e r dans $queueset qmon [ $ns monitor−queue $n3 $n4 $queue 0 . 1 ][ $ns l i n k $n3 $n4 ] queue−sample−t imeout

I Il y a aussi le monitor-queue, qui enregistre les evenements d’unefile en fichier.

Page 49: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Le fichier texte contient des statistiques surune file d’attente specifique.

TimeFromNode

ToNode

Queuesize B

Queuesize P

arr P dep P drop

current queue size in bytes during the monitor interval

From, To are recorded by link events

arrivals (packets) in monitor interval

same, in bytes

arr B dep B drop

current queue size in packets in the monitor interval

departures (packets) in monitor interval.

drops (packets) in monitor interval.

5 3 4 499 . 6 0 . 5 1517 1515 0 2245540 2243880 05 . 1 3 4 489 . 2 0 . 4 1651 1650 0 2415040 2414880 05 . 2 3 4 678 . 8 0 . 6 1794 1793 0 2599420 2597960 05 . 3 3 4 422 . 2 0 . 4 1920 1919 0 2756960 2755500 0

Page 50: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

ns2 nous permet de surveiller une source TCP.

I Collecte de la taille de la fenetre de congestion et la taille de la fenetres(buffer) :

set c o n g e s t i o n w i n d o w \[ open c o n g e s t i o n w i n d o w . t r a c e w]

proc plotWindow { t c p S o u r c e o u t f i l e } {g l o b a l nsset time 0 . 1set now [ $ns now ]set cwnd [ $ t c p S o u r c e set cwnd ]set window [ $ t c p S o u r c e set window ]puts $ o u t f i l e ”$now\ t$cwnd\ t$window ”$ns a t [ expr $now+$t ime ] ” plotWindow \$ t c p S o u r c e $ o u t f i l e ”}$ns a t 1 ” plotWindow $tcp2 $ c o n g e s t i o n w i n d o w ”

Page 51: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Traitement de donnees et visualisation.

Page 52: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Ou trouver les scripts pour traiter et generer des graphesdes simulations ?

I Les scripts pour le traitement de donnees des simulations (code enPerl) :

http://homepages.laas.fr/gdasilva/scripts/format_

throughput_data.pl

http://homepages.laas.fr/gdasilva/scripts/format_

queue_data.pl

I Les scripts pour generer les graphes pour visualiser les resultats dessimulations (codes en gnuplot) :

http:

//homepages.laas.fr/gdasilva/scripts/plot_throughput.p

http://homepages.laas.fr/gdasilva/scripts/plot_queue.p

http://homepages.laas.fr/gdasilva/scripts/plot_

congestion_window.p

Page 53: Universit e Paul Sabatier Master ISTR { Sp ecialit e ASTR

Comment utiliser les scripts a partir d’un terminal ?

I D’abord, if faut faire tourner la simulation :

ns s i m u l a t i o n d e f i n i t i o n . t c l

I Puis, traitez les donnees de sortie avec les scripts suivants :

p e r l f o r m a t t h r o u g h p u t d a t a . p l a l l . t r a c e \4 1 1000000 > t h r o u g h p u t . d a t

p e r l f o r m a t q u e u e d a t a . p l q u e u e . t r a c e \0 . 2 > q u e u e . d a t

I Finalement, generez les graphes :

g n u p l o t p l o t t h r o u g h p u t . pg n u p l o t p l o t q u e u e . pg n u p l o t p l o t c o n g e s t i o n w i n d o w . p