Salta al contenuto
Note per Studenti Esercizio - Throughput di SR-ARQ e stabilità della coda ARQ

Esercizio - Throughput di SR-ARQ e stabilità della coda ARQ

Questa pagina non ha ancora la versione ripasso: qui sotto c'è il testo completo.

In questa pagina 5

Testo (scheda "Data link layer", esercizio 1). Un sistema ARQ opera su un canale a velocità fissa di 22 Mbit/s con Pbit=10−6P_{bit}=10^{-6}. Si trasmettono pacchetti di dimensione fissa con payload di 40964096 bit e intestazione di 1212 byte. Calcolare il throughput dell'ARQ SR se il tasso di arrivo λ\lambda è: a. 100100 pacchetti/s; b. 10001000 pacchetti/s. Infine c. discutere, per un λ\lambda generico, la stabilità della coda ARQ per Stop-and-Wait, Go-Back-N, Selective-Repeat.

Teoria usata: Tecniche ARQ e loro prestazioniARQ (Automatic Repeat reQuest) rende affidabile un collegamento che sbaglia: il ricevitore risponde a ogni pacchetto con ACK (corretto) o NACK (errato), e il trasmettitore ritrasmette. Con probabilità di pacchetto errato $p$, $t_{RTT}=t_P+t_A+2\tau_P$ e coda sempre piena, il throughput massimo (frazione di tempo d'aria) è: Stop-and-Wait $S=\frac{t_P(1-p)}{t_{RTT}}$; Go-Back-N con $N=t_{RTT}/t_P$ $S=\frac{1-p}{(N-1)p+1}$; Selective Repeat $S=1-p$. Il ritardo medio è $m_{delay}=t_P+\tau_P+\frac p{1-p}t_{RTT}$ (a coda vuota). Sono solo valori massimi: la coda ARQ è stabile solo se $\lambda$ è minore della velocità di servizio, $\lambda<1/m_y$; altrimenti il throughput è $\min(\lambda,\mu)$. L'efficienza (payload) è $\eta=S,L_D/L$.Tecniche ARQ e loro prestazioni →, Livello di collegamento - LLC, MAC e ipotesi di lavoroIl livello di collegamento vede un canale fisico con errori residui e deve offrire ai livelli superiori un canale affidabile; ha due sottolivelli: LLC (correzione residua, ARQ con ACK/NACK) e MAC (chi trasmette, perché con più trasmettitori il rapporto giusto è la SINR e non l'SNR e la capacità cala). Per analizzarlo si usano ipotesi standard: pacchetti di $L$ bit, probabilità $p$ di pacchetto errato (i.i.d., $p=1-(1-P_{bit})^L\simeq LP_{bit}$), coda sempre piena (heavy traffic), tempo di pacchetto $t_P=L/R_b$, $t_{RTT}=t_P+t_A+2\tau_P$, timeout stringente, ACK/NACK senza errori, ritrasmissioni illimitate ($E[#tx]=1/(1-p)$). Le metriche sono throughput (frazione di tempo d'aria) e ritardo (fino alla ricezione corretta). Una collisione è la sovrapposizione, anche minima, di due pacchetti.Livello di collegamento - LLC, MAC e ipotesi di lavoro →.

1. Dati del pacchetto e probabilità di errore

Payload LD=4096L_D=4096 bit; intestazione LH=12⋅8=96L_H=12\cdot8=96 bit; lunghezza totale L=LD+LH=4192L=L_D+L_H=4192 bit. Su un BSC senza memoria il pacchetto è sbagliato se almeno un bit è sbagliato: p=Ploss=1−(1−Pbit)L=1−(1−10−6)4192=4,18⋅10−3 (0,418 %).p=P_{loss}=1-(1-P_{bit})^L=1-(1-10^{-6})^{4192}=4{,}18\cdot10^{-3}\ (0{,}418\,\%). (LPbit=4,192⋅10−3LP_{bit}=4{,}192\cdot10^{-3}: l'approssimazione è praticamente identica.) Psuccess=1−p=0,99582P_{success}=1-p=0{,}99582.

Tempo di pacchetto e velocità massima di trasmissione dei pacchetti: tP=LRb=41922⋅106=2,096 ms,1tP=477 pkt/s.t_P=\frac L{R_b}=\frac{4192}{2\cdot10^6}=2{,}096\ \text{ms},\qquad\frac1{t_P}=477\ \text{pkt/s}.

2. Attenzione: è una trappola

Il throughput dell'ARQ SR è S=1−pS=1-p, ma solo se la coda è sempre piena, cioè se la sorgente offre più traffico di quanto il canale smaltisce. Bisogna prima verificare se il sistema è stabile, cioè se λ<μ\lambda<\mu con μ\mu la velocità di servizio.

Per l'SR la velocità di servizio, tenendo conto delle ritrasmissioni (trucco ispirato all'ALOHA: ogni pacchetto è trasmesso in media 11−p\frac1{1-p} volte, quindi il tasso totale di pacchetti trasmessi è λT=λ+λp+λp2+⋯=λ1−p\lambda_T=\lambda+\lambda p+\lambda p^2+\dots=\frac{\lambda}{1-p}), è la velocità totale del canale: il sistema regge se λT<1tP\lambda_T<\frac1{t_P}, cioè λ<1−ptP=0,995822,096 ms=475 pkt/s\lambda<\frac{1-p}{t_P}=\frac{0{,}99582}{2{,}096\ \text{ms}}=475\ \text{pkt/s} (il corso confronta con 1tP=477\frac1{t_P}=477 pkt/s, il tasso totale del canale al lordo delle ritrasmissioni; la differenza è irrilevante qui).

3. Caso a. λ=100\lambda=100 pkt/s

100<475100<475: stabile. Tutto ciò che arriva esce (e le ritrasmissioni sono assorbite), quindi throughput=λ=100 pkt/s ⇒ 100⋅4192=419,2 kbit/s\text{throughput}=\lambda=100\ \text{pkt/s}\ \Rightarrow\ 100\cdot4192=419{,}2\ \text{kbit/s} (di cui 100⋅4096=409,6100\cdot4096=409{,}6 kbit/s di payload). Non si usa 1−p1-p: quella è la frazione di tempo d'aria utile se il canale fosse saturo.

4. Caso b. λ=1000\lambda=1000 pkt/s

1000>4751000>475: instabile. Il traffico offerto è 1000⋅4192=4,1921000\cdot4192=4{,}192 Mbit/s, più del doppio del canale (22 Mbit/s): la coda cresce senza limite. Il canale è saturo e il throughput è quello massimo, S=1−pS=1-p (frazione di tempo d'aria utile): S=1−p=0,99582,throughput=0,99582⋅2 Mbit/s=1,991 Mbit/sS=1-p=0{,}99582,\qquad\text{throughput}=0{,}99582\cdot2\ \text{Mbit/s}=1{,}991\ \text{Mbit/s} (di cui 1,991⋅40964192=1,9461{,}991\cdot\frac{4096}{4192}=1{,}946 Mbit/s di payload).

5. Caso c. Stabilità in generale

In generale il throughput vale min⁡(λ,μ)\min(\lambda,\mu): se λ<μ\lambda<\mu la coda è stabile e il throughput è λ\lambda, altrimenti è instabile e il throughput è il valore massimo di prima. Per calcolare μ\mu si usa il tempo di servizio yy medio per pacchetto, μ=1/my\mu=1/m_y:

  • Stop-and-Wait: ogni tentativo occupa un round-trip, y=tRTT(1+i)y=t_{RTT}(1+i) con i=#retxi=\#retx e E[i]=1Psuccess−1E[i]=\frac1{P_{success}}-1: my=tRTTPsuccessm_y=\dfrac{t_{RTT}}{P_{success}}, quindi μSW=1−ptRTT\mu_{SW}=\dfrac{1-p}{t_{RTT}} e la condizione è λ<1−ptRTT\lambda<\dfrac{1-p}{t_{RTT}}.
  • Go-Back-N: con probabilità PsuccessP_{success} si spende tPt_P, con probabilità 1−Psuccess1-P_{success} un tRTTt_{RTT} e poi si ricomincia: my=tPPsuccess+p (tRTT+my)m_y=t_PP_{success}+p\,(t_{RTT}+m_y), da cui my=tP+tRTTp1−pm_y=t_P+t_{RTT}\dfrac p{1-p} e μGBN=1tP+tRTT p/(1−p)\mu_{GBN}=\dfrac1{t_P+t_{RTT}\,p/(1-p)}.
  • Selective Repeat: λT=λ/(1−p)<1/tP\lambda_T=\lambda/(1-p)<1/t_P, cioè λ<1−ptP\lambda<\dfrac{1-p}{t_P}.

Questi valori non sono i ritardi: il ritardo è tRTTt_{RTT} per ogni ritrasmissione più tP+τPt_P+\tau_P quando il pacchetto è finalmente corretto.

Variante numerica (parametri nostri, non nel testo). Con tA=0t_A=0 e τP=5\tau_P=5 ms: tRTT=2,096+10=12,096t_{RTT}=2{,}096+10=12{,}096 ms (N=tRTT/tP=5,77N=t_{RTT}/t_P=5{,}77). Allora μSW=0,9958212,096 ms=82,3\mu_{SW}=\frac{0{,}99582}{12{,}096\ \text{ms}}=82{,}3 pkt/s, myGBN=2,096+12,096⋅0,004200=2,147m_y^{GBN}=2{,}096+12{,}096\cdot0{,}004200=2{,}147 ms ⇒μGBN=465,8\Rightarrow\mu_{GBN}=465{,}8 pkt/s, μSR=475,1\mu_{SR}=475{,}1 pkt/s. Con λ=100\lambda=100 pkt/s SW è instabile (100>82,3100>82{,}3) mentre GBN e SR sono stabili: lo stesso carico dà risultati opposti a seconda del protocollo.

Lezioni in cui compare

Teoria collegata