Algoritmo de los códigos de redundancia cíclica
El algoritmo utilizado por la verificación por redundancia cíclica es el siguiente:
Se añaden r bits "0" a la derecha del mensaje (esto es, se añaden tantos ceros como grado tenga el polinomio generador).
Se divide el polinomio obtenido por el polinomio generador. La división se realiza en módulo 2, que es igual que la división binaria, con dos excepciones:
Lo cual equivale a aplicar una operación OR exclusiva (XOR) bit a bit
Después se añade el resto de la división a la derecha del mensaje original.
La elección del polinomio generador es esencial si queremos detectar la mayoría de los errores que ocurran. Uno de los polinomios generadores que más se suelen utilizar es el estándar CCITT:
x16 + x12 + x5 + 1.
Este polinomio permite la detección de:
- 100% de errores simples.
- 100% de errores dobles (salvo el caso excepcional que estén separados exactamente (2^16)-1 bits)
- 100% de errores de un número impar de bits.
- 100% de errores en ráfagas (en una serie sucesiva de bits) de 16 o menos bits.
- 99.99% de errores en ráfagas de 18 o más bits.
Enlaces externos
[editar]- Cyclic Redundancy Check Archivado el 11 de junio de 2005 en Wayback Machine. (en inglés)
- Error Detection with the CRC (en inglés)