• Non ci sono risultati.

Lo strato di trasporto (2/2)

N/A
N/A
Protected

Academic year: 2021

Condividi "Lo strato di trasporto (2/2)"

Copied!
22
0
0

Testo completo

(1)Programmazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm. dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12.

(2) Sommario della lezione di oggi: Lo strato di trasporto (2/2). ‰ Servizi e protocolli dello strato di trasporto ‰ Multiplazione e demultiplazione delle applicazioni ‰ Trasporto senza connessione: UDP ‰ Trasporto con connessione: TCP ‰ Il controllo della congestione nel TCP. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 2.

(3) Principi di controllo della congestione Congestione:. ‰ informalmente: “troppe risorse che inviano troppi dati troppo velocemente rispetto alle capacità di manipolazione della rete” ‰ diversa dal controllo di flusso! ‰ sintomi: ‰pacchetti persi (buffer overflow nei router) ‰lunghi ritardi (accodamento nei buffer dei router) ‰ uno fra i primi 10 problemi + importanti nelle reti! ‰ Throughput: velocità di arrivo byte a destinazione dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 3.

(4) Approcci al controllo della congestione End-end:. Network-assisted:. ‰ i router forniscono ‰ nessun esplicito feedback feedback ai terminali dalla rete ‰ bit singolo che indica ‰ congestione inferita da congestione (SNA, perdita o ritardo osservata DECbit, TCP/IP ECN, da terminale ATM) ‰ approccio seguito da TCP ‰ velocità esplicita a cui il mittente dovrebbe inviare. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 4.

(5) Controllo della congestione del TCP ‰ La finestra di congestione (variabile CongWin) impone un ulteriore limite sul ritmo di invio al mittente: ‰ LastByteSent-LastByteAck <= min{CongWin,RcvWin}. min{CongWin, RcvWin}. ‰ Supponendo CongWin = w, in cui ciascuno dei w segmenti consta di MSS byte inviati in un unico RTT: throughput =. w * MSS Bytes/sec RTT. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 5.

(6) Controllo della congestione del TCP: principi di base. ‰ Idealmente il mittente trasmette il più veloce possibile (CongWin il più grande possibile) senza perdite ‰ In realtà il mittente trasmette con velocità variabile: ‰ incrementa CongWin fino a causare perdite (congestione) ‰ quando si verifica un evento di perdita, decrementa CongWin ‰ torna ad incrementare CongWin, etc.. ‰ due “fasi”. ‰ partenza lenta ‰ prevenzione della congestione. ‰ variabili importanti:. ‰ CongWin: definisce la grandezza in segmenti della finestra di congestione ‰ threshold: definisce la soglia fra fase di partenza lenta e fase di controllo della congestione. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 6.

(7) Controllo della congestione del TCP:. Incremento additivo/decremento moltiplicativo. Finestra di congestione. Decremento moltiplicativo: riduce a metà CongWin dopo un evento di perdita. Incremento additivo: aumenta CongWin di 1 MSS a ogni RTT in assenza di eventi di perdita: sondaggio. 24 Kbyte. 16 Kbyte. 8 Kbyte. tempo. Controllo di congestione AIMD dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 7.

(8) Controllo della congestione del TCP: partenza lenta. Host A. initialize: CongWin = 1 for (each segment ACKed) CongWin++ until (loss event OR CongWin > threshold). RTT. algoritmo. ‰ Crescita esponenziale (per RTT) nella grandezza della finestra (non così lento!) ‰ evento di perdita: timeout (TCP Tahoe) e/o tre ACK duplicati (TCP Reno) dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). Host B one segm ent. two segm en. ts. four segm ents. time. 8.

(9) Controllo della congestione del TCP: prevenzione della congestione algoritmo /* slowstart is over */ /* CongWin > threshold */ Until (loss event) { every w segments ACKed: CongWin++ } threshold = CongWin/2 CongWin = 1 perform slowstart 1 1: TCP Reno salta lo slowstart (recupero veloce) dopo tre ACK duplicati dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 9.

(10) Controllo della congestione del TCP: riassumendo. ‰ Quando CongWin è sotto la soglia (Threshold), il mittente è nella fase di partenza lenta; la finestra cresce in modo esponenziale. ‰ Quando CongWin è sopra la soglia, il mittente è nella fase di congestion avoidance; la finestra cresce in modo lineare. ‰ Quando si verificano tre ACK duplicati, il valore di Threshold viene impostato a CongWin/2 e CongWin viene impostata al valore di Threshold. ‰ Quando si verifica un timeout, il valore di Threshold viene impostato a CongWin/2 e CongWin è impostata a 1 MSS. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 10.

(11) Controllo della congestione del TCP: eventi/azioni sul lato mittente Stato. Evento. Azione del mittente TCP. Commenti. Slow Start (SS). Ricezione di ACK per dati precedentemente non riscontrati. CongWin = CongWin + MSS, If (CongWin > Threshold) imposta lo stato a “Congestion Avoidance”. CongWin raddoppia a ogni RTT. Congestion Avoidance (CA). Ricezione di ACK per dati precedentemente non riscontrati. CongWin = CongWin + MSS * (MSS/CongWin). Incremento additivo: CongWin aumenta di 1 MSS a ogni RTT. SS o CA. Rilevato un evento di perdita da tre ACK duplicati. Threshold = CongWin/2, CongWin = Threshold, imposta lo stato a “Congestion Avoidance”. Ripristino rapido con il decremento moltiplicativo. CongWin non sarà mai minore di 1 MSS. SS o CA. Timeout. Threshold = CongWin/2, CongWin = 1 MSS, imposta lo stato a “Slow Start”. Entra nello stato “Slow Start”. SS o CA. ACK duplicato. Incrementa il conteggio degli ACK duplicati per il segmento in corso di riscontro. CongWin e Threshold non variano. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 11.

(12) Controllo della congestione del TCP: equità. Definizione: se K sessioni TCP condividono lo stesso collegamento con ampiezza di banda R, che è un collo di bottiglia per il sistema, ogni sessione dovrà avere una frequenza trasmissiva media pari a R/K. Connessione TCP 1. Connessione TCP 2. Capacità del router R, il collo di bottiglia. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 12.

(13) Controllo della congestione del TCP: equità (cont.). ‰ Due connessioni TCP che condividono link di capacità R. equal bandwidth share. Connection 2 throughput. R. loss: decrease window by factor of 2 congestion avoidance: additive increase loss: decrease window by factor of 2 congestion avoidance: additive increase. Connection 1 throughput R. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 13.

(14) Controllo della congestione del TCP: modellazione della latenza D: Quanto tempo occorre per ricevere un oggetto da un server WWW dopo avere inviato la richiesta? Ignorando la congestione, il ritardo è influenzato da: ‰ Inizializzazione della connessione TCP ‰ Ritardo nella trasmissione dei dati ‰ Partenza lenta. Notazioni, ipotesi: ‰ Unico link tra client e server con velocità R bit/sec ‰ MSS = S bit ‰ Oggetto di dimensione O bit ‰ nessuna ritrasmissione (nessuna perdita né alterazione). Dimensione della finestra: ‰ Prima supponiamo che la finestra di congestione sia statica: W segmenti ‰ Poi supponiamo che la finestra di congestione sia dinamica, per modellare la partenza lenta. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 14.

(15) Controllo della congestione del TCP: modellazione della latenza (cont.) Finestra di congestione statica (I caso): WS/R > RTT + S/R: il server riceve un ACK per il primo segmento nella finestra prima di completare la trasmissione della finestra latenza = 2RTT + O/R. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 15.

(16) Controllo della congestione del TCP: modellazione della latenza (cont.) Finestra di congestione statica (II caso): WS/R < RTT + S/R: il server trasmette tanti segmenti quanti ne consente la dimensione della finestra prima che il server riceva un riscontro per il primo segmento nella finestra latenza = 2RTT + O/R + (K-1)[S/R + RTT - WS/R]. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 16.

(17) Controllo della congestione del TCP: modellazione della latenza (cont.) Finestra di congestione dinamica Supponiamo che la finestra cresca secondo la partenza lenta Dimostreremo che il ritardo per un oggetto è:. Latenza Latency = 2 RTT +. O S⎤ S ⎡ + P ⎢ RTT + ⎥ − ( 2 P − 1) R R⎦ R ⎣. dove P è il numero di volte in cui il server entra in stallo:. P = min{Q, K – 1} - dove Q è il numero di volte in cui il server andrebbe in stallo se l’oggetto contenesse un numero infinito di segmenti. - e K è il numero di finestre che coprono l’oggetto. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 17.

(18) Controllo della congestione del TCP: modellazione della latenza (cont.) Componenti della latenza: • 2 RTT per inizializzare. la connessione ed inviare la richiesta • O/R per trasmettere l’oggetto • periodo di stallo del server a causa della partenza lenta Stalli del server: P = min{K-1,Q} volte Esempio: • O/S = 15 segmenti • K = 4 finestre •Q=2 • P = min{K-1,Q} = 2 dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 18.

(19) Controllo della congestione del TCP: modellazione della latenza HTTP. ‰ Supponiamo che la pagina web sia formata da: ‰ 1 pagina HTML di base (di dimensione O bit) ‰ M immagini (ciascuna di dimensione O bit) ‰ HTTP non persistente: ‰ M+1 connessioni TCP in serie ‰ Tempo di risposta = (M+1)O/R + (M+1)2RTT + somma degli stalli ‰ HTTP persistente: ‰ 2 RTT per la richiesta e per ricevere il file HTML di base ‰ 1 RTT per la richiesta e per ricevere M immagini ‰ Tempo di risposta = (M+1)O/R + 3RTT + somma degli stalli ‰ HTTP non persistente con X connessioni in parallelo ‰ ‰ ‰ ‰. Supponiamo M/X intero Una connessione TCP per il file di base M/X gruppi di connessioni parallele per le immagini. Tempo di risposta = (M+1)O/R + (M/X + 1)2RTT + somma degli stalli dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 19.

(20) Tempo di risposta HTTP (in secondi) RTT = 100 msec, O = 5 Kbyte, M = 10 e X = 5 20 18 16 14 12 10 8 6 4 2 0. non-persistente persistente non-persistente in parallelo 28 Kbps. 100 1 10 Kbps Mbps Mbps. Se l’ampiezza di banda è limitata, la connessione e il tempo di risposta sono dominati dal tempo di trasmissione. Le connessioni persistenti apportano soltanto un modesto miglioramento sulle connessioni parallele. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 20.

(21) Tempo di risposta HTTP (in secondi) RTT = 1 sec, O = 5 Kbyte, M = 10 e X = 5 70 60 50. non-persistente. 40. persistente. 30 non-persistente in parallelo. 20 10 0 28 Kbps. 100 1 10 Kbps Mbps Mbps. Per RTT più grandi, il tempo di risposta è dominato dalla inizializzazione della connessione TCP e dai ritardi per partenze lente. Le connessioni persistenti adesso apportano un miglioramento significativo: in particolare nelle reti con un valore elevato del prodotto ritardo•ampiezzadibanda. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 21.

(22) Sommario dello strato di trasporto ‰ Principi sottostanti i servizi dello strato di trasporto: ‰ ‰ ‰ ‰. multiplexing/demultiplexing reliable data transfer flow control congestion control. ‰ istanziazione ed implementazione in Internet. Prossima volta:. ‰ lasceremo la soglia della rete (strati applicazione/trasporto) ‰ entreremo nel cuore della rete (strato di rete). ‰ UDP ‰ TCP. dott.ssa F. A. Lisi - Programmazione in Rete – Livello di trasporto (2/2). 22.

(23)

Riferimenti

Documenti correlati

•  L’individuazione degli interventi di difesa (strutturali, non strutturali, di manutenzione, ecc.) atti a ridurre il rischio idrogeologico nelle aree riconosciute

•  L’individuazione degli interventi di difesa (strutturali, non strutturali, di manutenzione, ecc.) atti a ridurre il rischio idrogeologico nelle aree riconosciute

Di umanesimo e rinascimento abbiamo già detto: sono in pratica due nomi per indicare la stessa epoca, con qualche piccola differenza. In sintesi questi sono i caratteri

la dimensione della finestra alla quale deve terminare la partenza lenta ed iniziare la prevenzione della

Il ritardo di coda, che è variabile da pacchetto a pacchetto, in quanto dipende dal numero di pacchetti che già stanno in attesa nella coda di trasmissione. Essendo la lunghezza

I risultati del confronto tra domanda e offerta hanno evidenziato l’efficienza della nuova viabilità adottata, consentendo di raggiungere tramite la rotatoria

In TCP in controllo della congestione avviene come segue: il mittente mantiene in una opportuna variabile (detta finestra di congestione) il numero di segmenti massimo che

1) in relazione al Concorso di progettazione per la ricostruzione del corpo centrale ex biblioteca della Stazione Zoologica Anton Dohrn – Napoli il soggetto