Salta al contenuto
Note per Studenti Esercizio - Due collegamenti con switch, file da 1250 MB e ARQ stop-and-wait

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: R1=100R_1=100 Mbit/s e R2=200R_2=200 Mbit/s, con propagazione di 500 μ500\ \mus per collegamento. Lo switch fa commutazione di pacchetto a datagramma (store-and-forward), senza ritardo di elaborazione. Un file di 12501250 Mbyte è trasferito in pacchetti da 1010 kbit con intestazione trascurabile. Calcolare il tempo totale di trasferimento (dalla trasmissione del primo bit alla ricezione dell'ultimo) nei casi:

  1. pacchetti trasmessi senza controllo d'errore;
  2. con ARQ S&W su ciascun collegamento (nessun errore);
  3. con ARQ S&W end-to-end (nessun errore);
  4. come cambiano i risultati se R2=50R_2=50 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: 1250 MB=1250⋅8⋅106=10101250\ \text{MB}=1250\cdot8\cdot10^6=10^{10} bit. Pacchetti da L=10 000L=10\,000 bit: K=1010104=106K=\dfrac{10^{10}}{10^4}=10^6 pacchetti.
  • Tempi di trasmissione di un pacchetto: T1=LR1=104108=0,1T_1=\dfrac{L}{R_1}=\dfrac{10^4}{10^8}=0{,}1 ms; T2=LR2=1042⋅108=0,05T_2=\dfrac{L}{R_2}=\dfrac{10^4}{2\cdot10^8}=0{,}05 ms.
  • Propagazione: τ1=τ2=τ=0,5\tau_1=\tau_2=\tau=0{,}5 ms.
  • Ipotesi sugli ACK: nessun dato sulla lunghezza dell'ACK, quindi si trascura il suo tempo di trasmissione (tA≈0t_A\approx0): 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 (T1>T2T_1>T_2): A emette un pacchetto ogni T1=0,1T_1=0{,}1 ms e lo switch, che impiega solo 0,050{,}05 ms a ritrasmetterlo, è sempre libero quando ne arriva uno nuovo (nessuna coda). L'ultimo pacchetto parte da A a (K−1)T1(K-1)T_1, finisce a KT1KT_1, e fa poi gli ultimi due salti: Ttot=K T1+τ1+T2+τ2=106⋅0,1 ms+0,5+0,05+0,5 ms=100,00105 s≈100 s.T_{tot}=K\,T_1+\tau_1+T_2+\tau_2=10^6\cdot0{,}1\text{ ms}+0{,}5+0{,}05+0{,}5\text{ ms}=100{,}00105\ \text{s}\approx100\ \text{s}. Il termine dominante è K T1K\,T_1: è 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 RTT1=T1+2τ1=0,1+1=1,1 ms,RTT2=T2+2τ2=0,05+1=1,05 ms.RTT_1=T_1+2\tau_1=0{,}1+1=1{,}1\ \text{ms},\qquad RTT_2=T_2+2\tau_2=0{,}05+1=1{,}05\ \text{ms}. Nel RTT1RTT_1 A manda un pacchetto; lo switch impiega RTT2=1,05RTT_2=1{,}05 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 RTT1RTT_1.

L'ultimo pacchetto parte quando A riceve l'ACK del penultimo, cioè a (K−1)RTT1(K-1)RTT_1, e poi fa i due salti senza altre attese (l'ACK dell'ultimo non conta: il tempo si ferma alla ricezione dell'ultimo bit): Ttot=(K−1) RTT1+T1+τ1+T2+τ2=(106−1)⋅1,1 ms+1,15 ms=1100,00005 s≈1100 s.T_{tot}=(K-1)\,RTT_1+T_1+\tau_1+T_2+\tau_2=(10^6-1)\cdot1{,}1\text{ ms}+1{,}15\text{ ms}=1100{,}00005\ \text{s}\approx1100\ \text{s}.

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: RTTe2e=T1+τ1+T2+τ2+τ2+τ1=0,1+0,5+0,05+0,5+0,5+0,5=2,15 ms.RTT_{e2e}=T_1+\tau_1+T_2+\tau_2+\tau_2+\tau_1=0{,}1+0{,}5+0{,}05+0{,}5+0{,}5+0{,}5=2{,}15\ \text{ms}. Ttot=(K−1) RTTe2e+T1+τ1+T2+τ2=(106−1)⋅2,15 ms+1,15 ms=2149,999 s≈2150 s.T_{tot}=(K-1)\,RTT_{e2e}+T_1+\tau_1+T_2+\tau_2=(10^6-1)\cdot2{,}15\text{ ms}+1{,}15\text{ ms}=2149{,}999\ \text{s}\approx2150\ \text{s}. 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, ρ=tF/tG\rho=t_F/t_G (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 T1=0,1T_1=0{,}1 ms su ogni ciclo di 1,11{,}1 ms nel caso 2 (ρ=0,0909\rho=0{,}0909) e di 2,152{,}15 ms nel caso 3 (ρ=0,0465\rho=0{,}0465). Il tempo senza ARQ, K T1=100K\,T_1=100 s, diviso per ρ\rho dà 100/0,0909=1100100/0{,}0909=1100 s e 100/0,0465=2150100/0{,}0465=2150 s: gli stessi risultati.

Caso 4: R2=50R_2=50 Mbit/s

Ora T2=1045⋅107=0,2T_2=\dfrac{10^4}{5\cdot10^7}=0{,}2 ms: il collegamento 2 diventa il più lento (T2>T1T_2>T_1).

  • Senza ARQ: i pacchetti arrivano allo switch ogni 0,10{,}1 ms ma escono ogni 0,20{,}2 ms: lo switch accumula coda. Il collo di bottiglia ora è il secondo collegamento: il primo pacchetto lascia lo switch a T1+τ1+T2T_1+\tau_1+T_2, poi uno ogni T2T_2 fino all'ultimo (al peggio come se la coda fosse sempre piena): Ttot=T1+τ1+K T2+τ2=0,1+0,5+106⋅0,2+0,5 ms=200,0011 s≈200 s.T_{tot}=T_1+\tau_1+K\,T_2+\tau_2=0{,}1+0{,}5+10^6\cdot0{,}2+0{,}5\ \text{ms}=200{,}0011\ \text{s}\approx200\ \text{s}.
  • S&W punto-punto: RTT1=1,1RTT_1=1{,}1 ms, RTT2=T2+2τ2=0,2+1=1,2RTT_2=T_2+2\tau_2=0{,}2+1=1{,}2 ms. Ora RTT2>RTT1RTT_2>RTT_1: 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 RTT2RTT_2. Il primo pacchetto arriva allo switch a T1+τ1T_1+\tau_1 e poi ne esce uno ogni RTT2RTT_2: Ttot=T1+τ1+(K−1) RTT2+T2+τ2=0,6+(106−1)⋅1,2+0,7 ms=1200,0001 s≈1200 s.T_{tot}=T_1+\tau_1+(K-1)\,RTT_2+T_2+\tau_2=0{,}6+(10^6-1)\cdot1{,}2+0{,}7\ \text{ms}=1200{,}0001\ \text{s}\approx1200\ \text{s}.
  • S&W end-to-end: RTTe2e=0,1+0,5+0,2+0,5+0,5+0,5=2,3RTT_{e2e}=0{,}1+0{,}5+0{,}2+0{,}5+0{,}5+0{,}5=2{,}3 ms: Ttot=(K−1)⋅2,3 ms+1,3 ms=2299,999 s≈2300 s.T_{tot}=(K-1)\cdot2{,}3\text{ ms}+1{,}3\text{ ms}=2299{,}999\ \text{s}\approx2300\ \text{s}.

Riepilogo:

R2=200R_2=200 Mbit/s R2=50R_2=50 Mbit/s
nessun ARQ ≈100\approx100 s ≈200\approx200 s
S&W su ogni collegamento ≈1100\approx1100 s ≈1200\approx1200 s
S&W end-to-end ≈2150\approx2150 s ≈2300\approx2300 s

Confronto con la soluzione ufficiale

Ufficiale (con R2=200R_2=200): ≈100\approx100 s, ≈1100\approx1100 s, ≈2150\approx2150 s; con R2=50R_2=50: ≈200\approx200 s, ≈1200\approx1200 s, ≈2300\approx2300 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: KT1+τ1+T2+τ2KT_1+\tau_1+T_2+\tau_2; (K−1)RTT1+T1+τ1+T2+τ2(K-1)RTT_1+T_1+\tau_1+T_2+\tau_2; (K−1)RTTe2e+…(K-1)RTT_{e2e}+\dots; per R2=50R_2=50 il caso punto-punto diventa T1+τ1+(K−1)RTT2+T2+τ2T_1+\tau_1+(K-1)RTT_2+T_2+\tau_2.

Errori comuni

  • Confondere 12501250 Mbyte con 12501250 Mbit: dimenticare il fattore 88 dà K=1,25⋅105K=1{,}25\cdot10^5 invece di 10610^6.
  • Usare RTT2RTT_2 nel caso 2 con R2=200R_2=200: il ritmo lo decide il massimo tra RTT1RTT_1 e RTT2RTT_2.
  • Dimenticare il "−1-1" in (K−1)RTT(K-1)RTT: 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: K=106K=10^6; T1=0,1T_1=0{,}1 ms, T2=0,05T_2=0{,}05 ms; 100,00105100{,}00105 s, 1100,000051100{,}00005 s, 2149,9992149{,}999 s; con R2=50R_2=50: 200,0011200{,}0011 s, 1200,00011200{,}0001 s, 2299,9992299{,}999 s.)

Versione ripasso

Dati. R1=100R_1=100, R2=200R_2=200 Mbit/s, τ=0,5\tau=0{,}5 ms per collegamento; file 12501250 MB =1010=10^{10} bit, pacchetti L=10L=10 kbit: K=106K=10^6; T1=0,1T_1=0{,}1 ms, T2=0,05T_2=0{,}05 ms; ACK trascurabile. (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 →)

  • Senza ARQ: KT1+τ1+T2+τ2≈100KT_1+\tau_1+T_2+\tau_2\approx100 s (collo di bottiglia: R1R_1).
  • S&W punto-punto: RTT1=T1+2τ1=1,1RTT_1=T_1+2\tau_1=1{,}1 ms, RTT2=1,05RTT_2=1{,}05 ms; ritmo max⁡(RTT1,RTT2)\max(RTT_1,RTT_2): (K−1)RTT1+T1+τ1+T2+τ2≈1100(K-1)RTT_1+T_1+\tau_1+T_2+\tau_2\approx1100 s.
  • S&W end-to-end: RTTe2e=T1+τ1+T2+τ2+τ2+τ1=2,15RTT_{e2e}=T_1+\tau_1+T_2+\tau_2+\tau_2+\tau_1=2{,}15 ms: ≈2150\approx2150 s (nessun parallelismo).
  • R2=50R_2=50: T2=0,2T_2=0{,}2 ms; senza ARQ T1+τ1+KT2+τ2≈200T_1+\tau_1+KT_2+\tau_2\approx200 s; punto-punto RTT2=1,2RTT_2=1{,}2 ms >RTT1>RTT_1: T1+τ1+(K−1)RTT2+T2+τ2≈1200T_1+\tau_1+(K-1)RTT_2+T_2+\tau_2\approx1200 s; end-to-end RTT=2,3RTT=2{,}3 ms: ≈2300\approx2300 s.
  • Ufficiale: coincide.
  • Errore tipico: MB scambiati per Mbit (manca il ×8\times8); si usa RTT1RTT_1 quando il più lento è il collegamento 2.

Lezioni in cui compare

Teoria collegata