2012-03-09 13 views
10

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 en Redes de Computadoras y ya me estoy perdiendo.¿Qué es la verificación de redundancia cíclica y cómo funciona en términos simples (para los dummies)?

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 qué es un polinomio generador, qué polinomios tienen que hacer con CRC y resumirlo, todo eso me parece totalmente incomprensible.

Leí la entrada del wiki en CRC pero no me ayudó porque no soy bueno en matemáticas y todos estos símbolos y términos matemáticos son como el chino para mí.

Entiendo que CRC se utiliza para la detección de errores al enviar datos en la red, pero a partir de ese momento estoy perdido.

¿Alguien me puede ayudar a explicar este concepto en términos simples y, posiblemente, dar un ejemplo?

Durante la última conferencia el profesor comenzó a dibujar todos estos y ceros, dividiendo y no sé qué y yo solo estaba mirando y sintiéndome estúpido.

¡Estaría muy agradecido de que alguien pueda ayudarme a entender!

+0

¿Ha tratado de leer un artículo sobre él en Wikipedia? – kirilloid

+0

Le sugiero que lea el siguiente pdf: http://www.HackersDelight.org/crc.pdf – guga

+0

sí, leo ambos, pero estaba pensando que alguien podría explicarlo mejor y en términos más simples ... –

Respuesta

19

Si desea que la respuesta sea muy simple que necesita para aceptar alguna simplificación excesiva, si estás dispuesto a vivir con eso, aquí va:

Los datos se transmiten a través de enlaces imperfectos - pueden producirse 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 lo haría?

Puede transmitir cada información dos veces y si en el extremo receptor puede ver que la primera es diferente a la segunda, sabe que ha ocurrido un error y necesita volver a solicitar los datos, pero esto sería muy derrochador, efectivamente reduciría su ancho de banda a la mitad.

Ahora, ¿qué pasaría si pudieras calcular algún valor que sea mucho más pequeño que los datos en sí y que aún dependa de él? Por lo tanto, si los datos cambian a lo largo del camino (debido a un error), el valor calculado ya no "coincidirá" con los datos y sabrá que se ha producido un error. ¿Hay tal cálculo?

¿Qué pasa con la división simple y tomando un resto como este valor?

Diga Deseo transmitir una información/número 1,000. Lo divido por número elegido, como 6 por ejemplo ... eso me da 166 y un resto de 4. Tomo el resto como valor de verificación, que es mucho más pequeño que la información que estoy transmitiendo, así que no estoy perdiendo Demasiado ancho de banda y yo transmito 1,000 seguido de 4. Un receptor lo recibe, toma el número 1,000 lo divide por 6 y si el resto es 4 entonces asume que no ha ocurrido ningún error.

Si ha ocurrido un error y recibiría 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 ha ocurrido un error. Ese es el principio básico de CRC.

Por supuesto, es un poco más complicado porque se divide por un polinomio, pero el principio de usar un resto como "valor corto que representa los datos" para comprobar los errores de la misma manera se mantiene.

espero que esto le ayuda a conseguir su cabeza alrededor de lo que está pasando;)

+1

Esta respuesta simplificada podría ser un buen punto de partida para comprender realmente el concepto de CRC. :) –

Cuestiones relacionadas