Modelli matematici del TCP - Reti di Telecomunicazioni
Transcript
Modelli matematici del TCP - Reti di Telecomunicazioni
Modelli analitici per la valutazione delle prestazioni del protocollo TCP Prof. Carla Raffaelli A.A.2006-2007 Modelli matematici del TCP • Un modello analitico del TCP deve catturare due processi fondamentali: – Dinamica della finestra di trasmissione W(t) – Il processo di perdita che si genera all’interno della rete • Espressione della velocita’ istantanea di trasmissione dei pacchetti da parte della sorgente TCP: X(t)=W(t)/RTT 2 1 Throughput e goodput • Throughput della connessione TCP – Quantità totale di informazioni trasmesse nell’unità di tempo • Goodput della connessione TCP – Quantità di informazioni trasmesse con successo nell’unità di tempo • Non conta i segmenti trasmessi con errore o duplicati Goodput ≤ Throughput • Nei modelli di TCP più comuni il tempo è suddiviso in unità di dimensione RTT – In RTT viene trasmessa un’intera finestra (batch) – Al termine di RTT arriva la conferma di ricezione • si può iniziare a trasmettere la finestra successiva • Si misura il throughput – Numero di segmenti trasmessi per RTT S(t)=W(t)/RTT 3 Descrizione macroscopica • Trascuriamo la fase di partenza lenta – E’ molto breve • In un RTT la bit rate e’ w/RTT • La finestra aumenta di 1 ogni RTT fino all’evento di perdita – Sia W il valore della finestra quando si verifica la perdita – Il valore della finestra viene ridotto a W/2 • Se RTT e W sono costanti durante la connessione – Bit rate della connessione TCP=0.75 W/RTT 4 2 Modello periodico • Il modello più semplice assume – Condizione di equilibrio e TCP in congestion avoidance – Un ACK generato per ogni segmento correttamente ricevuto – Eventi di perdita periodici, con tasso p e periodo T • Causano la riduzione della finestra da W a W/2 • Ne consegue un andamento periodico a dente di sega della finestra in funzione del tempo w w/2 time 5 Ipotesi di base • Il trasmettitore ha infiniti dati da trasmettere – Invia praticamente sempre segmenti di dimensioni pari a MSS • I buffer di trasmissione e ricezione non limitano il comportamento del TCP – W viene limitato da CW e non da AW • Le prestazioni del TCP sono determinate dal protocollo a finestra in funzione della congestione in rete • Lo stato delle code nei router non si modifica in modo significativo durante il periodo oggetto di analisi – I ritardi non si modificano e RTT rimane circa costante • Si studia il throughput in congestion avoidance – Viene trascurata la durata delle fasi di slow start e fast recovery 6 3 Andamento della finestra • Schematizziamo il comportamento rispetto a RTT • W segmenti trasmessi in un RTT • Al termine di RTT – Si riceve ACK • W = W+1 – Non si riceve ACK • La finestra raggiunge il valore W • W viene dimezzato per effetto della congestione W = W/2 W(t) W=3 W=6 W=W/2 X t T 7 Calcolo di W • Il numero N di segmenti trasmessi in T si calcola come numero medio di segmenti trasmessi tra due eventi di perdita 1 – (a) N= p • In funzione della dimensione finestra si ha – (b) N= W / 2−1 i =0 W W 2 (W / 2 −1)(W / 2) W 2 W 2 3W 2 +i = + ≈ + = 2 4 2 4 8 8 • Uguagliando le due espressioni (a) e (b) si ottiene W= 8 3p 8 4 Throughput TCP • Il throughput si si calcola come rapporto fra – Numero di pacchetti trasmessi = 1/p – Tempo totale di trasmissione T = W/2 RTT S ( p) = 1/ p 1 2/ p 1 = = RTT W / 2 RTT 8 / 3 p RTT 3 2p 9 Modello del throughput TCP con perdite aleatorie • Trasmissione di w segmenti in RTT • Delayed ACK – Un ACK ogni b pacchetti • Le perdite sono aleatorie • Due eventi vengono utilizzati dal trasmettitore per ipotizzare la perdita di segmenti – Triple duplicate ACK (TD) • Reagisce con un Fast retransmit (si trascura la fase di fast recovery) – Scadenza di time-out (TO) • Ritrasmette con back-off esponenziale • Riparte in congestion avoidance con w=W/2 10 5 Perdite aleatorie: andamento della finestra • Occorre determinare – la durata del periodo Ai tra due eventi di perdita – Il numero di segmenti trasmessi in tale periodo W(t) W W=W/2 Ai t 11 Modello TD • Gli eventi di perdita vengono segnalati solo mediante 3 acknowledgment duplicati • Se un segmento va perduto vengono scartati tutti i segmenti della medesima finestra (modello a burst) • La finestra di congestione viene dimezzata • Ai = durata dell’i-esimo periodo di osservazione • αi= numero del segmento che va perduto • Yi = numero dell’ultimo segmento trasmesso quando si rileva la perdita • βi= numero di segmenti trasmessi nell’ultimo round • Xi numero del round in cui avviene la perdita • b numero di segmenti riconosciuti con un ack • p probabilita’ di perdita di segmento 12 6 Espressione di E[Y] Yi = α i + Wi − 1 Pr{α = k } = (1 − p ) k −1 E [Y ] = E[α ] + E [W ] − 1 E [α ] = 1 p p E [Y ] = E [W ] + (1 − p ) p Wi W(t) αi numero del segmento W i-1 2 perduto 2 1 4 3 1 2 Yi 5 …. j b Ai = RTT X i +1 RTT j =1 Xi βi E[ β ] = W 2 t E[ A] = (E[ X ] + 1) ⋅ RTT 13 Relazioni tra Y, X e W Wi = Yi = Wi −1 X i + 2 b X i / b −1 k =0 = Xi Yi = E [W ] = 2 ⋅ E [X ] b E[ X ] = b E[W ] 2 Wi −1 X W X Xi + k b + β i = b i i −1 + b i −1 + βi = 2 b 2 2b b Wi −1 X i W + Wi − i −1 − 1 + β i 2 2 2 Xi W Wi + i −1 − 1 + β i 2 2 14 7 E[W] Wi = Yi = Wi −1 X i + 2 b X i / b −1 k =0 E [W ] = 2 ⋅ E [X ] b Wi −1 X Wi −1 + k b + βi = i + Wi − 1 + β i 2 2 2 Se Xi e Wi sono variabili aleatorie indipendenti 2+b 8 ⋅ (1 − p ) 2+b E[W ] = + + 3b 3bp 3b 2 Se p << 1 allora 1-p ≈ 1 e 1/p >> 1 E[W ] ≈ 8 3bp 15 Throughput S ( p) = E[ X ] = E [Y ] E [A] b 2+b 2 ⋅ b ⋅ (1 − p) 2+b E [W ] = + + 2 6 3p 6 1− p + E [W ] p S ( p) = = RTT ⋅ (E[ X ] + 1) Se p << 1 allora 2 1− p 2 + b 8 ⋅ (1 − p ) 2+b + + + p 3b 3bp 3b RTT ⋅ 2+b 2 ⋅ b ⋅ (1 − p ) 2+b + + 6 3p 6 S ( p) ≈ 1 p 1 = RTT 2b 3 p RTT 2 2 3 2bp 16 8 Modello TD+TO W(t) A1 S ( p) ≈ A2 A3 t T0 2T0 1 RTT 2b 3 p + T0 min(1,3 3bp 8 ) p (1 + 32 p 2 ) 17 Quando W è limitata da AW (TD+TO+AW) W(t) W max=AW U1 V1 t A1 S ( p ) ≈ min Wmax 1 , RTT RTT 2b 3 p + T0 min(1,3 3bp 8 ) p (1 + 32 p 2 ) 18 9 Esempio RTT=0.25 - b=2 - T0=1 - AW=10 S (segmenti per unita'di tempo) 1000 Periodico TD TD+TO TD+TO+AW 100 10 1 0.1 1e-04 1e-03 1e-02 1e-01 1e+00 p 19 Influenza di RTT b=2 - T0=2RTT - AW=10 S (segmenti per unita'di tempo) 1000 RTT=0.125 RTT=0.25 RTT=0.5 RTT=0.75 100 10 1 0.1 1e-04 1e-03 1e-02 1e-01 1e+00 p 20 10 Influenza della limitazione della finestra AW RTT=0.25 - b=2 - T0=1 S (segmenti per unita'di tempo) 1000 AW=5 AW=10 AW=50 AW=100 100 10 1 0.1 1e-04 1e-03 1e-02 1e-01 1e+00 p 21 Influenza del Time out RTT=0.25 - b=2 - AW=10 S (segmenti per unita'di tempo) 1000 T0=0.5 T0=1 T0=2 T0=4 T0=8 100 10 1 0.1 1e-03 1e-02 1e-01 1e+00 p 22 11 Modello della latenza • Per latenza si intende il tempo che intercorre da quando il client inizia una connessione TCP a quando riceve completamente l’oggetto richiesto • Singolo link non in congestione • Ipotesi semplificative – Quantita’ di dati limitata solo dalla finestra di congestione del trasmettitore – Assenza di ritrasmissioni – Overhead di intestazione trascurabile – File costituito da un numero intero di MSS (Maximum segment size) – I segmenti relativi a richieste, riscontri hanno tempi di trasmissione trascurabili – La soglia iniziale nel meccanismo di controllo ha un valore che non viene mai raggiunto dalla finestra di congestione 23 Notazioni e osservazioni • O dimensione degli oggetti da trasferire in bit • MSS pari ad S bit • Velocita’ di trasmissione del link dal server al client R bit/s • Osservazioni generali nel caso in cui non ci sia limitazione della finestra: – Occorre un RTT per iniziare la connessione TCP – Trascorso un RTT viene inviata la richiesta dell’oggetto – Dopo 2 RTT il client comincia a ricevere i dati richiesti – I dati vengono ricevuti per un periodo O/R – Latenza totale: 2 RTT + O/R: e’ un limite inferiore poiche’ la procedura di partenza lenta prolunga la latenza 24 12 Finestra statica di congestione • Indichiamo con W la dimensione fissa della finestra del server – Quando il server riceve la richiesta dal client invia W segmenti al client – Successivamente invia un segmento nella rete per ogni riscontro che riceve dal client • Occorre considerare due casi: – WS/R>RTT +S/R il server riceve il primo riscontro prima di aver terminato la trasmissione della finestra – WS/R<RTT +S/R il server termina la trasmissione della finestra prima di aver ricevuto il riscontro 25 Caso 1 • Esempio con W=6 RTT S/R RTT WS/R O/R • I segmenti continuano ad essere trasmessi a velocita’ R fino a che l’oggetto non e’ stato completamente trasmesso • La latenza nel caso 1 e’ L1= 2 RTT +O/R 26 13 Caso 2 • W=2 RTT S/R WS/R RTT • Dopo la spedizione di una finestra il server deve arrestarsi per aspettare il riscontro • Il server si puo’ trovare o nello stato di trasmissione o nello stato di attesa di riscontro – Quando arrivano i riscontri viene trasmessa una nuova finestra 27 Calcolo della latenza nel caso 2 • K=O/WS numero di finestre per trasmettere l’oggetto; se non e’ intero si arrotonda all’intero piu’ vicino • Il server e’ in stato di attesa nell’intervallo tra la trasmissione di due finestre e quindi per K-1 volte – Durata dell’intervallo RTT-(W-1)S/R • L2 = 2 RTT+O/R+((K-1)[S/R+RTT-WS/R] 28 14 Finestra dinamica di congestione • Il server inizia con la finestra di congestione di un segmento e ad ogni riscontro la ingrandisce di un segmento – La finestra raddoppia ogni RTT • La finestra k-esima contiene 2k-1 segmenti • Calcolo del numero K di finestre che compongono l’oggetto: – K = min {k:20+21+….2k-1>=O/S} = min{k:2k-1>=O/S}= – min{ k : k >= log2(1+O/S)} • Il server rimane in stallo per valori piccoli della finestra 29 Diagramma temporale della finestra dinamica • Temporizzazione durante la partenza lenta RTT S/R:prima finestra 2S/R: seconda finestra 4S/R: terza finestra 8S/R: quarta finestra 30 15 Calcolo del tempo di stallo dopo la k-esima finestra • Tempo che trascorre da quando il server inizia a trasmettere la k-esima finestra a quando riceve il riscontro: – T1=S/R + RTT • Tempo di trasmissione della k-esima finestra: – T2=(S/R)2k-1 • Tempo di stallo: – max{0,T1-T2}= max{0,S/R + RTT- (S/R)2k-1} 31 Calcolo della latenza • Ha tre componenti: – 2 RTT per la connessione e la richiesta – O/R tempo di trasmissione dell’oggetto – Somma dei tempi di stallo • LD=2 RTT+O/R+Σk=1..K-1 max{0,S/R + RTT- (S/R)2k-1} • Si osserva che l’unica differenza dal caso con finestra statica e’ rappresentata dal termine (S/R)2k-1 che sostituisce WS/R 32 16 Calcolo del numero massimo di tempi di stallo • Si osserva che il tempo di stallo si riduce al crescere del numero di finestra a cui si riferisce – Se il numero di finestre necessarie a trasmettere l’oggetto e’ sufficientemente elevato (oggetto grande) il tempo di stallo si annulla. Il numero di tempi di stallo e’ indipendente dalla lunghezza dell’oggetto – Se il numero di finestre per trasmettere l’oggetto e’ piccolo (oggetto piccolo) il tempo di stallo non si annulla e ha l’espressione T1-T2 • Calcolo del numero di tempi di stallo per un oggetto di dimensione infinita – Q = max {k:RTT+S/R- (S/R)2k-1>=0} =[log2(1+RTT/(S/R)]]+1 33 LD: espressione compatta • Si pone P=min[Q,K-1] – Rappresenta il numero di tempi di stallo da mettere in conto • LD=2RTT+O/R+Σk=1,P [S/R + RTT- (S/R)2k-1] • Ponendo poi Σk=1,P2k-1=2P-1 si ottiene la seguente espressione in forma chiusa: LD=2RTT + O/R + P [RTT+S/R] - (2P-1)S/R • Per il calcolo della latenza occorre calcolare K e Q e porre P nella espressione 34 17 Confronto con il caso in assenza di controllo di congestione • Senza il controllo di congestione la latenza e’ 2 RTT + O/R • Rapporto tra le latenze: – LD/Lmin<= 1+ P/[(O/R)/RTT + 2] • Osserviamo che la partenza lenta non influenza significativamente la latenza se RTT << O/R – E’ il caso di un oggetto grande trasmesso su un link ad alta velocita’ non congestionato • Nel web: oggetti piccoli su link spesso in congestione – La partenza lenta influisce 35 Scenario 1 • • • • S=536 byte RTT=100 ms O=100kbyte Risulta che il numero di finestre necessarie per trasferire l’oggetto e’ K=8 • Si esaminino gli effetti del meccanismo di partenza lenta sulla latenza P Lmin= O/R + 2RTT 28.6 s 1 28.8 s 28.9 s 100 kbit/s 8s 2 8.2 s 8.4 s 1 Mbit/s 800 ms 5 1s 1.5 s 10 Mbit/s 80 ms 7 0.28 s 0.98 s R O/R 28kbit/s LD OSS: la partenza lenta influisce significativamente solo per alta velocita’ di trasmissione 36 18 Scenario 2 • S=536 byte • RTT=100 ms • O=5 kbyte (oggetto Lmin= R O/R P piccolo) O/R + 2RTT • Risulta che il numero di 28kbit/s 1.43 s 1 1.63 s finestre necessarie per 100 kbit/s 0.4 s 2 0.6 s trasferire l’oggetto e’ K=4 1 Mbit/s 40 ms 3 0.24 s • Si esaminino gli effetti 10 Mbit/s 4 ms 3 0.20 s del meccanismo di partenza lenta sulla latenza OSS: la partenza lenta influisce significativamente LD 1.73 s 0.76 s 0.52 s 0.50 s gia’ a 1 Mbit/s: il server va in stallo dopo ogni finestra 37 Scenario 3 • • • • S=536 byte RTT=1 s (elevato) R O=5 kbyte Risulta che il numero di 28kbit/s finestre necessarie per 100 kbit/s trasferire l’oggetto e’ K=4 1 Mbit/s • Si esaminino gli effetti del 10 Mbit/s meccanismo di partenza lenta sulla latenza P Lmin= O/R + 2RTT 1.43 s 3 3.4 s 5.8 s 0.4 s 3 2.4 s 5.2 s 40 ms 3 2.0 s 5.0 s 4 ms 3 2.0 s 5.0 s O/R LD OSS: la partenza lenta influisce significativamente anche a bassa velocita’ di trasmissione 38 19 Tempo di risposta su connessione HTTP • • • • Connessione HTTP non permanente Pagina base + M pagine referenziate Ipotesi: ciascuno degli M+1 oggetti contiene O bit Tempo di risposta – (M+1) {2RTT + O/R + P [RTT+S/R] - (2P-1)S/R} ovvero – (M+1) O/R +2(M+1)RTT + latenza dovuta alla partenza lenta del TCP per ciascuno degli M oggetti 39 Riepilogo • Abbiamo esaminato l’impatto sulla latenza della fase di attivazione della connessione TCP e della partenza lenta • Abbiamo osservato come nei diversi scenari la partenza lenta influenzi il ritardo end to end – La partenza lenta puo’ influenzare molto la latenza se gli oggetti sono piccoli e RTT e’ relativamente grande, situazione tipica del web 40 20 Bibliografia 1. 2. 3. J. Padhye, V. Firoiu, D. Towsley, J. Kurose, “Modeling TCP eno Performance: A simple Model and Its Empirical Validation, IEEE/ACM Transactions on Networking, Vol. 8, No. 2, Aprile 2000 (Modello TCP perdite aleatorie) M. Hassan, R. Jain, “High Performance TCP/IP Networking”, Pearson Prentice Hall, 2004. (Modello TCP perdite periodiche) J.F. Kurose, K. W. Ross, “Reti di Calcolatori e Internet”, Pearson Addison Wesley, Terza edizione, 2005. (Modello della latenza) 41 21