Métodos de Detección y Corrección de Errores: CRC y FEC en Redes
Clasificado en Informática
Escrito el en español con un tamaño de 2,92 KB
Control de Redundancia Cíclica (CRC)
El Control de Redundancia Cíclica (CRC) es un tipo de función que recibe un flujo de datos de cualquier longitud como entrada y devuelve un valor de longitud fija como salida. Pueden ser usadas como suma de verificación (checksum) para detectar la alteración de datos durante su transmisión o almacenamiento.
Para un mensaje de k bits, se le añaden por la derecha R bits, que serán ceros. El número de ceros dependerá del protocolo convenido (el llamado CRC-..). Luego se divide por un número G, formado por k-R. La división consiste en una división binaria. El resto de la división es la secuencia r de bits redundante, que se añade al mensaje original.
Luego, el receptor divide la trama por el mismo número G (generador). Si el resto es 0, se asume que no hay error. Si el resto es distinto de 0, se asume que se ha producido algún error.
Corrección de Errores Hacia Adelante (FEC)
Proceso
Cada bloque de k bits de datos se mapea a un bloque de n bits. Hay dos formas para ello: código de bloques (bloques de longitud fija) y código de convolución (bits o símbolos de longitud variable).
Lo recibido se pasa al decodificador FEC y, si no hay errores, el bloque original va a la salida. Algunos patrones de error son detectados y corregidos, y otros son detectados pero no corregidos. Otros pocos patrones de error ni siquiera se detectan. Estos resultan en salidas incorrectas del FEC.
Funcionamiento
El emisor añade al mensaje original unos bits de redundancia. La fuente envía la secuencia de datos al codificador, encargado de añadir dichos bits de redundancia. A la salida del codificador obtenemos el código que se enviará al receptor, que mediante un decodificador adecuado y una serie de algoritmos obtendrá la secuencia de datos original.
Tipos de Codificación FEC
Código de Bloque
La paridad es aplicada en el codificador mediante un algoritmo a un bloque de bits. El codificador aplica el algoritmo inverso para identificar y corregir errores.
Ejemplos de Códigos de Bloque
- Código Hamming: Se pueden detectar errores en un bit y corregirlos, pero no distingue entre errores de 2 bits y 1 bit.
- Código por Mayoría: El mismo bit se envía un número impar de veces, y el que por mayoría ha sido el más recibido es el que se toma por válido.
Código de Convolución
Los bits se van codificando tal y como van llegando al codificador. Es necesaria una gran cantidad de memoria para estimar la secuencia de datos más probable para los bits recibidos.