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 ms, ms, ms e probabilità di errore sulla PDU .
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:
- ms: tempo per trasmettere un pacchetto;
- ms: tempo per trasmettere la conferma (ACK/NACK);
- ms: ritardo di propagazione in un verso. Il segnale va e torna: l'andata e ritorno vale ms.
La probabilità che un pacchetto arrivi errato è . Il throughput normalizzato è la frazione di tempo in cui il canale trasporta pacchetti nuovi e corretti; il bit-rate utile è . Il numero medio di trasmissioni di un pacchetto è (ogni trasmissione riesce con probabilità ).
Stop-and-wait
Si invia un pacchetto e si aspetta la conferma prima di inviare il successivo. Un ciclo dura (trasmissione del pacchetto, ritardo di andata e ritorno, conferma). Di questi, il tempo utile è ms e solo se il pacchetto è corretto (probabilità ): Il canale è usato per circa il del tempo: lo stop-and-wait aspetta quasi sempre la conferma.
Go-back-N
Il trasmettitore invia pacchetti di seguito, con una finestra di 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 è Se un pacchetto è errato, il ricevitore scarta anche i successivi e il trasmettitore li rimanda tutti: ogni errore costa trasmissioni inutili in più oltre al ripetere il pacchetto. Il numero medio di trasmissioni per pacchetto utile è e ogni trasmissione occupa :
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à il pacchetto va ripetuto: È il massimo ottenibile con l'ARQ: con e vale .
Riepilogo (): , , . Verificato con Python: , , .
Osservazione sulla soluzione del corso. La soluzione riporta , ma per GBN e SR dà e . Con i dati dell'esercizio ( ms, ms, ) le stesse formule danno e : i valori e non sono coerenti con questi dati (per esempio richiederebbe , e con lo stop-and-wait scenderebbe a , non ). Il valore e le formule della soluzione sono invece uguali alle mie.
Come cambia con e con il ritardo
Con grande il go-back-N crolla (ogni errore ritrasmette pacchetti), il selective repeat resta vicino a . 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 , ms, 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 al posto di nel ciclo dello stop-and-wait e nella finestra: il ritardo si paga all'andata e al ritorno.
- Calcolare la finestra come senza il : la finestra contiene il pacchetto più i che riempiono l'attesa, qui.
- Dimenticare il fattore in GBN e SR: la conferma occupa .
- Scambiare GBN e SR: il GBN ha al denominatore e perde molto per grande.
Versione ripasso
Stop-and-wait
- Ciclo ms. .
Go-back-N
- , .
- .
Selective repeat
- .
Osservazione: la soluzione del corso dà e per GBN e SR, incoerenti con i dati (servirebbe ); con si ottiene e .
Dipendenza da : a SW , GBN , SR (GBN crolla, SR resta vicino a ).
Dettagli di calcolo
- Dati: ms, ms, ms; esatto, quindi .
- , , (tutti con il numeratore ).
- Con : , , ; con : , , .
- Aumentando lo stop-and-wait cala come , il go-back-N cala lentamente a gradini ( cresce), il selective repeat non dipende da .
Errori tipici
- invece di .
- senza il .
- Dimenticare in GBN e SR.