You are on page 1of 16

APLICACIN DE POLINOMIOS PARA

CONTROL Y DETECCIN DE ERRORES EN LA


TRANSMISIN DE DATOS.
DOCENTE: ING. LUIS TORRES
MATERIA: MATEMATICA
PARALELO: INGENIERIA 20
INTEGRANTES:
JAIME FABIAN
MONTACHANA MAGALY
PARRALES GOMEZ NATHALY
PUHUEYESTEWA SARANGO HENRY
TIRCIO BRYAN
GUAYAQUIL- ECUADOR

1. INTRODUCCIN

A lo largo del tiempo el hombre ha permanecido en una interminable bsqueda


de la perfeccin, o exactitud, y la nica manera para lograr dicho propsito es
el empleo de procesos matemticos, puesto que la matemtica es conocida
como la ciencia exacta y todo aquello que se relacione con esta lo ser
tambin. Pero cabe mencionar que, en la realizacin de todo proceso, incluido
el matemtico pueden surgir errores, por ejemplo el cdigo binario, lenguaje
empleado en la informtica y con el cual las computadoras procesan la
informacin que adquieren, se basa en procesos matemticos para la
comprobacin de errores en el momento de una transferencia de datos.

Un cdigo muy conocido en la deteccin de dichos errores

basado en

procesos matemticos es el cdigo de redundancia cclica, el cual


comprende en una funcin diseada para detectar cambios accidentales en
datos de computadora y es comnmente usada en redes digitales y
dispositivos de almacenamiento. El funcionamiento de este cdigo se da
gracias al empleo de polinomios, con la particularidad de que los coeficientes
que acompaan nicamente podrn ser ceros (0) y unos (1), el mismo lenguaje
informtico llamado cdigo binario, por lo tanto se puede deducir que la
transferencia de datos esta dado en cdigo binario que resulta del uso de
polinomios cuyos coeficientes son 0 y 1.
El cdigo de redundancia cclica est diseado de elementos tales como un
emisor, que es el que enva el mensaje, el mensaje (polinomio en su forma
binaria), el receptor (quien recibe el mensaje) y un generador polinomio que es
el que se usar para las operaciones requeridas en el proceso.
El propsito de este trabajo es realizar una demostracin del funcionamiento de
los polinomios en el control y deteccin de errores en la transferencia de datos,
la cual se realizar mediante el uso de polinomios propuestos por los
estudiantes, y sern evaluados segn el algoritmo propuesto ms adelante en
el anlisis de resultados.

2. TEMA GENERAL:

Uso de polinomios en transferencia de datos


Tema especifico:
Aplicacin de polinomios para la deteccin y control de errores en la
transferencia de datos.
3. OBJETIVOS

Objetivo general:
Aplicar los polinomios para el control y deteccin de errores, basada en el
funcionamiento que realiza un polinomio con el CRC.
Objetivos especficos:
Explicar el funcionamiento de la comprobacin de la redundancia cclica
(CRC).
Formular un polinomio con coeficientes de 1 y 0 de manera tal que se o use
como mensaje, emitido por el emisor y a la vez sea verificado por el receptor.
Demostrar que el polinomio es muy til para detectar y controlar los errores en
la transmisin de informacin.

4. FUNDAMENTACIN TERICA

COMPROBACIN DE REDUNDANCIA CCLICA (CRC)

La comprobacin de redundancia cclica (CRC) es un cdigo de deteccin


de errores usado frecuentemente en redes digitales y en dispositivos de
almacenamiento para detectar cambios accidentales en los datos. Los bloques
de datos ingresados en estos sistemas contiene un valor de verificacin
adjunto, basado en el residuo de una divisin de polinomios; el clculo es
repetido, y la accin de correccin puede tomarse en contra de los datos
presuntamente corrompidos en caso de que el valor de verificacin no
concuerde; por lo tanto se puede afirmar que este cdigo es un tipo
de funcin que recibe un flujo de datos de cualquier longitud como entrada y
devuelve un valor de longitud fija como salida. El trmino suele ser usado para
designar tanto a la funcin como a su resultado. Pueden ser usadas
como suma de verificacin para detectar la alteracin de datos durante
su transmisin o almacenamiento. Las CRC son populares porque su
implementacin en hardware binario es simple, son fciles de analizar
matemticamente y
son
particularmente
efectivas
para
detectar errores ocasionados por ruido en los canales de transmisin. La CRC
fue inventada y propuesta por W. Wesley Peterson en un artculo publicado en
1961.
El CRC es un cdigo de deteccin de error cuyo clculo es una larga divisin
de computacin en el que se descarta el cociente y el resto se convierte en el
resultado, con la importante diferencia de que la aritmtica que usamos
conforma que el clculo utilizado es el arrastre de un campo, en este caso los
bits. El tamao del resto es siempre menor que la longitud del divisor, que, por
lo tanto, determina el tamao del resultado. La definicin de un CRC especifica
el divisor que se utilizar, entre otras cosas. Aunque un CRC se puede
construir utilizando cualquier tipo de regla finita, todos los CRC de uso comn
emplean una base finita binaria, esta base consta de dos elementos,
generalmente el 0 y 1. El resto de este artculo se centrar en este tipo de
composicin, es decir el mbito binario y los principios generales de los CRC.
La integridad de los datos frente a la codificacin
Es til para deteccin de errores, pero, en condiciones de seguridad, no
podemos confiar en que el CRC puede verificar plenamente que los datos son
los correctos en caso de que se hayan producido cambios deliberados y no
aleatorios.
A menudo se piensa que si, cuando llega un mensaje, ste y su CRC
coinciden, quiere decir que el mensaje no ha podido ser alterado durante su
transmisin, aunque se haya transmitido por un canal abierto.

Esta suposicin es falsa porque CRC es un mal mtodo de cifrado de datos. De


hecho, el CRC no se trata realmente de un mtodo de cifrado, lo que realmente
hace es utilizarse para el control de integridad de datos, pero en algunos casos
se supone que se utilizarn para el cifrado.
Cuando un CRC se calcula, el mensaje se conserva (no cifrado) y la constante
de tamao CRC se sita hacia el final (es decir, el mensaje puede ser tan fcil
como leer antes de la posicin que ocupa el CRC).
Adems, la longitud del CRC es por lo general mucho ms pequea que la
longitud del mensaje, es imposible para una relacin de 1:1 entre la CRC y el
mensaje.
As, numerosos cdigos producirn el mismo CRC.
Por supuesto, estos cdigos estn diseados para ser lo suficientemente
diferentes como para variar (y por lo general slo en uno o dos bits). Pequeos
cambios en la palabra clave produciran una gran diferencia entre un CRC y
otro; por ese motivo es posible detectar el error.
Si la manipulacin del mensaje (cambios de los bits) es deliberada, entonces
se tomara una nueva clave, produciendo un falso CRC el cual puede ser
calculado para el nuevo mensaje y sustituir el CRC real en el final del paquete y
esta modificacin no podr ser detectada.
La CRC sirve para verificar la integridad, pero no para saber si el mensaje es
correcto.
Por el contrario, un medio eficaz para proteger a los mensajes contra la
manipulacin intencional es el uso de un cdigo de autenticacin de
mensajes como HMAC.
Clculo de CRC
La mecnica de la informtica con su lenguaje binario produce unas CRC
simples. Los bits representados de entrada son alineados en una fila, y el (n +
1) representa el patrn de bits del divisor CRC (llamado polinomio) se coloca
debajo de la parte izquierda del final de la fila. Aqu est la primera de ellas
para el clculo de 3 bits de CRC:
11010011101100 <--- entrada
1011
--------------

<--- divisor (4 bits)

01100011101100 <--- resultado

Si la entrada que est por encima del extremo izquierdo del divisor es 0, no se
hace nada y se pasa el divisor a la derecha de uno en uno. Si la entrada que
est por encima de la izquierda del divisor es 1, el divisor es Or exclusiva en la
entrada (en otras palabras, por encima de la entrada de cada bit el primer bit
conmuta con el divisor). El divisor es entonces desplazado hacia la derecha, y
el proceso se repite hasta que el divisor llega a la derecha, en la parte final de
la fila de entrada. Aqu est el ltimo clculo:
00000000001110 <--- resultado de la multiplicacin de clculo
1011 <--- divisor
-------------00000000000101 <--- resto (3 bits)

Desde la izquierda se divide por cero todos los bits de entrada, cuando este
proceso termina el nico bits en la fila de entrada que puede ser distinto de
cero es n bits ms a la derecha, en la parte final de la fila. Estos n bits son el
resto de la divisin, y ser tambin el valor de la funcin CRC (es el CRC
escogido a menos que la especificacin de algn proceso posterior lo cambie).
Matemticas del CRC
Este apartado se refiere al anlisis matemtico de este proceso de divisin,
como pone de manifiesto la manera de elegir un divisor que garantiza la
deteccin de errores buenas propiedades. En este anlisis, los dgitos de las
cadenas de bits son considerados como los coeficientes de un polinomio en
algunos variables x/coeficientes, que son elementos del campo finito binario en
lugar de los nmeros decimales. Este polinomio forma unas cadenas de bits
que pueden observarse como elementos de un anillo. Un anillo es, hablando en
trminos generales, un conjunto de elementos, es decir como los nmeros que
pueden ser operados por una operacin semejante pero no idntica a la de la
suma y adems alguna otra operacin semejante a la multiplicacin, estas
operaciones poseen muchas de las propiedades de la aritmtica
conmutatividad, asociativa, y distributiva.

Especificacin de un CRC
El CRC se utiliza como una deteccin de errores de cdigo, el cual tiene una
serie de aplicaciones usadas cuando se implementa mediante normas,
convirtindolo as en un sistema prctico.
Estas son algunas de las aplicaciones:
Se

usa un patrn de prefijos de bit para comprobar su autenticidad. Esto


es til cuando la trama podra tener errores en los bits de delante de
un mensaje, una alteracin que, de otro modo dejara sin cambios al
CRC. A veces un envo agrega n bits (n es el tamao de la CRC) al
mensaje que se debe controlar ya que se cogera un polinomio que no
sera el correcto para la divisin. Esto tiene la conveniencia de que el
CRC del mensaje original con el CRC adjunto es exactamente cero,
por lo que el CRC se puede comprobar simplemente por la divisin
polinmica y comparando con el resto cero. A veces se realiza una
implementacin del CRC con OR exclusivos en el resto de la divisin
polinmica.
Orden de los bits: en ocasiones, el orden en el que se envan las
tramas de datos no corresponden exactamente con la posicin que
tendrn los bits en la divisin polinmica; es decir, que puede que el
primer bit enviado sea el de ms peso o viceversa. Este convenio
tiene sentido cuando las tramas a enviar se envan por puertos series
ya que el CRC es comprobado por el hardware de cada mquina, y
cada uno tendr un convenio conjunto de lectura y posicionamiento de
paquetes para el envi a la capa siguiente.
Omisin del orden del bit de ms peso del polinomio divisor:
algunos escritores proponen omitir esto, puesto que el bit mayor peso
es siempre 1, y ya que el bit CRC debe ser definido por un (n + 1) bits
del divisor, es innecesario mencionar el divisor mayor peso en el
mensaje y en el CRC. (TUTOWEBLOQ, 2013)1

Tutowebloq comprobacin de redundancia clica 7 Abril del 2013. Dispnible en.http://tutoweblog.wordpress.com/2013/04/07/comprobacion-de-redundancia-ciclica/ (fecha de consulta
24 de Julio del 2013)

5.

METODOLOGA:

Para el cdigo de redundancia cclica (CRC) se van a implementar mtodos


que tengan en cuenta dos factores importantes.

Deteccin ms segura de los errores: Dado que los datos se envan en


bloques un solo error corrompe toda la informacin contenida en l, que
es considerable, adems muchas veces se presentan en rfagas por
ello se requieren esquemas ms poderosos.

Eficiencia: No se deben consumir demasiados recursos dejando libre la


mayor parte del canal para datos.

Un grupo de mtodos que cumplen con dichos requisitos son los llamados
cdigos de redundancia cclica, que se basan en propiedades matemticas de
los cdigos empleados para la transmisin de datos, para dar una idea del
mtodo veremos un ejemplo sencillo. Deseamos transmitir al extremo receptor,
mediante un canal de comunicacin muy vulnerable a errores, un nmero.
Dadas las circunstancias es muy posible que si enviamos, digamos el nmero
23, llegue al extremo receptor un nmero distinto, una solucin es elegir un
nmero clave, por ejemplo el 5. Ahora dividimos el nmero a transmitir entre la
clave y calculamos el resto: 23/5 = 4 resto 3 y enviamos conjuntamente con el
23 el resto, o sea, transmitimos 233. En el extremo receptor se efecta el
proceso inverso, supongamos que hemos recibido 253 al dividir 25/5 el resto es
0 y 0 es distinto de 3 lo que indica error.

6. ANLISIS, APLICACIN Y PROCEDIMIENTO:

Los clculos que realiza el equipo transmisor para calcular su CRC son:
1. Aade tantos ceros por la derecha al mensaje original como el grado del
polinomio generador
2. Divide el mensaje con los ceros incluidos entre el polinomio generador
3. El resto que se obtiene de la divisin se suma al mensaje con los ceros
incluidos
4. Se enva el resultado obtenido.

Para entender mejor el procedimiento para calcular el CRC se va a considerar


o requerir lo siguiente:
Para ello se considera la cadena de bits a transmitir como el conjunto de
coeficientes de un polinomio, por ejemplo si enviamos 1100100110, el
polinomio equivalente P(x) es:
1 x9 + 1 x8 + 0 x7 + 0 x6 + 1 x5 + 0 x4 + 0 x3 + 1 x2 + 1 x + 0
*Sea
1100100110 = P(x) = x9 + x8 + x5 + x2 + x.

Debemos ahora especificar la clave para efectuar la divisin. La seleccin de


esta clave es esencial para la capacidad de respuesta del cdigo frente a los
diversos tipos de errores. El CCITT especifica algunas claves, que como se van
a emplear para dividir un polinomio sern tambin polinomios, denominados
polinomio generador. En el CRC denominado CRC-16 correspondiente a la
norma CCITT V.41, se utiliza el siguiente polinomio generador:

G(x) = x16 + x12 + x5 + x

Donde x = 1.

El procedimiento es el siguiente: se toma el polinomio de datos P(x) y se


multiplica por x*k, donde k es el exponente ms alto de G(x), este polinomio as
construido se divide por G(x) y se obtiene un polinomio resto R(x), llamado
BCS (Block Character Sequence), luego se procede a enviar el polinomio T(x)
construido as:
T(x) = xk P(x) + R(x)
En el extremo receptor se proceder a extraer lo que suponemos es xk P(x), lo
dividimos por G(x) y calculamos un polinomio resto que si coincide con el R(x)
recibido indicar que no hay errores.
La longitud de P(x) es variable, algunos autores hablan de 4 bytes para CRC16 y otros dicen que se aplica a la trama, bloque o paquete.
La operacin de divisin empleada en CRC se denomina de mdulo 2. Esta
divisin es diferente de la que estamos acostumbrados y funciona as:
La restas durante la divisin (o sea la obtencin del resto parcial o final) no
son aritmticas sino mdulo 2, lo que significa una operacin XOR entre los
dgitos binarios que se estn restando (1 y 0 da 1, 0 y 1 da 1, 0 y 0 da 0, 1 y 1
da 0).
S el primer bit del resto parcial es 1 y queda uno o ms bits del dividendo se
baja el primer bit de la izquierda no usado y se hace el XOR .En caso contrario
se bajan bits de la izquierda del dividendo hasta que este resto con los bits
bajados est encabezado por un 1 y tenga la misma longitud del divisor. De no
lograrse el resto con todos los bits bajados ser el resto final de la divisin.
Los polinomios generadores ms comunes son:
CRC-12: X12 + X11 + X3 + X2 + X + 1
CRC-16: X16 + X15 + X2 + 1
CRC CCITT V41: X16 + X12 + X5 + 1 (este cdigo se utiliza en el
procedimiento HDLC)
CRC-32 (Ethernet): = X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 + X8 +
X7 + X5 + X4 + X2 + X + 1
CRC ARPA: X24 + X23+ X17 + X16 + X15 + X13 + X11 + X10 + X9 + X8 + X5
+ X3 + 1
Este mtodo requiere de un polinomio generador que, elegido correctamente,
puede llegar a detectar gran cantidad de errores:

Errores simples: todos

Errores dobles: todos

Errores en las posiciones impares de los bits: todos

Errores en rfagas con una longitud menor que el grado del polinomio
generador: todos

7.

Otras rfagas: un porcentaje elevado y cercano al 100%.

ALGORITMO CDIGO DE REDUNDANCIA CCLICA (CRC).

Emisor:
1 Paso 1 (Formularse un polinomio con coeficientes de 1 y 0)
M = 1010001101 (10 bits)
P = 110101 (6 bits)
FCS=R= (5 bits)
2 Paso 2
2(n)M = 2(5)M = 101000110100000
3 Paso 3
El resultado anterior se divide por P

R = 01110

4 Paso 4
T = 2(n)M + R = 101000110101110

Es lo que se transmite

Receptor:

1 Mediante el protocolo correspondiente acuerdan el polinomio generador


2 Divide el cdigo recibido entre el polinomio generador
3 Comprueba el resto de dicha operacin
3.1 Si el resto es cero, no se han producido errores
3.2 Procesar el mensaje
3.1 Si el resto es distinto de cero, significa que se han producido errores
3.2 Reenviar el mensaje
3.2 Intentar corregir los errores mediante los cdigos correctores.
Estas son algunas de las aplicaciones:

Se usa un patrn de prefijos de bit para comprobar su autenticidad. Esto es til


cuando la trama podra tener errores en los bits de delante de un mensaje, una
alteracin que, de otro modo dejara sin cambios al CRC. A veces un envo
agrega n bits (n es el tamao de la CRC) al mensaje que se debe controlar ya

que se cogera un polinomio que no sera el correcto para la divisin. Esto tiene
la conveniencia de que el CRC del mensaje original con el CRC adjunto es
exactamente cero, por lo que el CRC se puede comprobar simplemente por la
divisin polinmica y comparando con el resto cero. A veces se realiza una
implementacin del CRC con OR exclusivos en el resto de la divisin
polinmica.
Orden de los bits: en ocasiones, el orden en el que se envan las tramas de
datos no corresponden exactamente con la posicin que tendrn los bits en la
divisin polinmica; es decir, que puede que el primer bit enviado sea el de
ms peso o viceversa. Este convenio tiene sentido cuando las tramas a enviar
se envan por puertos series ya que el CRC es comprobado por el hardware de
cada mquina, y cada uno tendr un convenio conjunto de lectura y
posicionamiento de paquetes para el envi a la capa siguiente.
Omisin del orden del bit de ms peso del polinomio divisor: algunos escritores
proponen omitir esto, puesto que el bit mayor peso es siempre 1, y ya que el bit
CRC debe ser definido por un (n + 1) bits del divisor, es innecesario mencionar
el divisor mayor peso en el mensaje y en el CRC.

8.

CLCULOS Y RESULTADOS:

Se quiere mandar el mensaje de la letra L, empleando el polinomio generador


X4 + x + 1, determinar los valores en binario y polinomio que se transmitirn.
Emisor:
Formular el polinomio: 1x6+1x5+0x4+0x3+0x2+1x1+0x0
Mensaje en cdigo binario: 1100010
6

1x +1x +0x +0x +0x +1x +0x

Mensaje en polinomio: x6 + x5 + x
Polinomio generador: X4 + x + 1
El generador en binario: 10011
Mensaje con los bits aumentado: 11000100000 (segn el grado del generador)

* Dividir el mensaje con los bits aumentado por el generador:


1 1 0 0 0 1 0 0 0 0 0 |____1_0_0_1_1_______
10011
1101001
-----------010111
10011
------------001000
00000
------------010000
10011
------------000110
00000
------------001100
00000
------------011000
10011
------------0 1 0 1 1 -------- resto (X3 + X + 1) sumado con el mensaje.
Transmitir el mensaje en binario, ms el nmero de dgitos segn el grado del
generador en este caso es de grado 4, tomados del residuo: --11000101011
Transmitir el mensaje en polinomio: X10 + X9 + X5 + X3 + X + 1

Receptor:
Generador en cdigo binario: 10011
Mensaje transmitido en binario: 11000101011
11000101011
10011

|____1_0_0_1_1_______
1101001

------------010111
10011
------------001000
00000
-------------010001
10011
------------000100
00000
------------001001
00000
------------010011
10011
------------0 0 0 0 0 -------- no se han producido errores.

9.

CONCLUSIONES:

En conclusin a lo largo del presente trabajo se ha ido realizando las


especificaciones posibles para cumplir con los objetivos planteados al principio,
y en efecto se demostro la importancia del uso de los polinomios con el fin de
detectar y controlar errores, por ejemplo en el ejercicio que se propuso en este
trabajo, se cumple la function principal del polinomio porque en efecto fue de
gran ayuda su empleo, puesto que tra haber

llevado a cabo el algoritmo

propuesto se lleg a obtener como residuo una serie de digitos, los cuales
fueron ceros (00000), lo que quiere decir que la tranferencia del mensaje
emitido por el emisor hacia el receptor fue exitosa, ya que no hubo error, pero
esto no quiere decir que no pueda ocurrir lo contrario, es decir a lo largo del
algoritmo o metodologia de pasos empleada pudo ocurrir un error ya sea en las
operaciones matemticas empleadas o en una mala codificacin, es de suma
importancia mencionar que el exito de una tranferencia de datos depende en
gran magnitud del generador polinmico, debido a que ste debe ser de grado
menor en comparacin al mensaje a enviar. Por otro lado se tiene que la
tranferencia suele ser mas complicada segn el numero de digitos , debido a
que segun aumenta el numero de digitos la probabilidad se hace mayor.
Por ltimo cabe recalcar que la regla o limitacion que se us para restar en la
divisin del polinomio en su forma binaria utilizada fu en base a un tipo de
operador lgico , la disyucin exclusiva, la cual indica que la operacion entre
dos propociciones verdaderas arrojar una falsa, es decir 0, y de igual manera
si ambas fueran falsas, la unica probabilidad de que estra sea verdadera osea
1 es que ambas sean distintas una de la otra.

BIBLIOGRAFIA

10.

TUTOWEBLOQ. (7 de ABRIL de 2013). Recuperado el 24 de JULIO de 2013,


de TUTOWEBLOQ:
http://tutoweblog.wordpress.com/2013/04/07/comprobacion-de-redundanciaciclica/

SLIDESHARE. METODO PARA LA DETECCIN Y CONTROL DE ERRORES DISPONIBLE EN.http://www.slideshare.net/dhuertacruz/mtodos-para-la-deteccin-y-correccin-deerrores

TRIPOD.COM

CODIGO

DE

REDUNDANCIA

CICLICA

DISPONIBLE

http://fernando526.tripod.com/mediosdetransmisionguiados/id4.html

EN