Detección y corrección de errores en redes: CRC y FEC
Enviado por Comunidad Wikiteka y clasificado en Informática
Escrito el en
español con un tamaño de 2,92 KB
Actualizado el
Resumen
El documento explica dos métodos para detectar y corregir errores en la transmisión de datos. Describe el Control de Redundancia Cíclica (CRC), que añade bits redundantes calculados mediante división binaria para detectar alteraciones, y la Corrección de Errores Hacia Adelante (FEC), que añade redundancia para corregir errores en el receptor. También presenta los códigos de bloque (Hamming, por mayoría) y los códigos de convolución.
Puntos clave
- El CRC es una función que devuelve un valor de longitud fija a partir de un flujo de datos de cualquier longitud y se usa como suma de verificación.
- En el CRC se añaden R ceros al mensaje de k bits, se divide por un generador G y el resto r se añade al mensaje como secuencia redundante.
- En el receptor, si el resto de dividir la trama por G es 0 se asume que no hay error; si es distinto de 0, se asume que hay error.
- FEC permite detectar y corregir errores en el receptor sin necesidad de retransmisión, mediante bits de redundancia añadidos por el codificador.
- Existen dos tipos de codificación FEC: código de bloque (bloques de longitud fija) y código de convolución (longitud variable).
- El código Hamming detecta y corrige errores de un bit, mientras que el código por mayoría envía el mismo bit un número impar de veces y toma como válido el más recibido.
Resumen generado con IA a partir del documento. Ponte a prueba
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.
Preguntas frecuentes
¿Para qué sirve el CRC?
El CRC se utiliza como suma de verificación para detectar la alteración de datos durante su transmisión o almacenamiento. Si el resto de la división en el receptor no es 0, se asume que se ha producido algún error.
¿Qué diferencia hay entre código de bloque y código de convolución?
El código de bloque mapea bloques de k bits a bloques de n bits de longitud fija. El código de convolución codifica los bits según van llegando, con longitud variable, y requiere mucha memoria para estimar la secuencia más probable.
¿Qué es el código por mayoría?
Es un código de bloque en el que el mismo bit se envía un número impar de veces y se toma por válido el valor que más veces se ha recibido.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.