2.3- Detección y corrección de errores.Detección.
Se conocen el tipo de errores que
pueden existir, el problema es ser capaz de reconocerlos, dado que no se puede
comparar el dato recibido con el original, sólo se podría saber que ha habido
un error cuando se descodifique todo el mensaje y se vea que no tiene sentido.
Sin embargo existen determinadas técnicas sencillas y objetivas para detectar
los errores producidos en la transmisión:
Redundancia.
En las comunicaciones de datos se
usan cuatro tipos de comprobación de redundancia: verificación de redundancia
vertical (VRC, Vertical RedundancyCheck) conocida como verificación de paridad,
verificación de redundancia longitudinal (LRC longitudinal RedundancyCheck),
verificación de redundancia cíclica (CRC CyclicRedundandyCheck) y suma de
comprobación (Checksum). Las tres primeras se implementan habitualmente en el
nivel físico para que pueda usarlo en nivel de enlace de datos, mientras que la
suma de comprobación se usa en los niveles más altos.
Verificación de redundancia vertical VRC
Es el mecanismo más frecuente y
barato, la VRC se denomina a menudo verificación de paridad, y se basa en
añadir un bit de redundancia, denominado bit de paridad, al final de cada
unidad de datos, de forma que el número total de unos en la unidad (incluyendo
el bit de paridad) sea par, o impar en el caso de la verificación de paridad
impar.
Verificación de redundancia longitudinal LRC
En esta técnica, los bloques de
bits se organizan en forma de tabla (filas y columnas), a continuación se
calcula un bit de paridad para cada columna y se crea una nueva fila de bits,
que serán los bits de paridad de todo el bloque, a continuación se añaden los
bits de paridad al dato y se envían al receptor.
Verificación de redundancia cíclica CRC
A diferencia de las técnicas VRC
y LRC, que se basan en la suma (para calcular la paridad), la técnica CRC se
basa en la división binaria. En esta técnica, se añaden bits redundantes en la
unidad de datos de forma que los todo el conjunto sea divisible exactamente por
un número binario determinado, en el destino los datos recibidos son divididos
por ese mismo número, si en ese caso no hay resto de la operación, el dato es
aceptado, si apareciera un resto de la división, el dato se entendería que se
ha corrompido y se rechazará.
Corrección de errores
El concepto de la corrección de errores se puede
comprender con el caso más sencillo: el error de un único bit. Un error de un
bit supone que un bit ha cambiado de un 0 a un 1 o de un 1 a un 0, para
corregir el error, el receptor sólo tiene que invertir el valor del bit
alterado, sin embargo, para hacer eso, el receptor debe saber en qué bit está
el error, por lo que el secreto de la corrección de errores es localizar el bit
o bits inválidos. La cuestión es el uso de los bits de redundancia para la
corrección.
Código Hamming
Se pueden utilizar los bits de
redundancia para corregir errores, pero ¿cómo se manipulan esos bits para
descubrir en qué posición se ha producido el error? R. W. Hamming desarrolló
una técnica que proporciona una solución práctica. El código Hamming se puede
aplicar a unidades de datos de cualquier longitud y usa la relación de bits de
datos y de redundancia. En el código cada bit r es el bit de VRC (redundancia
vertical) para una combinación de bits de datos. Por ejemplo, un dato de 7 bits
necesita 4 bits de redundancia, los colocaremos en las posiciones 1, 2, 4 y 8.
Corrección de errores de ráfaga.
Se puede diseñar un código
Hamming para corregir errores de ráfaga de una cierta longitud, sin embargo el
número de bits de redundancia necesarios es muy elevado, porque los errores
pueden ser de tantos bits pero pueden estar en cualquiera de los bits de la
cadena transmitida.