Métodos De Detección Y Corrección De Errores
En matemáticas, informática y teoría
de la información, la detección y corrección de errores es una
importante práctica para el mantenimiento e integridad de los datos a través de
diferentes procedimientos y dispositivos como medios de almacenamiento
confiables. Se considera como precursor de este tipo
de tecnologías el Acme Comodity and Phrase Code usado en los telegramas.
Introducción
La comunicación entre
varias computadoras produce continuamente un movimiento de datos,
generalmente por canales no diseñados para este propósito (línea
telefónica), y que introducen un ruido externo que produce errores en
la transmisión.
Por lo tanto, debemos
asegurarnos que si dicho movimiento causa errores, éstos puedan ser detectados.
El método para detectar y corregir errores es incluir en los bloques de datos
transmitidos bits adicionales denominados redundancia.
Se han desarrollado dos
estrategias básicas para manejar los errores:
·
Incluir suficiente información redundante en
cada bloque de datos para que se puedan detectar y corregir los bits erróneos.
Se utilizan códigos de corrección de errores.
·
Incluir sólo la información redundante
necesaria en cada bloque de datos para detectar los errores. En este caso el
número de bits de redundancia es menor. Se utilizan códigos de detección
de errores.
Si consideramos un bloque de
datos formado por m bits de datos y r de redundancia, la
longitud final del bloque será n, donde n = m + r.
Tipo de códigos detectores
Paridad
simple
Consiste
en añadir un bit de más a la cadena que queremos enviar, y que nos indicará si
el número de unos (bits puestos a 1) es par o es impar. Si es par
incluiremos este bit con el valor = 0, y si no es así, lo incluiremos con valor
= 1.
El receptor ahora, repite la
operación de contar la cantidad de “unos” que hay (menos el último bit) y si
coincide, es que no ha habido error.
Problemas de este método:
Hay una alta probabilidad de que se cuelen casos en los que ha habido error, y que el error no sea detectado, como ocurre si se cambian dos números en la transmisión en vez de uno.
Un ejemplo de polinomio generador usado normalmente
en las redes WAN es:
Los cálculos que realiza el equipo transmisor para calcular
su CRC (Ciclic redundancy Check) son:
·
Añade tantos ceros por la derecha al mensaje
original como el grado del polinomio generador
·
Divide el mensaje con los ceros incluidos entre
el polinomio generador
·
El resto que se obtiene de la división se suma
al mensaje con los ceros incluidos
·
Se envía el resultado obtenido
Estas operaciones generalmente son incorporadas en el hardware para
que pueda ser calculado con mayor rapidez, pero en la teoría se utilizan los
polinomios para facilitar los cálculos.
En resumen, este método
requiere de un polinomio generador que, elegido correctamente, puede llegar a
detectar gran cantidad de errores:
·
Errores simples: todos
·
Errores dobles: todos
·
Errores en las posiciones impares de los bits:
todos
·
Errores en ráfagas con una longitud menor que
el grado del polinomio generador: todos
·
Otras ráfagas: un porcentaje elevado y cercano
al 100%
Referencia
G. J. Simmons, "A survey of Information Authentication". Contemporary Cryptology, The science of information integrity, ed. GJ Simmons, IEEE Press, New York, (1992)
Comentarios
Publicar un comentario