CRC no es ni más ni menos que una mecanismo de verificación de integridad de datos, el cual realiza un checksum al enviar un paquete a otro punto de la red, y luego es realizado otro más al llegar a su destino. Ambos checksum serían comparados y en caso de que fuesen iguales, el paquete se daría por válido, mientras que en caso contrario se consideraría que el paquete se encuentra corrupto o infectado. A modo aclaratorio, he aquí un pequeño diagrama que puede resultar de ayuda:
El mecanismo de comprobación del CRC es ejecutado automáticamente por el sistema sin intervención alguna, pero eso no significa que no haya métodos para comprobar el CRC de un fichero manualmente sin necesidad de tener que enviarlo a ningún lado. La herramienta en cuestión, obviamente para entornos GNU/Linux, se llama cksum.
Cksum es una herramienta cuya dificultad de uso, afortunadamente, es nula y que ya viene pre-instalada en el sistema, con lo que su uso está al alcance de cualquiera. Su utilidad es el calcular el checksum CRC de un fichero y para usarla simplemente habría que escribir:
cksum fichero
Ejemplo:
cksum testCRCtxt
935282863 5 testCRCtxt
La salida de este comando estaría dividida en tres columnas: La primera correspondería al checksum CRC, la segunda al tamaño del fichero y la tercera al nombre de éste. Tanto el CRC como el tamaño son importantes, pero a nivel de red el que se tomaría en cuenta sería el CRC. Dicho checksum CRC cambiaría en caso de que el contenido de éste cambiase; veamos un pequeño ejemplo:
root@debian:/tmp# cat testCRC.txt
test
root@debian:/tmp# cksum testCRC.txt
935282863 5 testCRCtxt
root@debian:/tmp# echo 'Cambio de contenido' > testCRC.txt
root@debian:/tmp# cat testCRC.txt
Cambio de contenido
root@debian:/tmp# cksum testCRC.txt
301284194 20 testCRCtxt
En el ejemplo anterior se puede apreciar que cuando el contenido del fichero testCRC.txt es test, el checksum es 935282863 mientras que cuando el contenido es Cambio de contenido, sería 301284194. Dicho checksum también variaría con cambios más sutiles, tales como la sustitución de todas las i por u (mediante el comando sed por ejemplo).
root@debian:/tmp# sed -i 's/i/u/g' testCRC.txt
root@debian:/tmp# cat testCRC.txt
Cambuo de contenudo
root@debian:/tmp# cksum testCRC.txt
1797125648 20 testCRCtxt
Se podría considerar como una comprobación de checksum parecida a la usada con md5 (mediante md5sum) pero con un enfoque mucho más orientado a las redes; es más en este caso se podría decir que se hacen comprobaciones de integridad de forma automática sin que nosotros nos percatemos de ello; haciendo que el Código de Redundancia Cíclica sea usado por todo tipo de usuarios todos los días sin que la mayoría de ellos lo sepan, con lo que en ocasiones puede sernos interesantes conocer el CRC de un fichero con el fin de tener un mayor conocimiento de la información transmitida y/o recibida.
Espero que os haya parecido interesante.
Saludos.