Salta al contenuto
Note per Studenti Esercizio 28 · codifica a correzione d'errore e ARQ selective repeat per un server (tema d'esame luglio 2021)

Esercizio 28codifica a correzione d'errore e ARQ selective repeat per un server (tema d'esame luglio 2021)

Esame
In questa pagina 4

Testo (tema d'esame del 2 luglio 2021, esercizio 3). Un server riceve ogni TfT_f secondi dei file con lunghezze aleatorie ℓ\ell, indipendenti a ogni arrivo e con distribuzione esponenziale di media mℓ=40m_\ell=40 kbit. Anche l'intervallo TfT_f tra i file è una variabile aleatoria con distribuzione esponenziale di media mTf=10m_{T_f}=10 ms, e gli intervalli sono indipendenti fra loro.

  1. (3p) Determinare il bit-rate medio di arrivo.

Il server immagazzina in un buffer i file che arrivano e li divide in pacchetti da L=800L=800 bit che invia a un'unità di storage. Il collegamento verso quest'ultima ha un ritardo di propagazione τP=5 μ\tau_P=5\ \mus ed è affetto da una probabilità d'errore sul bit Pbit=10−4P_{bit}=10^{-4}; per controllare questi errori si possono applicare diverse tecniche (FEC o ARQ). Il bit-rate di questo collegamento viene indicato come RbR_b. Calcolare il valore minimo per il bit-rate RbR_b nel caso in cui:

  1. (2p) Si utilizza forward error correction (FEC) con codice lineare a massima distanza, in cui le parole di codice sono lunghe come i pacchetti, e va garantito di correggere un numero di errori pari all'1%1\% della lunghezza dei pacchetti. (Si utilizzi il bound di Singleton.)
  2. (2p) Si controllano gli errori con selective repeat ARQ e si richiede che da quando escono dal buffer, i pacchetti arrivino a destinazione corretti in un tempo medio inferiore a 150 μ150\ \mus.

Teoria usata: Codifica di canale - codici a blocco, distanza minima, rivelazione e correzioneLa codifica di canale aggiunge ridondanza ai bit per rivelare o correggere gli errori del canale. Un codice a blocco $(n,k)$ trasforma $k$ bit in $n$ bit (rendimento $R_c=\frac kn$). Con la distanza di Hamming minima $d_{min}$ il codice rivela fino a $d_{min}-1$ errori e ne corregge $t=\left\lfloor\frac{d_{min}-1}2\right\rfloor$ (decodifica a minima distanza). Vale il limite di Singleton $d_{min}\le n-k+1$. Su un canale binario simmetrico con errore $p$, la probabilità di parola sbagliata è $P_w\le\sum_{i>t}\binom nip^i(1-p)^{n-i}$ e, con $p$ piccola, $P_{bit}\approx\frac{d_{min}}n\binom n{t+1}p^{t+1}$.Codifica di canale - codici a blocco, distanza minima, rivelazione e correzione →, 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 →, Sistemi a coda - processo di Poisson, M/M/1 e formula di LittleUn sistema a coda ha arrivi (di pacchetti, file) e un servitore (il collegamento). Con arrivi di Poisson di intensità $\lambda$ e tempi di servizio esponenziali di media $\frac1\mu$ (coda M/M/1) e $\rho=\frac\lambda\mu<1$: $P[N=n]=(1-\rho)\rho^n$, numero medio nel sistema $\bar N=\frac\rho{1-\rho}$, tempo medio di permanenza $\bar W=\frac1{\mu-\lambda}$, attesa in coda $\bar W_q=\frac\rho{\mu-\lambda}$. La formula di Little $\bar N=\lambda\bar W$ vale in generale. Con buffer finito (M/M/1/K) i pacchetti sono persi con $P_K=\frac{(1-\rho)\rho^K}{1-\rho^{K+1}}$.Sistemi a coda - processo di Poisson, M/M/1 e formula di Little →, Informazione ed entropiaL'informazione di un evento di probabilità $p$ è $\log_2\frac1p$ bit; l'entropia $H(x)=\sum p\log_2\frac1p$ è l'informazione media e misura l'incertezza della sorgente: $0\le H\le\log_2M$, con il massimo quando i simboli sono equiprobabili. Per più simboli: $H(x,y)\le H(x)+H(y)$ (uguaglianza se indipendenti), $H(x|y)=H(x,y)-H(y)$. Per una sorgente con $F_s$ simboli al secondo il rate di informazione è $F_sH_s$, il rate nominale $F_s\log_2M$ e l'efficienza $\eta=\frac{H_s}{\log_2M}$.Informazione ed entropia →.

(1) Bit-rate medio di arrivo

I file arrivano con intervallo medio mTf=10m_{T_f}=10 ms (λ=100\lambda=100 file/s) e ognuno porta in media mℓ=40m_\ell=40 kbit. Il bit-rate medio è il bit medio per arrivo diviso l'intervallo medio (media di un processo con arrivi indipendenti): Rc=mℓmTf=40⋅10310⋅10−3=4 Mbit/s.R_c=\frac{m_\ell}{m_{T_f}}=\frac{40\cdot10^3}{10\cdot10^{-3}}=4\ \text{Mbit/s}.

(2) FEC con codice a massima distanza

Parola di codice lunga come il pacchetto: n=L=800n=L=800. Si devono correggere t=1%⋅800=8t=1\%\cdot800=8 errori, quindi dmin≥2t+1=17.d_{min}\ge2t+1=17. Limite di Singleton: dmin≤n−k+1d_{min}\le n-k+1, cioè k≤n−dmin+1=800−17+1=784k\le n-d_{min}+1=800-17+1=784. Il numero massimo di bit di informazione per parola è k=784k=784 (rendimento 784800=0,98\frac{784}{800}=0{,}98). Per smaltire i 44 Mbit/s di informazione il collegamento deve trasmettere nk\frac nk volte tanto: Rb≥Rc⋅nk=4⋅800784=4,082 Mbit/s.R_b\ge R_c\cdot\frac nk=4\cdot\frac{800}{784}=4{,}082\ \text{Mbit/s}. (Nella soluzione a mano del Drive si usa dmin=18d_{min}=18 e k≤783k\le783, che dà 4,0814{,}081 Mbit/s: la differenza è irrilevante, ma per correggere 88 errori basta dmin=17d_{min}=17.)

Osservazione. A Rb=4,082R_b=4{,}082 Mbit/s il collegamento è saturo (ρ=1\rho=1): il buffer non sarebbe stabile. Per un buffer che si comporta come una coda M/M/1 (Sistemi a coda - processo di Poisson, M/M/1 e formula di LittleUn sistema a coda ha arrivi (di pacchetti, file) e un servitore (il collegamento). Con arrivi di Poisson di intensità $\lambda$ e tempi di servizio esponenziali di media $\frac1\mu$ (coda M/M/1) e $\rho=\frac\lambda\mu<1$: $P[N=n]=(1-\rho)\rho^n$, numero medio nel sistema $\bar N=\frac\rho{1-\rho}$, tempo medio di permanenza $\bar W=\frac1{\mu-\lambda}$, attesa in coda $\bar W_q=\frac\rho{\mu-\lambda}$. La formula di Little $\bar N=\lambda\bar W$ vale in generale. Con buffer finito (M/M/1/K) i pacchetti sono persi con $P_K=\frac{(1-\rho)\rho^K}{1-\rho^{K+1}}$.Sistemi a coda - processo di Poisson, M/M/1 e formula di Little →) serve ρ<1\rho<1. Con Rb=5R_b=5 Mbit/s la capacità utile è 5⋅784800=4,95\cdot\frac{784}{800}=4{,}9 Mbit/s, cioè μ=4,9⋅10640⋅103=122,5\mu=\frac{4{,}9\cdot10^6}{40\cdot10^3}=122{,}5 file/s, ρ=100122,5=0,816\rho=\frac{100}{122{,}5}=0{,}816 e il tempo medio di un file nel buffer sarebbe Wˉ=1μ−λ=44,4\bar W=\frac1{\mu-\lambda}=44{,}4 ms.

(3) Selective repeat ARQ

Probabilità d'errore sul pacchetto: un pacchetto da L=800L=800 bit è errato se almeno un bit lo è, p=1−(1−Pbit)L=1−(1−10−4)800=0,0769.p=1-(1-P_{bit})^L=1-(1-10^{-4})^{800}=0{,}0769. Con selective repeat si ritrasmette solo il pacchetto errato; il numero medio di trasmissioni di un pacchetto è 11−p\frac1{1-p} (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 →). Si adotta un modello semplice: il pacchetto, appena uscito dal buffer, viene trasmesso più volte consecutivamente fino al successo, ciascuna trasmissione durando tP=LRbt_P=\frac L{R_b}, e al tempo si aggiunge il ritardo di propagazione τP\tau_P dell'ultima: E[T]=tP1−p+τP≤150 μs ⟹ tP≤(150−5) μs⋅(1−p)=145⋅0,9231=133,9 μs.E[T]=\frac{t_P}{1-p}+\tau_P\le150\ \mu\text{s}\ \Longrightarrow\ t_P\le(150-5)\ \mu\text{s}\cdot(1-p)=145\cdot0{,}9231=133{,}9\ \mu\text{s}. Quindi Rb=LtP≥800133,9⋅10−6=5,98 Mbit/s.R_b=\frac L{t_P}\ge\frac{800}{133{,}9\cdot10^{-6}}=5{,}98\ \text{Mbit/s}. (Se si trascura τP\tau_P, come fa la soluzione a mano del Drive, tP≤150⋅0,9231=138,5 μt_P\le150\cdot0{,}9231=138{,}5\ \mus e Rb≥5,78R_b\ge5{,}78 Mbit/s. La capacità di smaltire il traffico, Rb≥Rc1−p=40,9231=4,33R_b\ge\frac{R_c}{1-p}=\frac4{0{,}9231}=4{,}33 Mbit/s, è un vincolo meno stretto.)

Confronto. La FEC richiede solo 4,084{,}08 Mbit/s per sostenere il traffico, l'ARQ 4,334{,}33 Mbit/s di capacità (e 5,985{,}98 Mbit/s per rispettare anche il ritardo): con p=7,7%p=7{,}7\% la FEC ha un overhead fisso del 2%2\%, l'ARQ ritrasmette il 8%8\% dei pacchetti e aggiunge ritardo variabile.

(Verificato con Python: t=8t=8, dmin=17d_{min}=17, kmax=784k_{max}=784, Rb=4,0816R_b=4{,}0816 Mbit/s; p=0,076887p=0{,}076887, Rb=5,977R_b=5{,}977 e 5,7785{,}778 Mbit/s.)

Errori comuni

  • Usare dmin=2td_{min}=2t (=16=16): per correggere tt errori servono 2t+12t+1.
  • Dimenticare di moltiplicare per nk\frac nk: la FEC trasmette più bit di quelli utili.
  • Calcolare p=800 Pbit=0,08p=800\,P_{bit}=0{,}08 al posto di 1−(1−Pbit)800=0,07691-(1-P_{bit})^{800}=0{,}0769 (qui l'approssimazione ha un errore del 4%4\%).
  • Confondere il tempo di trasmissione tP=LRbt_P=\frac L{R_b} con il tempo di propagazione τP\tau_P.

Versione ripasso

Testo. File esponenziali di media 4040 kbit ogni 1010 ms (esp.); pacchetti L=800L=800 bit, τP=5 μ\tau_P=5\ \mus, Pbit=10−4P_{bit}=10^{-4}: bit-rate di arrivo; RbR_b minimo con FEC a massima distanza (1%1\% di errori corretti) e con selective repeat (tempo medio <150 μ<150\ \mus) (luglio 2021).

Teoria collegata