IC3N 2000 N. 1 Esercitazione ns2 N° 1 D.E.I.S. Università di Bologna DEISNet

Slides:



Advertisements
Presentazioni simili
Tema 1: Misura della probabilità di eventi Esempio: Sistema di trasmissione dati Schema di principio di un semplice sistema di trasmissione dati binario.
Advertisements

ESERCITAZIONE R 12,19 marzo 2012 Mario Mastrangelo
Milano Settembre 2003 ISTI/CNR IS-MANET: WP5 Stefano Chessa Tel Area.
MATLAB.
MATLAB. Outline Grafica 2D Esercizi Grafica 3D Esercizi.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
I protocolli TCP/UDP prof.: Alfio Lombardo.
3 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
IMPLEMENTAZIONE E DIMOSTRAZIONE Moreno Dissegna. Implementazione Obiettivi Sistema per comparare AntNet con altri algoritmi di routing Funzionalità necessarie.
I modelli di riferimento OSI e TCP/IP
La rete in dettaglio: rete esterna (edge): applicazioni e host
Interfaccia del file system
Sistemi e Tecnologie della Comunicazione
Introduzione al software SAS Metodi Quantitativi per Economia, Finanza e Management Esercitazione n°2.
Introduzione al software SAS
Introduzione al software SAS Metodi Quantitativi per Economia, Finanza e Management Esercitazione n°1.
Esercizio 1 1)      Un collegamento end-to-end è formato da tre tratte, la prima AB con la velocità di 5 Mb/s, la seconda BC di 20 Mb/s e la terza CD di.
1 Esercizio 1 Due nodi A, e B, sono collegati a un nodo C con canali di velocità pari a 500 Mb/s e 1000 Mb/s e a sua volta C è collegato al nodo D con.
Esercizio 1 Due collegamenti in cascata, AB e BC hanno una velocità rispettivamente di 100 Mb/s e 50 Mb/s e tempi di propagazione pari a 1 ms e 1.2 ms.
WP QoS e Architettura Riflessiva Milan – 17 november 04.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Metodi numerici per equazioni lineari iperboliche Gabriella Puppo.
Metodi conservativi per equazioni iperboliche
Trimr Gauss, tra le altre, fornisce una preziosissima funzione che risulta di estrema utilità nell’ambito matriciale. Questa funzione, chiamata trimr(x,t,b),
Ricerca della Legge di Controllo
Trasporto affidabile (principi) Di fondamentale importanza negli strati applicativi, di trasporto e di collegamento! Le caratteristiche del canale determinano.
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.
Reti di Calcolatori IL LIVELLO RETE.
I File.
ADSL VOIP Voice Over IP.
Per costruire unapplicazione occorre compilare il file (o i file se più duno) che contengono il testo del programma (file sorgente) Il risultato sono uno.
M.A.E.A.I. Mobile Agent and Enterprise Architecture Integration Il gestore delle politiche Valerio Siri Reti di Calcolatori LS Docente: Antonio Corradi.
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
INTRODUZIONE A MATLAB.
Il compilatore Dev-C++
1 Esercizio 1 Un router riceve da un collegamento A lungo 10 km a 100 Mb/s e instrada i pacchetti ricevuti, lunghi 1000 bit verso una linea duscita B a.
Ll Questionario Introduzione al software SAS (Parte 2) Metodi Quantitativi per Economia, Finanza e Management Esercitazione n°2.
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
Un report è in grado di personalizzare la stampa delle informazioni rispetto alla stampa di una tabella, di un recordset o di una maschera. I report possono.
Il foglio elettronico per Economia
Realizzato da Roberto Savino 3-1 Il livello di trasporto r Dobbiamo assumere di avere a che fare con un canale di comunicazione molto particolare 1. Inaffidabile.
I protocolli TCP/UDP prof.: Alfio Lombardo.
PROGRAMMARE IN C Un ambiente di sviluppo `e un software che serve per scrivere ed eseguire programmi. Generalmente integra almeno 3 funzionalita’: Editor:
Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Esercizi.
Calcolo timeout Modulo 2 - U.D. 5 - Lez. 6
Laureando: Giuseppe BRUSCELLA
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Scansione referto e documentazione di gara
L’architettura a strati
POSTA ELETTRONICA La posta elettronica è un’innovazione utilissima offerta da Internet. E’ possibile infatti al costo di una telefonata urbana (cioè del.
INTERNET e RETI di 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.
LUCIDI dell'insegnamento di COMUNICAZIONI ELETTRICHE eo/in/bi
Gestione del processore (Scheduler)
Esercizio ODBC. Configurare il driver ODBC Start  Control Panel  Administrative Tools Aprire: Data Source(ODBC) User DSN  Add…. Selezionare il driver.
UNIVERSITA’ DEGLI STUDI DI ROMA “TOR VERGATA”
Flusso e congestione TCP
IC3N 2000 NSCRIPT D.E.I.S. Università di Bologna DEISNet
Controllo timeout. Il modo più ovvio per individuare delle perdite è usare il timeout del timer di ritrasmissione. Timeout (1) Attenzione! Con valori.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Controllo di congestione avanzato. Controllo della congestione TCP Prima del 1988, solo controllo del flusso! TCP Tahoe 1988 − TCP con Slow Start, Congestion.
IC3N 2000 N. 1 Il simulatore ns2 – Network Simulator ver. 2 D.E.I.S. Università di Bologna DEISNet
Esercitazione no. 4 EXCEL II Laboratorio di Informatica AA 2009/2010.
Sistemi e Tecnologie della Comunicazione
1 Sistemi e Tecnologie della Comunicazione Lezione 12: data link layer: controllo di flusso, protocolli stop-and-wait e sliding window.
Corso di Politiche Regionali Introduzione a STATA a cura del Dott. Augusto Cerqua 15/10/2012.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Transcript della presentazione:

IC3N 2000 N. 1 Esercitazione ns2 N° 1 D.E.I.S. Università di Bologna DEISNet

N. 2 Esercitazione script1 - Analisi del prodotto Banda  Ritardo nome e percorso del file: C:\cygwin\ns-allinone-2.29\ns- 2.29\esercitazione\es1_script1.tcl Analisi del meccanismo a finestra del TCP ed effetti del prodotto BANDA - RITARDO Topologia di rete considerata –Link bidirezionale Capacità: 10Mb Ritardo: 10ms Politica di gestione della coda: DropTail –2 nodi: sorgente e destinazione –Protocollo di trasporto: TCP dimensione della sliding window: 6 –Sorgente: CBR (Constant Bit Rate) a 10 Mb/s sorgente destinazione 10Mb; 10ms; DropTail

N. 3 Dimensione ideale della finestra W id = ritardo (sec)  banda (bit/sec) Rappresenta la quantità di informazione che utilizza al 100% la tratta tra trasmettitore e ricevitore Se W < Wid: si spreca banda Se W > Wid: è necessario accodare nei router intermedi e cresce il ritardo e quindi potenzialmente anche la perdita Massimo throughput ottenibile: W/RTT dove RTT è il Round Trip Time

N. 4 Stima del rate medio Stima approssimata del rate medio –parametri noti: Dimensione della finestra: 6 segmenti Dimensione di ogni segmento: 1000 bytes Tempo di propagazione sul link: 10 msec Tempo di trasmissione del pacchetto: 1000  8 / 10 7 = 0.8 msec Calcolo approssimato del RTT –si considerano trascurabili il tempo per la creazione dell’ACK da parte del ricevitore ed il tempo di trasmissione dell’ACK –RTT = (10  )  = 20.8 msec Calcolo del rate medio stimato –Rate = Wnd / RTT = 1000  8  6 / (20.8  ) = Mbit/sec

N. 5 Creazione dello script Otcl: step 1 Definizione delle variabili globali necessarie per monitorare le grandezze utili alla valutazione del rate di trasmissione # Inizializzazione delle variabili per calcolare e registrare # su un file il rate di trasmissione # numero di byte registrati dall’oggetto monitor set NumBytePrec1 0 # istante corrente di monitoraggio set TimePrec1 0

N. 6 Creazione dello script Otcl: step 2 Creazione dell’oggetto Simulator che comprende le funzionalità del simulatore ns2 Apertura in scrittura del file per l’animazione (out.nam) e del file su cui saranno registrati i dati utili a produrre le valutazioni richieste (rate fra i due nodi) (rate.dat) Attribuzione di un colore ai pacchetti del flusso 1 set ns [new Simulator] # apertura file set nam_file [open out.nam w] $ns namtrace-all $nam_file set rate_file [open rate.dat w] # colorazione dei pacchetti del flusso 1 $ns color 1 Red

N. 7 Creazione dello script Otcl: step 3 Creazione della topologia: 2 nodi e link di collegamento fra essi in base alle specifiche # Nodo sorgente set src_node [$ns node] # Nodo destinazione set dst_node [$ns node] # Link bidirezionale fra i 2 nodi $ns duplex-link $src_node $dst_node 10Mb 10ms DropTail

N. 8 Creazione dello script Otcl: step 4 Definizione degli elementi che generano e raccolgono il traffico nella rete: agent Agent di riferimento: TCP 793edu –versione del TCP descritta nella RFC 793 –versione Tahoe del protocollo TCP e permette di decidere sull’attivazione dei diversi algoritmi del TCP, come slow- start, fast-recovery,... # Agent in nodo sorgente set src_agent [new Agent/TCP/RFC793edu] # Agent in nodo destinazione set dst_agent [new Agent/TCPSink] # Collegamenti Agent/nodo $ns attach-agent $src_node $src_agent $ns attach-agent $dst_node $dst_agent # Connessione fra i due agent $ns connect $src_agent $dst_agent $src_agent set window_ 6 #rappresenta la rwnd definita dal ricevitore all’inizio della trasmissione

N. 9 Creazione dello script Otcl: step 5 Definizione dell’oggetto application per la generazione del traffico d’utente Sorgente CBR # Creazione dell’oggetto Application/Traffic/CBR (Constant Bit Rate e # associazione alla variabile src_traffic. set src_traffic [new Application/Traffic/CBR] # Attribuzione del rate $src_traffic set rate_ 10Mb # Specifica di quale agent riceve i dati dall’applicazione $src_traffic attach-agent $src_agent

N. 10 Creazione dello script Otcl: step 6 Monitoraggio del rate del traffico generato: –creazione di un oggetto QueueMonitor associato alla variabile monitor inserito fra nodo sorg. e nodo dest. set monitor [$ns monitor-queue $src_node $dst_node [$ns get-ns- traceall]] Si noti che in ns le code sono implementate sui link

N. 11 Creazione dello script Otcl: step 7 Creazione della procedura per monitorare e registrare il rate durante la simulazione sul file precedentemente aperto proc record {} { global rate_file monitor ns global NumBytePrec1 TimePrec1 set now [$ns now] set Bytes [$monitor set barrivals_] set time 0.1 set DeltaByte [expr $Bytes-$NumBytePrec1] set DeltaTime [expr $now-$TimePrec1] if { $DeltaTime == 0 } then { $ns at [expr $now+$time] "record" return } Definizione delle variabili globali: sono il puntatore al rate_file, all’oggetto monitor che dà le info da scrivere, all’oggetto ns, alle due variabili appoggio Registrazione del tempo corrente (now) e del numero di byte registrati dall’oggetto monitor (Bytes) DeltaByte: N° di byte nell’intervallo considerato DeltaTime: evita divisione per zero nella prima chiamata Gestione eventuale divisione per zero

N. 12 Creazione dello script Otcl: step 8 # Stampa dell’istante di monitoraggio e del corrispondente # valore del rate puts $rate_file "$now [expr $DeltaByte/$DeltaTime*8]" set NumBytePrec1 $Bytes set TimePrec1 $now $ns at [expr $now+$time] "record" } Aggiornamento delle variabili e nuova chiamata alla procedura

N. 13 Creazione dello script Otcl: step 9 Creazione della procedura di fine simulazione per la chiusura di tutti i file e schedulazione degli eventi proc finish {} { global ns nam_file rate_file $ns flush-trace close $nam_file close $rate_file exec nam out.nam & exit 0 } # Indicazioni per la gestione degli eventi $ns at 0.0 "$src_traffic start" $ns at 0.0 "record" $ns at 5.0 "finish" $ns run

N. 14 Creazione dello script Otcl: step 10 lo script con Lo script è salvato come: es1_script1. tcl Lanciare la simulazione con il comando:./ns es1_script1. tcl La simulazione produce 2 risultati: –il file rate.dat nel quale è memorizzato il valore del rate misurato durante la simulazione. Tale file verrà utilizzato dal programma per produrre i grafici delle curve del rate di trasmissione (es.: gnuplot) il file rate.dat è un file di testo con due colonne: prima colonna: istante di campionamento seconda colonna: valore campionato –il file out.nam utilizzato da NAM (se richiesto)

N. 15 Risultati di simulazione Riportando i dati contenuti nel file rate.dat in un grafico si otterrà l’andamento temporale del rate di trasmissione. Il rate medio sarà caratterizzato da una certa variabilità: durante il periodo di riferimento saranno presenti degli intervalli temporali in cui il trasmettitore si pone in attesa dei riscontri. –Rappresentazione del rate medio stimato nello stesso grafico al fine di un confronto con il rate osservato.

N. 16 Gnuplot: esempio per grafico cnwd_size=6 Lanciare gnuplot cliccando sull’eseguibile wgnuplot.exe situato nella cartella: C:\cygwin\ns-allinone-2.29\ns2.29\esercitazione. Dopo aver lanciato gnuplot digitare le seguenti istruzioni: g(x)=2.307e6  set data style linespoints set xrange[0:5] set yrange[1.6e6:2.6e6] set xlabel "Tempo (s)"  set ylabel "Rate (bit/s)"  plot "rate6.dat" title "cwnd=6", g(x) title "rate medio" 

N. 17 Rate medio stimato ed osservato: grafico 1.6e e+006 2e e e e Rate (bit/sec) Simulation Time (sec) window size = 6 Rate medio Rate istantaneo

N. 18 Considerazioni (1) L’andamento del rate medio osservato oscilla attorno al valore del rate medio stimato a causa di periodi più o meno lunghi in cui il Tx è in attesa di riscontri. Rate medio stimato pari a Mbit/sec Capacità trasmissiva pari a 10 Mbit/sec Si ha una sotto-utilizzazione del collegamento dovuta ai periodi di attesa dei riscontri da parte del trasmettitore Effetto del prodotto banda-ritardo –quantità di informazione che utilizza al 100% la tratta tra trasmettitore e ricevitore –maggiore è il rapporto Banda-Ritardo, maggiore sarà la quantità informazione trasmessa nel collegamento tra sorgente e destinatario.

N. 19 Considerazioni (2) Per sfruttare al massimo la capacità trasmissiva del collegamento devo trasmettere una quantità d’informazione pari al prodotto bandaritardo Rate(medio)=Wnd(bit)/RTT(s) –Fisso Rate a 10Mbit/sec; –RTT noto –Trovo Wnd ottimo In base alle specifiche –RTT = 2*(tempo di propagazione) + tempo di trasmissione = 10 ms * = 20.8 ms –numero massimo di bit che può contenere contemporaneamente il collegamento pari a: Banda × RTT 10 Mbit/sec  20.8 msec = 208 Kbit = 26 Kbyte Possibilità di determinare il dimensionamento ottimo della finestra di ricezione per il controllo di flusso del TCP

N. 20 Dimensionamento Ottimo Dimensionamento ottimo: valore da assegnare alla dimensione della finestra tale da non produrre sotto- utilizzazione del collegamento Dimensione dei pacchetti: 1000 bytes Massimo numero di bit che può contenere contemporaneamente il collegamento: 26 kbyte Dimensione minima della finestra che permette l’utilizzo ottimale del link: 26 Kbyte / 1000 byte per pacchetto = 26 pacchetti

N. 21 Analisi del dimensionamento ottimo con ns Impostazione del nuovo valore della dimensione della finestra nello script Otcl –Sostituire: $src_agent set window_ 6 –con: $src_agent set window_ 26 –Oppure modificare nel grafico i parametri relativi all’agent TCP e salvare di nuovo lo script e sostituire 26 con 6 sia nei parametri sia nelle definizioni dei file di uscita: –set rate_file [open rate6.dat w] –set trace_file [open out6.tr w] Nuova simulazione con il valore aggiornato della dimensione della finestra Guardando l’andamento del rate si potrà riscontrare che utilizzando il valore ottimo della finestra è possibile utilizzare a pieno il collegamento

N. 22 Gnuplot: esempio per grafico cnwd_size=26 Dopo aver lanciato gnuplot digitare le seguenti istruzioni: set data style linespoints set xrange[0:5] set yrange[1.6e6:2.6e6] set xlabel "Tempo (s)"  set ylabel "Rate (bit/s)"  plot "rate6.dat" title "cwnd=6", rate26.dat title “cwnd=26" 

N. 23 Rate osservato con dimensionamento ottimo 6e e+006 7e e+006 8e e+006 9e e+006 1e e Rate (bit/sec) Simulation Time (sec) rate window size = 26

N. 24 Rate osservato: confronto 2e+006 4e+006 6e+006 8e+006 1e e Rate (bit/sec) Simulation Time (sec) window size = 6 window size = 26

N. 25 Grafici dei risultati: gnuplot Gnuplot è un programma per la realizzazione dei grafici a partire da file di dati in cui sono registrati i risultati (prodotto Gnu; SO LINUX) –Da linea di comando: gnuplot  –Vincolo: il file dati dev’essere organizzato in colonne separate da una tabulazione –Prima colonna interpretata come i dati rappresentati sull’asse x –Seconda colonna e successive interpretati come i dati rappresentativi dell’asse y –Senza nessuna indicazione gnuplot assume come dati da plottare sull’asse x e sull’asse y i dati elencati nella prima e nella seconda colonna rispettivamente

N. 26 Comandi gnuplot set data style lines –Grafica i dati come linee set xrange[0:1] –Imposta l’intervallo dell’asse x (tra 0 e 10 in questo caso). Analogamente per l’assey set xlabel “tempo di simulazione” –Imposta l’etichetta dell’asse x. analogamente per l’asse y plot “nome_file” –Visualizza il grafico prendendo i dati dal file nome_file.est save “nome.plt” –Salva l’ultimo grafico visualizzato, con tutte le impostazioni in un file.ptl load “nome.plt” –Rivisualizza il file precedentemente impostato e memorizzato (senza bisogno di ripetere il settaggio)