DCN - Rilevamento e correzione degli errori
Ci sono molte ragioni come rumore, diafonia, ecc., Che possono aiutare a danneggiare i dati durante la trasmissione. I livelli superiori lavorano su una visione generalizzata dell'architettura di rete e non sono consapevoli dell'effettiva elaborazione dei dati hardware, quindi i livelli superiori si aspettano una trasmissione senza errori tra i sistemi. La maggior parte delle applicazioni non funzionerebbe in modo previsto se ricevono dati errati. Applicazioni come voce e video potrebbero non essere interessate e con alcuni errori potrebbero comunque funzionare bene.
Il livello di collegamento dati utilizza un meccanismo di controllo degli errori per garantire che i frame (flussi di bit di dati) vengano trasmessi con un certo livello di precisione. Ma per capire come vengono controllati gli errori, è essenziale sapere quali tipi di errori possono verificarsi.
Tipi di errori
Possono esserci tre tipi di errori:
Single bit error
In una cornice, c'è solo un bit, ovunque, che è danneggiato.
Multiple bits error
Il frame viene ricevuto con più di un bit in stato danneggiato.
Burst error
Il frame contiene più di 1 bit consecutivi danneggiati.
Il meccanismo di controllo degli errori può coinvolgere due possibili modi:
Rilevamento degli errori
Correzione dell'errore
Rilevamento degli errori
Gli errori nei frame ricevuti vengono rilevati tramite Parity Check e Cyclic Redundancy Check (CRC). In entrambi i casi, vengono inviati pochi bit aggiuntivi insieme ai dati effettivi per confermare che i bit ricevuti all'altra estremità sono gli stessi di quelli inviati. Se il controllo del contatore alla fine del ricevitore fallisce, i bit sono considerati danneggiati.
Controllo di parità
Un bit extra viene inviato insieme ai bit originali per ottenere il numero di 1 pari in caso di parità pari o dispari in caso di parità dispari.
Il mittente durante la creazione di un frame conta il numero di 1 in esso. Ad esempio, se viene utilizzata la parità pari e il numero di 1 è pari, viene aggiunto un bit con valore 0. In questo modo il numero di 1 rimane pari. Se il numero di 1 è dispari, per renderlo pari viene aggiunto un bit con valore 1.
Il ricevitore conta semplicemente il numero di 1 in un frame. Se il conteggio di 1 è pari e viene utilizzata la parità pari, il frame viene considerato non danneggiato e viene accettato. Se il conteggio di 1 è dispari e viene utilizzata la parità dispari, il frame non è ancora danneggiato.
Se un singolo bit si ribalta durante il transito, il ricevitore può rilevarlo contando il numero di 1s. Ma quando più di un bit è errato, è molto difficile per il ricevitore rilevare l'errore.
Controllo di ridondanza ciclico (CRC)
CRC è un approccio diverso per rilevare se il frame ricevuto contiene dati validi. Questa tecnica prevede la divisione binaria dei bit di dati inviati. Il divisore viene generato utilizzando polinomi. Il mittente esegue un'operazione di divisione sui bit inviati e calcola il resto. Prima di inviare i bit effettivi, il mittente aggiunge il resto alla fine dei bit effettivi. I bit di dati effettivi più il resto sono chiamati parole in codice. Il mittente trasmette i bit di dati come parole in codice.
All'altra estremità, il ricevitore esegue un'operazione di divisione su parole in codice utilizzando lo stesso divisore CRC. Se il resto contiene tutti zeri, i bit di dati vengono accettati, altrimenti viene considerato poiché si è verificato un danneggiamento dei dati durante il transito.
Correzione dell'errore
Nel mondo digitale, la correzione degli errori può essere eseguita in due modi:
Backward Error Correction Quando il destinatario rileva un errore nei dati ricevuti, richiede al mittente di ritrasmettere l'unità di dati.
Forward Error Correction Quando il ricevitore rileva un errore nei dati ricevuti, esegue il codice di correzione degli errori, che lo aiuta a ripristinare automaticamente e correggere alcuni tipi di errori.
Il primo, Backward Error Correction, è semplice e può essere utilizzato in modo efficiente solo dove la ritrasmissione non è costosa. Ad esempio, fibra ottica. Ma in caso di trasmissione wireless la ritrasmissione potrebbe costare troppo. In quest'ultimo caso, viene utilizzata la correzione degli errori in avanti.
Per correggere l'errore nel frame di dati, il ricevitore deve sapere esattamente quale bit nel frame è danneggiato. Per individuare il bit in errore, i bit ridondanti vengono utilizzati come bit di parità per il rilevamento degli errori Ad esempio, prendiamo parole ASCII (dati a 7 bit), quindi potrebbero esserci 8 tipi di informazioni di cui abbiamo bisogno: i primi sette bit per dirci quale bit è un errore e un altro bit per dire che non c'è errore.
Per m bit di dati, vengono utilizzati r bit ridondanti. I bit r possono fornire 2r combinazioni di informazioni. Nel codeword m + r bit, c'è la possibilità che i bit r stessi possano essere danneggiati. Quindi il numero di bit r utilizzati deve fornire informazioni sulle posizioni dei bit m + r più informazioni di non errore, ad esempio m + r + 1.