Detección y corrección de errores
Las redes deben ser capaces de transferir datos de un
dispositivo a otro con total exactitud, si los datos recibidos no son idénticos
a los emitidos, el sistema de comunicación es inútil. Sin embargo, siempre que
se transmiten de un origen a un destino, se pueden corromper por el camino. Los
sistemas de comunicación deben tener mecanismos para detectar y corregir
errores que alteren los datos recibidos debido a múltiples factores de la
transmisión.
Los errores pueden ser ocacionados por:
Interferencias, calor, magnetismo, etc, influyen en una
señal electromagnética, esos factores pueden alterar la forma o temporalidad de
una señal. Si la señal transporta datos digitales, los cambios pueden modificar
el significado de los datos.
Los tipos de errores pueden ser:
•
Error de bit
•
Error de rafaga
Error de bit
Únicamente un bit de una unidad de datos determinada cambia de 1 a 0 o viceversa.
Únicamente un bit de una unidad de datos determinada cambia de 1 a 0 o viceversa.
Error de rafaga
Significa que dos o más bits de la unidad de datos han
cambiado. Los errores de ráfaga no significa necesariamente que los errores se
produzcan en bits consecutivos. La longitud de la ráfaga se mide desde el
primero hasta el último bit correcto, algunos bits intermedios pueden estar
bien.
Conceptos básicos
Deteccion .- 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.
Redundandia.- consiste
en enviar dos veces cada unidad de datos, de forma que el dispositivo receptor
puede hacer una comparación bit a bit entre ambos datos y detectar si ha habido
errores, para corregirlos con el mecanismo apropiado.
Hay varios tipos de comprobacion de redundancia:
- · Verificacion de redundancia vertical
- · Verificacion de redundacia longitudinal
- · Verificacion de redundacia ciclica
Verificacion
de redundancia vertical (VRC)
La verificación de redundancia vertical es uno de los
mecanismos de verificación más simples. Consiste en agregar un bit adicional
(denominado bit de paridad) a un cierto número de bits de datos
denominado palabra código cuyo valor (0 o 1)
es tal que el número total de bits 1 es par. Para ser más claro, 1 si
el número de bits en la palabra código es impar, 0 en caso
contrario.
Tomemos el siguiente ejemplo
En este ejemplo, el número de bits de datos 1 es
par, por lo tanto, el bit de paridad se determina en 0. Por el
contrario, en el ejemplo que sigue, los bits de datos son impares, por lo que
el bit de paridad se convierte en 1:
Supongamos que después de haber realizado la transmisión,
el bit con menos peso del byte ha sido víctima de una interferencia:
El bit de paridad, en este caso, ya no corresponde al
byte de paridad: se ha detectado un error.
Sin embargo, si dos bits (o un número par de bits)
cambian simultáneamente mientras se está enviando la señal, no se habría
detectado ningún error.
Ya que el sistema de control de paridad puede detectar un
número impar de errores, puede detectar solamente el 50% de todos los errores.
Este mecanismo de detección de errores también tiene la gran desventaja de ser
incapaz de corregir los errores que encuentra (la única forma de arreglarlo es
solicitar que el byte erróneo sea retransmitido).
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.
Típicamente los datos se agrupa en unidades de múltiplos
de 8 -1 byte- (8, 16,24,32 bits) la función coloca los octetos uno debajo de
otro y calcula la paridad de los bits primeros, de los segundos, etc, generando
otro octeto cuyo primer bit es el de paridad de todos los primeros bits, etc.
Esta técnica incrementa la probabilidad de detectar
errores de ráfaga, ya que una LRC de n bits (n bits de paridad) puede detectar
una ráfaga de más de n bits, sin embargo un patrón de ráfaga que dañe algunos
bits de una unidad de datos y otros bits de otra unidad exactamente en la misma
posición, el comprobador de LRC no detectará un error.
Verificacion
de redundancia ciclica (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á.
La técnica añade unos bits de CRC, de la siguiente manera
en tres pasos básicos:
•
primer lugar se añade una tira de n ceros,
siendo n el número inmediatamente menor al número de bits del divisor
predefinido (que tiene n+1 bits)
•
segundo paso es dividir la nueva unidad de
datos por el divisor predefinido usando un proceso de división binaria, el
resto que quedara sería los bits de CRC a añadir
•
tercer paso es sustituir los n bits añadidos
en el paso primero por los n bits del resto de la operación del segundo paso,
el dato final será divisible exactamente por el divisor predefinido.
No hay comentarios.:
Publicar un comentario