View Full Version : Selective Repeat
Ciao, spero molto che possiate aiutarmi ancora....ho un altro problema:
Supponiamo di dover inviare, tramite protocollo Selective Repeat, un file di dimensione 5 KB ad un secondo host. Sia l'ampiezza di banda del collegamento pari a 10 Mbps, MSS=512 byte e RTT=2 ms. Trascurando gli overhead di pacchetto e considerando una sliding windows statica e di dimensione 5MSS, qual'è il throughput della trasmissione in assenza di perdita di pacchetti?
Sol. facendo 5KB/MSS otteniamo che si devono spedire 10 segmenti, ed essendo la finestra pari a 5MSS segue che dobbiamo spedire 2 finestre. Il throughput della prima finestra è: 5MSS/(RTT + Tr) dove Tr è il tempo di trasmissione di un segmento. Il throughput della trasmissione si ottiene moltiplicando il risultato della precedente espressione per 2.
Ma cosa succede se viene perduto, ad esempio, il 3° segmento? Come faccio a trovare il throughput della trasmissione?
Forse mi basta aggiungere il tempo di timeout al risultato di prima? Non ho idea.....
nuovoUtente86
14-06-2010, 15:24
devi tener conto del teorema banda-ritardo e di come funziona il selective repeat.
devi tener conto del teorema banda-ritardo e di come funziona il selective repeat.
Per teorema banda-ritardo si intende la seguente espressione:
K x L >= R x RTT
dove: K è la dimensione della finestra, L la lunghezza dei pacchetti ed R la velocità di trasmissione del collegamento.
nuovoUtente86
14-06-2010, 16:02
è un teorema noto che avrebbero dovuto farti studiare.
Allora, la relazione banda-ritardo rappresenta la dimensione della finestra che utilizza al 100% il canale. Se la dimensione della finestra è minore della quantità banda-ritardo si spreca banda, in caso contrario c'è una potenziale perdita.
Tornando al problema trovo che banda-ritardo=10Mbps x 0,002 = 20000, mentre la dimensione della finestra è 5MSS= 20480 cioè maggiore del prodotto banda-ritardo, quindi vi è una perdita, in particolare dato che 20000/20480 = 4 pacchetti, abbiamo 1 perdita a finestra... ora so abbastanza bene come funziona il protocollo Selctive Repeat ma non capisco come fare a determinare il throughput della trasmissione. Qualche aiutino?
nuovoUtente86
14-06-2010, 20:34
occhio al ritardo vista dal TCP, non è 2 ms. Ragiona poi su come viene utilizzato il selective repeat dal TCP (anche se non esplicitamente indicato su quello dovrebbe basarsi l' esercizio) senza l' opzione S-ACK.
Propongo un'ultima soluzione:
1) Vengono trasmessi i segmenti 1,2,3,4,5. Tempo: t1=RTT + 5MSS/R
(dove R è la frequenza del collegamento)
2) Trascorso t1 vengono ricevuti gli ACK relativi ai pacchetti 1 e 2 e viene impostato il timer relativo al 3° segmento. Nel frattempo vengono trasmessi altri due segmenti: 6 e 7. Dopo 3 ms scade il timer: t2=3ms
3) Trascorso t2 viene trasmesso il 3° segmento. Tempo: t3=RTT + 1MSS/R
4) Dopo t3 arriva il riscontro del 3° segmento e vengono trasferiti i rimanenti segmenti (8,9,10). Tempo: t4=RTT+3MSS/R
Tempo totale = t1 + t2+ t3 + t4
throughput della trasmissione = 10 KB / Tempo totale
Facendo i calcoli mi viene 3,3 Mbps. Spero solo di essermi un pò avvicinato.....:muro:
nuovoUtente86
15-06-2010, 00:25
In linea generale hai ragionato bene, ma attento ad alcuni particolari:
1)rifai bene i conti
2)Il timer (in questo caso lo puoi approssivare al RTT visto dal livello TCP) viene impostato appena l' ultimo bit è stato inviato
3)La soluzione, di cui parli, nel primo post non è completamente corretta.
4)In questo tipo di esercizi si tiene conto dell' ultimo bit trasmesso (cosi come anche nel prodotto banda-ritardo) e non della ricezione dell' ultimo ack.
Quindi, quando scade il timer già sono stati inviati i pacchetti 4,5,6,7?
Facendo i calcoli di nuovo mi viene 6,7 Mbps...
nuovoUtente86
15-06-2010, 10:29
fai il diagramma dei tempi, considerando che ogni segmento giunge al destinatario in un tempo 1ms+tempo di trasmissione.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.