Lo strato di trasporto (2/2)
Testo completo
(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)
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