Sei sulla pagina 1di 34
Modelli analitici per l’analisi delle prestazioni del protocollo TCP Laurea Specialistica in Ingegneria dei sistemi

Modelli analitici per l’analisi delle prestazioni del protocollo TCP

per l’analisi delle prestazioni del protocollo TCP Laurea Specialistica in Ingegneria dei sistemi e delle

Laurea Specialistica in Ingegneria dei sistemi e delle tecnologie dell’informazione Prof. Franco Callegati

Modelli matematici del TCP

Modelli matematici del TCP • Le prestazioni del TCP vengono influenzata fondamentalmente da – Dinamica della

• 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

• L’obiettivo e quello di valutare le prestazioni del protocollo

– Velocità di trasmissione dei pacchetti da parte della sorgente TCP

2

Throughput e goodput

Throughput e goodput • Throughput della connessione TCP – Quantità totale di informazioni trasmesse nell’unità

• 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

#1 #2 #3 3
#1
#2
#3
3

Ipotesi di base

Ipotesi di base • Il trasmettitore ha infiniti dati da trasmettere – Invia praticamente sempre segmenti

• 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

Modello periodico • Il modello più semplice assume – Condizione di equilibrio e TCP in congestion

• 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

da W a W/2 • Ne consegue un andamento periodico a dente di sega della finestra

time

5

Andamento della finestra

Andamento della finestra • W segmenti trasmetti in un batch • Al termine del batch –

• 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)=6 W=W/2 W(t) X W(t)=3
W(t)=6 W=W/2
W(t)
X
W(t)=3

T

t

6

Calcolo di W

Calcolo di W • Il numero N di segmenti trasmessi in T si calcola – Utilizzando

• Il numero N di segmenti trasmessi in T si calcola

– Utilizzando l’informazione sulla perdita

N = 1p
N
= 1p

– In funzione della dimensione finestra

N W 2 + i = W 4 + ( W / 2 " 21)(
N W 2 + i = W 4 + ( W / 2 " 21)( W / 2) ! W 4 + W 8 = 3 W 8
=
#
W / 2 " 1
2
2
2
2
i
= 0

• Uguagliando le due espressioni si ottiene

W

W = 38 p

= 38p

7

Throughput

Throughput • Il throughput si calcola come rapporto fra – Numero di pacchetti trasmessi = 1/p

• Il throughput si calcola come rapporto fra

– Numero di pacchetti trasmessi = 1/p

– Tempo totale di trasmissione T = W/2 RTT

S ( p) =

RTT 1 / W p / 2 = RTT 1

2 8 / / 3 p p =

S ( p ) = RTT 1 / W p / 2 = RTT 1 2
1 3 RTT 2 p
1
3
RTT 2 p

8

Modello per perdite aleatorie

Modello per perdite aleatorie • Trasmissione a batch – Un batch per RTT di dimensioni pari

• 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 A i ? W=W/2 Quanto dura mediamente
W(t)
W
Quanti segmenti ho
trasmesso le periodo A i ?
W=W/2
Quanto dura mediamente
il periodo A i ?
t
A
i
9

Modello per il throughput

Modello per il throughput • Si studia l’andamento di CW(t) • Due eventi determinano la contrazione

• Si studia l’andamento 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

Modello TD Y i P r { # = # = i + k } =

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

[ Y ! ] = E E [ # [ # ] + ] = E

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

[ W p ] ! 1 E [ Y ] = E [ W ] +
W W(t) i (E ) α i W i-1 2 4 1 3 5 A
W
W(t)
i
(E
)
α
i
W
i-1
2
4
1
3
5
A i = #j = 1
X
i + 1
R T T " E [ A ] = [ X ] + 1 ! R T T
" i #
E [" ] = E [W ] 2
Y i
1
2
….
j
X
t
i
RTT
b

11

Il legame fra Y, X e W

Il legame fra Y, X e W W i = W i"1 X i / b
W i = W i"1 X i / b "1 2 + X b i
W i = W i"1
X i / b "1
2
+ X b i
E [W ] = 2 $ E [ X ]
#
E [ X ] = b
2 E [W ]
Y i =
*
% + k (b + ) i = b X i
#
W
i"1
W i"1
b
+ b 2b X i % # $ X b i " 1 ( & '
+ ) i
$ 2
# & '
b
2
#
= k X = 0 i W i"1
2
+ X 2 i % $
W i " W i"1
2
"
1 ( + ) i
&
'
Y i = X i % + W i " 1 ( + ) i
#
W
&
2 $
2
i"1
'
W i = W i"1
2
+ X b i

12

E[W]

E[W] Se X i e W i sono variabili aleatorie indipendenti E [ Y ] =

Se X i e W i sono variabili aleatorie indipendenti

E [Y ] = E [ X ] %

2

$

#

E [W ]

E [W ] " 1 ( + E [) ] = E [ X ] %

=

'

bE 4 [W ] # % $ 3 E 2 [W 2 ]

$

" 1

&

#

3 E [W ]

" 1 ( & ' + 2 E [W 2 ]

2

+

E [W ] + 1 " p

p

( & ' + E [W 2 ]

E[W ] = 23+bb + 8 ( (31bp' p ) + $%& 23+bb !"#

2

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

E [ W ] ! 3 b p 8

E[W ] ! 3bp8

13

Throughput

Throughput S ( p ) = EE [[ YA ]] E [ X ] = b

S

( p ) = EE [[YA]]

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

[

]

2

S ( p) = RTT 1 " p # ( E [ X ] +

p

1) =

8 # (1 " p)
8 # (1 " p)

$ 2 + b '

2

1 " p + 2 + b +

p

3b

3bp

% 3b (

 

$

RTT # &

 

2 + 6 b +

2 # b # (1 " p)

'

$ 2 + b ) ' 2 + 1 )

+ & %

6

(

3 p

% &

) (

+

E [W ]

+ &

)

Se p < < 1 allora

S

S ( p ) ! R T T 1 2 pb 3 p = R T
S ( p ) ! R T T 1 2 pb 3 p = R T

( p ) ! R T T 1 2pb 3 p = R T1 T 2bp3

S ( p ) ! R T T 1 2 pb 3 p = R T

14

Modello TD+TO

Modello TD+TO W(t) A A A t 1 2 3 T 0 2T 0 S (
W(t) A A A t 1 2 3 T 0 2T 0
W(t)
A
A
A
t
1
2
3
T 0
2T 0

S

( p ) ! R T T 2b 3 p + T0 m i n (11,3 3bp 8 ) p (1 + 32 p 2 )

S ( p ) ! R T T 2 b 3 p + T 0 m
S ( p ) ! R T T 2 b 3 p + T 0 m

15

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

Quando W è limitata da AW (TD+TO+AW) W(t) W max =AW t U 1 V 1
W(t) W max =AW t U 1 V 1
W(t)
W
max =AW
t
U 1
V 1

A 1

S

#

( p ) ' m i n $$ % & WR T T , R T T 2 b 3 p + T m i n (11,3 3 bp 8 ) p (1 + 32 p 2 ) !!"

max

' m i n $$ % & WR T T , R T T 2 b

0

' m i n $$ % & WR T T , R T T 2 b

16

Esempio

Esempio 17
Esempio 17

17

Influenza di RTT

Influenza di RTT 18
Influenza di RTT 18

18

Influenza di AW

Influenza di AW 19
Influenza di AW 19

19

Influenza di RTO

Influenza di RTO 20
Influenza di RTO 20

20

Valutazione della latenza

Valutazione della latenza • L = t f - t i ⇒ Latenza = tempo che

• L = t f - t i Latenza = tempo che intercorre fra

– t i = istante in cui il client inizia una connessione TCP

– t f = 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

Latenza minima • Nel caso in cui non ci sia limitazione al flusso dati dovuta al

• 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 dell’oggetto

– 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:

L min = 2 RTT + P/R

• In generale L L min

P/R RTTRTT
P/R
RTTRTT

22

Finestra statica di congestione

Finestra statica di congestione • Indichiamo con W la dimensione fissa della finestra del server –

• 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

W S/R ≥ RTT + S/R • I segmenti continuano ad essere trasmessi a velocità R

• I segmenti continuano ad essere trasmessi a velocità R fino a che l’oggetto non è stato completamente trasmesso

• La latenza è uguale a quella minima L 1 = L min = 2 RTT + P/R

RTT

Esempio con W=6

P/R

• La latenza è uguale a quella minima L 1 = L m i n =

S/R RTT WS/R

24

W S/R < RTT + S/R

W S/R < RTT + S/R • Inviata una finestra il server deve arrestarsi per aspettare

• 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 l’oggetto

– se non è intero si arrotonda all’intero più vicino

K = P/(WS)

• Il server è in attesa nell’intervallo tra la trasmissione di due finestre consecutive e quindi per K-1 volte

• Durata dell’intervallo di attesa T A = RTT - (W-1) S/R

25

Calcolo della latenza

Calcolo della latenza • La latenza risulta L 2 = 2 RTT + P/R + (K-1)

• La latenza risulta L 2 = 2 RTT + P/R + (K-1) T A = 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

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

(W-1)S/R RTT

Torno al caso precedente

RTT

RTT

S/R

RTT

WS/R

W=2 S/R WS/R RTT
W=2
S/R
WS/R
RTT

26

Finestra dinamica di congestione

Finestra dinamica di congestione • Il server utilizza inizialmente lo Slow Start – La connessione inizia

• 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 = 2 k-1

• Quante finestre sono necessarie per trasmettere l’intero oggetto? K = min { k : 2 0 +2 1 +….2 k-1 P/S } = min{ k : 2 k -1 P/S } = min{ k : k log 2 (1+P/S) }

27

Partenza lenta

Partenza lenta • Temporizzazione durante la partenza lenta Intervalli di attesa grandi per k piccoli RTT

• Temporizzazione durante la partenza lenta

Intervalli di attesa grandi per k piccoli

RTT
RTT

Intervalli di attesa nulli per finestre grandi

k’ = finestra per cui 2 k-1 S/R RTT + S/R

Dalla finestra k’ terminano i tempi di attesa

RTT + S/R Dalla finestra k’ terminano i tempi di attesa S/R: prima finestra 2S/R: seconda
RTT + S/R Dalla finestra k’ terminano i tempi di attesa S/R: prima finestra 2S/R: seconda
RTT + S/R Dalla finestra k’ terminano i tempi di attesa S/R: prima finestra 2S/R: seconda
RTT + S/R Dalla finestra k’ terminano i tempi di attesa S/R: prima finestra 2S/R: seconda

S/R: prima finestra

2S/R: seconda finestra

4S/R: terza finestra

8S/R: quarta finestra

28

Calcolo del tempo di stallo dopo la k-esima finestra

Calcolo del tempo di stallo dopo la k-esima finestra • Tempo che trascorre da quando il

• Tempo che trascorre da quando il server inizia a trasmettere la k-esima finestra a quando riceve il riscontro:

T 1 = S/R + RTT

• Tempo di trasmissione della k-esima finestra:

T 2 = (S/R) 2 k-1

• Tempo di stallo:

max{ 0, T 1 -T 2 } = max{ 0, S/R + RTT - (S/R) 2 k-1 }

29

Calcolo della latenza

Calcolo della latenza • Ha tre componenti: – 2 RTT per la connessione e la richiesta

• Ha tre componenti:

– 2 RTT per la connessione e la richiesta

– P/R tempo di trasmissione dell’oggetto

– Somma dei tempi di stallo

L D =2RTT+P/R+ Σ k=1

K-1

max{0,S/R + RTT- (S/R)2 k-1 }

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

30

Numero massimo di tempi di stallo

Numero massimo di tempi di stallo • Il tempo di stallo si riduce al crescere di

• 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 l’espressione T 1 -T 2

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

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

31

L D : espressione compatta

L D : espressione compatta • n = min[Q,K-1] – Numero di tempi di stallo da

• n = min[Q,K-1]

– Numero di tempi di stallo da mettere in conto

L D = 2RTT+P/R+Σ k=1n [S/R + RTT- (S/R)2 k-1 ] = 2RTT + P/R + n [RTT+S/R] - (2 n -1)S/R

• In quanto Σ k=1,n 2 k-1 =2 n -1

32

Con e senza di controllo di congestione

Con e senza di controllo di congestione • Senza il controllo di congestione la latenza è

• Senza il controllo di congestione la latenza è 2 RTT + P/R

• Rapporto tra le latenze:

L D /L min 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

Bibliografia 1. V. Jacobson, “Congestion avoidance and control”, SIGCOMM ’88, Stanford, 1988. 2. M. Mathis, J.

1. V. Jacobson, “Congestion avoidance and control”, SIGCOMM ’88, Stanford, 1988.

2. 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

3. J. Padhye, V. Firoiu, D. Towsley, J. Kurose, “Modeling TCP trhoughput: a simple model and its empirical evaluation”, ACM Sigcomm, 1998.

34