Deteición y correición d'errores

miniaturadeimagen
En matemátiques, computación y teoría de la información, la detección y correición d'errores ye una importante práutica pal caltenimientu ya integridá de los datos al traviés de distintos procedimientos y dispositivos como medios d'almacenamientu confiables.G. J. Simmons, "A survey of Information Authentication". Contemporary Cryptology, The science of information integrity, ed. GJ Simmons, IEEE Press, New York, (1992)Considérase como precursor d'esti tipu de teunoloxíes el Acme Comodity and Phrase Code usáu nos telegrames

 Introducción 
La comunicación ente delles ordenadors produz de cutio un movimientu de datos, xeneralmente por canales non diseñaos pa esti propósitu (llinia telefónica), y qu'introducen un ruíu esternu que produz errores na tresmisión.

Poro, tenemos d'aseguranos que si dichu movimientu causa errores, éstos puedan ser detectaos.
El métodu pa detectar y correxir errores ye incluyir nos bloques de datos tresmitíos bits adicionales denominaos redundancia.

Desenvolviéronse dos estrategia básiques pa remanar los errores: 

 Incluyir abonda información redundante en cada bloque de datos por que puedan detectase y correxir los bits erróneos. Utilícense códigos de correición d'errores. 

 Incluyir namái la información redundante necesaria en cada bloque de datos pa detectar los errores. Nesti casu'l númberu de bits de redundancia ye menor. Utilícense códigos de detección d'errores. 

Si consideramos un bloque de datos formáu por m bits de datos y r de redundancia, el llargor final del bloque va ser n, onde n = m + r.

 Tipu de códigos detectores 

 Paridá simple (paridá horizontal) 

Consiste n'añader un bit de más a la cadena que queremos unviar, y que nos indicará si'l númberu de unos (bits puestos a 1) ye par o ye impar. Si ye par vamos incluyir esti bit col valor = 0, y si nun ye asina, vamos incluyir con valor = 1.

 Exemplu de xeneración d'un bit de paridá simple:

 Queremos unviar la cadena “1110100”:
 1º Cuntamos la cantidá de unos qu'hai: 4 unos
 2º El númberu de unos ye par por tanto añadimos un bit con valor = 0
 3º La cadena unviada ye 11101000

El receptor agora, repite la operación de cuntar la cantidá de “unos” qu'hai (menos el postreru bit) y si coincide, ye que nun hubo error.

Problemes d'esti métodu:

Hai una alta probabilidá de que se colen casos nos qu'hubo error, y que l'error nun seya detectáu, como asocede si camuden dos númberos na tresmisión en cuenta de unu.

Un exemplu de polinomiu xenerador usáu de normal nes redes WAN ye: 

Los cálculos que realiza l'equipu tresmisor pa calcular el so CRC son:

 Añade tantos ceros pela derecha al mensaxe orixinal como'l grau del polinomiu xenerador
 Estrema'l mensaxe colos ceros incluyíos ente'l polinomiu xenerador
 El restu que se llogra de la división sumir al mensaxe colos ceros incluyíos
 Únviase la resultancia llograda

Estes operaciones xeneralmente son incorporaes nel hardware por que pueda ser calculáu con mayor rapidez, pero na teoría utilicen los polinomios pa facilitar los cálculos.

 Exemplu de llogru del CRC:

 Datos:
 Mensaxe codificado en binariu: 1101001
 Polinomiu xenerador: 

 Operaciones:

 1º Llograr el polinomiu equivalente al mensaxe: 

 2º Multiplicar el mensaxe por  (añader 4 ceros pela derecha): 

 3º Estremar en binariu'l mensaxe pol polinomiu xenerador y sacar el restu: 

 4º Concatenar el mensaxe col restu (en módulu 2 tamién): 

 5º Tresmitir el mensaxe

L'equipu receptor tien de comprobar el códigu CRC pa detectar si produciéronse o non errores.

 Exemplu de los cálculos del receptor:

 1º Por aciu el protocolu correspondiente alcuerden el polinomiu xenerador
 2º Estrema'l códigu recibíu ente'l polinomiu xenerador
 3º Comprueba'l restu de dicha operación

 3.1 Si'l restu ye cero, nun se producieron errores
 3.2 Procesar el mensaxe 3.1

 Si'l restu ye distintu de cero, significa que se producieron errores
 3.2 Reenviar el mensaxe 3.2

 Intentar correxir los errores por aciu los códigos correutores

En resume, esti métodu rique d'un polinomiu xenerador que, escoyíu correutamente, puede llegar a detectar gran cantidá d'errores:

 Errores simples: toos Errores dobles: toos Errores nes posiciones impares de los bits: toos Errores en rabaseres con un llargor menor que'l grau del polinomiu xenerador: toos
 Otres rabaseres: un porcentaxe elevao y cercano al 100%

 Suma de comprobación 

Ye un métodu senciello pero eficiente namái con cadenes de pallabres d'un llargor pequeñu, ye por esto que se suel utilizar en cabeceres de trames importantes o otres cadenes importantes y en combinación con otros métodos.

Funcionalidad: consiste n'arrexuntar el mensaxe a tresmitir en cadenes d'un llargor determináu L non bien grande, de por casu 16 bits. Considerando a cada cadena como un númberu enteru numberáu según el sistema de numberación .
De siguío súmase'l valor de toles pallabres nes que s'estrema'l mensaxe, y añader la resultancia al mensaxe a tresmitir, pero camudáu de signu.

Con esto, el receptor lo único que tien que faer ye sumar toles cadenes, y si la resultancia ye 0 nun hai errores.

 Exemplu:

 Mensaxe 101001110101

 1º Alcordar el llargor de cada cadena: 3

 2º Alcordar el sistema de numberación: 

 3º Estremar el mensaxe: 101 001 110 101

 4º Acomuñar cada cadena con un enteru: 5 1 6 5

 5º Sumar tolos valores y añader el númberu camudáu de signu: -17

 6º Unviar 5 1 6 5 -17 codificado en binariu

 El receptor:

 1º Suma tolos valores; si la suma ye 0, procesa'l mensaxe; si non, producióse un error.

Esti métodu al ser más senciellu ye óptimo pa ser implementáu en software yá que puede algamar velocidaes de cálculu similares a la implementación en hardware

 Distancia de Hamming basada en comprobación 

Si queremos detectar d bit erróneos nuna pallabra de n bits, podemos añader a cada pallabra de n bits d+1 bits predeterminados a la fin, de forma que quede una pallabra de n+d+1 bits con una distancia mínima de Hamming de d+1. D'esta manera, si unu recibe una pallabra de n+d+1 bits que nun encaxar con nenguna pallabra del códigu (con una distancia de Hamming x <= d+1 la pallabra nun pertenez al códigu) detecta correutamente si ye una pallabra errónea. Entá ye más, d o menos errores nunca se van convertir nuna pallabra válida por cuenta de que la distancia de Hamming ente cada pallabra válida ye de siquier d+1, y tales errores conducen solamente a les pallabres inválides que se detecten correutamente. Dau un conxuntu de m*n bits, podemos detectar x <= d bits errores correutamente usando'l mesmu métodu en toles pallabres de n bits. Ello ye que podemos detectar un máximu de m*d error si toles pallabres de n bits son tresmitíes con un máximu de d errores.

 Exemplu

Pallabres a unviar:

 000001
 000001
 000010

 Codificadas con distancia mínima de Hamming = 2 

000001 0000
000001 0011
000010 1100

Si les pallabres recibíes tienen una distancia de Hamming < 2, son pallabres incorreutes.

 Llista de los método de correición y detección d'errores 

 Díxitu verificador
 FEC (Forward Error Correction)
 Códigu Binariu de Golay
 Códigu Hamming
 Bit de paridá
 Reed-Solomon

 Ver tamién 
 Correición d'errores cuántica
 Recuperación de datos
 Corrupción de datos
 Automatic Repeat Request

 Referencies 

 Enllaces esternos 

 Otros códigos utilizaos

Categoría:Detección y correición d'errores
Categoría:Protocolos