IC3N 2000 N. 1 Il simulatore ns2 – Network Simulator ver. 2 D.E.I.S. Università di Bologna DEISNet

Slides:



Advertisements
Presentazioni simili
INFORMATICA Altre Istruzioni di I/O
Advertisements

Stack TCP/IP - Socket Douglas E. Comer, "Internetworking con TCP/IP, principi, protocolli, architettura.", Gruppo Editoriale Jackson W. Richard. Stevens,
1 Introduzione ai calcolatori Parte II Software di base.
Recupero debito quarto anno Primo incontro
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Il Sistema Operativo.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Connessione con MySQL.
I protocolli TCP/UDP prof.: Alfio Lombardo.
Sicurezza e Policy in Active Directory
Sicurezza e Policy in Active Directory. Sommario Amministrazione della sicurezza in una rete Windows 2003 Amministrazione della sicurezza in una rete.
I modelli di riferimento OSI e TCP/IP
La rete in dettaglio: rete esterna (edge): applicazioni e host
Giuseppe Fabio Fortugno.
Interfaccia del file system
Come programmare servizi di rete?
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
File.
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
Introduzione1 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo: procedura suddivisa.
Struttura dei sistemi operativi (panoramica)
Studio delle differenze prestazionali tra una Internet Network ed una Random Network Progetto CRESCO SPIII 11/12/2007 Ing.S.Di Blasi, Dott.ssa E.Marchei.
Reti di Calcolatori IL LIVELLO RETE.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Corso di PHP.
Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi
M.A.E.A.I. Mobile Agent and Enterprise Architecture Integration Il gestore delle politiche Valerio Siri Reti di Calcolatori LS Docente: Antonio Corradi.
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
Corso di Informatica per Giurisprudenza Lezione 7
Inserire il CDROM CygWin nel lettore, aprite la directory cyg e lanciare in esecuzione (con un doppio click del pulsante sinistro del mouse sulla relativa.
I protocolli TCP/UDP prof.: Alfio Lombardo.
Introduzione alla programmazione Object Oriented
Il modello di riferimento OSI
Modulo 2 - U.D. 3 - L.4 Ernesto Damiani - Sistemi di eleborazione dell'informazione.
Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.
Modulo 2 – U.D. 4 – Lez. 5 (parte I)
Amministrazione della rete: web server Apache
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
L’architettura a strati
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
Livello di trasporto Protocolli TCP e UDP.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
InternetInternet Sede: Salvo D’acquisto 2010/2011 Docente: Vito Monno.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
1: Introduction1 Stratificazione protocollare (Protocol “Layering”) Le reti sono complesse! r Molti elementi: m host m router m link fisici dalle caratteristiche.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 6 - Gestione della configurazione software Ernesto Damiani Università.
UNIVERSITA’ DEGLI STUDI DI ROMA “TOR VERGATA”
IC3N 2000 NSCRIPT D.E.I.S. Università di Bologna DEISNet
Sistemi di elaborazione dell’informazione Modulo 4 -Tecniche di programmazione distribuita Unità didattica 1 -Socket library Ernesto Damiani Lezione 1.
Concetti Fondamentali sulla Programmazione
Servizi Internet Claudia Raibulet
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
IC3N 2000 N. 1 Esercitazione ns2 N° 1 D.E.I.S. Università di Bologna DEISNet
Controllo di congestione avanzato. Controllo della congestione TCP Prima del 1988, solo controllo del flusso! TCP Tahoe 1988 − TCP con Slow Start, Congestion.
Internetworking V anno.
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 6 -User Datagram Protocol Ernesto Damiani Lezione 2 – UDP.
Strato di accesso alla rete (network access layer); comprende le funzioni che nel modello OSI sono comprese negli strati fisico, di collegamento e parte.
GESTIONE RETI TCP/IP l troubleshooting è necessario per risolvere molti problemi che si possono verificare all'interno di una rete, una delle aspirazioni.
Protocolli di rete. Sommario  Introduzione ai protocolli di rete  Il protocollo NetBEUI  Il protocollo AppleTalk  Il protocollo DLC  Il protocollo.
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
ARCHITETTURA DI RETE Protocollo: insieme di regole che governano le comunicazioni tra i nodi di una rete. La condivisione di queste regole tra tutte gli.
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
Implementazioni di un analizzatore di protocollo Esistono quattro fondamentali tradeoff per la realizzazione di un analizzatore di protocollo:  Analisi.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Raccogliere informazioni ALCUNE DOMANDE FONDAMENTALI È stato modificato qualche componente HW o SW? Il sintomo si presenta regolarmente o ad intermittenza?
Introduzione alle Classi e agli Oggetti in Java 1.
Laboratorio Android APPINVENTOR Livio Tenze
Transcript della presentazione:

IC3N 2000 N. 1 Il simulatore ns2 – Network Simulator ver. 2 D.E.I.S. Università di Bologna DEISNet

N. 2 Note sull’installazione NS2 viene naturalmente installato su sistema operativo UNIX. È possibile installare NS2 anche su Windows appoggiandosi sulla piattaforma Cygwin che simula l’ambiente Linux. Trovate tutto il materiale sul sito del corso BO/RetiLS/Laboratorio(2007) BO/RetiLS/ –NS2 –Cygwin –Istruzioni per le installazioni

N. 3 NS2 su Cygwin (per Windows) Cygwin è scaricabile liberamente da Internet o in alternativa lo trovate sul sito dell’esame. Prima di tutto installare Cygwin in C: o in C:/Programmi. È consigliabile installare tutti i componenti (all  install)

N. 4 Installazione di NS2 su windows(1) Scaricare il file ns-allinone tar.gz nella directory C:/Cygwin. Aprire Cygwin e arrivare nel file system alla cartella C:/Cygwin Scompattare il file ns-allinone tar.gz nella directory C:/Cygwin (o C:/Programmi/Cygwin ) con il comando: tar -xvzf ns-allinone tar.gz Posizionarsi nella cartella /ns-allinone-2.29/ Lanciare il comando di installazione:./install Aggiornare il file ~/.bashrc che si trova nella home di ns aggiungendo i comandi che trovate nelle spiegazioni (v.slide successiva).

N. 5 Installazione di NS2 su windows(2) Aggiornare il file ~/.bashrc che si trova nella home di ns (vedi file readme.pdf) Questa operazione serve per riconoscere il file eseguibile ns.exe da ogni parte del file system (e non solo dalla cartella in cui è contenuto) Il file va aggiornato aggiungendo nella propria home directory il percorso (PATH) dell’eseguibile ns.exe es: PATH=$PATH;”directory” $PATH è il “percorso” precedente che NON va modificato. “directory” è il percorso di ns.exe da aggiungere.

N. 6 Utilizzo di NS2 in laboratorio. Lanciare Cygwin (icona nel desktop) o in “all programs”  Cygwin  Cygwin bash shell Posizionarsi nella directory: C:/cygwin/ns-allinone-2.29/ns-2.29/NSCRIPT/examples usando i comandi – cd C : e poi –cd cygwin/ns-allinone-2.29/ns-2.29/NSCRIPT/examples Cartella “examples” dedicata alle Lezioni: –ns.exe –grafici.nss, script.tcl –Gnuplot (per la visualizzazione dei risultati)

N. 7 Il simulatore: ns2 – Network Simulator ver. 2 Simulatore di reti di telecomunicazioni –sviluppato presso l’University of Southern California's Information Sciences Institute (ISI) –software di simulazione di pubblico dominio (open source) – – documentation.html Motore di simulazione (engine): linguaggio C++ Interazione utente-simulatore: linguaggio OTcl –Otcl (Object-oriented Tool Command Language) –Linguaggio di scripting natura interpretata non compilata alta efficienza a livello di utente nello sviluppo del codice

N. 8 La simulazione con script OTcl OTcl è il mezzo con il quale l’utente può simulare il funzionamento di una rete reale User Space Risultati..... ns2 OTcl Script.... User Space

N. 9 ns2: simulatore tempo-discreto ad eventi L’istante in cui si presenta un evento attiva l’esecuzione di azioni specificate dal programma Gli eventi sono caratterizzati dall’istante di simulazione ed inseriti in una lista degli eventi Il simulatore agisce sulla lista eventi –inserisce un nuovo evento nella lista –processa l’evento attuale estraendolo dalla lista –esegue le azioni associate all’evento –elimina l’evento processato L’accesso alla lista è gestito da uno scheduler ns2 è uno strumento in continua evoluzione –permette la definizione di nuove classi per la caratterizzazione di nuovi componenti di rete, collegamenti, protocolli, ecc,...

N. 10 Gestione degli eventi La gestione degli eventi coinvolge l’unità di elaborazione, lo scheduler e la lista eventi Lista Eventi t 0 :evento 0 t 1 : evento 1 t 2 : evento t n : evento n Scheduler select next event event i Elaborazione add new event remove old event Invocazione

N. 11 Il linguaggio C++ Evoluzione del linguaggio C –introduzione di una particolare struttura dati: classe Classe: –tipo di dato con struttura definita dal programmatore –permette un elevato livello di astrazione –interazione solo con gli oggetti della classe attraverso particolari funzioni proprie della stessa (metodi) Le funzionalità della classe si sfruttano facendo un’istanza della stessa: –L’istanza è denominata oggetto Possibilità di rappresentare il comportamento di entità reali

N. 12 Linguaggio OTcl Permette di descrivere tutte le operazioni fondamentali per la simulazione Attraverso opportuni comandi consente l’impostazione del set-up: –Topologia di rete, –caratteristiche dei link, –tipo di traffico, –protocolli supportati,... Elaborazione e presentazione dei risultati di una simulazione

N. 13 Caratteristiche e comandi Otcl: esempi (1) Creare, inizializzare ed eliminare una varaibile: –set –unset Chiamata per riferimento e per valore –per riferimento: $variabile –per valore: variabile Input di parametri esterni: if {$argc == 2} { set a [lindex $argv 0] set b [lindex $argv 1] } exit 1 Ad a viene assegnato il primo valore dell’array argv e a b il secondo. Argv è l’array dei parametri in ingrsso

N. 14 Caratteristiche e comandi Otcl: esempi (2) Cicli FOR for {set i 0}{$i < 100}{incr i}{ set v($i) [new vettore] } Cicli WHILE while {$i < 100}{ set v($i) [new vettore] incr i } Istruzioni IF if {$i < 10} { puts "i is less than 10" }

N. 15 Le procedure OTcl Sono un componente fondamentale di Otcl –facilitano la programmazione –permettono l’esecuzione di azioni ricorsive –caratterizzano il programma in blocchi logici Esempio: proc proc3 {min max} { set randomvar [uniform $min $max] return $randomvar } set randomvar [proc3 0 1] : qual è il risultato?

N. 16 Interazione fra classi C++ e classi OTcl Le classi C++ che costituiscono ns2 implementano l’insieme dei protocolli disponibili L’ambiente OTcl : –permette la definizione di classi OTcl direttamente connesse alle classi C++ (linkage) –fornisce i metodi per l’utilizzo delle classi ns2 utilizza le due tipologie di classe e consente di creare gestire ed analizzare una rete di telecomunicazioni –lo script OTcl è il mezzo per creare gli oggetti della rete ed i relativi collegamenti fra gli stessi

N. 17 Le classi standard di ns2 Le classi standard utili per implementare un modello di rete per lo studio del protocollo TCP sono: –SIMULATOR –NODE –LINK –AGENT –ERROR MODEL –TRACE –MONITOR

N. 18 La classe SIMULATOR Classe fondamentale di ns2 Permette di istanziare il motore di simulazione Primo oggetto creato da uno script OTcl set ns [new simulator] I metodi della classe simulator permettono di –configurare la simulazione –schedulare gli eventi I metodi della classe simulator: 3 categorie –configurazione della topologia (creazione dei nodi, dei link,...) –monitoraggio dell’evoluzione temporale di oggetti (trace) –configurazione dello scheduler

N. 19 La classe NODE: generalità Classe implementata in Otcl Implementano le funzionalità del protocollo IP –definizione dell’indirizzamento –routing –consegna delle unità informative al protocollo di trasporto Due tipi: –Unicast Node: per gestire pacchetti con un solo mittente ed un solo destinatario –Multicast Node: per gestire pacchetti con un solo mittente e più destinatari

N. 20 La classe NODE: comandi Creazione dell’oggetto NODE: set node1 [$ns node] Ritorno dell’identificatore di nodo $node1 id Creazione di N oggetti NODE for {set i 0} {$i < N} {incr i} {set node$i [$ns node]} $node1 attach

N. 21 La classe LINK: generalità Oggetti che permettono i collegamenti fra gli oggetti NODE Definita da 5 elementi principali:

N. 22 La classe LINK: creazione dell’oggetto Esempio: set ns [ new Simulator ] set node1 [ $ns node ] set node2 [ $ns node ] set node3 [ $ns node ] set node4 [ $ns node ] $ns simplex-link $node1 $node2 10Mb 1ms DropTail $ns duplex-link $node3 $node4 100Mb 50ms DropTail invocazione della classe simulator creazione di 4 oggetti NODE attraverso il metodo “node” appartenente alla classe ns Creazione di 2 collegamenti fra i nodi specificandone il tipo, la capacità, il ritardo e la politica di coda all’interfaccia fra il nodo ed il link d’uscita

N. 23 La classe LINK: creazione dell’oggetto Esempio: set ns [ new Simulator ] set node1 [ $ns node ] set node2 [ $ns node ] set node3 [ $ns node ] set node4 [ $ns node ] $ns simplex-link $node1 $node2 10Mb 1ms DropTail $ns duplex-link $node3 $node4 100Mb 50ms DropTail 1 2 B=10Mb; d=1ms 3 4 B=50Mb; d=50ms

N. 24 La classe LINK: alcuni comandi queue-limit: massima dimensione della coda $ns queue-limit $link up: attiva un collegamento $link down: disabilita un collegamento $link up?: interrogazione sullo stato di un link

N. 25 La classe AGENT: generalità Gli agent sono gli elementi dove si realizza: –la generazione a livello di rete delle unità informative che devono essere trasmesse (es.:applicazione che invia dati) –la rimozione delle stesse dopo la ricezione (es.: applicazione che riceve i dati) Applicazione AApplicazione B AGENT AAGENT B NODO 1LINKNODO 2LINKNODO 3LINK

N. 26 L’agent non riceve realmente dati dall’applicazione ma solo la dimensione dell’unità informativa (bytes) Diversi tipi di agent per gestire diversi tipi di protocolli di trasporto (es. TCP, UDP,…) Per ogni protocollo di trasporto è definito: –Un agent trasmettitore –Un agent ricevitore Al nodo ricevitore i pacchetti vengono “scartati” dall’agent ricevitore (libera la memoria associata alla struttura dati del pacchetto) –AGENT NULL (scarto) –AGENT TCPSink (scarto +ACK) La classe AGENT: caratteristiche

N. 27 La classe AGENT: agent TCP Due categorie possibili: –Agent TCP unidirezionali Agent trasmettitori Agent ricevitori –Agent TCP bidirezionali Possibilità di impostare diverse versioni del TCP –Tahoe, Reno, NewReno, Vegas etc. La classe Agent/TCP è caratterizzata da numerose variabili membro –Senza nessuna specifica  valore di default –Possibilità di modificare i valori di default Agent/TCP set

N. 28 Agent/TCP : variabili membro e significato window: dimensione massima della finestra di congestione/ricezione packetsize: dimensione in byte del pacchetto trasmesso tcpTick: granularità temporale nella stima del RTT maxrto: valore massimo per il RTO dupacks: contatore degli ack duplicati Ack: il valore più alto di ACK ricevuto cwnd: dimensione della finestra di congestione (in pacchetti) sstresh: valore della soglia di slow start rtt: campione del RTT srtt: valor medio del campione di RTT rttvar: varianza del campione di RTT maxseq: massimo numero di sequenza trasmesso....

N. 29 La classe AGENT: utilizzo Esempio: set ns [ new Simulator ] set node1 [ $ns node ] set node2 [ $ns node ] $ns simplex-link $node1 $node2 100Mb 2ms DropTail set agent1 [ new Agent /UDP ] set agent2 [ new Agent / Null ] $ns attach-agent $node1 $agent1 $ns attach-agent $node2 $agent2 $ns connect $agent1 $agent2 $agent1 set fid_ 1 #associa i pacchetti ad certo flusso tramite la viaribile membro “flow indicator” node 1 Link Agent node 2 Agent 2

N. 30 La classe APPLICATION: generalità Ha lo scopo di emulare le applicazioni più comuni e le caratteristiche di profili di traffico noti. Le unità dati generate da oggetti application sono passati all’oggetto agent tramite funzioni di interfaccia. Possibilità di: –generare traffico tipico di applicazioni del mondo reale (FTP File Transfer Protocol, Telnet, WEB) –Configurare le caratteristiche dell’applicazione In ns2 l’applicazione non genera veri dati ma solo delle dimensioni di file (es.: numero di byte inviati per trasferire un file mp3) I byte generati vengono incapsulati in segmenti TCP dall’agent corrispondente con intestazioni TCP/IP

N. 31 Simulatore di applicazioni: esempio (FTP) set ns [new Simulator] set node1 [$ns node] set node2 [$ns node] $ns duplex-link $node1 $node2 1Mb 1ms DropTail set agent1 [new Agent/TCP] set agent2 [new Agent/TCPSink] $ns attach-agent $node1 $agent1 $ns attach-agent $node2 $agent2 $ns connect $agent1 $agent2 set application1 [new Application/FTP] $application1 attach-agent $agent1 $ns at 0.0 "$application1 start"

N. 32 La classe APPLICATION: generatori di traffico In ns2 sono implementate 4 classi derivate dalla classe TrafficGenerator: –EXPOO_Traffic. generazione di traffico “On/Off ” con distribuzione exp dei tempi di permanenza in ogni stato –POO_Traffic: tempi di permanenza in ciascuno stato distribuiti secondo una distribuzione di Pareto (bursty) –CBR_Traffic: generazione di traffico a rate costante, con pacchetti di dimensione fissa –TrafficTrace: generazione di traffico effettivo ottenuto da misurazioni sulla rete

N. 33 La classe ERRORMODEL: generalità Consente di riprodurre il verificarsi di errori a livello fisico e/o la perdita di unità dati Si basa sull’utilizzo di due stratagemmi: –Attivazione dei flag di errore nella struttura del pacchetto come indicazioni di presenza di bit errati (opzione di default) –Invio del pacchetto ad un unità di scarto (drop target) invece che al destinatario per simulare la perdita del pacchetto L’evento di errore può quindi essere definito sia a livello di bit sia di pacchetto

N. 34 Monitoraggio e raccolta dei risultati Due strategie possibili per raccogliere i risultati della simulazione –definizione di due diversi oggetti ns: oggetti trace oggetti monitor Oggetto trace: –inserito tra due nodi –produce un report su tutti gli eventi che hanno interessato i pacchetti trasmessi sul link durante la simulazione –necessità di associare all’oggetto trace un elemento di raccolta dei dati di simulazione (TclChannel (un file)) Oggetto monitor: –sfrutta l’uso di contatori –permette di monitorare i parametri d’interesse durante la simulazione

N. 35 La classe TRACE Ogni pacchetto è tracciato grazie ad una intestazione (hdr_cmn) caratterizzata da –un identificativo unico –il tipo di pacchetto –la dimensione del pacchetto (tempo di trasmissione) –un identificativo dell’interfaccia di trasmissione (per il caso multicast) –un identificativo di flusso –nodo sorgente –nodo destinazione

N. 36 La classe TRACE: esempio di utilizzo set ns [ new Simulator ] set source [ $ns node ] set dest [ $ns node ] $ns duplex-link 100Mb 1ms DropTail set trace_file [open traccia.tr w] $ns trace-queue $source $dest $trace_file.... close $trace_file set trace_file [open traccia.tr r] creazione dei nodi sorgente, destinazione e del link fra essi apertura in scrittura del file di trace traccia.tr creazione del file traccia.tr con trace-queue chiusura del file a fine simulazione e apertura in lettura per leggere i risultati

N. 37 La classe TRACE: formato del file Caratterizzato da un formato standard in cui si specifica: –tipo di evento (ricezione, accodamento, trasmissione, scarto) –istante in cui si verifica l’evento –nodo sorgente e nodo destinazione –tipo di pacchetto –dimensione –flag per utilizzi specifici (collegamenti wireless, etc,...) –identificativo di flusso –identificativo univoco di pacchetto –numero di sequenza

N. 38 La classe TRACE: esempio di file trace

N. 39 La classe MONITOR: generalità Permette di costruire oggetti in grado di monitorare alcune grandezze (variabili di stato) di utilità per l’analisi dei risultati di simulazione Consente anche di specificare l’intervallo di campionamento delle variabili monitorate –0.1 sec di default

N. 40 La classe MONITOR: esempio Monitoraggio dello stato della coda posta fra due nodi (n1 ed n2): set queue1_2 [$ns monitor-queue $n1 $n2 [$ns get- ns-traceall]] queue1_2 : puntatore all’oggetto MONITOR $ns get-ns-traceall : comando per definire il puntatore ai dati