esercizi sul tcp - intranet deibhome.deib.polimi.it/filippini/teaching/rci/esercizi-tcp.pdf ·...

31
Politecnico di Milano Advanced Network Technologies Laboratory Esercizi sul TCP

Upload: nguyendien

Post on 21-Feb-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Politecnico di Milano Advanced Network Technologies Laboratory

Esercizi sul TCP

Notazioni, Unità di Misura

o  1 [byte] = 8 [bit] o  1 [kbyte] = 1000 [byte] = 8000 [bit] o  1 [Mbyte] = 8 [Mbit]

o  1 [ms] = 10-3 [s] o  1 [µs] = 10-6 [s] o  1 [ns] = 10-9 [s]

Esercizio 1 o  Si consideri la rete in Figura in cui tra l’host A e l’host B sia attivata una

connessione TCP. Si calcoli l’istante di tempo dall’attivazione della connessione oltre il quale la trasmissione sul link 1 risulta continua, supponendo n  header trascurabili n  link bidirezionali e simmetrici n  RCWND = 4000 byte e SSTHRESH = 400 byte n  dimensione segmenti MSS = 100 byte n  dimensione ACK = dimensione segmenti per apertura della connessione =

trascurabile o  Quanto tempo occorre per trasferire un file da 1 Kbyte sulla connessione TCP

sopra specificata (dall’istante di trasmissione del primo segmento all’istante di ricezione dell’ACK dell’ultimo segmento)?

o  (N.B. 1 byte = 8 bit, 1 Kbyte = 1000 byte = 8000 bit, 1Mb/s = 106 bit/s)

R

A B C1=40 Mb/s τ1=1 us

C2=80 Mb/s τ2=1 us

Soluzione 1

o  TX continua sul link 1 se: WT1>RTT, quindi W > RTT/T1

n  RTT = T1 + T2 + 4τ = 20 [µs] + 10 [µs] + 4 [µs] = 34 [µs] n  T1=100 x 8 [bit] / 40 [Mb/s] = 20 [µs]

o  W > RTT/T1 =1.7 o  TX continua sul link 1 dopo 1 RTT.

1

1

TX continua sul link 1

RTT RTT

2 3

2

4 5 6 7 8 9 10

1

1

1

TX continua sul link 1

RTT RTT

2 3

2

4 5 6 7 8 9 10

1

Soluzione 1

o  Il file è composto da n  1 [Kbyte] / 100 [byte] = 10 MSS

o  Il tempo totale di trasferimento è: n  T=RTT + 8 T1 + RTT + 4τ = 228 [µs]

1

1

TX continua sul link 1

RTT RTT

2 3

2

4 5 6 7 8 9 10

1

1

1

TX continua sul link 1

RTT RTT

2 3

2

4 5 6 7 8 9 10

1

Set-Up time

Esercizio 2 o  Si consideri il collegamento in figura

o  A vuole conoscere la capacità e il ritardo di propagazione del link 2 e allo scopo invia a B 2 messaggi di echo: M1 di lunghezza l1=1000 [byte], ed M2 di lunghezza l2=1500 [byte]; per ognuno di essi misura un Round-Trip-Time (RTT) pari a 780 [ms] e 1130 [ms] rispettivamente.

o  Nella risposta, B utilizza messaggi con le stesse lunghezze. Calcolare C2 e τ2 nell’ipotesi che le lunghezze degli header siano trascurabili.

R1

A B C1=80 kbit/s τ1=10 ms

C2=? τ2=?

Soluzione 2

R1

A B C1=80 kbit/s τ1=10 ms

C2=? τ2=?

⎟⎟⎠

⎞⎜⎜⎝

⎛+++=

⎟⎟⎠

⎞⎜⎜⎝

⎛+++=

22

21

1

22

22

11

1

11

2

2

ττ

ττ

Cm

CmRTT

Cm

CmRTT

Soluzione 2

R1

A B C1=80 Kbit/s τ1=10ms

C2=? τ2=?

22

22

22

22

2240003201200010801200021130

2160002208000108080002780

ττ

ττ

++=⎟⎟⎠

⎞⎜⎜⎝

⎛+++=

++=⎟⎟⎠

⎞⎜⎜⎝

⎛+++=

CC

CC

Soluzione 2

R1

A B C1=80 kbit/s τ1=10ms

C2=? τ2=?

ms

kbit/s

30328000280

322508000C

;560C8000

C80002802

C24000810

C8000280

2

2

222

22

=−=

==

+=⎟⎟⎠

⎞⎜⎜⎝

⎛−+=

−=

τ

τ

Esercizio 3 o  Si consideri il collegamento in figura

n  I link sono bi-direzionali con ugual capacità nelle due direzioni

o  Tra A e B è attiva una connessione TCP già a regime con MSS=250 [byte]

o  Si assume che RCVWND sia minore della CWND e pari a 4 segmenti

R1 R2

A B

321 CCC ≤≤

C1 τ1

C2 τ2

C3 τ3

Esercizio 3 o  Si calcoli il tempo necessario a trasferire una sequenza di

byte in arrivo dal livello applicativo lunga 104 [kbit] (dall’istante di trasmissione del primo segmento alla ricezione dell’ACK dell’ultimo). Si assuma n  Lunghezza Header IP: HIP

n  Lunghezza Header TCP: HTCP

n  Lunghezza Header livelli inferiori: HLL

n  Assenza di errori

n  Nessun altro traffico in rete

n  Lunghezza degli ACK trascurabile

o  Qual è il valore della finestra che consentirebbe di avere una trasmissione continua di pacchetti sul link 1?

Soluzione 3

PRIMA DOMANDA

o  104 [kbit] equivalgono a 13000 [byte] che possono essere divisi in 52 segmenti da 250 [byte] (MSS)

o Ciascun pacchetto (sul link) ha una lunghezza complessiva di n  L=MSS+ HIP + HTCP + HLL

Soluzione 3

33

22

11

2CL2

CL2

CLRTT τττ +++++=

Ttot = (52 / 4) ⋅RTT + (4−1) LC1

=13RTT +3 LC1

Se RTTCL41

Soluzione 3

RTTCL51Ttot1

+=

Altrimenti: la trasmissione è continua e quindi

… 1 2 51 52

Soluzione 3 SECONDA DOMANDA o  Il valore minimo della finestra che consente una

trasmissione continua si calcola imponendo che il tempo RTT sia minore del tempo di trasmissione dei segmenti della finestra:

… 1 2 51 52

1CLwRTT ≤ ⎥

⎤⎢⎢

⎡⎟⎟⎠

⎞⎜⎜⎝

⎛+++++= 3

32

21

1

1 222 τττCL

CL

CL

LCw

Esercizio 4 o  Si consideri il collegamento il figura tra i due host A e B. A deve

trasferire una sequenza di 100 segmenti di lunghezza massima usando TCP. Si calcoli il tempo necessario supponendo n  MSS=1000 [bit] n  Lunghezza degli header di tutti i livelli trascurabile n  La connessione viene aperta da A e la lunghezza dei segmenti

di apertura della connessione è trascurabile n  La lunghezza degli ACK è trascurabile n  SSTHRESH è pari a 5 MSS

Soluzione 4 o  T=1000 [bit] / 1 [Mb/s] = 1 [ms] o  RTT = 6.2 [ms] + T = 7.2 [ms] o  La trasmissione è discontinua fino a che WT

< RTT, cioè fino a che W=8

1 MSS 2 MSS 4 MSS 5 MSS 6 MSS 7 MSS

Ttransfer = 6.2[ms] + 6 RTT + 75 T + 6.2 [ms]

Set up Primi 25 MSS Ultimi 75 MSS ACK ultimo MSS

TX continua

=130.6 [ms]

Esercizio 5 o  All’istante 0 è attivata una connessione TCP tra l’host A e l’host

B. Si calcoli l’istante di tempo oltre il quale la trasmissione sul link 1 risulta continua, supponendo n  header trascurabili n  link bidirezionali e simmetrici n  RCWND = 4000 [byte] e SSTHRESH = 400 [byte] n  dimensione segmenti MSS = 200 [byte] n  dimensione ACK=dimensione segmenti per apertura della

connessione = 20 [byte] n  Connessione aperta dal terminale A

o  Quanto tempo occorre per trasferire un file da 2 [kbyte] (dall’istante di trasmissione del primo segmento all’istante di ricezione dell’ACK dell’ultimo segmento)? n  (N.B. 1 byte = 8 bit, 1 kbyte= 1000 byte = 8000 bit)

R1

A B C1=25 Kb/s τ1=15ms

C2=50 Kb/s τ2=15ms

R2

C3=100 Kb/s τ3=15ms

Soluzione 5

o  Calcoliamo un po’ di valori: n  T1=200 x 8 [bit] / 25 [kbit/s] =64 ms, T2=½ T1 =32 ms, T3= ½ T2= 16 ms n  RTT= T1+ T2+T3+ 2(τ2+τ1+τ3)+ (Tack1 + Tack2 + Tack3) = 213.2ms n  Tsetup = 2(Tack1 + Tack2 + Tack3) + 2(τ2+τ1+τ3) = 112.4 ms

o  Il link 1 è il collo di bottiglia, trasmissione è continua sul link 1 quando: n  WT1 > RTT

o  quindi n  W > RTT/ T1=3,3

o  L’istante in cui la trasmissione diventa continua è n  Tc= Tsetup + 3 RTT =112.4 [ms] +649.6 [ms] = 752 [ms]

Soluzione 5

o  Il file da trasferire è di 2 [kbyte], equivalenti a 10 MSS.

o  Il tempo per trasferire 10 MSS è: n  Tc= Tsetup + 4 RTT + 3 T1 = 1.15 [s]

Congestion avoidance 4 MSS

Esercizio 6 o  Una connessione TCP è usata per trasmettere un file da 39.5 [kbyte]

utilizzando i seguenti parametri: n  MSS=500 [byte] n  RTT = 500 [ms] n  timeout T1 = 2*RTT.

o  Si assuma che le condizioni iniziali delle finestre siano: n  RCWND = 12 [kbyte] n  SSTHRESH = 8 [kbyte] n  CWND = 500 [byte]

o  E che inoltre: n  si verifichi un errore sulla connessione all’istante 3 [s] (tutti i segmenti in

trasmissione vengano persi) n  al tempo 4,5 [s] il ricevitore segnali RCWND = 2 [kbyte]

o  Si tracci l’andamento nel tempo di: n  CWND n  SSTHRESH n  RCWND

o  Si calcoli il tempo di trasmissione del file

Soluzione 6

o  Conviene ragionare in numero di segmenti trasmessi

o  Dimensione File (in MSS) = 39,5 [Kbyte] / 500 [byte] = 79 MSS

o  Dobbiamo trovare il tempo necessario per trasferire 79 MSS

o  RCWND = 12 [Kbyte] / 500 [byte] = 24 MSS o  SSTHRESH = 8 [Kbyte] / 500 [byte] = 16

MSS o  Timeout = 1 s

Soluzione 6

o  Tempo di trasferimento del file, T=8.5s

0

5

10

15

20

25

30

0 1 2 3 4 5 6 7 8 9

Secondi

MSS

RCWND

SSTHRESH

CWND 44

2112 4

8

16 17 18

4 4 4 4 4

Timeout

Esercizio 7 o Si consideri il collegamento in figura

R1

A B

21 CC ≤

C1 τ1

C2 τ2

o  A deve trasferire un messaggio applicativo di M byte verso B utilizzando UDP n  Supponendo che la lunghezza massima dei

segmenti UDP sia di m byte (dati), e indicando con HLL, HIP, HUDP gli header dei livelli inferiori, IP e UDP rispettivamente, si calcoli il tempo necessario a trasferire il messaggio

Esercizio 7

R1

A B

21 CC ≤

C1 τ1

C2 τ2

o  A deve trasferire un messaggio applicativo di M byte verso B utilizzando UDP

n  Come in a) ma ipotizzando che sul link 2 sia attivo un protocollo di livello 2 riscontrato con meccanismo di ritrasmissione di tipo stop-and-wait (lunghezza degli ACK trascurabile)

Soluzione 7

R1

A B

21 CC ≤

C1 τ1

C2 τ2

o  Numero di messaggi di lunghezza massima: ⎥⎦

⎥⎢⎣

⎢=mMn

o  Lunghezza ultimo messaggio: ⎥⎦

⎥⎢⎣

⎢−=mMmMl

Soluzione 7

R1

A B

21 CC ≤

C1 τ1

C2 τ2

o  Tempo di trasferimento:

22

111

ττ ++

+++

++

Chl

Chl

Chmn

21

seChm

Chl +≥

+

Soluzione 7

R1

A B

21 CC ≤

C1 τ1

C2 τ2

222

11

ττ ++

++

+++

Chl

Chm

Chmn

21

seChm

Chl +≤

+o  Tempo di trasferimento:

Soluzione 7

R1

A B

21 CC ≤

C1 τ1

C2 τ2

22

22

11

2 τττ ++

+⎟⎟⎠

⎞⎜⎜⎝

⎛+

+++

+

Chl

Chmn

Chm

22

1

2 seChm

Chm +

+≤+

τo  Tempo di

trasferimento:

Soluzione 7

R1

A B

21 CC ≤

C1 τ1

C2 τ2

22

111

ττ ++

+++

++

Chl

Chl

Chmn

22

1

2 seChm

Chm +

+≥+

τo  Tempo di

trasferimento:

Alcune domande Una connessione TCP tra due end users direttamente collegati è caratterizzata dai seguenti parametri:

n  C = 10 Mb/s n  MSS = 100 byte n  RCWND = 4 MSS e RCWND<< CWND n  Propagation delay τ = 1ms

Dire qual è il ritmo medio di trasmissione (bit/s) della connessione TCP. Ripetere il conto nel caso in cui MSS=1000 byte

1) RTT= 100x8/107 + 2τ =2.08 ms T = 0.08 ms, da cui si ha che 4 T < RTT, per cui la trasmissione è discontinua. In questo caso la connessione TCP smaltisce 4 MSS per ogni RTT, per cui il rate medio sarà: R = 4 x 100 x 8 / RTT = 1,53 Mb/s (circa) 2) Nel secondo caso si ha invece: T = 0.8 ms per cui 4 x T = 3,2 ms, da cui 4 x T > RTT, quindi la trasmissione è continua e la connessione TCP sfrutta appieno la capacità del link. In conclusione, R = C = 10 Mb/s