You are on page 1of 12

Planificacin y administracin de redes

1 S.M.R.

Documento
Temas 4: Cdigos detectores y correctores de error

Contenido
INTRODUCCIN ............................................................................................................................. 2
PARIDAD SIMPLE PAR .................................................................................................................... 2
PARIDAD SIMPLE IMPAR ............................................................................................................... 2
PARIDAD EN BLOQUE (MULTIDIMENSIONAL) PAR ....................................................................... 3
CDIGO DE REDUNDANCIA CCLICA (CRC).................................................................................... 4
PRESENTACIN DE LA TCNICA ................................................................................................ 4
ALGORITMO QUE SIGUE EL EMISOR ......................................................................................... 5
ALGORITMO QUE SIGUE EL RECEPTOR ..................................................................................... 5
EL POLINOMIO GENERADOR ..................................................................................................... 5
CDIGO HAMMING ....................................................................................................................... 5
EJERCICIOS RESUELTOS ................................................................................................................. 9

Planificacin y administracin de redes


1 S.M.R.

Documento
Temas 4: Cdigos detectores y correctores de error

INTRODUCCIN
Este documento es el resultado del trabajo colaborativo de los alumnos de 1 de ASIR del
curso 2012-2013 del IES Jos Luis Sampedro. Se trata de una aproximacin breve y
superficial a los cdigos detectores y/o correctores de los errores de transmisin que se
producen en el nivel fsico del modelo OSI.

PARIDAD SIMPLE PAR


Consiste en aadir un cero a la cadena de bits si el nmero de unos es par.
Ejemplo de generacin de un bit de paridad simple par:
Queremos enviar la cadena 1110110100:
1 Contamos la cantidad de unos que hay: 6 unos
2 El nmero de unos es par por tanto aadimos un bit con valor = 0
3 La cadena enviada es 11101101000
El receptor ahora, repite la operacin de contar la cantidad de unos que hay
(menos el ltimo bit) y si coincide, es que no ha habido error.
Problemas de este mtodo:
Hay una alta probabilidad de que se cuelen casos en los que ha habido error, y que
el error no sea detectado, como ocurre si se cambian dos nmeros en la
transmisin en vez de uno. Es decir, slo es posible detectar un nmero impar de
errores en los bits transmitidos.
Ejemplo
El emisor enva 1100110 y en destino llega 1111000 el receptor no va a
detectar que hay error.

PARIDAD SIMPLE IMPAR


Es un cdigo de error que se utiliza para detectar y, en algunos casos corregir,
errores en la transmisin aadindose un bit de paridad a los bits de la cadena
original.
El emisor aade un bit llamado bit de paridad a la cadena que se va a enviar, el
receptor cuenta el nmero de bits en 1 de la cadena, sin contar al bit de paridad, y
si la paridad (impar, en este caso) de los bits en 1 est bien, se considera que no
hay error. En la paridad simple se aade slo un bit de paridad y normalmente a la
izquierda.
La paridad impar es el cdigo que determina cundo el bit de paridad ha de ser un
1 o un 0. Se aade un bit en 1 o en 0 segn haya un nmero par o impar de bits en
1, siempre intentando que el nmero de bits en 1 en la cadena tras aadir el bit de

Planificacin y administracin de redes


1 S.M.R.

Documento
Temas 4: Cdigos detectores y correctores de error

paridad sea impar. Por ejemplo, si la cadena a enviar es 110110, al haber un


nmero par de bits en 1 (4) el bit de paridad ser 1 y la cadena enviada 1110110,
si fuese 100110 el bit de paridad sera 0 y la cadena enviada 0100110
La desventaja de este cdigo es que tiene una alta probabilidad de no detectar
errores, en casos como que dos bits estn cambiados de posicin o falte un nmero
par de bits en 1. Por ejemplo, si queremos enviar 110100, pero enviamos 101100,
sigue habiendo 3 bits en 1, no se detecta el error. O si enviamos 1101 en lugar de
111101, el nmero de bits en 1 seguira siendo impar y no se detectara error.
Al igual que el mtodo anterior, slo es posible detectar un nmero impar de
errores en los bits transmitidos.

PARIDAD EN BLOQUE (MULTIDIMENSIONAL) PAR


Es un mtodo ms eficiente que los anteriores en la deteccin de errores y, adems
permite corregir algunos de ellos. Consiste en dividir la informacin a transmitir en
fragmentos de igual nmero de bits, colocarlos por partes formando una matriz de
dos dimensiones y aplicar el control de paridad por filas y por columnas a la vez, de
forma que se aade un bit por cada fila (para la paridad horizontal) y una fila
completa para la paridad vertical.

Supongamos que dividimos una palabra a transmitir en m bloques distintos, con n


bits cada uno (lo que nos da una longitud total de palabra de nm bits). Los
agrupamos como se muestra a continuacin y se calculan los dgitos de paridad
horizontales (pi) y los verticales (qj). El dgito qn+1 se puede calcular como
horizontal, vertical o diagonal (a este bit se le llama de paridad cruzada, pero en
este mtodo se puede obviar).

Planificacin y administracin de redes


1 S.M.R.

Documento
Temas 4: Cdigos detectores y correctores de error

CDIGO 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. Consiste en que la informacin se
encuentra dividida en un polinomio que es dividido por un divisor comn entre el
emisor y el receptor teniendo como resultado un resto. En el mensaje se enviar el
polinomio y el resto. El receptor se encargar de realizar la divisin del polinomio
entre el divisor conocido por ambos para comprobar que da el mismo resultado que
el resto enviado, lo que nos dir si el resultado es correcto o no.

PRESENTACIN DE LA TCNICA
Seguiremos los siguientes pasos:

Se interpretan las cadenas de 1s y 0s como coeficientes enteros mdulo 2


de polinomios.
Los k bits de cada mensaje se tratan como si fueran los coeficientes de un
polinomio M(x), de orden k-1, en el que las operaciones se hacen en mdulo
2.
Si el mensaje fuese: 10010110 el polinomio considerado sera:

M(x) = 1 x7 + 0 x6 + 0 x5 + 1 x4 + 0 x3 + 1 x2 + 1 x1 + 0 x0 =
= x7 + x4 + x2 + x.

Se utiliza un polinomio generador G(x) de grado r. Este polinomio est


predeterminado, y es el mismo en el emisor y el receptor.

Planificacin y administracin de redes


1 S.M.R.

Documento
Temas 4: Cdigos detectores y correctores de error

ALGORITMO QUE SIGUE EL EMISOR

Aade r bits 0 al extremo de menor orden del mensaje (r: grado del
polinomio generador).
El polinomio correspondiente ser xrM(x)
Dividir (mdulo 2) xrM(x) entre G(x):
xrM(x) = C(x) +R(x)
---------------G(x)
G(x)
C(x) es el cociente y R(x) el resto
Restar a xrM(x) el valor del resto R(x) (esto es equivalente a aadir al
mensaje original M(x) el resto R(x)):
T(x) = xrM(x) -R(x)

Se obtiene as T(x), cuyos coeficientes (unos o ceros) sustituyen el mensaje


a transmitir. T(x) es siempre divisible por G(x).

ALGORITMO QUE SIGUE EL RECEPTOR

Recibe el mensaje T(x) del emisor.


Divide T(x) entre G(x).
Si el resto es cero, el mensaje ha llegado correctamente (T(x) = T(x))
Si el resto no es cero, el mensaje ha llegado con error y hay que pedir una
retransmisin (T(x) T(x))

EL POLINOMIO GENERADOR
La seleccin del polinomio generador es esencial si queremos detectar la mayora
de los errores que ocurran.
Se puede demostrar que los polinomios generadores son ms potentes con el
primer y ltimo bits a 1
Ejemplos de polinomios generadores (estndares internacionales):
CRC-12: x12+ x11 + x3 + x2 + x + 1
CRC-16: x16+ x15 + x2 + 1
CRC-CCITT: x16+ x12 + x5 + 1

CDIGO HAMMING
El cdigo Hamming es un mtodo que tienen las redes para enviar una informacin
y a su vez estar seguros de que lo que siempre se va a recibir correctamente. Es
por tanto un cdigo de deteccin y de correccin de errores en las transmisiones
binarias en redes.
Primero se aaden tantos bits de paridad como sean necesarios para formar una
palabra que sea igual a:
N + K = M bits
Siendo m la cantidad de bits dados por la palabra del sistema y r la cantidad de bits
de paridad que se agregan y n la cantidad de bits resultante.
De manera que se cumpla que 2k >= N + K + 1

Planificacin y administracin de redes

Documento

1 S.M.R.

Temas 4: Cdigos detectores y correctores de error

Los bits se numeran comenzando desde 1 en lugar de hacerlo desde 0 como


habitualmente se hace en todas las funciones de computacin, siendo por lo tanto
el bit 1el de extrema derecha (tambin llamado bit de mayor significado
especialmente en sistemas numricos).
Su funcionamiento es poco sencillo pero muy efectivo, pues puede verificar y
corregir errores en todos los bits. Consiste en que si tenemos unos datos que
transmitir, hay que encapsularlos en palabras (ej: 9 bits de las que 5 son de
datos), el cdigo resultante ha de estar ordenado posicionalmente, de tal modo que
las posiciones correspondientes a una potencia de 2 quedan reservados para el
cdigo de verificacin y el resto son las reservadas para el dato en s.
Una vez transmitido el mensaje, para decodificarlo hay que crear una especie de
tabla. De tal modo que si tenamos que enviar el cdigo:
001000111
Color verde Paridad/correccin
Color negro Datos
En la tabla asignaremos un nombre P a los datos de Paridad/Correccin y un
nombre D a los datos del mensaje a transmitir:
P1
0

P2
0

D3
1

P4
0

D5
0

D6
0

D7
1

P8
1

D9
1

P1
P2
P4
P8

A continuacin se van rellenando las celdas, de tal modo que:


En la fila P1 iremos bajando los dgitos de las columnas de uno s/uno no
comenzando desde P1, en la fila P2 las bajaremos de dos en dos comenzando
desde P2 (y as sucesivamente). Quedandonos esto:
P1
0
P1
P2
P4
P8

P2
0

D3
1

1
1

P4
0

D5
0

D6
0

D7
1

0
0

1
1
1

0
0

P8
1

D9
1
1

Control
de
paridad
3
2
1
2

Con la tabla anterior hemos podido comprobar que en P1 y P4 no hay paridad y por
lo tanto hay errores en la transmisin/recepcin. Para corregir estos errores.
Observamos que dado que en P1 y P4 no hay paridad, algo en las columnas hay
mal.
Viendo las columnas que P1 y P4 tienen en comn vemos que estas son la D5 y D7,
por lo que acotamos el error a esos DATOS.

Planificacin y administracin de redes

Documento

1 S.M.R.

Temas 4: Cdigos detectores y correctores de error

P1
0
P1
P2
P4
P8

P2
0

D3
1

1
1

P4
0

D5
0

D6
0

D7
1

0
0

1
1
1

0
0

P8
1

D9
1
1

P8
1

D9
1

Control
de
paridad
3
2
1
2

Probamos a cambiar el dgito de D7:


P1
0
P1
P2
P4
P8

P2
0

D3
1

1
1

P4
0

D5
0

D6
0

D7
0

0
0

0
0
0

0
0

Control
de
paridad
2
1
0
2

Con esto se ve que si cambiamos este dgito, se corrige la paridad de P1, pero en
P4 se mantiene el error y se aade uno en P2. Por ello deberemos probar la opcin
de cambiar el dgito en D5 en lugar de D7:
P1
0
P1
P2
P4
P8

P2
0

D3
1

1
1

P4
0

D5
1

D6
0

D7
1

0
0

1
1
1

1
0

P8
1

D9
1
1

Control
de
paridad
4
2
4
2

Con este cambio la paridad ha quedado resuelta en todos, y por tanto queda
despejado el cdigo correcto, y por tanto podemos ver que el cdigo enviado era
el: 11011

Todos los bits cuyo nmero es potencia de 2 son bits de paridad, los dems se
utilizan para datos, por lo tanto los bits 1, 2, 4, 8, 16, 32,... etc. son bits de paridad
y el resto son datos.
Recordamos que podemos tener dos tipos de paridad: par e impar, sabiendo que
cualquiera sea la que tomemos debemos sumar la cantidad de bits con valor 1 y
obtener siempre un nmero par o impar de acuerdo a la forma elegida.
Los bits verifican los siguientes campos:

Verifica los siguientes bits


Bits
1

1 3 5 7 9 11 13 15 17 19 21

Noten que

1 si; 1 no

Planificacin y administracin de redes

Documento

1 S.M.R.

Temas 4: Cdigos detectores y correctores de error

2 3 6 7 10 11 14 15 18 19

2 si; 2 no

4 5 6 7 12 13 1 4 15 20 21

4 si; 4 no

8 9 10 11 12 13 14 15

8 si; 8 no

16

16 17 18 19 20 21 22 23 24

16 si; 16 no

Cada bit de paridad comienza de su nmero para arriba.


En general un bit es verificado por todos aquellos que respondan a: bp1 + bp2 +
bp3 +.... + bpn = b lo que da, por ejemplo que el bit 5 es verificado por el bit de
paridad 1 y el bit de paridad 4 lo que cumple con la frmula dada anteriormente
bp1 + bp4 = 5 y el bit 11 es verificado por el 1 + 2 + 8 = 11.

Por ejemplo, para el mensaje 1100111000010111 y aplicamos el cdigo de


Hamming para paridad par y obtenemos:
N= 16

K=5

M = 16 + 5 = 21

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Cantidad
Nro.Bits
Hamming
Para 16

H H 1 H 1 0 0 H 1 1

Para 8

1 1 1

Para 4

Final

1 1 0 0

Para 2
Para 1

0 1
1

0 0
1

1
1

1 0 1 1 1 0 0 1 1 1

1
1
1

0
0

3
1
0

0
0

1
0

3
4

1
0

12

Si se produce un cambio en el bit 5 deber ser tomado por el control de los bits 1 y
4 donde se verificar el cambio o error producido en la transmisin o por una
variacin de corriente elctrica.
Es importante indicar que el cdigo de Hamming slo puede detectar el cambio de
1 bit. Si fueran dos los que cambiaron sera casi imposible y si fueran 3 totalmente
imposible ms an si se compensan.

Planificacin y administracin de redes

Documento

1 S.M.R.

Temas 4: Cdigos detectores y correctores de error

EJERCICIOS RESUELTOS
1. Completa el bit de paridad par o impar:
Par
0
0
1
0
0
1
0

Impar
1
1
0
1
1
0
1

1
1
1
1
0
1
1

0
0
0
1
1
1
1

0
1
1
0
0
1
1

0
1
0
1
0
1
0

0
1
0
1
0
1
0

0
1
0
1
1
1
1

1
1
1
1
0
1
0

2. Dado el siguiente mensaje 0011011, indica cul sera el mensaje enviado si


utilizramos paridad par e impar:
Con paridad par: 0 0011011
Con paridad impar: 1 0011011
3. Queremos transmitir la siguiente informacin 00110010101100111111. Se
trata de 20 bits que queremos enviar utilizando un mtodo de paridad en bloque
con paridad par. Cul ser el mensaje enviado?, Qu pasara si el bit de la 2
fila/3 columna variara su valor?
Vamos a utilizar 4 palabras de 5 bits cada una (4 bits de paridad horizontal y 5
bits de paridad vertical).
0 00110
0 01010
1 11001
1 11111
X 01010.
El mensaje enviado sera 0 00110 0 01010 1 11001 1 11111 X 01010.

Si el bit de la 2 fila/3 columna variara su valor se enviara


0 00110 0 01110 1 11001 1 11111 X 01010.
En el destino, el receptor construira la tabla y comprobara que el segundo bit
de paridad horizontal y el tercer bit de paridad vertical estn equivocados, por lo
que podra determinar cul es el bit errneo: la interseccin de la fila y la columna
donde fallaron las paridades.
0 00110
0 01110
1 11001
1 11111
X 01010.

Planificacin y administracin de redes


1 S.M.R.

Documento
Temas 4: Cdigos detectores y correctores de error

4. Queremos transmitir la siguiente informacin 11100110110000111000. Se


trata de 20 bits que queremos enviar utilizando un mtodo de paridad en bloque
con paridad impar. Cul ser el mensaje enviado
Vamos a utilizar 4 palabras de 5 bits cada una (4 bits de paridad horizontal y 5
bits de paridad vertical).
0 11100
1 11011
0 00001
1 11000
X 00001
El mensaje enviado sera 0 11100 1 11011 0 00001 1 11000 X 00001

5. Utilizando el polinomio generador G(x) = x3 + 1, determinar los valores


hexadecimales que se transmitirn para mandar el mensaje binario 10011011.
Polinomio generador G(x) = x3+ 1 : 1001 (r=3)
Mensaje: 10011011
Se aaden 3 bits 0 al final del mensaje: 10011011000
Se divide x3 M(x) entre G(x):
10011011000
1001
1001
1000101
00001011
1001
001000
1001
0 0 0 1 0 R(x)

Se resta x3 M(x) menos R(x):


10011011000
00010
10011011010

T(x)

Se transmite 10011011010

6. Supn que se transmite una palabra de cdigo Hamming y se recibe otra


palabra que no pertenece al cdigo y que es 1110101. Cul fue la palabra
correcta transmitida?

Planificacin y administracin de redes

Documento

1 S.M.R.

M=7

Temas 4: Cdigos detectores y correctores de error

N=4

K=3

8>=4+3+1

Bits de paridad 1, 2 y 4.

1 2 3 4 5 6 7
Nro.Bits
Hamming
Para 4

H H 1 H 1 0 1
0 1 0 1

Para 2
Para 1
Final

0 1
1

0 1
1

1 1 1 0 1 0 1

El problema est en el bit 2, as que el mensaje original era 1010101

Planificacin y administracin de redes


1 S.M.R.

Documento
Temas 4: Cdigos detectores y correctores de error

You might also like