Corso di Laurea in Informatica Prova Scritta di Reti di Calcolatori 9 luglio 2014 Consegnare l’elaborato non oltre 60 minuti dalla distribuzione del testo. Non è consentito l’uso di appunti, libri o lucidi. Nome: Cognome: Matricola: Esercizio 1. Un file di 10MB deve essere trasmesso da un elaboratore A ad un elaboratore B collegati da un canale punto-punto (eventualmente virtuale). Il processo di trasmissione termina quando lʼintero file è stato trasferito da A a B. Si assuma che: 1. il canale che collega A e B abbia Round Trip Time RTT = 100 ms, 2. il file sia trasmesso frammentato in pacchetti di 50KB ciascuno, 3. stabilire la comunicazione fra A e B comporti un overhead dovuto ad un handshake iniziale Thandshake = 2RTT 4. il ritardo di frammentazione del file è trascurabile (i.e. 0) e non vi sono ritardi di accodamento, 5. non si verificano errori durante la trasmissione. Calcolare la latenza di trasferimento del file (i.e., il tempo totale Ttot necessario a trasferire il file da A a B) nei seguenti 2 casi: a) lʼampiezza di banda del canale è BW = 100Mbps e i pacchetti di dati possono essere inviati uno dopo lʼaltro, senza attendere alcun acknowledgment; b) lʼampiezza di banda del canale BW = ∞ ed i pacchetti vengono trasmessi con il meccanismo chiamato “slow-start” in intervalli di 1 RTT. Quindi la trasmissione dei pacchetti procede secondo la progressione: handshake, 1 pacchetto, nel 1º RTT 2 pacchetti, nel 2º RTT 4 pacchetti, nel 3º RTT 8 pacchetti, e così via fino alla trasmissione del'intero file. Risposta a) Per definizione L = RdP + RdT + Q. Possiamo assumere Q = 0 in virtù dellʼipotesi 4. Calcoliamo il RdP. Per definizione RdP = distanza/velocità della luce, che non sono note, ma è noto lʼRTT; poichè sappiamo che l'RTT = 2RdP possiamo calcolare l' RdP = RTT/2 = 50ms; questo ritardo si applica allʼintero file, dato che la frammentazione è a costo 0 e in questo caso non si attendono acknowledgments ai pacchetti prima di trasmettere (e quindi è come se si trasferisse un unico oggetto di 10MB). Poichè il nostro file deve essere tramesso frammentato in pacchetti di 50KB, calcoliamo il numero di frammenti N da trasmettere: N = 10MB/50KB = 10 x 220 x 23b / 50 x 210 x 23b = 210/5 = 1024/5 = 204.8 Pertanto il file di 10 MB verrà trasmesso utilizzando un totale di 205 pacchetti, 204 dei quali avranno dimensione 50KB e l'ultimo avrà dimensione pari a 8/10 di 50KB, cioè 40KB. Calcoliamo ora l'RdT di ciascun frammento. Per definizione RdT = size/bandwidth, quindi l'RdT di ciascun frammento (RdTf) sarà: RdTf = 50KB/100Mbps = 5 x 10 x 210 x 23b/102 x 106bps = 5 x 213/10 x 106s = 213/(2 x 106)s = 212 x 10-6s = 4096µs Quindi il tempo necessario a trasmettere tutti i frammenti sarà Tfrags = RdTf x 204 + (8/10)RdTf = = (4096 x 204 + (8x4096/10))µs = 838860.8µs ≈ 0.84s e il tempo totale Ttot di trasmissione del file sarà Ttot = Thandshake + Tfrags + RdP = 200ms + 0.84s + 50ms = (0.2 + 0.84 + 0.05)s = 1.09s b) Il meccanismo di slow start comporta che i pacchetti vengano trasmessi come segue: handshake, 1 pkt, RTT, 2 pkts, RTT, 4 pkts, RTT, 8 pkts, RTT,…,RTT, 2npkts Dopo n RTT dallʼhandshake saranno stati trasmessi un numero di pacchetti pari a Npkts = 1 + 2 + 4 + 8 + 16 + … + 2n = 20 + 21 + 22 + 23 +...+ 2n = 2n+1 - 1. Poiché nel nostro caso il file deve essere trasmesso frammentato in Nfrag = 205 pacchetti (cf. esercizio a) ed ogni pacchetto ha RdT = 0 (dato che in questo caso BW = ∞, RdT = size/BW si può assumere uguale a 0), occorreranno 7 RTT per trasmettere 205 pacchetti. Infatti, per n = 7 si possono trasmettere fino a 28-1 = 255 pacchetti, mentre in 6 RTT ne vengono trasmessi 27-1 = 127. Pertanto 205 – 127 = 78 pacchetti dovranno essere trasmessi nel 7º RTT ed impegneranno una porzione di quel RTT che contribuirà a determinare il valore Ttot. Si deve perciò calcolare la percentuale di questo RTT che sarà impegnata dalla trasmissione dei 78 pacchetti. Cioè si tratta di calcolare la proporzione 78/255 = x/100 => x = 7800/255 = 30.5882352941176. Questo risultato indica che circa il 30% del settimo RTT sarà usato per la trasmissione dei pacchetti rimanenti. Quindi, tenendo conto che la trasmissione del primo pacchetto è praticamente a costo 0 dato che BW = ∞, il tempo totale sarà: Ttot = (Thandshake + 6RTT + 30% RTT)ms = (200 + 6x100 + 30)ms = 830ms Esercizio 2. Due nodi, collegati da un canale lungo 4600km (D), eseguono il protocollo Automatic Repeat Request (ARQ), conosciuto anche come stop-and-wait. 1. Calcolare il ritardo di propagazione RdP unidirezionale per questo canale assumendo che la velocità della luce su di esso sia VdL = 2.3 x 108m/s. 2. Indicare un valore di timeout plausibile da utilizzare nell’esecuzione del protocollo ARQ. 3. Spiegare perchè, non ostante il timeout, sia ancora possibile che, in assenza di perdita di frame (sia dati che acknolwledgement), il timeout termini dopo la trasmissione di una frame ed il protocollo ARQ la ritrasmetta. Risposta: 1. Ritardo di propagazione unidirezionale: RdP = D/VdL = 4.6 x 103 x 103m / 2.3 x 108 m/s = 2 x 10-2 s = 0.02s 2. Poichè il round trip time RTT è uguale al doppio del RdP calcolato al punto 1, i.e. RTT = 0.04s, un valore di time-out plausibile potrebbe essere il doppio del RTT, cioè 0.08s. Valori inferiori, ma pur sempre maggiori del RTT, sono anche accettabili dipendentemente da quanto varia il RTT nel tempo. 3. RdP, da cui discende il valore del timeout scelto, non tiene conto di eventuali ritardi introdotti dal destinatario (p.e., dovuti a processing dell’informazione ricevuta, o al fatto che il destinatario è impegnato in esecuzioni che gli impediscono di trasmettere immediatamente l’acknowledgment previsto dal protocollo ARQ). Esercizio 3. Il campo Sequence Number nel protocollo TCP è di 32 bit e consente di identificare univocamente più di 4 miliardi di byte di dati. Quindi, in teoria è possibile che lo stesso numero di sequenza venga utilizzato più volte per identificare byte diversi trasmessi sulla medesima connessione. Anche se è improbabile che un numero così grande di byte venga trasmesso in una singola connessione, perché TCP consente che i numeri di sequenza possano ripetersi nell’intervallo [232 - 1; 0]? Risposta: in TCP, i numeri di sequenza in un trasferimento dati non iniziano da 0 ma da un valore casuale (generato all’interno dell’intervallo indicato nel testo dell’esercizio) per minimizzare la probabilità che un numero di sequenza di una nuova connessione sia confuso con quello ancora circolante di una connessione terminata (in modo sia normale sia anormale) che utilizzava lo stesso port# della nuova.
© Copyright 2024 ExpyDoc