Sei sulla pagina 1di 26

Politecnico di Milano Advanced Network Technologies Laboratory

Esercizi sul TCP

Esercizio 1
Si consideri il collegamento in figura

C1=80 kbit/s 1=10 ms

R1

C2=? 2=?

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. Nella risposta, B utilizza messaggi con le stesse lunghezze. Calcolare C2 e 2 nellipotesi che le lunghezze degli header siano trascurabili.

Soluzione 1
A C1=80 kbit/s 1=10 ms R1 C2=? 2=? B

m1 m1 + 2 RTT1 = 2 + 1 + C C2 1 m2 m2 RTT2 = 2 C + 1 + C + 2 2 1

Soluzione 1
A C1=80 Kbit/s 1=10ms R1 C2=? 2=? B

8000 8000 16000 780 = 2 80 + 10 + C + 2 = 220 + C + 2 2 2 2 12000 12000 24000 1130 = 2 80 + 10 + C + 2 = 320 + C + 2 2 2 2

Soluzione 1
A C1=80 kbit/s 1=10ms R1 C2=? 2=? B

8000 2 = 280 C2 8000 8000 24000 = + 560; 810 = + 2 280 C2 C2 C2 8000 C2 = = 32 kbit/s 250 8000 2 = 280 = 30 ms 32

Esercizio 2
Si consideri il collegamento in figura
I link sono bi-direzionali con ugual capacit nelle due direzioni

C1

C2 R1

C3 R2

C1 C2 C3

Tra A e B attiva una connessione TCP gi a regime con MSS=250 [byte] Si assume che RCVWND sia minore della CWND e pari a 4 segmenti

Esercizio 2
Si calcoli il tempo necessario a trasferire una sequenza di byte in arrivo dal livello applicativo lunga 104 [kbit] (dallistante di trasmissione del primo segmento alla ricezione dellACK dellultimo). Si assuma
Lunghezza Header IP: HIP Lunghezza Header TCP: HTCP Lunghezza Header livelli inferiori: HLL Assenza di errori Nessun altro traffico in rete Lunghezza degli ACK trascurabile

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

Soluzione 2
104 [kbit] equivalgono a 13000 [byte] che possono essere divisi in 52 segmenti da 250 [byte] (MSS) Ciascun pacchetto (sul link) ha una lunghezza complessiva di
L=MSS+ HIP + HTCP + HLL

Soluzione 2
a)

L L L + 2 1 + + 2 2 + + 2 3 RTT = C3 C1 C2

Se 4

L RTT C1

L L Ttot = (52 / 4) RTT + (4 1) = 13RTT + 3 C1 C1

Soluzione 2
a) Altrimenti: la trasmissione continua e quindi
1 2 51 52

L Ttot = 51 + RTT C1

Soluzione 3
b) Il valore minimo della finestra che consente una trasmissione continua si calcola imponendo che il tempo T sia minore del tempo di trasmissione dei segmenti della finestra:

L RTT w C1
1 2

C1 L L L w = + 2 1 + + 2 2 + + 2 3 C L 1 C2 C3

51 52

Esercizio 3
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 MSS=1000 [bit] Lunghezza degli header di tutti i livelli trascurabile La connessione viene aperta da A e la lunghezza dei segmenti di apertura della connessione trascurabile La lunghezza degli ACK trascurabile SSTHRESH pari a 5 MSS

Soluzione 3
T=1000 [bit] / 1 [Mb/s] = 1 [ms] RTT = 6.2 [ms] + T = 7.2 [ms] La trasmissione discontinua fino a che WT < RTT, cio fino a che W=8
TX continua 1 MSS 2 MSS 4 MSS 5 MSS 6 MSS 7 MSS

Ttransfer = 6.2[ms] + 6 RTT Set up Primi 25 MSS

+ 75 T + 6.2 [ms] =130.6 [ms] Ultimi 75 MSS ACK ultimo MSS

Esercizio 4
Allistante 0 attivata una connessione TCP tra lhost A e lhost B. Si calcoli listante di tempo oltre il quale la trasmissione sul link 1 risulta continua, supponendo
header trascurabili link bidirezionali e simmetrici RCWND = 4000 [byte] e SSTHRESH = 400 [byte] dimensione segmenti MSS = 200 [byte] dimensione ACK=dimensione segmenti per apertura della connessione = 20 [byte] Connessione aperta dal terminale A

Quanto tempo occorre per trasferire un file da 2 [kbyte] (dallistante di trasmissione del primo segmento allistante di ricezione dellACK dellultimo segmento)?
(N.B. 1 byte = 8 bit, 1 kbyte = 1000 byte = 8000 bit)

C1=25 kb/s 1=15ms

R1

C3=100 kb/s C2=50 kb/s 3=15ms 2=15ms R2

Soluzione 4

Calcoliamo un po di numeri:

Il link 1 il collo di bottiglia, trasmissione continua sul link 1 quando: quindi


WT1 > RTT W > RTT/ T1=3,3

T1=200 x 8 [bit] / 25 [kbit/s] =64 ms, T2= T1 =32 ms, T3= T2= 16 ms RTT= T1+ T2+T3+ 2(2+1+3)+ = 213.2ms Tsetup = 2(Tack1 + Tack2 + Tack3) + 2(2+1+3) = 112.4 ms

Listante in cui la trasmissione diventa continua

Tc= Tsetup + 3 RTT =112.4 [ms] +649.6 [ms] = 752 [ms]

Soluzione 4
Il file da trasferire di 2 [kbyte], equivalenti a 10 MSS. Il tempo per trasferire 10 MSS :
Tc= Tsetup + 4 RTT + 3 T1 = 1.15 [s]

Congestion avoidance 4 MSS

Esercizio 5
Una connessione TCP usata per trasmettere un file da 39.5 [kbyte] utilizzando i seguenti parametri:
MSS=500 [byte] RTT = 500 [ms] timeout T1 = 2*RTT.

Si assuma che le condizioni iniziali delle finestre siano: RCWND = 12 [kbyte] SSTHRESH = 8 [kbyte] CWND = 500 [byte] E che inoltre: si verifichi un errore sulla connessione allistante 3 [s] (tutti i segmenti in trasmissione vengano persi) al tempo 4,5 [s] il ricevitore segnali RCWND = 2 [kbyte] Si tracci landamento nel tempo di: CWND SSTHRESH RCWND Si calcoli il tempo di trasmissione del file

Soluzione 5
Conviene ragionare in numero di segmenti trasmessi Dimensione File (in MSS) = 39,5 [kbyte] / 500 [byte] = 79 MSS Dobbiamo trovare il tempo necessario per trasferire 79 MSS RCWND = 12 [kbyte] / 500 [byte] = 24 MSS SSTHRESH = 8 [kbyte] / 500 [byte] = 16 MSS Time Out = 1 s

Soluzione 5
30 RCW ND 25

TimeOut
20 SSTHRESH MSS 15 16 17 18

10

8 CW ND 4 1 0 1 2 3 4 Se condi 2 5 6 7 8 9 4 4 4 4 4 4

5 1 0 2

Tempo di trasferimento del file, T=8.5s

Esercizio 6
Si consideri il collegamento in figura
A C1

C2 R1

C1 C2

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


a) 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 6
A C1

C2 R1

C1 C2

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


b) 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 6
A C1

C2 R1

C1 C2

Numero di messaggi di lunghezza massima: Lunghezza ultimo messaggio:

M n= m M l = M m m

Soluzione 6
A C1

C2 R1

C1 C2

l +h m+h a) Tempo di se trasferimento: C1 C2 m+h l +h l+h + + 1 + + 2 n C1 C1 C2

Soluzione 6
A C1

C2 R1

C1 C2

l +h m+h a) Tempo di se C1 C2 trasferimento: m+h m+h l +h + 1 + + + 2 n C1 C2 C2

Soluzione 6
A C1

C2 R1

C1 C2

m+h m+h b) Tempo di se 2 2 + C1 C2 trasferimento:

m+h l+h m+h + 1 + n C + 2 2 + C + 2 C1 2 2

Soluzione 6
A C1

C2 R1

C1 C2

m+h m+h b) Tempo di se 2 2 + C1 C2 trasferimento: m+h l +h l+h + + 1 + + 2 n C1 C1 C2