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