• 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 [email protected] 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

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

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

•  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