Skip to Content

¿Qué es una comprobación de redundancia cíclica (CRC) en las redes?

¿Qué es una comprobación de redundancia cíclica?

Una comprobación de redundancia cíclica (CRC) es una técnica matemática que proporciona una manera de detectar errores en los datos transmitidos añadiendo un código especial, llamado suma de comprobación, a la información original. Esta suma de comprobación se vuelve a calcular en el extremo receptor para verificar la integridad de los datos. El CRC desempeña un papel fundamental en la identificación y corrección de los posibles daños en los datos en las redes, en las que la transferencia de datos fiable es fundamental. También se utiliza en los sistemas de almacenamiento de datos, incluidos los discos duros y la memoria flash, para verificar la precisión de los datos almacenados. La CRC es crucial en protocolos como Modbus, la red de área de controlador (CAN) y muchos otros en los que es esencial una transferencia de datos fiable.

¿Cómo funciona el CRC?

El CCR se basa en el tratamiento de los datos que se transmiten como un polinomio. El remitente y el receptor están de acuerdo en un polinomio divisor fijo, a menudo conocido como polinomio generador. Los datos se aumentan con una suma de comprobación, que es el resto de la división polinómica de los datos originales por el polinómico del generador. Al final del remitente, la suma de comprobación del CRC se calcula y se adjunta a los datos antes de la transmisión. En el extremo del receptor, los datos recibidos junto con la suma de comprobación se dividen por el mismo polinomio generador. Si el resto es cero, se supone que los datos están libres de errores; de lo contrario, se detecta un error.

El uso de polinomios y códigos cíclicos de CRC puede sonar complejo, pero el concepto es más sencillo de lo que parece. Estos polinomios son esencialmente representaciones matemáticas que ayudan en el proceso de detección de errores. Los códigos cíclicos, en el contexto de CRC, se refieren a los códigos en los que los cambios cíclicos de cualquier palabra de código válida dan lugar a otro palabra de código válido.

Para entender mejor, considere un ejemplo simplificado de corrección de errores usando una suma de comprobación básica. Imagine enviar un número binario y añadir un bit adicional que represente la paridad o la suma de los bits originales. Si los datos recibidos no coinciden con la paridad esperada, se detecta un error.

CRC es una versión más sofisticada de este proceso. En lugar de una suma sencilla, el polinomio CRC realiza un cálculo más complejo, lo que introduce una mayor redundancia y mejora la capacidad de detección de errores. Esta mayor complejidad es crucial para gestionar errores más sutiles y proporcionar un mecanismo de comprobación de errores más sólido.

Haga un Test Drive con FlashArray

Experimente cómo Pure Storage simplifica drásticamente los bloques y los archivos en un entorno de autoservicio.

Probar ahora

¿Por qué usar CRC?

CRC es especialmente eficaz para detectar errores que pueden alterar el orden de los bits en un mensaje. Esto es muy importante en situaciones en las que el mantenimiento de la secuencia exacta de bits es esencial para interpretar los datos correctamente.

Una de las ventajas clave de CRC es su sencillez de implementación, sobre todo en el hardware binario. El algoritmo implica unas operaciones sencillas basadas en bits, lo que lo hace eficiente para la comprobación de errores basada en hardware.

El CRC no solo es fácil de implementar, sino que también es fácil de analizar matemáticamente. Esto hace que sea una opción atractiva para los diseñadores e ingenieros que necesitan entender y optimizar las capacidades de comprobación de errores de sus sistemas. Las propiedades matemáticas del CRC facilitan una visión más profunda de sus características de rendimiento, lo que ayuda a ajustar los parámetros para aplicaciones específicas.

En los canales de comunicación del mundo real, el ruido es un compañero inevitable. El CRC es especialmente robusto para detectar errores comunes introducidos por el ruido durante la transmisión de datos. Su naturaleza cíclica y su dependencia de la división polinómica le permiten identificar de manera efectiva los errores causados por fluctuaciones o perturbaciones aleatorias en la señal.

Elección del polinomio adecuado

En el centro del CRC se encuentra el polinomio utilizado en la generación y verificación de la suma de comprobación. La elección del polinomio influye significativamente en las capacidades de detección de errores del CRC. El polinomio actúa como divisor en la división polinómica, determinando la estructura de la suma de comprobación.

Elegir el polinomio adecuado implica tener en cuenta varios factores. El grado del polinomio, por ejemplo, afecta a la longitud de la suma de comprobación y, en consecuencia, a las capacidades de detección de errores. Equilibrar el deseo de una suma de comprobación más larga (detección de errores mejorada) con el coste computacional es una consideración crucial.

Otros factores incluyen las propiedades matemáticas del polinomio, como su irreducibilidad. Un polinomio irreducible garantiza que el algoritmo CRC pueda detectar una amplia gama de errores. Además, algunas aplicaciones pueden necesitar propiedades específicas, como la detección de errores de ráfaga, que pueden verse influidas por la elección polinómica.

En los cálculos de CCR suelen usarse varios polinomios estándar. La elección del polinomio depende de los requisitos específicos de la aplicación. Por ejemplo, el polinomio CRC-32 (0x04C11DB7) se utiliza con frecuencia en los protocolos de comunicación de red, mientras que el polinomio CRC-16 (0x8005) encuentra aplicación en los sistemas de almacenamiento. El polinomio CRC-CCITT (0x1021) es conocido por su uso en las telecomunicaciones.

Cada polinomio aporta unas características únicas y la selección de la adecuada conlleva una cuidadosa consideración de los requisitos de la aplicación y de las concesiones deseadas entre las capacidades de detección de errores y la eficiencia computacional.

Optimización del rendimiento del CRC

CRC es un potente algoritmo de comprobación de errores, pero hay maneras de mejorar su rendimiento, que incluyen:

  • Precomputación basada en tablas, que precalcula los valores de CRC y los almacena en una tabla para las entradas más utilizadas. Esto reduce la necesidad de realizar cálculos repetitivos, lo que mejora significativamente el rendimiento global.
  • Paralelización , que utiliza el procesamiento paralelo para distribuir los cálculos de CRC entre múltiples núcleos o procesadores. Esto puede reducir sustancialmente el tiempo necesario para las comprobaciones de CRC, sobre todo en escenarios con grandes conjuntos de datos.
  • Operaciones bit a bit como XOR y cambios, que a menudo son más eficientes que las operaciones aritméticas tradicionales.

Para reducir la complejidad operativa, es muy importante seleccionar el polinomio de CRC adecuado. Algunos polinomios ofrecen mejores capacidades de detección de errores con una sobrecarga computacional mínima. También puede adaptar el tamaño de la palabra CRC para que coincida con la arquitectura del sistema y mejore el rendimiento.

Al optimizar el rendimiento del CRC, hay que tener en cuenta algunas de las ventajas, como:

1. Uso de la memoria frente al cálculo

Las tablas precalculadas pueden reducir el cálculo, pero pueden aumentar el uso de la memoria. Calcule el equilibrio entre el uso de la memoria y la eficiencia computacional basándose en las limitaciones del sistema.

2. Complejidad frente a velocidad

Los polinomios de CRC más complejos pueden ofrecer una mejor detección de errores, pero pueden ser computacionalmente caros. Logre un equilibrio entre complejidad y velocidad, alineando los esfuerzos de optimización con casos de uso específicos.

Conclusión

CRC tiene un amplio uso en aplicaciones del mundo real, incluidos protocolos de red, sistemas de almacenamiento y protocolos de comunicación. CRC destaca en la detección de errores durante la transmisión de datos y su capacidad para identificar errores tanto de ráfaga como aleatorios garantiza que los datos recibidos coincidan con los datos transmitidos. El CRC actúa como protección frente a la corrupción de los datos en los sistemas de almacenamiento. Al detectar los errores desde el principio, CRC ayuda a mantener la integridad y la resiliencia de la información almacenada, lo que es fundamental para la fiabilidad de los datos a largo plazo.

Si bien el CRC infunde confianza en la fiabilidad de la transferencia y el almacenamiento de datos, sí viene con gastos generales computacionales, así que asegúrese de evaluar la compensación entre los beneficios de la comprobación de errores y los recursos gastados en cálculos del CRC.

Además, recuerde que el CRC solo juega un papel en el panorama general de la protección de datos moderna. La solución de protección de datos moderna y completa de Pure Storage le permite restaurar los datos cuando más le importa, proteger a su empresa de los ataques, dirigir su empresa sin disrupciones, tomar el control de su entorno y garantizar un entorno de almacenamiento limpio.

11/2024
Pure Storage FlashArray//C | Data Sheet
FlashArray//C lets you consolidate workloads with consistent all-flash NVMe performance at a lower TCO than hybrid storage.
Hoja de datos
4 páginas
CONTACTAR CON NOSOTROS
¿Preguntas, comentarios?

¿Tiene alguna pregunta o comentario sobre los productos o las certificaciones de Pure?  Estamos aquí para ayudarle.

Programe una Demostración

Programe una demostración en vivo y vea personalmente cómo Pure puede ayudarle a convertir sus datos en unos resultados potentes. 

Llámenos al: +34 51 889 8963

Medios de comunicaciónpr@purestorage.com

 

Castellana 81

28046 Madrid

Oficinas Pure: 1415 y 1417 (planta 14)

info@purestorage.com

CERRAR
Your Browser Is No Longer Supported!

Older browsers often represent security risks. In order to deliver the best possible experience when using our site, please update to any of these latest browsers.