Reti di Comunicazione e Internet

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

Controllo di Congestione in Reti Internet Docente: Vincenzo Eramo

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

Transmission Control Protocol (TCP) Andrea Detti

Controllo della congestione

Avoidance, Fast Retransmit, And Fast Recovery

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) Prova completa Mercoledì 2 Marzo 2005, ore 14.30

Gestione della Connessione in TCP

Livello di trasporto e TSAP

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

Livello trasporto in Internet

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP

II prova in itinere - Rete Internet (ing. Giovanni Neglia)

Fondamenti di Internet e Reti

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Martedì 22 Febbraio 2005, ore 15.00

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

Reti di Calcolatori:

4 - Il livello di trasporto

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 14 Settembre 2005, ore 9.00

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

Esercitazione. Livello di Trasporto [Capitolo 3]

Livello trasporto: TCP / UDP. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 14 TCP/UDP - 1/35.

Prova in itinere 5 Maggio 2016

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

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Venerdì 18 Febbraio 2005, ore 9.30

Capitolo 3 - parte 4. Corso Reti ed Applicazioni Mauro Campanella

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005

Telematica di Base. IL Livello di Trasporto TCP

Internetworking TCP/IP: esercizi

Strato di Trasporto Multiplazione a livello di trasporto

Livello Trasporto. Liv. Applic. Liv. Transport. Transport Entity. Liv. Network. Trasporto

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

CORSO DI RETI SSIS. Lezione n.3 9 novembre 2005 Laura Ricci

4 - Il livello di trasporto

Trasmissione adattativa di dati multimediali su IP

Il livello trasporto Protocolli TCP e UDP

Il livello di Trasporto del TCP/IP

Configurazione delle interfacce di rete

Esercitazioni Reti di Calcolatori

Modulo 11. Il livello trasporto ed il protocollo TCP Indice

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

Introduzione (parte III)

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

Protocolli di trasporto in Internet: TCP e UDP

Strato trasporto. Per capir meglio la cosa analizziamo il seguente esempio:

Livello Trasporto Protocolli TCP e UDP

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

Internet Parte II Romeo Giuliano 1

Il livello Data-Link e i suoi protocolli

TCP. Servizio di Trasporto Affidabile. Transmission Control Protocol. Caratteristiche di TCP 1

I protocolli UDP e TCP

IL LIVELLO TRASPORTO Protocolli TCP e UDP

RETI INTERNET MULTIMEDIALI. Protocolli di trasporto e applicativi

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

Uso di UDP per client-server UDP. Porte e multiplexing. TCP e UDP. Connessione TCP (o messaggio UDP) Caratteristiche delle porte TCP e UDP

9 Febbraio 2015 Modulo 2

Transmission Control Protocol

Capitolo 7: Internetworking TCP/IP

Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP

Transcript:

Dipartimento di Elettronica e Informazione Politecnico di Milano Reti di Comunicazione e Internet Transmission Control Protocol Esercitazione Ipotesi semplificative per gli esercizi RTT (Round Trip Time) costante Segmenti tutti uguali e lunghi MSS (max segment size) L unità di tempo è RTT L unità di misura delle dimensioni delle finestre è MSS - -

Ipotesi semplificative per gli esercizi (cont( cont.) Tutti i segmenti disponibili fino a un massimo di SNDWND sono inviati dal trasmettitore simultaneamente e con tempo di trasmissione trascurabile Tutti i segmenti sono ricevuti e riscontrati simultaneamente dal ricevitore, tutti gli ACK vengono quindi ricevuti simultaneamente dal trasmettitore alla fine dell RTT La trasmissione avviene senza errori, tranne che nei periodi di network down che distruggono tutti i segmenti in transito; questi periodi sono intervalli aperti - - Finestre TCP RCVWND Receiver Window (finestra del ricevitore) buffer disponibile in ricezione viene comunicato dal ricevitore CWND Congestion Window (finestra di congestione) determinato dal trasmettitore tramite speciali algoritmi SNDWND Sender Window (finestra del trasmettitore) = min {RCVWND, CWND} numero massimo di segmenti che il trasmettitore può inviare prima di attendere i riscontri - -

Algoritmi Slow Start e Congestion Avoidance Slow Start (se CWND < SSTHRESH) Per ogni singolo segmento riscontrato CWND CWND + Non appena CWND = SSTHRESH uso Congestion Avoidance per tutti i riscontri non conteggiati Congestion Avoidance Per ogni gruppo di n riscontri CWND CWND + n / CWND - 5 - Il timer di ritrasmissione (RTO) Al primo timeout si parte con RTO = RTT (salvo altrimenti indicato) Ogni volta che arriva un riscontro prima che il timer scatti si pone nuovamente RTO RTT In caso il timer scatti si applica il backoff exponenziale e si pone RTO RTO Il backoff viene applicato al massimo volte consecutivamente - 6 -

Se scatta RTO Viene aggiornato RTO con il backoff esponenziale Si aggiornano le variabili SSTHRESH max {, flight_size / } CWND flight_size è il numero di segmenti trasmessi ma non riscontrati (attenzione, può essere diverso da SNDWND) Si comincia a ritrasmettere dal primo segmento non riscontrato - 7 - Obiettivo degli esercizi Disegnare l evoluzione della trasmissione dello stream fino a fine trasmissione e determinare i valori di SNDWND, CWND e SSTHRESH durante tutto il trasferimento La maschera su cui svolgere gli esercizi contiene anche la notazione per il numero di segmenti trasmessi con o senza ACK ad ogni RTT - -

Notazione SNDWND (send window) o CWND (congestion window) va indicata solo se diversa dalla SNDWND SSTHRESH numero: numero di segmenti trasmessi e riscontrati(intero!) numero: numero di segmenti trasmessi ma non riscontrati(intero!) (numero): valore CWND (intero o frazionario) - - Maschera 0 7 6 5 0 7 6 5 0 7 6 5 0 SNDWND CWND Num. Segm. Trasm. con ACK Num. Segm. Trasm. senza ACK () Valore CWND 5 0 5 0 5 0 5 0 5 50-0 -

MSS 0 7 6 5 Casi e notazioni particolari Attraversamento della soglia RTT RCVWND = Congestion Avoidance 6 Slow Start SSTHRESH = 6 SNDWND 6 Numero Segmenti Trasmessi con ACK Arrivano riscontri; i primi due riscontri portano la CWND: CWND = + = 6 che diventa =SSTHRESH e comincia la Congestion Avoidance; il terzo e quarto riscontro: CWND = 6 + /6 Al RTT successivo si mandano 6 riscontri, che portano la CWND a (6 + /6) + 6/6 = 7 + / - - Casi e notazioni particolari RCVWND < CWND 0 RCVWND a b c d SNDWND MSS 7 6 5 6 7 SSTHRESH Slow Start 7 7 7 7 a = Congestion Avoidance CWND b = + 7/, c = b + 7/ b = ( + 7/) + 7/ = + / = 0 + 5/ 0,6 d = c + 7/ c = (0 + 5/) + 7/0, RTT - -

Esercizio lunghezza file =,5 kbyte (500 byte) MSS = 500 byte RTT =,5 s timeout (RTO) base = RTT RTO raddoppia ogni volta fino a *RTO base SSTHRESH(t=0) = 000 byte RCVWND(t=0) = 5000 byte CWND(t=0) = 500 byte nota: kbyte = 000 byte - - Esercizio Modifiche a RCVWND RCVWND(t = s) = 5 kbyte RCVWND(t = s) = kbyte RCVWND(t = 5,5 s) = 5 kbyte Rete va fuori servizio t = ( s,5 s) t = (,5 s 6 s) t = (5 s 5,5 s) - -

Esercizio Indicare il tempo totale di trasferimento del file i valori di CWND e SNDWND in funzione di t il numero di segmenti trasmessi in funzione di t, specificando se vengono ricevuti oppure no il valore di SSTHRESH in funzione di t - 5 - Soluzione Esprimere i dati in funzione di RTT e MSS lunghezza file = 5 MSS SSTHRESH(t=0) = MSS RCVWIND(t=0) = 0 MSS RCVWIND(t= RTT) = 0 MSS RCVWIND(t= RTT) = MSS RCVWIND(t=5 RTT) = 0 MSS Fuori servizio rete: t = ( RTT RTT) t = ( RTT RTT) t = (6 RTT RTT) - 6 -

Notazione RCVWND SSTHRESH CWND SNDWND x segmenti spediti e poi riscontrati x segmenti spediti e poi non riscontrati (x) valore della CWND, se diverso dal numero di segmenti inviati - 7 - Inizio con Slow Start window size 0 Si comincia con slow start t = 0 t = cwnd =, sndwnd = invio segmento 5 ricevo un riscontro cwnd = cwnd + = invio due segmenti 0 0 5 0 t = ricevo riscontri cwnd = cwnd + = invio segmenti - -

Congestion Avoidance window size (MSS 0 5 () (+ 0 0 0 Al tempo t = la cwnd raggiunge la SSTHRESH e si passa a congestion avoidance t = ricevo riscontri cwnd = cwnd + /floor(cwnd) = invio segmenti 0 0 5 t = 5 ricevo riscontri cwnd = cwnd + / = 0 invio 0 segmenti - - Effetto della RCVWND 5(+/) (+/) (+/) (+/) () (+0/) 0 0 0 6 Al tempo t = 5 la cwnd raggiunge la rcvwnd che limita la sndwnd t = 6 ricevo 0 riscontri cwnd = cwnd + 0/0 = sndwnd = min{0,} = 0 invio 0 segmenti t = 7 ricevo 0 riscontri cwnd = cwnd + 0/ = + 0/ sndwnd = min{0,+0/} = 0 invio 0 segmenti - 0 -

Scadere di un timeout window size (MSS) 0 6 (+/) 5 5(+/) (+/) (+/) (+/) () (+0/) 0 0 0 0 5 0 0 5 0 5 - - t = invio 6 segmenti la rete è guasta e i pacchetti si perdono t = non ricevo riscontri, aspetto t = scatta il timeout (RTO = RTT) cwnd = SSTHRESH = = max {6/, } = invio segmento RTO = RTO = RTT Nuovo ciclo di SS/CA t = 5 ricevo un riscontro 5(+/) +/) /) ) 0 t = cwnd = RTO = RTT invio segmenti invio segmenti la rete è guasta e perdo i segmenti trasmessi 5 0 RT - -

Secondo guasto (+/7+/) (+/7+/) (+/7) (+/7) 0(+/7) (+/7) 7(+/7) t = non ricevo riscontri, aspetto t = 5 scatta il timeout (RTO = RTT) cwnd = SSTHRESH = = max {/, } = 7 invio segmento RTO = RTO = RTT t = 6 arriva un riscontro RTO = RTT cwnd = 0 5 0 RTT number - - Attraversamento della SSTHRESH (+/7) 0(+/7) (+/7) (+/7) 7(+/7) t = ricevo riscontri cwnd + > 7, supero la SSTHRESH, devo lavorare in due fasi: SS: cwnd = cwnd + = 7 CA: cwnd = cwnd + / floor(cwnd) = 7 + /7 invio 7 segmenti 5 0 TT number - -

Effetto della RCVWND (+/7+/)) (+/7+/) (+/7) 0(+/7) (+/7) ( (+ t = - ricevo 0 riscontri cwnd = cwnd + 0/0 = + /7 sndwnd = min {+/7,} = invio segmenti (+/7) t = ricevo riscontri 7(+/7) cwnd = cwnd + / = = + /7 + / t = 5 ricevo riscontri cwnd = + /7 + 6/ invio segmenti 5 0 5 RTT number - 5 - Fine del file (+/7+6/) (+/7+6/) t = 6 cwnd = + /7 + 6/ mancano segmenti da spedire (il file è quasi finito) invio segmenti (che perdo) 5 0 5-6 -

Guasti lunghi (+/7+6/) (+/7+6/) 5 0 5 t = scatta RTO RTO = RTO = RTT cwnd = SSTHRESH = = max { /, } = invio segmento (che perdo) t = scatta RTO RTO = RTO = RTT cwnd = SSTHRESH = = max { /, } = invio segmento - 7 - Fine del file () 0 5 50 t = ricevo riscontri sono in CA cwnd = cwnd + = invio segmenti t = 5 ricevo riscontri cwnd = cwnd + = mancano segmenti invio segmenti t = 6 ricevo riscontri fine della trasmissione - -

0 RWND 6 (+/) CWND window size (MSS) 5 0 5(+/) (+/) (+/) (+/) () (+0/) 0 0 0 0 (+/7+/)) (+/7+/) (+/7) 0(+/7) (+/7) (+/7) 7(+/7) SSTHRESH SWND (+/7+6/) (+/7+6/) 5 () 0 0 5 0 5 0 5 0 5 0 5 50 RTT number