+ All Categories
Home > Documents > Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Date post: 02-May-2015
Category:
Upload: nevio-mazza
View: 224 times
Download: 5 times
Share this document with a friend
28
Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010
Transcript
Page 1: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Network SimulatorNS2 vs NS3

Andrea Valletta

8 gennaio 2010

Page 2: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Introduzione

• Network Simulator è nato con lo scopo di offrire un supporto per la ricerca in ambito networking– Progettazione di nuovi protocolli, studio del traffico, etc

– Confronto tra varie versioni di un protocollo

• E’ un software open source– Il codice è condiviso, visibile a tutti e liberamente modificabile

per aggiungere nuovi protocolli, nuovi modelli, etc• Questo incrementa l’affidabilità dei risultati

– Molte persone hanno testato i modelli in situazioni differenti

– I modelli sono stati sviluppati da esperti

– Il codice è gratuito

Page 3: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Importanza di NS2

• Numero di papers in cui sono citate simulazioni (fonte ACM Digital Library, 2001-04):

ns-2 OPNET QualNetGlomosim

≥ layer 4 123 (75%) 30 (18%) 11 (7%)

= layer 3 186 (70%) 48 (18%) 31 (12%)

≤ layer 2 114 (43%) 96 (36%) 55 (21%)

Page 4: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Funzionalità incluse in NS2• Reti cablate

– Routing DV, LS, PIM-SM– Emulazione di reti reali

• Wireless– Ad hoc routing e mobile IP– Directed diffusion, sensor-MAC– Reti satellitari (satelliti geostazionari e polari, con o senza

elaborazione a bordo)

• Trasporto: TCP, UDP, SCTP

• Sorgenti di traffico:web, ftp, telnet, cbr, stocastiche• Discipline di coda:drop-tail, RED, FQ, SFQ, DRR• QoS: IntServ and Diffserv• Tracing, animazioni, utilities varie

Page 5: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Componenti di NS2

• Ns, il simulatore vero e proprio

• Nam, il tool network animator– Permette una visualizzazione grafica animata dei risultati

forniti da ns

– Nam editor: interfaccia grafica per generare script per ns

• Pre-processing:– Generatori di traffico e topologie

• Post-processing:– Analisi delle tracce, solitamente mediante script in Awk,

Perl, o Tcl

Page 6: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Modellimoduli, blocchi

• Modelli di traffico e applicazioni:– Web, FTP, telnet, constant-bit rate, real audio

• Protocolli di trasporto:– unicast: TCP (Reno, Vegas, etc.), UDP, SCTP

– Multicast: SRM

• Routing e code:– Wired routing, ad hoc routing e directed diffusion

– Protocolli di coda: RED, drop-tail, etc

• Physical media:– Reti Cablate (point-to-point, LANs), wireless (multiple

propagation models), reti satellitari

Page 7: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Simulatore ad eventi

• Il simulatore vede una sequenza di eventi– Viene gestita una lista di eventi

– Prendi un evento, elaboralo, poi passa all’evento successivo nella lista

– Ciascun evento si verifica in un istante di tempo simulato, ma impiega una quantità arbitraria di tempo reale

• E’ un modello molto semplice– Singolo flusso di controllo

– Facile da gestire

Page 8: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Esempio di simulazione ad eventi

Due nodi su una LAN

A B

t=1.0: A invia un pacchetto all’interfaccia di rete (NIC) che inizia il carrier sensing (CS)

t=1.005: il NIC di A termina il CS, inizia a trasmettere

t=1.006: il NIC di B inizia a ricevere il pacchetto

t=1.01: il NIC di B conclude la ricezione del pacchetto, e lo passa all’applicazione

Page 9: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Struttura del software

• NS è orientato agli oggetti– Un nodo, un link, uno strato dell’architettura protocollare

costituiscono oggetti

– Ciò consente un notevole riuso del codice

• NS2 usa due linguaggi– Maggiore flessibilità, ma occorre imparare due linguaggi di

programmazione

• C++ per l’elaborazione dei pacchetti– Veloce, consente un controllo più fine

• OTcl per il controllo– Preparazione e configurazione della simulazione– Utile per introdurre rapidamente delle modifiche

Page 10: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

C++ e OTcl

C++ OTcl

Oggetti C++puri

Oggetti Tclpuri

Oggetti “split” C++/OTcl

ns

Page 11: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Schema generale

Il cuore del simulatore è scritto in C++ ( compilato, veloce)L’interfaccia per la gestione dei parametri di simulazione è scritta in OTcl (estensione di Tcl object oriented) ( interpretato, i parametri possono essere modificati senza dover ricompilare tutto il simulatore)

Page 12: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

NAM

Page 13: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

File di traccia+ 1.84375 0 2 cbr 210 ------- 0 0.0 3.1 225 610- 1.84375 0 2 cbr 210 ------- 0 0.0 3.1 225 610r 1.84471 2 1 cbr 210 ------- 1 3.0 1.0 195 600r 1.84566 2 0 ack 40 ------- 2 3.2 0.1 82 602+ 1.84566 0 2 tcp 1000 ------- 2 0.1 3.2 102 611- 1.84566 0 2 tcp 1000 ------- 2 0.1 3.2 102 611r 1.84609 0 2 cbr 210 ------- 0 0.0 3.1 225 610+ 1.84609 2 3 cbr 210 ------- 0 0.0 3.1 225 610d 1.84609 2 3 cbr 210 ------- 0 0.0 3.1 225 610- 1.8461 2 3 cbr 210 ------- 0 0.0 3.1 192 511r 1.84612 3 2 cbr 210 ------- 1 3.0 1.0 196 603+ 1.84612 2 1 cbr 210 ------- 1 3.0 1.0 196 603- 1.84612 2 1 cbr 210 ------- 1 3.0 1.0 196 603+ 1.84625 3 2 cbr 210 ------- 1 3.0 1.0 199 612

Inserimento in coda

Rimozione dalla coda

Ricezione

Pacchetto scartato

Istante in cui è avvenuto l’evento

Nodi coinvolti

Tipo Dimensione

Flags

Flusso

Sorgente

Destinazione

Numero di sequenza

Identificativo univoco del pacchetto

Page 14: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Pregi di NS2

• I pregi principali sono legati alla vasta adozione– Integra molti moduli ai vari livelli della struttura

protocollare

– Sono disponibili molti moduli aggiuntivi (esempio UMTS, WiMAX)

– Molta documentazione disponibile

– E’ un codice maturo e per la maggior parte stabile

– Infine, è gratuito

Page 15: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Difetti di NS2

• Adozione di 2 linguaggi– Poco scalabile, difficoltà di debugging

– Difficile da usare, soprattutto in ambito didattico

• Gli strati di rete ed inferiori, sono molto astratti– Discontinuità nel passaggio da simulazione a

sperimentazione

• Molti modelli non sono più mantenuti, quindi ormai incompatibili

• La documentazione è molta, ma è vecchia

• A parte il TCP, per gli altri modelli non ci sono validazioni documentate

Page 16: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

NS2 NS3• NS3 è un nuovo simulatore, scritto quasi da zero

– Alcuni moduli (es wifi) sono stati portati da NS2 a NS3, ma non è un’evoluzione di NS2.

• Due linguaggi di programmazione: C++, Python– A differenza di NS2, tutto è sviluppato in C++

• ns3 è una libreria scritta in C++

• I programmi di simulazione sono eseguibili C++– Non occorre effettuare in contemporanea il debugging di due codici scritti

in due linguaggi differenti

• Il linguaggio di scripting Python è opzionale

• Progetto iniziato a metà del 2006. Prima release ottobre 2008

– Ancora non maturo, in fase di sviluppo

– Una nuova release ogni 3-4 mesi (la prossima 3.7 prevista per il 20 Gennaio)

Page 17: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Attività del progetto NS3

Page 18: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Scopi del progetto NS3

• Sviluppo di un simulatore open license (GPLv2)– Il progetto deve essere scalabile, devono poter essere

inseriti facilmente nuovi modelli

– Il progetto deve sopravvivere una volta che saranno terminati i finanziamenti per il suo sviluppo iniziale

– La validazione dei modelli deve essere a basso costo• I modelli devono essere vicini al mondo reale

– Modelli meno astratti di quelli di NS2, più facili da validare

– Facile esecuzione di codice reale

– L’emulazione semplice e robusta rispetto alla modifica dei modelli

Page 19: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Caratteristiche chiave di NS3

• Modelli meno astratti, più facili da validare. Facile esecuzione di codice reale– Adozione dell’indirizzamento IP

– Più interfacce per nodo

– Bsd-like sockets

• Emulazione semplice e robusta rispetto alla modifica dei modelli– I pacchetti contengono reali stringhe di bytes

Page 20: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Modello base in NS3• Node: scheda madre di un

computer con RAM, CPU e interfacce IO

• Application: generatore/ricevitore di pacchetti eseguito su un nodo. Comunica con un insieme di network stacks

• Socket: interfaccia tra un’applicazione ed un network stack

• NetDevice: scheda di rete che può essere inserita in una delle interfacce IO del nodo

• Channel: collegamento fisico tra un insieme di oggetti NetDevice

Page 21: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Modelli implementati

• Network stacks: arp, ipv4, icmpv4, udp, tcp (ipv6 under review)

• Devices: wifi, csma, point-to-point, bridge

• Error models and queues

• Applications: udp echo, on/off, sink

• Mobility models: random walk, etc.

• Routing: olsr, static global

Page 22: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

NS3 ha anche un’interfaccia grafica

• Tramite un’interfaccia grafica è possibile controllare i parametri della simulazione– Facilità d’uso, soprattutto

in ambito didattico

Page 23: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Tracce in NS3

• E’ possibile scegliere cosa tracciare e cosa no, senza modificare il codice del simulatore

• Ciascun file di traccia può essere collegato a più sorgenti di traccia

• 3 livelli di dettaglio delle tracce

• 2 tipi di tracce– Testuali, tipo NS2

– pcap• Interpretabili da Wireshark (ex Ethereal)

• Facilità di passaggio tra simulazione e sperimentazione

Page 24: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Emulazione 1

• Ns3 mette in comunicazione macchine reali o virtuali– Stack reali

– Rete simulata

Page 25: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Emulazione 2

• Una rete reale interconnette degli stack simulati

Page 26: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Prestazioni: tempo

E. Weingärtner, H. Lehn, and K. Wehrle,”A performance comparison of recent network simulators”,IEEE International Conference on Communications 2009.

Page 27: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Prestazioni: memoria

E. Weingärtner, H. Lehn, and K. Wehrle,”A performance comparison of recent network simulators”,IEEE International Conference on Communications 2009.

Page 28: Network Simulator NS2 vs NS3 Andrea Valletta 8 gennaio 2010.

Conclusioni• Il principale punto di forza di NS2 è il gran numero

di modelli implementati e la sua diffusione

• Il principali punti deboli sono legati alla grande astrazione degli strati bassi della pila protocollare

• NS3 punta ad ottenere lo stesso successo di NS2

• I risultati ottenuti da NS3 saranno più attendibili– Minore astrazione

– Uso dell’emulazione, esecuzione di software reale

• NS3 sarà più semplice da usare– Unico linguaggio

– Supporto di un’interfaccia grafica


Recommended