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