Salta al contenuto
Note per Studenti Esercizio - throughput di stop-and-wait, go-back-N e selective repeat (esercizi del corso, cap. 4)

Esercizio - throughput di stop-and-wait, go-back-N e selective repeat (esercizi del corso, cap. 4)

In questa pagina 6

Testo (esercizio 49 della raccolta di esercizi del corso di Fondamenti di Telecomunicazioni, Ing. Informatica UniPD, capitolo "Codifica di canale e ARQ"). Calcolare il throughput per SW-ARQ, GBN-ARQ e SR-ARQ per una trasmissione con τP=525\tau_P=525 ms, tP=200t_P=200 ms, tA=10t_A=10 ms e probabilità di errore sulla PDU p=10−2p=10^{-2}.


Teoria usata: Controllo d'errore - ARQ, FEC e codici a blocco sul canale binario simmetricoPer proteggere i bit dagli errori si può chiedere la ritrasmissione (ARQ, serve il canale di ritorno), aggiungere ridondanza per correggere (FEC) o unire le due cose (HARQ). Un codice a blocco $(n,k)$ trasforma $k$ bit in una parola di $n>k$ bit scelta tra $2^k$ parole su $2^n$ sequenze; modulatore, canale e demodulatore equivalgono a un canale binario simmetrico senza memoria con probabilità d'errore sul bit $P_{bit}$. Per $P_{bit}<\frac12$ il decodificatore ML sceglie la parola a minima distanza di Hamming; con distanza minima $d_{min}$ si correggono sempre $t=\lfloor\frac{d_{min}-1}{2}\rfloor$ errori e se ne rivelano sempre $d_{min}-1$. Il tasso è $R=\frac kn$ e la probabilità d'errore di parola è limitata da $P(\text{più di }t\text{ errori})$. L'ARQ ha efficienza $S_{SW}$, $S_{GBN}$, $S_{SR}$ in funzione di $t_P$, $t_A$, $\tau_P$ e $p$.Controllo d'errore - ARQ, FEC e codici a blocco sul canale binario simmetrico → (sezione sull'ARQ). Versione per Ing. Elettronica, con lo stesso esercizio e altri casi: 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 →.

Il modello e i dati

Il trasmettitore manda pacchetti (PDU) e il ricevitore risponde con una conferma. I tempi sono:

  • tP=200t_P=200 ms: tempo per trasmettere un pacchetto;
  • tA=10t_A=10 ms: tempo per trasmettere la conferma (ACK/NACK);
  • τP=525\tau_P=525 ms: ritardo di propagazione in un verso. Il segnale va e torna: l'andata e ritorno vale 2τP=10502\tau_P=1050 ms.

La probabilità che un pacchetto arrivi errato è p=10−2p=10^{-2}. Il throughput normalizzato SS è la frazione di tempo in cui il canale trasporta pacchetti nuovi e corretti; il bit-rate utile è S RbS\,R_b. Il numero medio di trasmissioni di un pacchetto è 11−p\frac1{1-p} (ogni trasmissione riesce con probabilità 1−p1-p).

Stop-and-wait

Si invia un pacchetto e si aspetta la conferma prima di inviare il successivo. Un ciclo dura tP+tA+2τP=200+10+1050=1260 mst_P+t_A+2\tau_P=200+10+1050=1260\ \text{ms} (trasmissione del pacchetto, ritardo di andata e ritorno, conferma). Di questi, il tempo utile è tP=200t_P=200 ms e solo se il pacchetto è corretto (probabilità 1−p1-p): SSW=tP(1−p)tP+tA+2τP=200⋅0,991260=1981260=0,157.S_{SW}=\frac{t_P(1-p)}{t_P+t_A+2\tau_P}=\frac{200\cdot0{,}99}{1260}=\frac{198}{1260}=0{,}157. Il canale è usato per circa il 16%16\% del tempo: lo stop-and-wait aspetta quasi sempre la conferma.

Go-back-N

Il trasmettitore invia pacchetti di seguito, con una finestra di NN pacchetti in volo, senza aspettare ogni conferma. Perché il canale non resti mai inattivo, la finestra deve coprire il tempo che la conferma di un pacchetto impiega a tornare: il numero di pacchetti trasmessi mentre il primo viaggia andata e ritorno è N−1=⌈2τPtP+tA⌉=⌈1050210⌉=⌈5⌉=5⟹N=6.N-1=\left\lceil\frac{2\tau_P}{t_P+t_A}\right\rceil=\left\lceil\frac{1050}{210}\right\rceil=\lceil5\rceil=5\quad\Longrightarrow\quad N=6. Se un pacchetto è errato, il ricevitore scarta anche i successivi e il trasmettitore li rimanda tutti: ogni errore costa N−1N-1 trasmissioni inutili in più oltre al ripetere il pacchetto. Il numero medio di trasmissioni per pacchetto utile è 1+(N−1)p1−p\frac{1+(N-1)p}{1-p} e ogni trasmissione occupa tP+tAt_P+t_A: SGBN=(1−p) tP[(N−1)p+1](tP+tA)=0,99⋅200(5⋅0,01+1)⋅210=1981,05⋅210=198220,5=0,898.S_{GBN}=\frac{(1-p)\,t_P}{\left[(N-1)p+1\right](t_P+t_A)}=\frac{0{,}99\cdot200}{(5\cdot0{,}01+1)\cdot210}=\frac{198}{1{,}05\cdot210}=\frac{198}{220{,}5}=0{,}898.

Selective repeat

Come GBN, ma il ricevitore conserva i pacchetti corretti arrivati dopo uno errato e il trasmettitore rimanda solo quello errato. Resta il tempo della conferma e il fatto che con probabilità pp il pacchetto va ripetuto: SSR=(1−p) tPtP+tA=0,99⋅200210=0,943.S_{SR}=(1-p)\,\frac{t_P}{t_P+t_A}=0{,}99\cdot\frac{200}{210}=0{,}943. È il massimo ottenibile con l'ARQ: con p→0p\to0 e tA→0t_A\to0 vale 11.

Riepilogo (p=10−2p=10^{-2}): SSW=0,157S_{SW}=0{,}157, SGBN=0,898S_{GBN}=0{,}898, SSR=0,943S_{SR}=0{,}943. Verificato con Python: 0,15710{,}1571, 0,89800{,}8980, 0,94290{,}9429.

Osservazione sulla soluzione del corso. La soluzione riporta SSW=0,16S_{SW}=0{,}16, ma per GBN e SR dà 0,630{,}63 e 0,660{,}66. Con i dati dell'esercizio (tP=200t_P=200 ms, tA=10t_A=10 ms, p=10−2p=10^{-2}) le stesse formule danno 0,8980{,}898 e 0,9430{,}943: i valori 0,630{,}63 e 0,660{,}66 non sono coerenti con questi dati (per esempio SSR=0,66S_{SR}=0{,}66 richiederebbe p≈0,3p\approx0{,}3, e con p=0,3p=0{,}3 lo stop-and-wait scenderebbe a 0,110{,}11, non 0,160{,}16). Il valore N=6N=6 e le formule della soluzione sono invece uguali alle mie.

Come cambia con pp e con il ritardo

pp SSWS_{SW} SGBNS_{GBN} SSRS_{SR}
10−310^{-3} 0,1590{,}159 0,9470{,}947 0,9510{,}951
10−210^{-2} 0,1570{,}157 0,8980{,}898 0,9430{,}943
0,10{,}1 0,1430{,}143 0,5710{,}571 0,8570{,}857
0,30{,}3 0,1110{,}111 0,2670{,}267 0,6670{,}667

Con pp grande il go-back-N crolla (ogni errore ritrasmette N=6N=6 pacchetti), il selective repeat resta vicino a 1−p1-p. Col ritardo di propagazione cresce lo svantaggio dello stop-and-wait; il go-back-N perde poco perché la finestra si allarga con il ritardo (curve a p=10−2p=10^{-2}, tP=200t_P=200 ms, tA=10t_A=10 ms):

Grafico interattivo: Throughput in funzione del ritardo di propagazione τ_P (secondi) per t_P = 200 ms, t_A = 10 ms, p = 0,01: lo stop-and-wait cala come 1/(0,21 + 2τ_P) (0,157 a τ_P = 0,525 s), il go-back-N scende lentamente a gradini perché la finestra N cresce con τ_P (0,898 a τ_P = 0,525 s), il selective repeat resta a 0,943

Errori comuni

  • Usare τP\tau_P al posto di 2τP2\tau_P nel ciclo dello stop-and-wait e nella finestra: il ritardo si paga all'andata e al ritorno.
  • Calcolare la finestra come N=2τPtP+tAN=\frac{2\tau_P}{t_P+t_A} senza il +1+1: la finestra contiene il pacchetto più i ⌈2τPtP+tA⌉\lceil\frac{2\tau_P}{t_P+t_A}\rceil che riempiono l'attesa, N=6N=6 qui.
  • Dimenticare il fattore tPtP+tA\frac{t_P}{t_P+t_A} in GBN e SR: la conferma occupa tAt_A.
  • Scambiare GBN e SR: il GBN ha (N−1)p+1(N-1)p+1 al denominatore e perde molto per pp grande.

Versione ripasso

Testo. τP=525\tau_P=525 ms, tP=200t_P=200 ms, tA=10t_A=10 ms, p=10−2p=10^{-2}: throughput di SW, GBN, SR (Controllo d'errore - ARQ, FEC e codici a blocco sul canale binario simmetricoPer proteggere i bit dagli errori si può chiedere la ritrasmissione (ARQ, serve il canale di ritorno), aggiungere ridondanza per correggere (FEC) o unire le due cose (HARQ). Un codice a blocco $(n,k)$ trasforma $k$ bit in una parola di $n>k$ bit scelta tra $2^k$ parole su $2^n$ sequenze; modulatore, canale e demodulatore equivalgono a un canale binario simmetrico senza memoria con probabilità d'errore sul bit $P_{bit}$. Per $P_{bit}<\frac12$ il decodificatore ML sceglie la parola a minima distanza di Hamming; con distanza minima $d_{min}$ si correggono sempre $t=\lfloor\frac{d_{min}-1}{2}\rfloor$ errori e se ne rivelano sempre $d_{min}-1$. Il tasso è $R=\frac kn$ e la probabilità d'errore di parola è limitata da $P(\text{più di }t\text{ errori})$. L'ARQ ha efficienza $S_{SW}$, $S_{GBN}$, $S_{SR}$ in funzione di $t_P$, $t_A$, $\tau_P$ e $p$.Controllo d'errore - ARQ, FEC e codici a blocco sul canale binario simmetrico →).

Stop-and-wait

  • Ciclo tP+tA+2τP=1260t_P+t_A+2\tau_P=1260 ms. SSW=tP(1−p)tP+tA+2τP=1981260=0,157S_{SW}=\frac{t_P(1-p)}{t_P+t_A+2\tau_P}=\frac{198}{1260}=0{,}157.

Go-back-N

  • N−1=⌈2τPtP+tA⌉=⌈1050210⌉=5N-1=\lceil\frac{2\tau_P}{t_P+t_A}\rceil=\lceil\frac{1050}{210}\rceil=5, N=6N=6.
  • SGBN=(1−p)tP[(N−1)p+1](tP+tA)=1981,05⋅210=0,898S_{GBN}=\frac{(1-p)t_P}{[(N-1)p+1](t_P+t_A)}=\frac{198}{1{,}05\cdot210}=0{,}898.

Selective repeat

  • SSR=(1−p)tPtP+tA=0,943S_{SR}=(1-p)\frac{t_P}{t_P+t_A}=0{,}943.

Osservazione: la soluzione del corso dà 0,630{,}63 e 0,660{,}66 per GBN e SR, incoerenti con i dati (servirebbe p≈0,3p\approx0{,}3); con p=10−2p=10^{-2} si ottiene 0,8980{,}898 e 0,9430{,}943.

Dipendenza da pp: a p=0,3p=0{,}3 SW 0,1110{,}111, GBN 0,2670{,}267, SR 0,6670{,}667 (GBN crolla, SR resta vicino a 1−p1-p).

Dettagli di calcolo

  • Dati: 2τP=10502\tau_P=1050 ms, tP+tA=210t_P+t_A=210 ms, tP+tA+2τP=1260t_P+t_A+2\tau_P=1260 ms; 2τPtP+tA=5\frac{2\tau_P}{t_P+t_A}=5 esatto, quindi N−1=5N-1=5.
  • SSW=1981260S_{SW}=\frac{198}{1260}, SGBN=1981,05⋅210=198220,5S_{GBN}=\frac{198}{1{,}05\cdot210}=\frac{198}{220{,}5}, SSR=198210S_{SR}=\frac{198}{210} (tutti con il numeratore 0,99⋅200=1980{,}99\cdot200=198).
  • Con p=0,1p=0{,}1: 0,1430{,}143, 0,5710{,}571, 0,8570{,}857; con p=0,3p=0{,}3: 0,1110{,}111, 0,2670{,}267, 0,6670{,}667.
  • Aumentando τP\tau_P lo stop-and-wait cala come 1tP+tA+2τP\frac1{t_P+t_A+2\tau_P}, il go-back-N cala lentamente a gradini (NN cresce), il selective repeat non dipende da τP\tau_P.

Errori tipici

  • τP\tau_P invece di 2τP2\tau_P.
  • NN senza il +1+1.
  • Dimenticare tPtP+tA\frac{t_P}{t_P+t_A} in GBN e SR.

Teoria collegata