Sei sulla pagina 1di 26
Politecnico di Milano A dvanced N etwork T echnologies Lab oratory Esercizi sul TCP

Politecnico di Milano

Advanced Network Technologies Laboratory

Esercizi sul TCP

Politecnico di Milano A dvanced N etwork T echnologies Lab oratory Esercizi sul TCP
Politecnico di Milano A dvanced N etwork T echnologies Lab oratory Esercizi sul TCP
Politecnico di Milano A dvanced N etwork T echnologies Lab oratory Esercizi sul TCP

Esercizio 1

Esercizio 1 Si consideri il collegamento in figura A C 1 =80 kbit/s τ 1 =10
Esercizio 1 Si consideri il collegamento in figura A C 1 =80 kbit/s τ 1 =10
Esercizio 1 Si consideri il collegamento in figura A C 1 =80 kbit/s τ 1 =10
Esercizio 1 Si consideri il collegamento in figura A C 1 =80 kbit/s τ 1 =10

Si consideri il collegamento in figura

A C 1 =80 kbit/s τ 1 =10 ms R1
A
C 1 =80 kbit/s
τ 1 =10 ms
R1

C 2 =?

B

τ 2 =?

A C 1 =80 kbit/s τ 1 =10 ms R1 C 2 =? B τ 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 C 2 e τ 2 nell’ipotesi che le lunghezze degli header siano trascurabili.

Soluzione 1

Soluzione 1 A C 1 =80 kbit/s τ 1 =10 ms R1 B C 2 =?
Soluzione 1 A C 1 =80 kbit/s τ 1 =10 ms R1 B C 2 =?
Soluzione 1 A C 1 =80 kbit/s τ 1 =10 ms R1 B C 2 =?
Soluzione 1 A C 1 =80 kbit/s τ 1 =10 ms R1 B C 2 =?

A

C 1 =80 kbit/s τ 1 =10 ms

Soluzione 1 A C 1 =80 kbit/s τ 1 =10 ms R1 B C 2 =?
R1
R1
B
B

C

2 =?

τ 2 =?

m ⎞ 1 RTT = ⎛ ⎜ m + τ 1 + + τ 1
m
1
RTT =
⎛ ⎜ m
+
τ
1
+
+
τ
1
2 ⎜
1
⎟ ⎟
C
C
1
2
2
m
RTT =
⎛ ⎜ m
2
+
τ
2
+
+
τ
⎟ ⎞
2
2 ⎜
1
2
C
C
1
2

Soluzione 1

Soluzione 1 B A C 1 =80 Kbit/s C 2 =? τ 1 =10ms τ 2
Soluzione 1 B A C 1 =80 Kbit/s C 2 =? τ 1 =10ms τ 2
Soluzione 1 B A C 1 =80 Kbit/s C 2 =? τ 1 =10ms τ 2
Soluzione 1 B A C 1 =80 Kbit/s C 2 =? τ 1 =10ms τ 2
B A C 1 =80 Kbit/s C 2 =? τ 1 =10ms τ 2 =?
B
A C 1 =80 Kbit/s
C 2 =?
τ 1 =10ms
τ 2 =?
R1
2 ⎛ ⎜ 8000
8000
16000
780
=
+
10
+
+
τ
⎟ =
220
+
+ 2
τ
2
2
80
C
C
2
2
2 ⎛ ⎜ 12000
12000
24000
1130
=
+
10
+
+
τ
⎟ =
320
+
+ 2
τ
2
80
C
C
2
2

2

⎜ 12000 12000 ⎞ 24000 1130 = + 10 + + τ ⎟ = 320 +

Soluzione 1

Soluzione 1 A C 1 =80 kbit/s τ 1 =10ms R1 B C 2 =? τ
Soluzione 1 A C 1 =80 kbit/s τ 1 =10ms R1 B C 2 =? τ
Soluzione 1 A C 1 =80 kbit/s τ 1 =10ms R1 B C 2 =? τ
Soluzione 1 A C 1 =80 kbit/s τ 1 =10ms R1 B C 2 =? τ

A

C 1 =80 kbit/s τ 1 =10ms

Soluzione 1 A C 1 =80 kbit/s τ 1 =10ms R1 B C 2 =? τ
Soluzione 1 A C 1 =80 kbit/s τ 1 =10ms R1 B C 2 =? τ
R1
R1
B
B

C

2 =?

τ 2 =?

8000 τ = 280 − 2 C 2 24000 ⎛ 8000 ⎞ ⎟ = 8000
8000
τ
=
280
2
C
2
24000
8000 ⎞ ⎟ =
8000
810 =
+
2 280
C
C
C
2
2
2
8000
C
=
= 32 kbit/s
2
250
8000
τ
=
280
= 30 ms
2
32

+ 560;

Esercizio 2

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

Si consideri il collegamento in figura

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

A

C

1

con ugual capacità nelle due direzioni A C 1 τ 1 R1 C 2 τ 2
con ugual capacità nelle due direzioni A C 1 τ 1 R1 C 2 τ 2

τ

1

R1
R1

C

2

τ

2

R2
R2

C

1

C

2

C

3

C

3

B

A C 1 τ 1 R1 C 2 τ 2 R2 C 1 ≤ C 2

τ

3

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

Esercizio 2 Si calcoli il tempo necessario a trasferire una sequenza di byte in arrivo dal
Esercizio 2 Si calcoli il tempo necessario a trasferire una sequenza di byte in arrivo dal
Esercizio 2 Si calcoli il tempo necessario a trasferire una sequenza di byte in arrivo dal
Esercizio 2 Si calcoli il tempo necessario a trasferire una sequenza di byte in arrivo dal

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

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

Soluzione 2 104 [kbit] equivalgono a 13000 [byte] che possono essere divisi in 52 segmenti da
Soluzione 2 104 [kbit] equivalgono a 13000 [byte] che possono essere divisi in 52 segmenti da
Soluzione 2 104 [kbit] equivalgono a 13000 [byte] che possono essere divisi in 52 segmenti da
Soluzione 2 104 [kbit] equivalgono a 13000 [byte] che possono essere divisi in 52 segmenti da

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

Soluzione 2 a) L L L RTT = + τ + 2 + τ + 2
Soluzione 2 a) L L L RTT = + τ + 2 + τ + 2
Soluzione 2 a) L L L RTT = + τ + 2 + τ + 2
Soluzione 2 a) L L L RTT = + τ + 2 + τ + 2

a)

L L L RTT = + τ + 2 + τ + 2 + τ
L
L
L
RTT = + τ +
2
+ τ +
2
+ τ
2
1
2
3
C
C
C
1
2
3
L
Se
4
≤ RTT
C
1
L
L
Ttot = (52 / 4) ⋅ RTT + (4 −1)
=
13RTT
+
3
C 1
C 1

Soluzione 2

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

a) Altrimenti: la trasmissione è continua e quindi

… 1 2 51 52 L Ttot = 51 + RTT C 1
1
2
51
52
L
Ttot
= 51
+ RTT
C
1

Soluzione 3

Soluzione 3 b) Il valore minimo della finestra che consente una trasmissione continua si calcola imponendo
Soluzione 3 b) Il valore minimo della finestra che consente una trasmissione continua si calcola imponendo
Soluzione 3 b) Il valore minimo della finestra che consente una trasmissione continua si calcola imponendo
Soluzione 3 b) Il valore minimo della finestra che consente una trasmissione continua si calcola imponendo
b) Il valore minimo della finestra che consente una trasmissione continua si calcola imponendo che
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:
⎡ C ⎛ L
L
L
1
L w =
+
+
+
+
+
RTT ≤ w
1
2
3
L
C
C
C
C
1
2
3
1
1
2
51
52

Esercizio 3

Esercizio 3 Si consideri il collegamento il figura tra i due host A e B. A
Esercizio 3 Si consideri il collegamento il figura tra i due host A e B. A
Esercizio 3 Si consideri il collegamento il figura tra i due host A e B. A
Esercizio 3 Si consideri il collegamento il figura tra i due host A e B. A

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

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

Soluzione 3

Soluzione 3 T=1000 [bit] / 1 [Mb/s] = 1 [ms] RTT = 6.2 [ms] + T
Soluzione 3 T=1000 [bit] / 1 [Mb/s] = 1 [ms] RTT = 6.2 [ms] + T
Soluzione 3 T=1000 [bit] / 1 [Mb/s] = 1 [ms] RTT = 6.2 [ms] + T
Soluzione 3 T=1000 [bit] / 1 [Mb/s] = 1 [ms] RTT = 6.2 [ms] + T

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 + 6 RTT
1 MSS
2 MSS
4 MSS
5 MSS
6 MSS
7 MSS
+ 6 RTT
+ 75 T + 6.2 [ms]
T transfer = 6.2[ms]
=130.6 [ms]
ACK ultimo MSS
Ultimi 75 MSS
Set up
Primi 25 MSS

Esercizio 4

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

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

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] (dall’istante di trasmissione del primo segmento all’istante di ricezione dell’ACK dell’ultimo segmento)?

(N.B. 1 byte = 8 bit, 1 kbyte = 1000 byte = 8000 bit)

A C 1 =25 kb/s

1 =15ms

τ

C 2 =50 kb/s τ 2 =15ms R2

C 3 =100 kb/s

3 =15ms

τ

8000 bit) A C 1 =25 kb/s 1 =15ms τ C 2 =50 kb/s τ 2
R1
R1
8000 bit) A C 1 =25 kb/s 1 =15ms τ C 2 =50 kb/s τ 2

B

8000 bit) A C 1 =25 kb/s 1 =15ms τ C 2 =50 kb/s τ 2

Soluzione 4

Soluzione 4 Calcoliamo un po’ di numeri: T 1 =200 x 8 [bit] / 25 [kbit/s]
Soluzione 4 Calcoliamo un po’ di numeri: T 1 =200 x 8 [bit] / 25 [kbit/s]
Soluzione 4 Calcoliamo un po’ di numeri: T 1 =200 x 8 [bit] / 25 [kbit/s]
Soluzione 4 Calcoliamo un po’ di numeri: T 1 =200 x 8 [bit] / 25 [kbit/s]
Soluzione 4 Calcoliamo un po’ di numeri: T 1 =200 x 8 [bit] / 25 [kbit/s]

Calcoliamo un po’ di numeri:

T 1 =200 x 8 [bit] / 25 [kbit/s] =64 ms, T 2 =½ T 1 =32 ms, T 3 = ½ T 2 = 16 ms

RTT= T 1 + T 2 +T 3 + 2(τ 2 +τ 1 +τ 3 )+ = 213.2ms

T setup = 2(Tack1 + Tack2 + Tack3) + 2(τ 2 +τ 1 +τ 3 ) = 112.4 ms

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

WT 1 > RTT

quindi

 

W > RTT/ T 1 =3,3

L’istante in cui la trasmissione diventa continua è

T c = T setup + 3 RTT =112.4 [ms] +649.6 [ms] = 752 [ms]

Soluzione 4

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

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

T c = T setup + 4 RTT + 3 T 1 = 1.15 [s]

Congestion avoidance 4 MSS
Congestion
avoidance
4 MSS

Esercizio 5

Esercizio 5 Una connessione TCP è usata per trasmettere un file da 39.5 [kbyte] utilizzando i
Esercizio 5 Una connessione TCP è usata per trasmettere un file da 39.5 [kbyte] utilizzando i
Esercizio 5 Una connessione TCP è usata per trasmettere un file da 39.5 [kbyte] utilizzando i
Esercizio 5 Una connessione TCP è usata per trasmettere un file da 39.5 [kbyte] utilizzando i

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 all’istante 3 [s] (tutti i

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

Si tracci l’andamento nel tempo di:

CWND

SSTHRESH

RCWND

Si calcoli il tempo di trasmissione del file

Soluzione 5

Soluzione 5 Conviene ragionare in numero di segmenti trasmessi Dimensione File (in MSS) = 39,5 [kbyte]
Soluzione 5 Conviene ragionare in numero di segmenti trasmessi Dimensione File (in MSS) = 39,5 [kbyte]
Soluzione 5 Conviene ragionare in numero di segmenti trasmessi Dimensione File (in MSS) = 39,5 [kbyte]
Soluzione 5 Conviene ragionare in numero di segmenti trasmessi Dimensione File (in MSS) = 39,5 [kbyte]

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 RCWND 25 TimeOut 20 17 18 SSTHRESH 16 15 10 8 CWND 4 4
30
RCWND
25
TimeOut
20
17
18
SSTHRESH
16
15
10
8
CWND
4
4
4
444
4
5
4
2
1
1
2
0
MSS

0123456789

Secondi

Tempo di trasferimento del file,

T=8.5s

Esercizio 6

Esercizio 6 Si consideri il collegamento in figura A C 1 τ 1 R1 C 2
Esercizio 6 Si consideri il collegamento in figura A C 1 τ 1 R1 C 2
Esercizio 6 Si consideri il collegamento in figura A C 1 τ 1 R1 C 2
Esercizio 6 Si consideri il collegamento in figura A C 1 τ 1 R1 C 2

Si consideri il collegamento in figura

A

C

1

Esercizio 6 Si consideri il collegamento in figura A C 1 τ 1 R1 C 2
Esercizio 6 Si consideri il collegamento in figura A C 1 τ 1 R1 C 2

τ

1

R1
R1

C

2

τ

2

B

il collegamento in figura A C 1 τ 1 R1 C 2 τ 2 B C

C

1

C

2

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

H LL , H IP , H UDP gli header dei livelli inferiori, IP e

UDP rispettivamente, si calcoli il tempo necessario

a trasferire il messaggio

Esercizio 6

Esercizio 6 A C 1 τ 1 R1 C 2 τ 2 B C 1 ≤
Esercizio 6 A C 1 τ 1 R1 C 2 τ 2 B C 1 ≤
Esercizio 6 A C 1 τ 1 R1 C 2 τ 2 B C 1 ≤
Esercizio 6 A C 1 τ 1 R1 C 2 τ 2 B C 1 ≤

A

C

1

Esercizio 6 A C 1 τ 1 R1 C 2 τ 2 B C 1 ≤
Esercizio 6 A C 1 τ 1 R1 C 2 τ 2 B C 1 ≤

τ

1

R1
R1

C

2

τ

2

B

Esercizio 6 A C 1 τ 1 R1 C 2 τ 2 B C 1 ≤

C

1

C

2

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

Soluzione 6 A C C B 1 2 τ τ 1 2 R1 ≤ C C
Soluzione 6 A C C B 1 2 τ τ 1 2 R1 ≤ C C
Soluzione 6 A C C B 1 2 τ τ 1 2 R1 ≤ C C
Soluzione 6 A C C B 1 2 τ τ 1 2 R1 ≤ C C
A C C B 1 2 τ τ 1 2 R1 ≤ C C 1
A
C
C
B
1
2
τ
τ
1
2
R1
≤ C
C 1
2
Numero di messaggi di
lunghezza massima:
⎢ M ⎥
n =
⎣ ⎢
m ⎦
Lunghezza ultimo
messaggio:
M
l
=
M
m
m

Soluzione 6

Soluzione 6 A B C 1 C 2 τ τ 1 2 R1 ≤ C C
Soluzione 6 A B C 1 C 2 τ τ 1 2 R1 ≤ C C
Soluzione 6 A B C 1 C 2 τ τ 1 2 R1 ≤ C C
Soluzione 6 A B C 1 C 2 τ τ 1 2 R1 ≤ C C
A B C 1 C 2 τ τ 1 2 R1 ≤ C C 1
A
B
C 1
C 2
τ
τ 1
2
R1
≤ C
C 1
2
a) Tempo di
trasferimento:
l
+
h
m
+
h
se
C
C
1
2
m
+
h
l
+
h
l
+ h
n
+
+
τ
+
1
2
C
C 1
C 1
2

Soluzione 6

Soluzione 6 A C C B 1 2 τ τ 1 2 R1 ≤ C C
Soluzione 6 A C C B 1 2 τ τ 1 2 R1 ≤ C C
Soluzione 6 A C C B 1 2 τ τ 1 2 R1 ≤ C C
Soluzione 6 A C C B 1 2 τ τ 1 2 R1 ≤ C C
A C C B 1 2 τ τ 1 2 R1 ≤ C C 1
A
C
C
B
1
2
τ
τ
1
2
R1
≤ C
C 1
2
l
+
h
m
+
h
a) Tempo di
trasferimento:
se
C 1
C 2
m
+ h
m
+ h
l
+ h
n
+
τ
+
+
1
2
C
C
C
1
2
2

Soluzione 6

Soluzione 6 A C 1 τ 1 R1 C 2 τ 2 B C 1 ≤
Soluzione 6 A C 1 τ 1 R1 C 2 τ 2 B C 1 ≤
Soluzione 6 A C 1 τ 1 R1 C 2 τ 2 B C 1 ≤
Soluzione 6 A C 1 τ 1 R1 C 2 τ 2 B C 1 ≤

A

C

1

Soluzione 6 A C 1 τ 1 R1 C 2 τ 2 B C 1 ≤

τ

1

R1
R1

C

2

τ

2

B

Soluzione 6 A C 1 τ 1 R1 C 2 τ 2 B C 1 ≤

C

1

C

2

m + h m + h b) Tempo di trasferimento: se ≤ 2 τ +
m
+ h
m
+ h
b)
Tempo di
trasferimento:
se
2
τ
+
2
C
C
1
2
m + h
+ n ⎛ ⎜ m + h
l + h
+
τ
+
⎟ +
1
2
2
C
C
C
1
2
2

Soluzione 6

Soluzione 6 A C C B 1 2 τ τ 1 2 R1 ≤ C C
Soluzione 6 A C C B 1 2 τ τ 1 2 R1 ≤ C C
Soluzione 6 A C C B 1 2 τ τ 1 2 R1 ≤ C C
Soluzione 6 A C C B 1 2 τ τ 1 2 R1 ≤ C C
A C C B 1 2 τ τ 1 2 R1 ≤ C C 1
A
C
C
B
1
2
τ
τ
1
2
R1
≤ C
C 1
2
m
+
h
m
+
h
b) Tempo di
trasferimento:
se
2
τ
+
2
C
C
1
2
m
+
h
l
+
h
l
+
h
n
+
+
τ
+
1
2
C
C
C
1
1
2