Prova di Esame - Rete Internet (ing. Giovanni Neglia)
Lunedì 7 Febbraio 2005, ore 15.00
NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette.
Cognome:___________________________________________________
Nome:______________________________________________________
Corso di laurea e anno:________________________________________
Matricola:___________________________________________________
Firma:______________________________________________________
Nota: Nel seguito si indicherà come Massima Dimensione dei Dati (MDD), la massima
dimensione del payload dati di un segmento TCP. Si ricorda che il segmento comprende
un header (di dimensione pari a 20 byte, salvo eventuali opzioni presenti) e un payload
contenente i dati provenienti dall’applicazione.
Quesito 1a Nella rete rappresentata nella figura sottostante client e server impiegano il
protocollo TCP per lo scambio di dati con MDD pari a 400 byte. La velocità della linea
è pari a 640 kbps ed il tempo di propagazione è pari a 10 ms.
640kbps
10ms
Si risponda ai seguenti quesiti, trascurando tutti gli header (IP e TCP).
a) Qual è il valore di finestra minimo (espresso in numero di segmenti) che
permette di impiegare con continuità il collegamento. Qual è la
corrispondente dimensione in byte?
b) Qual è il throughput ottenibile con una finestra pari a 1200 byte nello
stesso scenario? Qual è il throughput ottenibile con una finestra pari a
2500 byte nello stesso scenario? e nel caso in cui la velocità di
trasmissione del collegamento fosse infinita?
c) Considerando una finestra pari a 1000 byte e mantenendo la stesso valore
di MDD, calcolare il tempo necessario per il trasferimento di una pagina
web in cui la richiesta HTTP ha dimensione pari a 40 e la risposta,
inclusa la pagina web, ha dimensione pari a 4300 byte.
d) Qual è la dimensione minima della finestra, espressa in byte, che
permette di impiegare con continuità il collegamento, qualora si
considerino anche gli header IP (20 byte) e TCP (20 byte) e si mantenga
lo stesso valore di MDD? È maggiore o minore del corrispondente valore
calcolato nel punto a)?
Soluzione
a) Da W*MDD = C * RTT + MDD
si ottiene W = C*RTT/MDD + 1 = 640 * 103 * 20 * 10-3 / (8*400) + 1 = 5 segmenti.
La dimensione in byte è pari a 5*400 = 2000 byte.
b) Se con una finestra di 2000 byte si impiega con continuità la linea, con una finestra
pari a 1200 byte si potrà impiegare la linea per una frazione di tempo pari a 1200/2000
= 3/5 del totale, quindi si trasmette con un throughput medio pari a 3/5 * 640 kbps =
384kbps.
Con una finestra pari a 2500 byte non si ottiene alcun vantaggio nello scenario in
questione, quindi il throughput sarà sempre di 640 kbps. Nel caso in cui la velocità di
trasmissione del collegamento fosse infinita, il massimo throughput sarebbe pari a
2500*8/(20*10-3) = 1 Mbps.
c) Dimensione della richiesta: GSIZE = 40 byte,
Dimensione della risposta: RSIZE = 4300 byte,
Dimensione della finestra: WSIZE = 1000 byte,
Tempo di recupero della pagina: RT
RT = 2 RTT + GSIZE/C + RSIZE/C + | RSIZE/WSIZE-1 | * (RTT-(WSIZE-MDD)/C)
d) In tal caso la dimensione massima del pacchetto sarà di 440 byte, di cui 400 byte di
dati applicativi (quelli che considera la finestra). Il canale sarà occupato anche dalla
trasmissione degli header, ma occorre sempre poter trasmettere 2000 byte
ininterrottamente. I 2000 byte corrispondono a 5 pacchetti, con un overhead totale
dovuto agli header pari a 5*40 = 200 byte, quindi occorre poter trasmettere
consecutivamente almeno 1800 byte di dati applicativi. Il valore della finestra è pari
proprio a 1800 byte.
Quesito 1b Nella rete rappresentata nella figura sottostante client e server impiegano il
protocollo TCP per lo scambio di dati con MDD pari a 800 byte. La velocità della linea
è pari a 960 kbps ed il tempo di propagazione è pari a 10 ms.
960kbps
10ms
Si risponda ai seguenti quesiti, trascurando tutti gli header (IP e TCP).
a) Qual è il valore di finestra minimo (espresso in numero di segmenti) che
permette di impiegare con continuità il collegamento. Qual è la
corrispondente dimensione in byte?
b) Qual è il throughput ottenibile con una finestra pari a 2400 byte nello
stesso scenario? Qual è il throughput ottenibile con una finestra pari a
4000 byte nello stesso scenario? e nel caso in cui la velocità di
trasmissione del collegamento fosse infinita?
c) Considerando una finestra pari a 1600 byte e mantenendo la stesso valore
di MDD, calcolare il tempo necessario per il trasferimento di una pagina
web in cui la richiesta HTTP ha dimensione pari a 40 e la risposta,
inclusa la pagina web, ha dimensione pari a 7500 byte.
d) Qual è la dimensione minima della finestra, espressa in byte, che
permette di impiegare con continuità il collegamento, qualora si
considerino anche gli header IP (20 byte) e TCP (20 byte) e si mantenga
lo stesso valore di MDD? È maggiore o minore del corrispondente valore
calcolato nel punto a)?
Soluzione
a) Da W*MDD = C * RTT + MDD
si ottiene W = C*RTT/MDD + 1 = 960 * 103 * 20 * 10-3 / (8*800) + 1 = 4 segmenti.
La dimensione in byte è pari a 5*800 = 3200 byte.
b) Se con una finestra di 3200 byte si impiega con continuità la linea, con una finestra
pari a 2400 byte si potrà impiegare la linea per una frazione di tempo pari a 2400/3200
= 3/4 del totale, quindi si trasmette con un throughput medio pari a 3/4 * 960 kbps =
720 kbps.
Con una finestra pari a 4000 byte non si ottiene alcun vantaggio nello scenario in
questione, quindi il throughput sarà sempre di 960 kbps. Nel caso in cui la velocità di
trasmissione del collegamento fosse infinita, il massimo throughput sarebbe pari a
4000*8/(20*10-3) = 1.6 Mbps.
c) Dimensione della richiesta: GSIZE = 40 byte,
Dimensione della risposta: RSIZE = 7500 byte,
Dimensione della finestra: WSIZE = 1600 byte,
Tempo di recupero della pagina: RT
RT = 2 RTT + GSIZE/C + RSIZE/C + | RSIZE/WSIZE-1 | * (RTT-(WSIZE-MDD)/C)
d) In tal caso la dimensione massima del pacchetto sarà di 840 byte, di cui 800 byte di
dati applicativi (quelli che considera la finestra). Il canale sarà occupato anche dalla
trasmissione degli header, ma occorre sempre poter trasmettere 3200 byte
ininterrottamente. I 3200 byte corrispondono a 4 pacchetti, con un overhead totale
dovuto agli header pari a 4*40 = 160 byte, quindi occorre poter trasmettere
consecutivamente almeno 3040 byte di dati applicativi. Il valore della finestra è pari
proprio a 3040 byte.
Quesito 1c Nella rete rappresentata nella figura sottostante client e server impiegano il
protocollo TCP per lo scambio di dati con MDD pari a 800 byte. La velocità della linea
è pari a 320 kbps ed il tempo di propagazione è pari a 40 ms.
320kbps
40ms
Si risponda ai seguenti quesiti, trascurando tutti gli header (IP e TCP).
a) Qual è il valore di finestra minimo (espresso in numero di segmenti) che
permette di impiegare con continuità il collegamento. Qual è la
corrispondente dimensione in byte?
b) Qual è il throughput ottenibile con una finestra pari a 1200 byte nello
stesso scenario? Qual è il throughput ottenibile con una finestra pari a
4500 byte nello stesso scenario? e nel caso in cui la velocità di
trasmissione del collegamento fosse infinita?
c) Considerando una finestra pari a 2000 byte e mantenendo la stesso valore
di MDD, calcolare il tempo necessario per il trasferimento di una pagina
web in cui la richiesta HTTP ha dimensione pari a 40 e la risposta,
inclusa la pagina web, ha dimensione pari a 8700 byte.
d) Qual è la dimensione minima della finestra, espressa in byte, che
permette di impiegare con continuità il collegamento, qualora si
considerino anche gli header IP (20 byte) e TCP (20 byte) e si mantenga
lo stesso valore di MDD? È maggiore o minore del corrispondente valore
calcolato nel punto a)?
Soluzione
a) Da W*MDD = C * RTT + MDD
si ottiene W = C*RTT/MDD + 1 = 320 * 103 * 80 * 10-3 / (8*800) + 1 = 5 segmenti.
La dimensione in byte è pari a 5*800 = 4000 byte.
b) Se con una finestra di 4000 byte si impiega con continuità la linea, con una finestra
pari a 1200 byte si potrà impiegare la linea per una frazione di tempo pari a 1200/4000
= 3/10 del totale, quindi si trasmette con un throughput medio pari a 3/10 * 320 kbps =
96kbps.
Con una finestra pari a 4500 byte non si ottiene alcun vantaggio nello scenario in
questione, quindi il throughput sarà sempre di 320 kbps. Nel caso in cui la velocità di
trasmissione del collegamento fosse infinita, il massimo throughput sarebbe pari a
4500*8/(80*10-3) = 450 kbps.
c) Dimensione della richiesta: GSIZE = 40 byte,
Dimensione della risposta: RSIZE = 8700 byte,
Dimensione della finestra: WSIZE = 2000 byte,
Tempo di recupero della pagina: RT
RT = 2 RTT + GSIZE/C + RSIZE/C + | RSIZE/WSIZE-1 | * (RTT-(WSIZE-MDD)/C)
d) In tal caso la dimensione massima del pacchetto sarà di 840 byte, di cui 800 byte di
dati applicativi (quelli che considera la finestra). Il canale sarà occupato anche dalla
trasmissione degli header, ma occorre sempre poter trasmettere 4000 byte
ininterrottamente. I 4000 byte corrispondono a 5 pacchetti, con un overhead totale
dovuto agli header pari a 5*40 = 200 byte, quindi occorre poter trasmettere
consecutivamente almeno 3800 byte di dati applicativi. Il valore della finestra è pari
proprio a 3800 byte.
Quesito 1d Nella rete rappresentata nella figura sottostante client e server impiegano il
protocollo TCP per lo scambio di dati con MDD pari a 400 byte. La velocità della linea
è pari a 240 kbps ed il tempo di propagazione è pari a 20 ms.
240kbps
20ms
Si risponda ai seguenti quesiti, trascurando tutti gli header (IP e TCP).
a) Qual è il valore di finestra minimo (espresso in numero di segmenti) che
permette di impiegare con continuità il collegamento. Qual è la
corrispondente dimensione in byte?
b) Qual è il throughput ottenibile con una finestra pari a 1200 byte nello
stesso scenario? Qual è il throughput ottenibile con una finestra pari a
2500 byte nello stesso scenario? e nel caso in cui la velocità di
trasmissione del collegamento fosse infinita?
c) Considerando una finestra pari a 800 byte e mantenendo la stesso valore
di MDD, calcolare il tempo necessario per il trasferimento di una pagina
web in cui la richiesta HTTP ha dimensione pari a 40 e la risposta,
inclusa la pagina web, ha dimensione pari a 3500 byte.
d) Qual è la dimensione minima della finestra, espressa in byte, che
permette di impiegare con continuità il collegamento, qualora si
considerino anche gli header IP (20 byte) e TCP (20 byte) e si mantenga
lo stesso valore di MDD? È maggiore o minore del corrispondente valore
calcolato nel punto a)?
Soluzione
a) Da W*MDD = C * RTT + MDD
si ottiene W = C*RTT/MDD + 1 = 240 * 103 * 40 * 10-3 / (8*400) + 1 = 4 segmenti.
La dimensione in byte è pari a 4*400 = 1600 byte.
b) Se con una finestra di 1600 byte si impiega con continuità la linea, con una finestra
pari a 1200 byte si potrà impiegare la linea per una frazione di tempo pari a 1200/1600
= 3/4 del totale, quindi si trasmette con un throughput medio pari a 3/4 * 240 kbps =
180 kbps.
Con una finestra pari a 2500 byte non si ottiene alcun vantaggio nello scenario in
questione, quindi il throughput sarà sempre di 240 kbps. Nel caso in cui la velocità di
trasmissione del collegamento fosse infinita, il massimo throughput sarebbe pari a
2500*8/(40*10-3) = 500 kbps.
c) Dimensione della richiesta: GSIZE = 40 byte,
Dimensione della risposta: RSIZE = 3500 byte,
Dimensione della finestra: WSIZE = 800 byte,
Tempo di recupero della pagina: RT
RT = 2 RTT + GSIZE/C + RSIZE/C + | RSIZE/WSIZE-1 | * (RTT-(WSIZE-MDD)/C)
d) In tal caso la dimensione massima del pacchetto sarà di 440 byte, di cui 400 byte di
dati applicativi (quelli che considera la finestra). Il canale sarà occupato anche dalla
trasmissione degli header, ma occorre sempre poter trasmettere 1600 byte
ininterrottamente. I 1600 byte corrispondono a 4 pacchetti, con un overhead totale
dovuto agli header pari a 4*40 = 160 byte, quindi occorre poter trasmettere
consecutivamente almeno 1440 byte di dati applicativi. Il valore della finestra è pari
proprio a 1440 byte.
Quesito 2 Relativamente al protocollo UDP
F il software UDP effettua la frammentazione dello stream dati proveniente
dall’applicazione
F con l’impiego associato del protocollo RTP viene garantita una velocità minima di
trasmissione
V può essere integrato dal protocollo RTP per il supporto della trasmissione di
contenuti multimediali
V nell’header UDP sono contenuti solo i campi con i numeri di porta, la checksum e la
lunghezza del datagram
F il protocollo UDP è orientato alla connessione
F ai fini del calcolo della checksum può essere trasmessa anche un’estensione
dell’header chiamata pseudoheader
V l’header UDP ha dimensione minore dell’header UDP
Quesito 3 Si raffiguri lo scambio (o uno dei possibili scambi) di segmenti tra un client e
un server, mostrando in particolare i valori dei flag SYN, ACK, FIN, ed il contenuto dei
campi sequence number, acknowledgement number, window. Si assuma:
• MDD pari a 200 byte;
• buffer presso client e server pari a 300 byte;
• che la finestra impiegata dal TCP sia quella di ricezione dichiarata dal
TCP remoto;
• che il tempo di trasmissione sia trascurabile rispetto al tempo di
propagazione (quindi la trasmissione consecutiva di un numero arbitrario
di segmenti si conclude sempre prima della ricezione dell’ack relativo al
primo segmento);
• che il client debba inviare una richiesta di 30 byte e il server risponda con
una risposta di 350 byte;
• lettura di tutti i dati del buffer da parte dell’applicazione server
immediata (non appena arrivano i dati);
• lettura di tutti i dati del buffer da parte dell’applicazione client solo dopo
l’invio dell’ack relativo al secondo segmento contenente dati ricevuto dal
server;
• numero di sequenza iniziale scelto dal client pari a 200, numero di
sequenza iniziale scelto dal server pari a 350.
Si suggerisce di ricostruire prima la sequenza di scambi sulla base della quantità di dati
da scambiare e del valore della finestra, e poi di completare con i flag e il contenuto dei
campi. Qualora non si riesca a ricostruire la sequenza si svolga l’esercizio assumendo
per il TCP una modalità di funzionamento stop&wait, ignorando quindi le finestre di
ricezione ed assumendo immediata la lettura dei dati da parte delle applicazioni.
CLIENT
SERVER
SYN
SYN, ACK
30 byte
FIN
200 byte
100 byte
200 byte
2° segmento dati
win = 100
300 byte
0 byte
win = 0
win = 300
50 byte
FIN
Si noti che dopo l’ack inviato dal client in corrispondenza del primo segmento dati
ricevuto, il server non potrà inviare dati, perché l’ack indica uno spazio disponibile nel
buffer pari a 100 byte ma ci sono già 100 byte in volo (cioè inviati, ma non ancora
confermati) nel secondo segmento.
CLIENT
SERVER
seq=200, ack=118,
win=300, SYN
seq=350, ack=201,
win=300,SYN, ACK
seq=201, ack=351,
win=300, ACK, FIN;
byte: 201-230
seq=351, ack=232,
win=300, ACK;
byte: 351-550
seq=232, ack=551,
win=100, ACK; byte: _
seq=551, ack=232,
win=300, ACK;
byte: 551-650
seq=232, ack=651,
win=0, ACK; byte: _
seq=232, ack=651,
win=300, ACK; byte: _
seq=651, ack=232,
win=300, ACK, FIN;
byte: 651-700
seq=232, ack=702,
win=300, ACK; byte: _
Quesito 4 Nel protocollo TCP relativamente al controllo degli errori
F vengono impiegati Negative ACKnowlege espliciti (NACK)
V è previsto che quando il timer associato ad un segmento scade, questo venga
ritrasmesso
V il mittente potrebbe non aver modo di distinguere la perdita di un pacchetto dalla
perdita dell’ack corrispondente
F il timeout di ritrasmissione viene stabilito all’inizio della connessione
V il timeout di ritrasmissione, in base all’algoritmo di Jacobson, aumenta all’aumentare
del RTT
V il timeout di ritrasmissione, in base all’algoritmo di Jacobson, aumenta all’aumentare
della congestione nella rete
Quesito 5 Definire il Persistent HTTP e il pipelining delle richieste HTTP ed indicarne i
vantaggi.
Quesito 6a Illustrare il problema della silly window e la relativa soluzione proposta da
Clark.
Quesito 6b Illustrare l’algoritmo di Nagle e il problema che questo cerca di risolvere.
Quesito 7 Nel caso di pipelining delle richieste HTTP perché è necessario specificare
nelle risposte la lunghezza del contenuto mediante l'
header Content-Length? non
potrebbe il client capire, per esempio, che la prima risposta è terminata quando riceve
l'
header della seconda risposta?
Scarica

Testi e soluzioni