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