¿Qué es el código de verificación de redundancia cíclica?
Categoría: Computadora/Red gt; Programación gt; Otros lenguajes de programación
Descripción del problema:
Es mejor tener ejemplos
Análisis:
El código de verificación de redundancia cíclica CRC (Cyclic Redundancy Check)
es un código de verificación de uso común y se usó ampliamente en las primeras comunicaciones porque la tecnología de comunicación temprana es no es lo suficientemente confiable (la fuente de falta de confiabilidad está determinada por la tecnología de la comunicación, como la comunicación por ondas electromagnéticas que se ve afectada por rayos y otros factores). La comunicación no confiable generará confusión sobre la "confirmación de información". El libro menciona al Ejército Rojo y al Ejército Azul. Un ejemplo de comunicaciones militares que atacan conjuntamente al enemigo al pie de la montaña. El primer día, el Ejército Rojo envió un mensaje pidiendo al Ejército Azul que atacara juntos al día siguiente. Después de recibirlo, el Ejército Azul envió un mensaje de confirmación. pero lo que preocupaba al Ejército Azul era el "mensaje de confirmación". Tampoco era confiable y no pudo comunicarse con el Ejército Rojo. Entonces, ¿no estaría en peligro? Entonces el Ejército Rojo envió otro "mensaje de confirmación", pero el mismo problema aún no podía resolverse y el Ejército Rojo todavía no se atrevía a actuar precipitadamente.
Verificar la confiabilidad de la comunicación requiere una "verificación". La verificación se basa en los datos mismos y se basa en una determinada forma matemáticamente acordada para verificar si el resultado de la verificación es confiable o no. fiable, los datos serán tratados; si no son fiables, serán descartados y retransmitidos o reparados;
El código CRC se compone de dos partes. La primera parte es el código de información, que es la información que debe verificarse. La segunda parte es el código de verificación si el código CRC tiene n bits de longitud. , el código de información tiene una longitud de k bits y se denominan códigos (n, k). Sus reglas de codificación son:
1. Primero desplaza el código de información original (kbit) hacia la izquierda en r bits (k r=n)
2. Usa un polinomio generador g(x ) (También se puede considerar como un número binario) Divida la fórmula anterior en módulo 2 y el resto obtenido es el código de verificación.
Es muy simple lo que hay que explicar: la división de módulo 2 es utilizar la suma de módulo 2 durante el proceso de división. La suma de módulo 2 es en realidad la operación XOR con la que estamos familiarizados, es decir, la suma. no considerar carry La fórmula es:
0 0=1 1=0, 1 0=0 1=1
Es decir, 'diferente' significa verdadero y 'no diferente'. ' significa falso.
De esto obtenemos el teorema: a b b=a, es decir, las tablas de valores directos de 'módulo 2 menos' y 'módulo 2 suma' son exactamente iguales.
Con la suma y la resta, se puede usar para definir la división de módulo 2, por lo que el polinomio generador g(x) se puede usar para generar el código de verificación CRC.
Por ejemplo: código g(x)=x4 x3 x2 1, (7, 3), el código CRC generado por el código de información 110 es:
101
11101 | 110, 0000
111 01
1 0100
1 1101
1001
El resto es 1001, por lo que el código CRC es 110, 1001
Los códigos CRC estándar son CRC-CCITT y CRC-16, y sus polinomios generadores son:
CRC-CCITT =x16 x12 x5 1
CRC-16=x16 x15 x2 1