Capitolo 1.4.2 - Metodi per il controllo di errore
Transcript
Capitolo 1.4.2 - Metodi per il controllo di errore
Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 1. – Fondamenti sulle reti di telecomunicazioni 1.4 – Protocolli per reti di telecomunicazioni Capitolo 1.4.2 – Protocolli di controllo di errore Giacomo Morabito Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania http://www.diit.unict.it/users/gmorabi Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Controllo di errore • • • • Riscontro di errore Correzione di errore Notifica di errore (o correttezza) Recupero di errore Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Riscontro di errore • Idea di base: si aggiunge a ciascun pacchetto/frame informazione aggiuntiva finalizzata a verificare la corretteza della frame • Esempi: – – – – Duplicazione del pacchetto/frame Controllo di parità Controllo di parità bidimensionale Codici di ridondanza ciclici (Cyclic redundancy codes, CRC) Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Duplicazione del pacchetto/frame • Il trasmettitore invia due copie del pacchetto/frame • Se il ricevitore riscontra differenze tra le due copie, e.g., – Copia 1: 11001011001001001 – Copia 2: 11001011101001001 C’è stato senz’altro un errore. Il ricevitore non sa quale delle copie è corretta Deve scartarle entrambe • Ovviamente tale schema non viene utilizzato perché è – Inefficiente: troppa ridondanza – Inefficace: se entrambe le copie vengono modificate allo stesso modo L’errore non viene riscontrato Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Controllo di parità • Supponiamo che la frame sia costituita da K bit {b1 , b2 , ..., bK } • Viene aggiunto alla frame un bit di ridondanza c calcolato come segue: b1 + b2 + ... + bK • Osserviamo che c sarà 1 se il numero di bit posti a uno è dispari, 0 altrimenti • Il trasmettitore invierà la sequenza b1b2 ...bK c • Questo schema è – Efficiente: la percentuale di ridondanza aggiunta è 1/K – Inefficace: corregge solo un numero dispari di errori Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Controllo di parità bidimensionale • I K bit costituenti la frame vengono disposti in una matrice di L colonne, la riga finale viene completata con degli zeri. • Sia xij l’elemento nella i-esima riga e j-esima colonna della matrice • Viene aggiunto ci( r ) = xi1 + xi 2 + ... + xiL – Un bit per ciascuna riga: (c) – Un bit per ciascuna colonna: c j = x1 j + x2 j + ...x Hj ove H rappresenta il numero di righe della matrice Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Controllo di parità bidimensionale - Esempio • Supponiamo che sia K = 25 e L=7 H=4 1 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 c1( r ) = 0 c2( r ) = 0 c3( r ) = 1 1 0 0 1 0 0 0 c4( r ) = 0 c1( c ) = 1 c2( c ) = 1 c3( c ) = 0 c4( c ) = 0 c5( c ) = 1 c6( c ) = 1 c7( c ) = 1 1 Completare l’ultima riga La stringa che verrà inviata sarà 1011010001110111010001001001011001111 Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Controllo di parità bidimensionale -Caratteristiche • Efficienza inferiore al controllo di parità semplice • Maggiore efficacia: – Rileva l’evento di un numero dispari di errori – Rileva l’evento di una coppia di errori – Rileva quasi sempre l’evento di 4 errori (non lo rileva solo nel caso in cui gli errori avvengono nei bit xi1j1, xi1j2, xi2j1, xi2j2, esempio… • Il numero di bit di ridondanza non può essere fissato a priori – Dipende dalla dimensione della frame – Il numero minimo di bit di paritàKè 2 ⋅ L’efficienza massima è K + 2⋅ K+ 1 K +1 Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Codici di ridondanza ciclici • Si aggiungono al messaggio da inviare (supponiamo di K bit) altri S bit. Chiamiamo N=K+S • Le stringhe vengono rappresentate come polinomi: b1 b2 b3 ... bK ↔ b1 ⋅ x K − 1 + b2 ⋅ x K − 2 + ... + bK • Gli S bit vengono calcolati come il resto della seguente divisione: 2S D / P ove D è il messaggio da inviare e P è una sequenza di (S+1) bit nota sia al trasmettitore che al ricevitore • Sia Q il quoziente della divisione e R il resto (R ha al più S bit) • Il ricevitore divide quanto riceve per P. Se il resto è non nullo, ci sono stati degli errori Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Esempio • D=1010001101 (S=10 bit) • P=110101 (S+1=6 bit) • R=01110 • Q=1101010110 • T=101000110101110 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 // 1 1 1 1 1 0 0 1 1 0 1 1 // 0 1 1 1 0 1 0 0 0 0 0 0 // 1 1 1 0 1 0 1 // 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 // 1 1 1 1 1 0 1 1 0 1 0 1 // 0 1 0 1 1 0 0 // 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 // 1 1 0 0 1 0 1 1 0 1 0 1 // 0 0 1 1 1 0 0 0 0 0 0 0 // 0 1 1 1 0 Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Dimostrazione L’operatore “+” è un OR ESCLUSIVO • Differenza: • Somma: – – – – 0+0=0; 0+1=1; 1+0=1; 1+1=0; – – – – 0-0=0; 0-1=1; 1-0=1; 1-1=0; • Ne segue che la somma di due numeri uguali è pari a zero. • Sia R il resto della suddetta divisione e sia T la concatenazioneTdi= D2es D R +(cioè ) R • Si ha che: T (2 S D + R) 2 S D R R R = = + = Q+ + = Q P P P P P P Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Discussione • Si può decidere a priori il numero di bit da dedicare alla rilevazione di errore Possibile riservare il campo nell’intestazione della frame/pacchetto • La capacità di rilevazione dipende molto dalla scelta del polinomio P • Tre polinomi sono divenuti standard: – CRC-12: – CRC-16: – CRC-CCITT: • x12 + x11 + x 3 + x 2 + x + 1 5 x1616 + x12 + x +1 15 2 x + x + x +1 Il metodo sembra complesso, ma in realtà bastano dei registri a scorrimento per implementarlo in hardware • La scelta dei polinomi viene eseguita in base ad analisi che assume che i bit dati siano random. Recentemente (1995) è stato dimostrato che ciò non è vero Errori non rilevati avvengono molto più frequentemente di quanto atteso Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Correzione di errore • E’ possibile aggiungere ridondanza ai dati in modo da permettere al ricevitore il recupero da un certo numero di errori • Questa tecnica si chiama Forward Error Correction (FEC) • Ad esempio: – Nelle comunicazioni militari navali ciascun bit viene ripetuto 5 volte – In Bluetooth si può decidere di inviare gli stessi dati 3 volte • Ma esistono tecniche molto più sofisticate… Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Principio di funzionamento del FEC • La frame viene divisa in blocchi di k bit Sono possibili 2K blocchi • Associamo a ciascuno dei blocchi associamo una stringa di N bit che chiamiamo parola di codice • Delle possibili 2N stringhe di N bit solo 2k sono parole di codice • Gli errori (probabilmente) trasformano una parole di codice in una stringa che non è una parola di codice • Viene associata alla stringa ricevuta la parola di codice più vicina • Maggiore è k, maggiore è la distanza che è possibile introdurre tra diverse parole di codice Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Distanza di Hamming • Date due stringhe s1 e s2, la loro distanza di Hamming, d(H)(s1, s2), è il numero di bit di cui le due stringhe differiscono • Esempio: – s1 =110010100 – s2 =110110101 – d(H)(s1, s2)=2 • Maggiore è la distanza di Hamming tra le parole di codice, maggiore è l’efficacia correttiva del FEC • Sia d(H)MIN la distanza di Hamming minima tra le parole di codice • Il FEC riesce a correggere un numero di errori minore o uguale di (H) d MIN / 2 − 1 • Viene associata alla stringa ricevuta, la parola di codice che dista meno Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Esempio • Sia k=2 e N=10 • Più in particolare: – – – – 00 0000000000 01 0000011111 10 1111100000 11 1111111111 • Si ha d(H)MIN =5 Si possono correggere tutti gli errori fino a 2 bit • Esempio: – – – – Viene trasmesso 0000011111 Ci sono 2 errori La stringa ricevuta è 0001111111 La distanza tra la stringa ricevuta e 0000011111 è 2, la distanza tra la stringa ricevuta e 1111111111 è 3 Viene associata la parola di codice 0000011111 Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Discussione • Esistono codici molto più efficaci di quelli visti nell’esempio • I protocolli di FEC – aggiungono ulteriore overhead Diminuisce l’efficienza delle risorse – Aumentano l’affidabilità della comunicazione senza ricorrere alle ritrasmissioni Comunicazioni più veloci Bene per le comunicazioni realtime • Oltre alla distanza di Hamming minima, l’altro parametro che caratterizza il FEC è la velocità di codice (code rate) definita come K/N Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Notifica di errore (o correttezza) • Noi diremo che un pacchetto è perso se: – Non arriva al ricevitore, oppure – Arriva corrotto e non può essere recuperato nonostante il possibile uso del FEC • Il trasmettitore deve essere informato sulla correttezza o meno dell’informazione inviata • Sono state definite diverse politiche: – Notifica positiva (Positive acknowledgement) • Notifica cumulativa • Notifica selettiva – Notifica negativa (Negative acknowledgement) – Rapporti periodici (Periodic reports) Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Cumulative Positive Acknowledgement • • • • • • Per ciascun pacchetto ricevuto, il ricevitore invia una notifica (ACK) L’ACK contiene l’identificativo dell’ultimo pacchetto fino al quale è stato tutto ricevuto correttamente Ad ogni trasmissione il trasmettitore inizializza un timer Se il pacchetto non viene ACKato entro la scadenza del timer, il trasmettitore ritiene il pacchetto perso o ricevuto scorrettamente La perdita può essere anche identificata dall’arrivo di un ACK duplicato Il trasmettitore ritrasmette il pacchetto perso Tx Rx P1 P2 A1 P3 A2 P4 P5 P3 A2 A2 A5 t t Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 E se ci sono più perdite? Tx Rx P2 • Il cumulative positive acknowledgement non risponde bene a perdite di pacchetti vicini • Dopo avere ritrasmesso il pacchetto 3, il trasmettitore non ritrasmette il 4 • Il recupero da perdite vicine è molto lento P3 A2 P4 P5 P6 P3 A2 A2 A3 P4 t t Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Selective Positive Acknowledgement Tx Rx P2 • Il suddetto problema viene risolto dal selective positive acknowledgement • Gli ACK contengono informazioni sui pacchetti ricevuti correttamente • Si può recuperare velocemente da perdite di pacchetti vicini P3 A2 P4 P5 P6 P3 A6 P4 A3 P7 t A5 A4 t Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Negative Acknowledgement • Il Positive Acknowledgement (sia selettivo che cumulativo) prevede un pacchetto di notifica per ogni pacchetto dati • Troppo traffico sul canale di ritorno • Con il negative acknowledgement il ricevitore notifica al trasmettitore solo dei pacchetti non ricevuti correttamente Tx Rx P1 P2 P3 P4 P5 NAK3 P3 t t Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 E se a perdersi è l’ultimo pacchetto? • Il Negative ACK non può essere utilizzato da solo • Supponiamo che si perda l’ultimo pacchetto • Il ricevitore non saprà mai di non avere ricevuto tale pacchetto • Il trasmettitore crederà di avere portato a termine la comunicazione correttamente • Per tale motivo in genere insieme al negative ACK vengono usati dei rapporti periodici Tx Rx P1 P2 P3 t t Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Rapporti periodici Tx • Periodicamente il ricevitore invia dei report con informazioni sui pacchetti arrivati e quelli no • Il trasmettitore ritrasmette i pacchetti persi Rx P2 P3 P4 P5 P6 P7 Status P3 P4 t Sistemi e apparati di rete – Cap. 1.4.2 - GM 2005 Recupero degli errori • Il trasmettitore ritrasmette i pacchetti persi • In genere viene fissato il numero massimo di ritrasmissioni possibili per lo stesso pacchetto