Esercizi su livello trasporto.

Transcript

Esercizi su livello trasporto.
1. Considerare il problema della stima del Round Trip Time. Supporre che
inizialmente RTT valga 200 ms. Il mittente invia un segmento e riceve l’ACK
relativo dopo 100 ms, quindi invia un altro segmento, che viene perso.
a.
Quanto deve aspettare almeno il mittente prima di ritrasmettere il
segmento perso?
b.
Allo scadere del timeout il segmento viene ritrasmesso. Quanto vale
RTT?
2. Si supponga che A stia trasmettendo a B due segmenti su una connessione TCP.
Il 1° segmento ha numero di sequenza 90, il 2° 110.
a.
Quanti dati si trovano nel primo segmento?
b.
Si supponga che il 1° segmento venga perso, ma il 2° arrivi a B. Nel
riscontro che B manda ad A, quale sarà il numero di riscontro?
3. Un nodo TCP trasmette un pacchetto da 200 byte con numero di sequenza 0. Il
ricevente ha 3200 byte liberi nel buffer di ricezione prima dell’arrivo del
pacchetto. Supponendo che il pacchetto rimanga nel buffer quando il ricevente
genera l’ACK, che numero di sequenza avrà l’ACK? Quale sarà la dimensione
della finestra di ricezione? Se MSS=200 bytes, quanti altri pacchetti può
trasmettere il mittente prima di dover aspettare un ACK?
4. Si consideri il trasferimento di un enorme file di L byte dall’host A all’host B.
Sia MSS pari a 1460 byte.
a.
Qual è il valore massimo di L tale che i numeri di sequenza non vengano
esauriti?
b.
Per il valore di L ottenuto si calcoli il tempo necessario per il
trasferimento del file. Si supponga un totale di 66 byte di intestazione
che vengono aggiunti prima della trasmissione del pacchetto su un link
a 10 Mbps. Si ignorino controllo del flusso e della congestione (A
trasmette i pacchetti a raffica).
5. Considerare la spedizione di un oggetto di dimensione O = 100 Kbyte da server
a client. Sia MSS = 536 byte e ritardo di propagazione d prop = 50 ms. Il
protocollo di trasporto usa finestre statiche di dimensione W. Siano le
intestazioni trascurabili e la connessione già aperta. Per una velocità di
trasmissione di 28 Kbps, determinare la latenza minima possibile.
Determinare la dimensione minima della finestra per la quale si raggiunge
questa latenza.
6. Tra un client C ed un server S è attiva una connessione TCP. C invia a S 18
Mbyte di dati e la trasmissione è regolata solamente dall’algoritmo per il
controllo del flusso. Il buffer di ricezione è di 4 Kbyte, inizialmente vuoto. La
banda trasmissiva è 100 Mbps, ed il ritardo di propagazione di 100 μsec. La
connessione è caratterizzata da MSS pari a 1024 byte, e SEQC=10. Le
intestazioni sono complessivamente di 60 byte.
a. Spiegare nel dettaglio i meccanismi alla base dell’algoritmo per il controllo del
flusso.
b. Supporre che S svuoti completamente il buffer quando questo è pieno, prima
di inviare l’ACK.
(1) Schematizzare con un grafico le prime due finestre di trasmissione,
evidenziano in particolare gli eventuali stalli.
(2) Specificare il contenuto del campo sequenza dei primi quattro pacchetti
da C a S e del campo RcvWin nei relativi ACK.
(3) Calcolare il tempo necessario per la trasmissione dei 18 Mbyte di dati.
(4) Calcolare utilizzo e throughput applicativo massimi.
7. Considerare il trasferimento di un file di 10 Mbyte su un canale di capacità 1
Gbps. La connessione TCP è caratterizzata da una finestra di ricezione
(controllo del flusso) pari a 1 Mbyte, MSS pari a 1 Kbyte, soglia iniziale di 4
Mbyte. Supporre che RTT (tempo tra l’inizio della trasmissione del primo
pacchetto della finestra ed il ricevimento dell’ACK relativo) sia costante e pari
a 200 msec. Supporre l’overhead di intestazione dei pacchetti trascurabile e
nessuna perdita di pacchetti. Trascurare l’apertura della connessione.
a. Quanti intervalli di durata uguale a RTT trascorrono prima che la partenza
lenta porti la finestra alla dimensione di 1 Mbyte?
b. Quanti intervalli di durata uguale a RTT sono necessari per trasferire il file?
c. Definendo il throughput come la quantità di byte trasferiti nell’unità di
tempo, qual è il throughput medio durante il trasferimento del file? Qual
è l’utilizzo del canale a regime, passata la fase di slow start?
8. Un nodo A chiede l’apertura di una connessione TCP ad un nodo B, trasferisce
su B 1797 Kbyte, quindi chiude la connessione. Il canale di comunicazione ha
velocità R pari a 10 Mbps, ritardo di propagazione pari a 2 msec. La
connessione è caratterizzata da MSS pari a 500 byte, overhead di intestazione
non trascurabile di 40 byte, finestra costante pari a 12 pacchetti (ignorare slow
start e congestion avoidance). Il ricevente conferma con un ACK ogni pacchetto
ricevuto correttamente e bufferizza i pacchetti ricevuti fuori ordine.
a. Schematizzare l’andamento dei pacchetti scambiati tra A e B dall’apertura
alla chiusura della connessione.
b. Quanti pacchetti e quanti byte (dati e controllo) vengono scambiati in totale
tra A e B durante la connessione?
c. Calcolare la durata della connessione.
d. Supporre che venga perso il 4° pacchetto dati inviato. Come varia il numero
di pacchetti scambiati durante la connessione?
e. Se il ricevente scartasse i pacchetti corretti ma fuori ordine, come
varierebbe il numero di pacchetti scambiati nel caso di perdita del 4°
pacchetto?
9.
Un client C apre una connessione TCP con un server S per il trasferimento su S di
2 Mbyte di dati, quindi chiude la connessione. La connessione TCP è caratterizzata
da MSS pari a 1024 byte, e sequenze iniziali SEQC=12500, SEQS=5000. Le
intestazioni sono di 70 byte. La banda trasmissiva è 1 Gbps, ed il ritardo di
propagazione 1 ms. La trasmissione è regolata dall’algoritmo per il controllo della
congestione, con soglia iniziale pari a 32 Kbyte.
a. Calcolare il numero totale di pacchetti scambiati tra i due nodi e schematizzare
lo scambio di pacchetti, dall’apertura alla chiusura della connessione,
evidenziando in particolare il numero di volte in cui la trasmissione va in
stallo.
b. L’implementazione di ACK ritardati, in questo caso, diminuisce il numero di
pacchetti trasmessi? Perché?
c. Specificare i numeri di sequenza contenuti nell’ultimo ACK inviato da S a C e
nell’ultimo pacchetto dati inviato da C a S.
d. Calcolare il tempo necessario per il trasferimento dei dati, dall’apertura alla
chiusura della connessione.
e. Fornire una stima del throughput applicativo medio, per tutta la durata della
connessione.
f. Calcolare throughput applicativo ed utilizzo nella decima finestra di
trasmissione.
g. Rappresentare graficamente l’andamento della finestra di congestione
(dimensione della finestra in funzione del round di trasmissione), supponendo
un evento di timeout sul 30° pacchetto.
10. Supporre che 2 host A e B utilizzino il protocollo TCP/IP e siano connessi
direttamente da una linea di comunicazione punto-punto avente velocità
variabile R e ritardo di propagazione d prop = 50 ms. A invia dati a B, e B invia
ad A un ACK per ogni segmento ricevuto. La trasmissione è priva di errori.
L’overhead totale di incapsulamento è di 50 byte (non trascurabile) e MSS è
pari a 536 byte. La finestra di trasmissione è pari a 6 segmenti.
a. Per quali valori di R il throughput a livello applicativo è limitato dalla
finestra di trasmissione?
b. Esiste un valore massimo per il throughput? Se sì, per quale valore di R
viene raggiunto?
11. Siano dati due host connessi da una rete a 64 Kbps e ritardo di propagazione d
prop = 100 ms. Tra i due host è attiva una connessione TCP, caratterizzata da
MSS=900 byte e overhead di incapsulamento non trascurabile. Si supponga
che l’host ricevente confermi con un ACK ogni pacchetto ricevuto
correttamente. Determinare per quale valore della finestra il valore del
throughput osservato a livello applicativo, è massimo.
12. Supporre che un host A chieda l’apertura di una connessione TCP ad un host B,
trasferisca da B un file di 2 Mbyte e quindi chiuda la connessione. Gli host sono
collegati direttamente da una linea di comunicazione punto-punto con
velocità R pari a 10 Mbps e ritardo di propagazione dprop = 100 ms. La finestra
di ricezione di A è pari a 128 Kbyte, MSS = 512 byte e l’overhead di
intestazione pari a 50 byte non trascurabile. La soglia iniziale è pari a 64
Kbyte.
a. Rappresentare graficamente l’andamento dei pacchetti scambiati tra A e B,
dall’istante di richiesta di connessione.
b. Calcolare la durata della connessione, in assenza di errori di trasmissione
c. Calcolare il throughput massimo misurato a livello applicativo
13. Un client ha un messaggio di 20 Kbyte da inviare ad un server utilizzando il
protocollo UDP.
a. Schematizzare il formato ed il contenuto del pacchetto UDP
b. Schematizzare l’andamento dei pacchetti scambiati tra client e server per
l’invio del messaggio
c. Quali meccanismi vengono implementati per garantire il controllo del
flusso e della congestione durante il trasferimento del messaggio?
14. Considerare una connessione TCP tra due nodi A e B, caratterizzata da MSS
pari a 1024 byte, soglia iniziale di 64 Kbye e overhead di intestazione non
trascurabile pari a 40 byte. A chiede l’apertura della connessione a B, riceve da
B 10000 pacchetti e conferma ogni pacchetto ricevuto correttamente con un
ACK. Il canale ha velocità pari a 100 Mbps e ritardo di propagazione pari a 20
msec.
a. Tracciare l’andamento dei pacchetti tra A e B, dall’apertura della
connessione.
b. Quanto dura la fase di slow start?
c. Qual è il massimo throughput misurato a livello applicativo?
d. Per quale valore della finestra di congestione si raggiunge tale valore?
e. Qual è il valore minimo del timeout che evita ritrasmissioni inutili?
f. Supporre che venga perso il decimo pacchetto dati e che tale evento sia
rilevato da un triplice ACK. Tracciare l’andamento dei pacchetti a seguito
di tale evento.
15. Considerare il trasferimento di un oggetto di 500 Kbyte da un nodo A ad un
nodo B tra cui è attiva una connessione TCP/IP caratterizzata da MSS = 1 Kbyte
e da finestre statiche. B conferma con un ACK il ricevimento di ogni pacchetto.
L’overhead di intestazione dei segmenti è non trascurabile. Il ritardo di
propagazione del canale è pari a 50 ms e la velocità di trasmissione è di 10
Mbps.
a. Calcolare il numero totale di pacchetti scambiati tra A e B per il
trasferimento dell’oggetto.
b. Calcolare la quantità di byte trasferita tra A e B per il trasferimento
dell’oggetto.
c. Calcolare la latenza minima possibile per il trasferimento dell’oggetto e la
dimensione minima della finestra per cui si raggiunge tale latenza.
d. Per il valore di finestra trovato, calcolare il throughput a livello applicativo
e l’utilizzo del canale.
e. Calcolare la variazione nel numero di pacchetti scambiati, nella quantità di
byte scambiati e nella latenza nel caso in cui B utilizzi ACK ritardati.
16. Si consideri una connessione TCP tra un client C ed un server S. Il client chiede
l’apertura della connessione al server, trasferisce da S un file di 5 Mbyte e
quindi chiude la connessione. La connessione è caratterizzata da MSS=512
byte, soglia iniziale per il controllo della congestione pari a 32 Kbyte. Il ritardo
di propagazione è pari a 5 msec e l’overhead di intestazione dei pacchetti è non
trascurabile e pari a 40 byte.
a. Schematizzare l’andamento dei pacchetti trasmessi dall’apertura alla
chiusura della connessione.
b. Quanti pacchetti dati sono necessari per il trasferimento del file da S a C?
c. Calcolare la capacità R (minima o massima?) del canale tale per cui si abbia
trasmissione continua (senza stallo) a partire dalla quarta finestra di
trasmissione.
d. Per tale valore di R, calcolare il throughput a livello applicativo.
e. Fissato R pari alla metà del valore trovato, calcolare il tempo totale per il
trasferimento del file dall’apertura della connessione alla sua chiusura.
f. Supponendo che il protocollo di trasporto sia TCP Reno, calcolare la
variazione nel tempo di trasferimento del file nel caso in cui venga perso
un pacchetto nella quarta finestra di trasmissione, e l’evento sia
riconosciuto tramite un triplice ACK.
17. Un nodo client apre una connessione TCP verso un nodo server, trasferisce sul
server un file di 460 Kbyte e quindi chiude la connessione. Il server genera un ACK
per ogni pacchetto ricevuto. MSS è pari a 1024 byte, le intestazioni dei pacchetti
sono di 65 byte non trascurabili e il canale e caratterizzato da banda di 100 Mbps,
lunghezza 2000 m e velocità di propagazione nel mezzo 2.8x108 m/sec. La
frequenza si trasmissione è regolata dall’algoritmo di controllo della congestione,
con soglia iniziale pari a 32 Kbyte.
a. Calcolare la quantità totale di byte necessari per il trasferimento, dall’apertura
alla chiusura della connessione.
b. Calcolare il tempo che intercorre dalla richiesta di apertura della connessione
alla chiusura della connessione.
c. Calcolare l’utilizzo medio del canale misurato su tutta la connessione.
d. Supporre che la perdita dell’ottavo pacchetto provochi un evento di timeout
(introdurre le ipotesi eventualmente necessarie)
(1) Specificare l’andamento della finestra di trasmissione di S in seguito a
tale evento
(2) Calcolare la variazione della quantità di byte trasmessi
(3) Calcolare la variazione nel tempo calcolato al punto b.
e. Calcolare il valore della banda tale per cui la trasmissione vada in stallo al
massimo 4 volte.
18. Si consideri il protocollo Go-Back-N con una finestra di trasmissione di 4 segmenti,
il tempo di trasmissione di ogni segmento è 5 μsec. Il tempo necessario per
ricevere l’ACK, terminata la trasmissione del segmento, è pari a 7 μsec, ed il
timeout scade dopo 14 μsec dalla fine della trasmissione del segmento. Si calcoli il
tempo necessario per trasmettere 8 segmenti, ipotizzando:
a. nessuna perdita di pacchetti
b. la perdita del sesto ACK
c. la perdita del sesto segmento