Skip to Content

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

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

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

¿Cómo funciona CRC?

El CRC se basa en el tratamiento de los datos que se transmitirán como polinomios. El emisor y el receptor acuerdan un polinomio divisor fijo, a menudo denominado 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 polinomial del generador. Al final del remitente, se calcula la suma de comprobación de CRC y se anexa a los datos antes de la transmisión. Al final 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 de CRC y códigos cíclicos puede parecer complejo, pero el concepto es más simple de lo que parece. Estos polinomios son básicamente 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 resultan en otra palabra de código válida.

Para comprender mejor, considere un ejemplo simplificado de corrección de errores utilizando una suma de comprobación básica. Imagine enviar un número binario y agregar un bit adicional que represente la paridad o 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 simple, 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 manejar errores más sutiles y proporcionar un mecanismo de verificación de errores más robusto.

Pruebe FlashArray

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

Pruebe ahora

¿Por qué usar CRC?

El CRC es particularmente eficaz para detectar errores que podrían alterar el orden de los bits en un mensaje. Esto es muy importante en situaciones en las que mantener la secuencia exacta de bits es esencial para interpretar los datos correctamente.

Una de las ventajas clave del CRC es su sencillez en la implementación, especialmente en el hardware binario. El algoritmo implica operaciones directas en bit, lo que lo hace eficiente para la verificació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 lo convierte en una opción atractiva para los diseñadores e ingenieros que necesitan comprender y optimizar las capacidades de comprobación de errores de sus sistemas. Las propiedades matemáticas del CRC facilitan una comprensió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 particularmente robusto en la detección de errores comunes introducidos por el ruido durante la transmisión de datos. Su naturaleza cíclica y su dependencia de la división polinomial le permiten identificar de manera eficaz los errores causados por fluctuaciones aleatorias o alteraciones en la señal.

Elegir el polinomio adecuado

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

Elegir el polinomio adecuado implica considerar varios factores. El grado del polinomio, por ejemplo, afecta la longitud de la suma de comprobación y, en consecuencia, 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 costo 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 de CRC pueda detectar una amplia gama de errores. Además, algunas aplicaciones pueden requerir propiedades específicas, como la detección de errores de ráfaga, que pueden verse influenciadas por la elección polinomial.

Se utilizan varios polinomios estándar comúnmente en los cálculos de CRC. La elección del polinomio depende de los requisitos específicos de la aplicación. Por ejemplo, el polinomio CRC-32 (0x04C11DB7) se emplea frecuentemente en protocolos de comunicación de red, mientras que el polinomio CRC-16 (0x8005) encuentra aplicación en sistemas de almacenamiento. El polinomio CRC-CCITT (0x1021) es conocido por su uso en telecomunicaciones.

Cada polinomio aporta características únicas, y seleccionar la adecuada implica una consideración cuidadosa de los requisitos de la aplicación y las compensaciones deseadas entre las capacidades de detección de errores y la eficiencia computacional.

Optimización del rendimiento de CRC

El CRC es un poderoso algoritmo de comprobación de errores, pero existen formas de mejorar su rendimiento, entre ellas:

  • Precomputación basada en tablas, que precalcula los valores de CRC y los almacena en una tabla para entradas de uso común. Esto reduce la necesidad de cálculos repetitivos, lo que mejora significativamente el rendimiento general.
  • Paralelización , que aprovecha el procesamiento paralelo para distribuir cálculos de CRC en varios núcleos o procesadores. Esto puede reducir considerablemente el tiempo requerido para las verificaciones de CRC, especialmente en escenarios con grandes conjuntos de datos.
  • Operaciones a bit como XOR y cambios, que suelen ser más eficientes que las operaciones aritméticas tradicionales.

Para reducir la complejidad operativa, es muy importante seleccionar el polinomio 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 para mejorar el rendimiento.

Al optimizar el rendimiento de CRC, hay algunas compensaciones que se deben considerar, entre ellas:

1. Uso de memoria frente a computación

Las tablas precalculadas pueden reducir el cálculo, pero pueden aumentar el uso de la memoria. Mida la compensación entre la utilización de la memoria y la eficiencia computacional en función de las limitaciones del sistema.

2. Complejidad frente a velocidad

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

Conclusiones

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

Aunque el CRC infunde confianza en la confiabilidad 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 verificación de errores y los recursos gastados en los cálculos del CRC.

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

08/2024
Enterprise Imaging with FlashArray
Read the Enterprise Imaging with FlashArraySolution Brief to increase the speed and stability of your data storage infrastructure.
Resumen de la solución
3 páginas
CONTÁCTENOS
¿Preguntas, comentarios?

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

Programe una demostración

Programe una demostración en vivo y compruebe usted mismo cómo Pure puede ayudarlo a transformar sus datos en potentes resultados. 

Llámenos: 800-976-6494

Medios de comunicación: pr@purestorage.com

 

Pure Storage, Inc.

2555 Augustine Dr.

Santa Clara, CA 95054

800-379-7873 (información general)

info@purestorage.com

CERRAR
¡Su navegador ya no es compatible!

Los navegadores más antiguos a menudo representan riesgos de seguridad. Para brindar la mejor experiencia posible al utilizar nuestro sitio, actualice a cualquiera de estos navegadores más recientes.