Esercizio - Go-Back-N end-to-end su tre collegamenti
In questa pagina 7
Testo. Si trasmette un messaggio di KB, diviso in pacchetti di byte, dall'host A all'host B attraverso due router in serie: AR1 con Mbit/s e ms, R1R2 con Mbit/s e ms, R2B con Mbit/s e ms.
- Determinare il tempo totale di trasferimento (dalla trasmissione del primo byte alla ricezione dell'ultimo byte) se si usa GBN con finestra eseguito end-to-end a livello DLL. Ritardi di elaborazione e di coda e intestazioni trascurati; anche gli ACK hanno dimensione trascurabile.
- Ripetere il calcolo contando il tempo fino alla ricezione dell'ultimo ACK.
- Ripetere con .
Teoria usata: Protocolli ARQ - Stop-and-Wait, Go-Back-N e Selective RepeatARQ (Automatic Repeat reQuest) rende affidabile un collegamento che sbaglia: il ricevitore conferma (ACK) i frame ricevuti bene, il trasmettitore ritrasmette allo scadere del timeout. Servono timeout (contro il deadlock) e numeri di sequenza (contro i duplicati). Con $t_G=t_F+2\tau_p+t_A$ e probabilità di errore $p$: Stop-and-Wait $\rho=\frac{t_F(1-p)}{t_G}$; Go-Back-N con finestra $N\ge t_G/t_F$ $\rho=\frac{1-p}{1+(N-1)p}$; Selective Repeat $\rho=1-p$. Efficienza $\eta=\rho,I/F$. La finestra ottima è la capacità del tubo in pacchetti. In Selective Repeat esiste anche una lunghezza ottima del frame: con overhead $o$ e probabilità di errore sul bit $P_b$, $x_{ott}\simeq\frac o2+\sqrt{o/P_b}$ (frame più corti se il canale sbaglia di più).Protocolli ARQ - Stop-and-Wait, Go-Back-N e Selective Repeat →, Analisi delle prestazioni di reteLe prestazioni di una rete si misurano con tre famiglie di metriche: traffico (bitrate $R_0$ massimo del collegamento, throughput $S\le R_0$ dati consegnati con successo, goodput al livello applicazione), ritardo (end-to-end $d_{tot}=d_{proc}+d_{queue}+d_{trans}+d_{prop}$ con $d_{trans}=L/R$ e $d_{prop}=d/v$; jitter; RTT) e capacità del tubo (BDP $=R\cdot$ ritardo, bit che riempiono il collegamento), più l'affidabilità (PER, PDR, PLR). Il throughput di un percorso è quello del collegamento collo di bottiglia, $\min$ dei bitrate, ricordando che i collegamenti condivisi dividono la capacità.Analisi delle prestazioni di rete →, Tecniche ARQ - stop-and-wait, go-back-N e selective repeatL'ARQ (automatic repeat request) usa un codice che rivela gli errori e fa ritrasmettere i pacchetti sbagliati, con conferme ACK/NACK. Con $p=1-(1-P_{bit})^L$ la probabilità che un pacchetto sia errato, $t_P$ il tempo di pacchetto, $t_A$ quello dell'ACK e $\tau_P$ il ritardo di propagazione: stop-and-wait $S=\frac{t_P(1-p)}{t_P+t_A+2\tau_P}$; go-back-N $S=\frac{(1-p),t_P}{1+(N-1)p}$ con $N-1=\left\lceil\frac{2\tau_P}{t_P+t_A}\right\rceil$; selective repeat $S=(1-p)\frac{t_P}{t_P+t_A}$. Il numero medio di trasmissioni di un pacchetto è $\frac1{1-p}$.Tecniche ARQ - stop-and-wait, go-back-N e selective repeat →.
Dati
- Numero di pacchetti: , ciascuno di bit.
- Tempi di trasmissione:
- Propagazioni: , , ms.
Collo di bottiglia. È il collegamento con il tempo di trasmissione più lungo: il collegamento 1 ( ms, contro e ms). Gli altri due sono molto più veloci, quindi i pacchetti non si accumulano nei router: vuol dire che ogni pacchetto trova libero il collegamento successivo.
Che cos'è GBN end-to-end. La finestra conta i pacchetti inviati da A e non ancora confermati da B (ACK di B che torna ad A attraverso tutta la rete). Il tempo di andata e ritorno è quindi quello dell'intero percorso:
Passo 1: la trasmissione è continua?
Il mittente non deve mai fermarsi se l'ACK del primo pacchetto di una finestra arriva prima che il mittente abbia finito di inviarla: , con il tempo di trasmissione del collo di bottiglia.
- : ms: no. A invia pacchetti (in ms), poi resta fermo per i ms restanti prima che arrivi il primo ACK. Si lavora a finestre, una ogni .
- : ms: sì. Il primo ACK torna mentre A sta ancora trasmettendo la finestra: GBN si comporta come se non ci fosse alcun ARQ.
(1) , fino all'ultimo byte
Con : finestre complete (88 pacchetti); l'ultima ha pacchetti. Le finestre complete durano ms. Nell'ultima finestra non si attende alcun ACK: il pacchetto 90 parte dopo dall'inizio della finestra, e poi attraversa i tre collegamenti ():
(2) , fino all'ultimo ACK
Basta aggiungere il ritorno dell'ultimo ACK, ms: (Equivalente: , perché l'ultima finestra termina quando torna l'ACK del primo dei suoi due pacchetti più il tempo del secondo: .)
(3)
La trasmissione è continua: A invia i pacchetti uno dopo l'altro, ognuno occupando ms, per ms; poi l'ultimo pacchetto attraversa i tre collegamenti. Non servono finestre:
| Trasmissione continua? | Fino all'ultimo byte | Fino all'ultimo ACK | |
|---|---|---|---|
| no () | ms | ms | |
| sì () | ms | ms |
La finestra minima per la trasmissione continua è (si arrotonda per eccesso: con , , restano ms di pausa a ogni giro): con si ottiene il tempo minimo possibile ( più la propagazione); con si perdono ms in attese ().
Il grafico mostra per ogni finestra (con la stessa regola, finestre, l'ultima più corta): scende velocemente finché e poi si ferma al minimo ms. Aumentare oltre non serve.
Grafico interattivo: Tempo totale fino all'ultimo byte T(N) in ms del GBN end-to-end (K = 90 pacchetti, T1 = 5 ms, RTT = 26,1 ms): 595,3 ms con N = 4, 461,1 ms con N ≥ 6
Confronto con la soluzione ufficiale
Ufficiale: , e ms (con ultimo ACK per : ms). Coincidono tutti, anche confrontando con una simulazione a eventi del GBN end-to-end senza perdite.
Errori comuni
- Usare per la continuità il bitrate medio o il collegamento più veloce: conta il collo di bottiglia, qui il collegamento 1.
- Calcolare senza i tre tempi di trasmissione ( ms): si otterrebbe ms e sembrerebbe sufficiente, ma .
- Contare finestre da : , l'ultima ne ha solo due e non dura un RTT intero.
- Per usare ancora le finestre: l'ACK torna in tempo e la trasmissione è continua.
(Verificato con Python: ms; simulazione GBN end-to-end: (con ACK ), () ms.)
Versione ripasso
Dati. pacchetti da kbit; , , ms; ms; collo di bottiglia: collegamento 1. ms.
- : , a finestre; complete pacchetti: ms; ultimo ACK ms.
- : , continuo: ms ( con l'ultimo ACK).
Errore tipico: dimenticare i tempi di trasmissione nell', o una finestra in più alla fine.