¿Qué es la verificación de redundancia cíclica y cómo funciona en términos simples (estilo para tontos)?
Frecuentes
Visto 16,600 veces
18
Tengo problemas para entender el concepto y el funcionamiento del término que suena feo "verificación de redundancia cíclica"Estoy asistiendo a un curso universitario sobre redes informáticas y ya me estoy perdiendo.
El problema es que mi comprensión de las matemáticas es muy limitada (estudié matemáticas hace mucho tiempo en la escuela y olvidé la mayor parte) y no puedo entender, por ejemplo, qué diablos es un polinomio generador, qué tienen que ver los polinomios con CRC y en resumen, todo eso me parece totalmente incomprensible.
Leí la entrada de la wiki sobre CRC pero no me ayudó porque no soy bueno en matemáticas y todos estos símbolos y términos matemáticos me parecen chinos.
Entiendo que CRC se usa para la detección de errores al enviar datos en la red, pero a partir de ahí estoy perdido.
¿Alguien puede ayudarme a explicar este concepto en términos simples y posiblemente dar un ejemplo?
Durante la última lección, el profesor empezó a dibujar todos estos unos y ceros, dividiendo y no sé qué, y yo estaba mirando y sintiéndome estúpido.
Estaría muy agradecido si alguien me puede ayudar a entender!
1 Respuestas
35
Si desea que la respuesta sea muy simple, debe aceptar una simplificación excesiva, si está dispuesto a vivir con eso, aquí va:
Los datos se transmiten a través de enlaces imperfectos: pueden ocurrir errores en el camino. Imagine que desea asegurarse de que la información recibida sea la misma que la transmitida sin desperdiciar demasiado ancho de banda, ¿cómo haría eso?
Podría transmitir cada pieza de información dos veces y si en el extremo receptor ve que la primera es diferente a la segunda, sabe que ha ocurrido un error y necesita solicitar los datos nuevamente, pero esto sería un gran desperdicio, sería reducir efectivamente su ancho de banda a la mitad.
Ahora, ¿qué pasaría si pudiera calcular algún valor que es mucho más pequeño que los datos mismos pero que depende de ellos? Entonces, si los datos cambiaron en el camino (debido a un error), el valor calculado ya no "coincidiría" con los datos y sabría que ocurrió un error. ¿Existe tal cálculo?
¿Qué pasa con la división simple y tomando un resto como este valor?
Digamos que quiero transmitir una información/número 1,000. Lo divido por el número elegido, como 6, por ejemplo... eso me da 166 y un resto de 4. Tomo el resto como mi valor de verificación, que es mucho más pequeño que la información que estoy transmitiendo, así que no estoy desperdiciando demasiado ancho de banda y transmito 1,000 seguido de 4. Un receptor lo obtiene, toma el número 1,000 y lo divide por 6 y si el resto es 4 entonces asume que no ha ocurrido ningún error.
Si hubiera ocurrido un error y recibiera 998 en lugar de 1,000 debido a un error en el enlace, lo dividiría por 6, obtendría un resto de 2 que no coincide con 4 y viola, sabe que ocurrió un error. Ese es el principio básico de la CDN.
Por supuesto, es un poco más complicado porque divide por un polinomio, pero se mantiene el principio de usar un resto como un "valor corto que representa los datos" para verificar si hay errores de la misma manera.
Espero que esto te ayude a entender lo que está pasando ;)
respondido 12 mar '12, 23:03
Esta respuesta simplificada podría ser un buen punto de partida para comprender realmente el concepto de CRC. :) - Amir Syafrudín
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas networking crc data-link-layer or haz tu propia pregunta.
¿Has intentado leer un artículo al respecto en wikipedia? - kirilloid
Te sugiero que leas el siguiente pdf: HackersDelight.org/crc.pdf - guga
si leí los dos, pero estaba pensando que alguien podría explicarlo mejor y en términos más simples... - Boyko Arsov