Esercizio - Due collegamenti con switch, file da 1250 MB e ARQ stop-and-wait
In questa pagina 7
Testo. Due host comunicano tramite uno switch, su una catena di due collegamenti: Mbit/s e Mbit/s, con propagazione di s per collegamento. Lo switch fa commutazione di pacchetto a datagramma (store-and-forward), senza ritardo di elaborazione. Un file di Mbyte è trasferito in pacchetti da kbit con intestazione trascurabile. Calcolare il tempo totale di trasferimento (dalla trasmissione del primo bit alla ricezione dell'ultimo) nei casi:
- pacchetti trasmessi senza controllo d'errore;
- con ARQ S&W su ciascun collegamento (nessun errore);
- con ARQ S&W end-to-end (nessun errore);
- come cambiano i risultati se Mbit/s.
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 →; richiami sugli ARQ in 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 e grandezze di base
- Dimensione del file: bit. Pacchetti da bit: pacchetti.
- Tempi di trasmissione di un pacchetto: ms; ms.
- Propagazione: ms.
- Ipotesi sugli ACK: nessun dato sulla lunghezza dell'ACK, quindi si trascura il suo tempo di trasmissione (): l'ACK impiega solo la propagazione di ritorno.
Caso 1: nessun controllo d'errore
Senza ARQ A trasmette un pacchetto dietro l'altro senza fermarsi. Il collegamento 1 è il collo di bottiglia (): A emette un pacchetto ogni ms e lo switch, che impiega solo ms a ritrasmetterlo, è sempre libero quando ne arriva uno nuovo (nessuna coda). L'ultimo pacchetto parte da A a , finisce a , e fa poi gli ultimi due salti: Il termine dominante è : è il tempo per far uscire tutti i bit dal collegamento più lento.
Caso 2: S&W su ciascun collegamento (punto-punto)
Modello. Su ogni collegamento il trasmettitore manda un pacchetto e aspetta l'ACK del nodo vicino prima del successivo. Il ciclo su un collegamento dura Nel A manda un pacchetto; lo switch impiega ms a consegnare il suo (compreso l'ACK da B), un po' meno del tempo con cui A glielo fornisce. Quindi lo switch è sempre pronto e il ritmo è dettato dal collegamento più lento, il primo: A manda un pacchetto ogni .
L'ultimo pacchetto parte quando A riceve l'ACK del penultimo, cioè a , e poi fa i due salti senza altre attese (l'ACK dell'ultimo non conta: il tempo si ferma alla ricezione dell'ultimo bit):
Caso 3: S&W end-to-end
Modello. L'ARQ è tra A e B: A manda un pacchetto e aspetta l'ACK che arriva da B, dopo aver attraversato i due collegamenti in entrambi i versi. Il ciclo dura il tempo di andata di un pacchetto più il ritorno dell'ACK: Il tempo è quasi doppio rispetto al caso 2: un solo pacchetto alla volta nell'intera rete, mentre con l'ARQ punto-punto i due collegamenti lavorano in parallelo su pacchetti diversi (pipeline).
Controllo con la formula dell'utilizzazione dello stop-and-wait, (teoria in 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 →): il collegamento 1 trasmette per ms su ogni ciclo di ms nel caso 2 () e di ms nel caso 3 (). Il tempo senza ARQ, s, diviso per dà s e s: gli stessi risultati.
Caso 4: Mbit/s
Ora ms: il collegamento 2 diventa il più lento ().
- Senza ARQ: i pacchetti arrivano allo switch ogni ms ma escono ogni ms: lo switch accumula coda. Il collo di bottiglia ora è il secondo collegamento: il primo pacchetto lascia lo switch a , poi uno ogni fino all'ultimo (al peggio come se la coda fosse sempre piena):
- S&W punto-punto: ms, ms. Ora : lo switch ci mette di più a consegnare un pacchetto di quanto A impieghi a mandarglielo, quindi i pacchetti si accodano nello switch e il ritmo è dettato dal secondo collegamento: un pacchetto ogni . Il primo pacchetto arriva allo switch a e poi ne esce uno ogni :
- S&W end-to-end: ms:
Riepilogo:
| Mbit/s | Mbit/s | |
|---|---|---|
| nessun ARQ | s | s |
| S&W su ogni collegamento | s | s |
| S&W end-to-end | s | s |
Confronto con la soluzione ufficiale
Ufficiale (con ): s, s, s; con : s, s, s. Coincide in tutti i casi, nello stesso modello (ACK di dimensione trascurabile). Le formule dei tempi ufficiali, viste nelle note a mano della soluzione, sono quelle usate qui: ; ; ; per il caso punto-punto diventa .
Errori comuni
- Confondere Mbyte con Mbit: dimenticare il fattore dà invece di .
- Usare nel caso 2 con : il ritmo lo decide il massimo tra e .
- Dimenticare il "" in : l'ultimo pacchetto non aspetta il proprio ACK (qui l'effetto è trascurabile, ma conta con pochi pacchetti).
- Non distinguere ARQ punto-punto da end-to-end: nel secondo caso c'è un solo pacchetto in rete, nel primo due.
(Verificato con Python: ; ms, ms; s, s, s; con : s, s, s.)
Versione ripasso
- Senza ARQ: s (collo di bottiglia: ).
- S&W punto-punto: ms, ms; ritmo : s.
- S&W end-to-end: ms: s (nessun parallelismo).
- : ms; senza ARQ s; punto-punto ms : s; end-to-end ms: s.
- Ufficiale: coincide.
- Errore tipico: MB scambiati per Mbit (manca il ); si usa quando il più lento è il collegamento 2.