Esercitazione ns2 N N 1

Documenti analoghi
Reti di telecomunicazioni LS Guida agli esercizi TCP con NSCRIPT

Meccanismi di incremento della finestra

Analisi dell avvio del TCP su canali satellitari a larga banda. Candidato Giovanni Verrecchia

- 2 - Introduzione a Network Simulator (NS)

- 1 - Introduzione a Network Simulator (NS)

Network Simulator (NS)

- 5 - Controllo a finestra

la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK.

Politecnico di Milano Advanced Network Technologies Laboratory. Esercizi sul TCP

Politecnico di Milano Dipar0mento di Ele3ronica e Informazione

- 7 - Tecniche di filtraggio del traffico

Controllo della congestione

1. Supponendo che il canale trasmissivo sia esente da errori, si determini il throughput di S1.

Laboratorio di Reti di Comunicazione e Internet (MOD1)

Simulatore di rete NS2

E02 ESERCIZI SU MODI DI TRASFERIMENTO

Dipartimento di Ingegneria dell Informazione e Metodi Matematici Laboratorio di Reti Prof. Fabio Martignon

Reti di Comunicazione e Internet

Il simulatore ns2 Network Simulator ver. 2

Il simulatore di rete ns2

Prova completa - Rete Internet (ing. Giovanni Neglia) Lunedì 25 Giugno 2007

Università di Bergamo Laboratorio di Reti Prof. Fabio Martignon

Laboratorio di Reti di Comunicazione e Internet (MOD1)

Laboratorio di Reti di Comunicazione e Internet (MOD1)

NS-2. Laboratorio di Reti. Ing. Telematica - Università Kore Enna A.A. 2008/2009 Ing. A. Leonardi

Fondamenti di Internet e Reti Esercizi sui meccanismi di controllo di errore e sul livello di trasporto

Agenda. Introduzione al simulatore di rete ns2 (Network Simulator vers. 2) Come installare ns2 su Windows. il linguaggio OTCL

Fondamenti di Internet e Reti

Appello 18 Luglio Importante: usare lo spazio dopo ogni esercizio per le risposte. Esercizio 1 Esercizio 2 Esercizio 3 Domande Laboratorio

Reti di Comunicazione e Internet

Implementazioni tipiche del protocollo TCP

Mettiamo i puntini sulle i. 5 min. per pensare 5 min. per discutere la soluzione

Laboratorio di Reti di Comunicazione e Internet (MOD1)

Laboratorio di Fondamenti di Reti di Telecomunicazioni

Soluzione dell esercizio 2 (TCP) dell esame del 16 giugno 2015

RTT costante pari a 0.5 secondi; primo RTO= 2*RTT;

Reti e Protocolli rassegna (II)

Esercizi: Telecomunicazioni parte Reti

Controllo di congestione

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Controllo di Congestione in Reti Internet Docente: Vincenzo Eramo

1. i limiti di p che garantiscono un funzionamento stabile del sistema ;

Fondamenti di Reti di Telecomunicazioni Prof. Guido Maier IV appello 8 febbraio 2010

Gestione della Connessione in TCP

Politecnico di Milano Advanced Network Technologies Laboratory. ESERCIZI da Temi d Esame e Ripasso

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

Parte II: Reti di calcolatori Lezione 13

Parte II: Reti di calcolatori Lezione 14 (38)

Prof. Ing. Maurizio Casoni Dipartimento di Ingegneria dell Informazione Università degli Studi di Modena e Reggio Emilia

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

ERRATA CORRIGE. Pagina IV Traduzione: Renato Cortinovis (Capitoli 1, 2, 3, 8, 9, 10), Laura Stecco (Capitoli 4, 5, 6, 7)

Introduzione a NSCRIPT. Ing. Anna Maria Vegni

Valutazione del TCP con NS2. Gaia Maselli

Reti di Calcolatori:

Reti di Calcolatori e Laboratorio - Compito del 15 Gennaio 2013

Prova in itinere - Rete Internet (ing. Giovanni Neglia) Mercoledì 23 Maggio 2007, ore 15.00

Call Admission Controll (CAC)

R. Cusani, F. Cuomo: Telecomunicazioni - DataLinkLayer: Gestione degli errori, Aprile 2010

Dipartimento di Ingegneria dell Informazione, Elettronica e Telecomunicazioni. Esercitazioni del corso di. Telecomunicazioni

Introduzione alle Reti Telematiche

Telematica di Base. IL Livello di Trasporto TCP

Gestione delle connessioni TCP

ESERCIZI SVOLTI. Eserczio

Avoidance, Fast Retransmit, And Fast Recovery

Esercitazione. Laboratorio di Informatica. Nota: approssimazione per arrotondamento. Esempio. Uso di file di comandi (Macro) Dr Carlo Meneghini

Modelli analitici per l analisi delle prestazioni del protocollo TCP

Prova in itinere Esempio d esame 1

Riferimenti. I protocolli TCP e UDP. Sorgente TCP. Principi Fondamentali. TCP header. Ricevitore TCP

Architettura per multimedia

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 20 Luglio 2005

PROBLEMATICHE DI VALUTAZIONE PER LA SCELTA DI SOLUZIONI OTTIME NELL INTERCONNESSIONE DI RETI SWITCHED ETHERNET

Seminario su Network Simulator (NS-2) Siena, 26 Giugno 2008

Prova in itinere 5 Maggio 2016

RETI DI TELECOMUNICAZIONE

Gestione delle Reti di Telecomunicazioni

Istruzioni per il trasferimento di dati dal fotometro Lovibond PoolDirect / MultiDirect SpectroDirect / PCSPECTRO II

Transmission Control Protocol (TCP) Andrea Detti

TCP: rassegna RFCs: 793, 1122, 1323, 2018, 2581

Livello trasporto in Internet

Nome e Cognome : Anno di corso Numero di matricola : Como, 7 maggio Quiz a risposta multipla

LABORATORIO DI RETI. 02 La Multiplazione Statistica nelle Reti a Paccchetto

Reti di Telecomunicazione Esempio di esame

RETI A COMMUTAZIONE DI PACCHETTO. Caratteristiche e principi di funzionamento

Networking e Reti IP Multiservizio

RETI DI CALCOLATORI Home Work ritardi e livello applicativo

Introduzione (parte III)

Configurazione delle interfacce di rete

Lezione 16. Esercizio 2 (paginazione( di windows) di Linux) 1: soluzione. Esercitazione finale. 10 page faults 5 soft faults

Corsi di Reti di Calcolatori (Docente Luca Becchetti) Esercizi su strati di trasporto e di rete

UNIVERSITA DEGLI STUDI DI BERGAMO

R. Cusani - F. Cuomo, Telecomunicazioni - Data link layer: controllo di flusso, Aprile 2010

Controllo di congestione

4c. Esercizi sul livello di Rete Instradamento in Internet

Controllo di flusso in TCP

RETI DI CALCOLATORI Home Assignment protocollo TCP. Prima parte

Versione 3.0. a cura di Claudia Cavicchi Biblioteca Clinica F.Bianchi Università di Bologna

Fondamenti di Internet e Reti

UNIVERSITA DEGLI STUDI DI ROMA TOR VERGATA ESERCIZI D ESAME DEL CORSO DI RETI DI TELECOMUNICAZIONI

TCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi

Transcript:

Esercitazione ns2 N N 1 D.E.I.S. Università di Bologna DEISNet http://deisnet.deis.unibo.it/ IC3N 2000 N. 1

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 10Mb; 10ms; DropTail sorgente destinazione N. 2

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. 3

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 2 + 0.8) 10-3 = 20.8 msec Calcolo del rate medio stimato Rate = Wnd / RTT = 1000 8 6 / (20.8 10-3 ) = 2.307 Mbit/sec N. 4

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. 5

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. 6

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. 7

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 slowstart, 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. 8

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. 9

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-nstraceall]] Si noti che in ns le code sono implementate sui link N. 10

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 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) set DeltaByte [expr $Bytes-$NumBytePrec1] set DeltaTime [expr $now-$timeprec1] if { $DeltaTime == 0 } then { $ns at [expr $now+$time] "record" return } DeltaByte: N di byte nell intervallo considerato DeltaTime: evita divisione per zero nella prima chiamata Gestione eventuale divisione per zero N. 11

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. 12

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. 13

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. 14

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. 15

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. 16

Rate medio stimato ed osservato: grafico 2.6e+006 Rate istantaneo Rate medio 2.4e+006 Rate (bit/sec) 2.2e+006 2e+006 1.8e+006 window size = 6 1.6e+006 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Simulation Time (sec) N. 17

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 2.307 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. 18

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 * 2 + 0.8 = 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. 19

Dimensionamento Ottimo Dimensionamento ottimo: valore da assegnare alla dimensione della finestra tale da non produrre sottoutilizzazione 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. 20

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. 21

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. 22

Rate osservato con dimensionamento ottimo 1.05e+007 rate 1e+007 9.5e+006 Rate (bit/sec) 9e+006 8.5e+006 8e+006 7.5e+006 7e+006 6.5e+006 window size = 26 6e+006 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Simulation Time (sec) N. 23

Rate osservato: confronto 1.2e+007 window size = 6 window size = 26 1e+007 Rate (bit/sec) 8e+006 6e+006 4e+006 2e+006 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Simulation Time (sec) N. 24

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. 25

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) N. 26