Esercizio - Due collegamenti da 10 e 2 Gbps, 1000 pacchetti con S&W e GBN
In questa pagina 6
Testo. Due host comunicano tramite uno switch, su una catena di due collegamenti con Gbit/s, Gbit/s e propagazioni s, s. Lo switch fa commutazione di pacchetto a datagramma (store-and-forward), senza ritardo di elaborazione. Un file è diviso in pacchetti da kbit ( bit di intestazione e di payload). Calcolare il tempo totale di trasferimento (dalla trasmissione del primo bit alla ricezione dell'ultimo) quando:
- S&W su ciascun collegamento (nessun errore);
- S&W end-to-end (nessun errore);
- GBN su ciascun collegamento, con la finestra minima che garantisce trasmissione continua, e i pacchetti , e sono corrotti sul tratto da A allo switch.
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 →, Commutazione di circuito e di pacchettoUn nodo di commutazione (switch) può collegare ingresso e uscita in tre modi. Commutazione di circuito: si stabilisce prima un collegamento fisico dedicato (rete telefonica), tempo di consegna $T=3Nt_p+Nt_s+M/R$. Commutazione di pacchetto a datagramma: il messaggio è diviso in $K$ pacchetti con intestazione, ognuno è instradato indipendentemente con store-and-forward, $T=Nt_p+(N+K-1)\frac{M/K+H}{R}$, con $K_{ott}=\sqrt{(N-1)M/H}$. A circuito virtuale: tre fasi (setup, dati, chiusura), connessione logica dedicata ma senza risorse dedicate, identificatore locale che cambia a ogni salto.Commutazione di circuito e di pacchetto →, 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
- bit per pacchetto (l'intestazione fa parte del pacchetto che viaggia), .
- s; s.
- s, s.
- ACK di dimensione trascurabile (conta solo la propagazione di ritorno).
- Tempi di ciclo: s; s.
Caso 1: S&W su ciascun collegamento
Su ogni collegamento si manda un pacchetto e si aspetta il suo ACK. A è vincolato dal ciclo più lungo, s s: lo switch smaltisce un pacchetto ogni s, ben prima che A ne mandi uno nuovo (ogni s). Il ritmo è pacchetto ogni ; l'ultimo pacchetto parte a e poi fa i due salti: Controllo: l'utilizzazione dello stop-and-wait sul collegamento 1 è , quindi ms, circa il risultato (la differenza è l'ultimo ciclo che non aspetta l'ACK). Il collegamento 1 trasmette per del tempo: ha Gbit/s di bitrate, ma un solo pacchetto da kbit ogni s, cioè Mbit/s.
Caso 2: S&W end-to-end
Un solo pacchetto in rete: il ciclo comprende l'andata su entrambi i collegamenti e il ritorno dell'ACK da B ad A:
Caso 3: GBN su ogni collegamento, con tre pacchetti corrotti
Finestra minima per trasmissione continua. Serve , cioè (ACK trascurabile):
- collegamento 1: pacchetti;
- collegamento 2: pacchetti.
Il collegamento 2 è il più lento (): è il collo di bottiglia, anche senza errori, perché lo switch non può emettere più di un pacchetto ogni s. Senza errori il tempo sarebbe s.
Con gli errori. Gli errori sono solo sul collegamento 1 (A → switch). Ipotesi coerenti con la teoria GBN: ricevitore con finestra (scarta tutto ciò che non è il pacchetto atteso); il timeout è il minimo possibile, cioè s, contato dall'inizio della trasmissione del pacchetto.
- A trasmette i pacchetti a ritmo continuo (s ciascuno) e la finestra si riempie. I pacchetti e sono corrotti; lo switch li scarta, e scarta anche perché non sono quelli attesi. Nessun ACK arriva.
- Il timer del pacchetto scade a s, proprio quando A ha finito di trasmettere la finestra: A ricomincia dal pacchetto e trasmette in modo continuo (ora corretti, salvo il ). Il pacchetto finisce di essere ricevuto dallo switch a s. In particolare il pacchetto è completamente ricevuto a s.
- Il pacchetto è corrotto alla sua prima trasmissione (parte a s): il timer scade a s, lo si ritrasmette e arriva allo switch a s.
- Lo switch inoltra sul collegamento 2 un pacchetto ogni s, a partire da s: il pacchetto finisce di uscire a s. Il pacchetto ha bisogno di uscire a s, ma è già nello switch dal s: la sua ritrasmissione non ritarda nulla, perché la coda dello switch non si è ancora svuotata.
Quindi l'unico costo degli errori è il ritardo con cui parte la sequenza corretta: (Cioè : gli errori sui pacchetti e costano un , quelli sul pacchetto nulla.)
| Caso | |
|---|---|
| S&W su ogni collegamento | ms |
| S&W end-to-end | ms |
| GBN, errori sui pacchetti | ms |
Confronto con la soluzione ufficiale
Ufficiale: ms, ms, ms. Coincide in tutti e tre i casi. Per il terzo caso la soluzione ufficiale dà solo il risultato: il modello ricostruito qui (timeout contato dall'inizio della trasmissione, collo di bottiglia sul collegamento 2) lo riproduce esattamente; il valore è ms (senza errori) più un .
Errori comuni
- Usare i bit di payload al posto dei bit del pacchetto nei tempi di trasmissione: sul collegamento viaggia tutta la PDU.
- Nel GBN scegliere la finestra con il solo (finestra ) anche sul collegamento 1, dove serve : con A trasmetterebbe a ritmo molto più basso.
- Ritrasmettere solo il pacchetto (stile Selective Repeat) invece di tutta la finestra: in GBN si torna indietro e si riparte da lì.
- Aggiungere al totale anche il ritardo del pacchetto : la sua ritrasmissione cade mentre lo switch sta ancora smaltendo la coda.
(Verificato con Python: s, s, s; ms, ms; simulatore GBN con timeout s: pacchetto ricevuto a s, ultimo pacchetto fuori dallo switch a ms.)
Versione ripasso
- S&W per collegamento: ritmo : ms.
- S&W end-to-end: s: ms.
- GBN: finestre minime , . Collo di bottiglia il collegamento 2: senza errori ms. Timeout : i pacchetti persi fanno ripartire la sequenza a s; la ritrasmissione del è assorbita dalla coda dello switch.
- ms (ufficiale: uguale).
- Errore tipico: payload al posto della PDU intera; finestra GBN calcolata con il collegamento sbagliato.