Sei sulla pagina 1di 34

Modelli analitici per lanalisi delle prestazioni del protocollo TCP

Laurea Specialistica in Ingegneria dei sistemi e delle tecnologie dellinformazione Prof. Franco Callegati

Modelli matematici del TCP


Le prestazioni del TCP vengono influenzata fondamentalmente da
Dinamica della finestra di trasmissione W(t) Processi di ritardo e perdita dei segmenti in rete
ACK duplicati e/o ACK mancanti

Un modello analitico del TCP deve descrivere questi processi fondamentali Lobiettivo e quello di valutare le prestazioni del protocollo
Velocit di trasmissione dei pacchetti da parte della sorgente TCP
2

Throughput e goodput
Throughput della connessione TCP
Quantit totale di informazioni trasmesse nellunit di tempo

Goodput della connessione TCP


Quantit di informazioni trasmesse con successo nellunit 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 unintera finestra (batch) Al termine di RTT arriva la conferma di ricezione
si pu iniziare a trasmettere la finestra successiva
#1 #2 #3

Si misura il throughput
Numero di segmenti trasmessi per RTT

S(t)=W(t)/RTT
3

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
4

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, in percentuale di p
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

Andamento della finestra


W segmenti trasmetti in un batch Al termine del batch
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(t)=6 W=W/2

W(t)=3

t T
6

Calcolo di W
Il numero N di segmenti trasmessi in T si calcola
Utilizzando linformazione sulla perdita 1 N= p In funzione della dimensione finestra
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 si ottiene


8 W= 3p
7

Throughput
Il throughput si calcola come rapporto fra
Numero di pacchetti trasmessi = 1/p Tempo totale di trasmissione T = W/2 RTT
1/ p 1 2/ p 1 3 S( p) = = = RTT W /2 RTT 8 /3p RTT 2 p

Modello per perdite aleatorie


Trasmissione a batch
Un batch per RTT di dimensioni pari a W

Delayed ACK
Un ACK ogni b pacchetti

Le perdite sono aleatorie


Indipendenti da segmento a segmento Indipendenti da batch a batch
W(t) W Quanti segmenti ho trasmesso le periodo Ai?

W=W/2 t Ai

Quanto dura mediamente il periodo Ai?


9

Modello per il throughput


Si studia landamento di CW(t) Due eventi determinano la contrazione di CW
Triple duplicate ACK (TD)
Reagisce con un Fast retransmit (si trascura la fase di fast recovery)

Scadenza del time-out (TO)


Ritrasmette con bacK-off esponenziale Riparte in congestion avoidance con W=W/2 (si trascura la fase di slow start)

Se AW ha valore finito bisogna tenere conto della relazione W = min(AW,CW) Si procede per approssimazioni successive:
Modello TD TD+TO TD+TO+AW
10

Modello TD
Yi = # i + Wi ! 1 " E [ ]= E [ ]+ E [ ]! 1 Y # W
Pr{ = k }= ( " p ) p ! E [ ]= 1 p # 1 #
k "1

E [Y ] = E [W ] + (1" p) p
W(t)

Wi
i

Wi-1
2 1 4 3 5 Yi

" i # E[" ] = E[W ] 2


t

1 2 b

RTT

Xi

Ai =

X i +1 j =1

# RTT

! " E[ A] = (E[ X ] + 1)! RTT


11

Il legame fra Y, X e W
Wi = W i"1 X i + 2 b
X i / b"1

E [W ] = 2 $ E [ X ] b #

E[X] =

b E[W ] 2

Yi =

*
k= 0

# W i"1 & X i W i"1 Xi # Xi & + k (b + ) i = b + b % "1( + ) i % $ 2 ' ' b 2 2b $ b

W i"1 X i # W i"1 & = Xi + %W i " "1( + ) i ' 2 2$ 2

& X i # W i"1 Yi = % + W i "1( + ) i ' 2$ 2

Wi =

W i"1 X i + 2 b

12

E[W]
Se Xi e Wi sono variabili aleatorie indipendenti
& E[X] # E[W ] E[X] # 3E[W ] & E[W ] E[Y] = + E[W ] "1( + E[) ] = "1( + % % ' ' 2 $ 2 2 $ 2 2 1" p bE[W ] # 3E[W ] & E[W ] E[W ] + = "1( + % ' p 4 $ 2 2

2+b 8 ( (1 ' p ) & 2 + b # E[W ] = + +$ ! 3b 3bp % 3b "

Se p << 1 allora 1-p 1 e 1/p >> 1 e

8 E[W ] ! 3bp
13

Throughput
E[ ] Y S ( p) = E [A]
b 2+b 2 ( b ( (1 ' p ) & 2 + b # E[ X ] = E [ ]= W + +$ ! 2 6 3p % 6 "
1" p + E [W ] p S( p) = = RTT # ( E[X] + 1)
2

2 1" p 2 + b 8 # (1" p) $ 2 + b ' + + +& ) % 3b ( p 3b 3bp 2 $ ' 2+b 2 # b # (1" p) $ 2 + b ' RTT # & + +& ) + 1) & 6 ) % 6 ( 3p % (

Se p << 1 allora

S ( p) !

1 p 1 = RTT 2b 3 p RTT

3 2bp
14

Modello TD+TO
W(t)

A1

A2

A3

T0

2T0

1 S ( p) ! RTT 2b 3 p + T0 min(1,3 3bp 8 ) p (1 + 32 p 2 )

15

Quando W limitata da AW (TD+TO+AW)


W(t) Wmax=AW

U1 A1

V1

& Wmax # 1 ! S ( p ) ' min$ , 2 ! $ RTT RTT 2b 3 p + T min(1,3 3bp 8 ) p (1 + 32 p ) 0 % "

16

Esempio

17

Influenza di RTT

18

Influenza di AW

19

Influenza di RTO

20

Valutazione della latenza


L = tf - ti Latenza = tempo che intercorre fra
ti = istante in cui il client inizia una connessione TCP tf = Istante in cui i dati richiesti sono completamente ricevuti

Ipotesi semplificative
W limitata solamente da CW del trasmettitore Assenza di ritrasmissioni Overhead dovuto alle intestazioni trascurabile File costituito da un numero intero di MSS I segmenti che non trasportano dati, relativi a richieste e riscontri, hanno tempi di trasmissione trascurabili

Notazioni
P (bit): dimensione del file di dati (pagina web) da trasferire S (bit): MSS R (bit/s): velocit di trasmissione dal server al client
21

Latenza minima
Nel caso in cui non ci sia limitazione al flusso dati dovuta al protocollo a finestra
Occorre un RTT per iniziare la connessione TCP Trascorso un RTT viene inviata la richiesta delloggetto Dopo 2 RTT il client comincia a ricevere i dati richiesti I dati vengono ricevuti per un periodo O/R

Limite inferiore (lower bound) per la latenza: Lmin = 2 RTT + P/R In generale L Lmin

P/R

RTT RTT

22

Finestra statica di congestione


Indichiamo con W la dimensione fissa della finestra del server
Quando il server riceve la richiesta del client parte inviando W segmenti Successivamente invia un segmento per ogni riscontro ricevuto

Occorre considerare due casi:


W S/R RTT + S/R
il server riceve il primo riscontro prima di aver terminato la trasmissione della finestra

W S/R < RTT + S/R


il server termina la trasmissione della finestra prima di aver ricevuto il riscontro

23

W S/R RTT + S/R


I segmenti continuano ad essere trasmessi a velocit R fino a che loggetto non stato completamente trasmesso La latenza uguale a quella minima L1 = Lmin = 2 RTT + P/R
RTT
Esempio con W=6

S/R RTT WS/R P/R


24

W S/R < RTT + S/R


Inviata una finestra il server deve arrestarsi per aspettare il riscontro
Quando arrivano i riscontri viene trasmessa una nuova finestra

Il server si pu trovare
nello stato di trasmissione nello stato di attesa di riscontro

Numero di finestre per trasmettere loggetto


se non intero si arrotonda allintero pi vicino

K = P/(WS) Il server in attesa nellintervallo tra la trasmissione di due finestre consecutive e quindi per K-1 volte Durata dellintervallo di attesa TA = RTT - (W-1) S/R
25

Calcolo della latenza


La latenza risulta L2 = 2 RTT + P/R + (K-1) TA = 2 RTT + P/R + (K-1) [RTT-(W-1)S/R] = 2 RTT + P/R + (K-1) [S/R+RTT-WS/R]
La latenza cresce
Se K aumenta
finestra piccola molte trasmissioni

W=2

RTT RTT S/R RTT WS/R


26

Se RTT grande rispetto a S/R


molto tempo perso

La latenza tende al valore ottimo se


K=1
Una sola finestra contiene tutto il blocco dati

S/R WS/R RTT

(W-1)S/R RTT
Torno al caso precedente

Finestra dinamica di congestione


Il server utilizza inizialmente lo Slow Start
La connessione inizia con W = CW =1 Ad ogni riscontro W = W+1
La finestra raddoppia ogni RTT Dopo k RTT si ottiene W = 2k-1

Quante finestre sono necessarie per trasmettere lintero oggetto? K = min { k : 20+21+.2k-1 P/S } = min{ k : 2k-1 P/S } = min{ k : k log2(1+P/S) }
27

Partenza lenta
Temporizzazione durante la partenza lenta
Intervalli di attesa grandi per k piccoli Intervalli di attesa nulli per finestre grandi k = finestra per cui 2k-1 S/R RTT + S/R Dalla finestra k terminano i tempi di attesa
28

RTT

S/R: prima finestra 2S/R: seconda finestra

4S/R: terza finestra 8S/R: quarta finestra

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}

29

Calcolo della latenza


Ha tre componenti:
2 RTT per la connessione e la richiesta P/R tempo di trasmissione delloggetto Somma dei tempi di stallo LD=2RTT+P/R+k=1..K-1 max{0,S/R + RTT- (S/R)2k-1}

Si osserva che lunica differenza dal caso con finestra statica e rappresentata dal termine (S/R)2k-1 che sostituisce WS/R

30

Numero massimo di tempi di stallo


Il tempo di stallo si riduce al crescere di k
Se K>>1 (oggetto grande) il tempo di stallo trascurabile
Il numero di tempi di stallo indipendente da P

Se K piccolo (oggetto piccolo) il tempo di stallo ha lespressione T1-T2

Per un oggetto di dimensione infinita il numero dei tempi di stallo vale


Q = max{k : RTT + S/R - (S/R)2k-1 0} = log2[1+RTT/(S/R)]+1

31

LD: espressione compatta


n = min[Q,K-1]
Numero di tempi di stallo da mettere in conto

LD = 2RTT+P/R+k=1n [S/R + RTT- (S/R)2k-1] = 2RTT + P/R + n [RTT+S/R] - (2n-1)S/R In quanto k=1,n2k-1=2n-1

32

Con e senza di controllo di congestione


Senza il controllo di congestione la latenza 2 RTT + P/R Rapporto tra le latenze: LD/Lmin 1+ n/[(P/R)/RTT + 2] Lo slow start ininfluente se RTT << P/R
il caso di un oggetto grande trasmesso su un link non congestionato

Nel web:
Oggetti piccoli su link spesso in congestione
La partenza lenta pu influire

33

Bibliografia
1. 2. V. Jacobson, Congestion avoidance and control, SIGCOMM 88, Stanford, 1988. M. Mathis, J. SempKe, J. Mahdavi, T. Ott, The macroscopic behavior of the TCP congestion avoidance algorithm, Computer Communication Review, Vol. 27, No. 3, 1997 J. Padhye, V. Firoiu, D. Towsley, J. Kurose, Modeling TCP trhoughput: a simple model and its empirical evaluation, ACM Sigcomm, 1998.

3.

34