Portada » Informática » Técnicas de Control de Errores en la Comunicación de Datos
Cada tipo de aplicación requiere un determinado nivel de fiabilidad: transacciones bancarias sin errores, aplicaciones de video y voz toleran algunos. Si los sistemas de transmisión no alcanzan los requisitos necesarios, se usan técnicas de control de errores para mejorar su comportamiento. Estas técnicas se dividen en dos categorías principales: detección de errores y retransmisión (ARQ, Automatic Repetition Request) y corrección de errores avanzado (FEC, Forward Error Correction).
Cualquier mecanismo de detección o corrección de errores necesita que la información sea redundante. Esto significa que se transmitirán bits extra que no serían necesarios para transmitir únicamente la información.
La información de usuario se codifica de manera que el mensaje cumple con unas determinadas características o patrón. Esto se consigue añadiendo bits redundantes a la información. Si el bloque recibido no presenta el patrón esperado (no es una palabra código válida), significa que se han producido errores y se puede alertar al emisor, rechazarla, etc.
La distancia de Hamming entre dos palabras es el número de diferencias entre los bits de la misma posición. La mínima distancia de Hamming de un código es la distancia más pequeña que hay entre todas las parejas de palabras código.
Cualquier técnica de detección de errores fallará en la detección de algunos errores, concretamente en aquellos donde los errores convierten una palabra código válida en otra palabra código válida.
Se mide como la probabilidad de que el sistema falle en la detección de un error. Hay que conocer las condiciones en que se producen errores. Dependen de las características particulares del canal de comunicación.
Suponemos que se transmite una palabra código de n bits. Se define el vector de error e = (e1,e2…en) donde ei=1 si se produce un error en la transmisión del bit e ei=0 en otro caso. El modelo del vector de error aleatorio considera que las 2n posibles vectores de error son equiprobables. En este modelo la probabilidad de e no depende del número de errores que contiene. En el sistema de paridad simple se producirán errores en la detección de errores siempre que el número de bits erróneos del vector de error sea par, por tanto la probabilidad de error en la detección de error es 1/2.
En este modelo los errores en cada bit se producen con una probabilidad p y de forma independiente los unos de los otros. La probabilidad de un vector de error con j errores es pj(1-p)n-j, para cualquier canal de interés p < 1, por tanto, (1-p) > 1, p/(1-p) < 1, esto significa que la probabilidad de cada vector de error se reduce a medida que aumenta el número de bits que contiene, los patrones con 1 error son más probables que los de dos, estos que los de 3, y así sucesivamente.
Para mejorar la cobertura se insertan más bits de paridad, la información se dispone en columnas, se añade un bit de paridad simple a cada fila y cada columna, se usaba en los primeros sistemas de control de errores. Todos los errores de 1, 2 y 3 bits son detectables, pero no lo son todos los patrones de 4 o más.
Representamos las palabras código mediante polinomios y no vectores, se usa aritmética polinómica en lugar de las sumas de comprobación, se implementan mediante registros de desplazamiento, también se llaman códigos de redundancia cíclica (CRC), los usan la mayoría de estándares de comunicación para la detección de errores, son la base de métodos de corrección de errores más potentes. Uno de los motivos para la utilización de estos códigos en sistemas de detección de errores es la facilidad de su implementación mediante circuitos formados a partir de registros de desplazamiento. La secuencia es:
El receptor acepta una palabra si el residuo de la división r(x)/g(x) es cero, por tanto, como b(x) es divisible por g(x) por construcción, si e(x) es también divisible por g(x), no se detectará el error. Para poder detectar una mayoría de los errores, habrá que seleccionar un polinomio generador que no sea divisor de los patrones de error más probables.
Algunos protocolos de internet (IP, TCP, UDP) usan bits de comprobación para detectar errores. En el caso del protocolo IP se calcula una suma de comprobación para el contenido de la cabecera y se inserta en un campo especial. Como la suma de comprobación se debe recalcular en cada encaminador, el algoritmo escogido lo es más porque permite una implementación en software sencilla y no tanto por sus capacidades detectoras.