You are on page 1of 31

REDES DE COMPUTADORES

Prof. Rafael Gil Ferques

DETECO E CORREO DE ERROS


Caractersticas dos Erros Abordagens Possveis Cdigos de Deteco e Correo de Erros

Correo de erros isolados: Cdigo de Hamming Checksum e CRC (Cyclic Redundancy Check)

Cdigos de Deteco de Erros:

ERRO

Um sistema de computao funciona em funo da transferncia de informao desde o nvel de circuito integrados at aos nveis mais altos.

Ex: Gravao no disco ou comunicao entre computadores. Interferncias eletromagnticas, componentes, curto-circuito, etc... envelhecimento de

Est sujeito a diversos erros, tais como:

CARACTERSTICAS
1.

DOS

ERROS

2.

3.

So inevitveis em qualquer sistema de comunicao real; A distribuio dos erros no homognea: bits isolados ou em rajadas(bursts) de erros, com 8 ou mais bits sucessivos errados; Deve-se levar em conta o meio fsico de transmisso de dados, para incluir maior ou menor redundncia na transmisso, a fim de garantir que a informao recebida seja confivel.

TRATAMENTO DE ERROS

Possveis Abordagens:
1.
2. 3.
4.

5.

Ignorar o erro; Eco (transmisso origem de reflexos dos dados recebidos); Sinalizar o erro; 4.Detectar e solicitar a retransmisso em caso de erro; Detectar e corrigir os erros na recepo de forma automtica.

DETECO E CORREO DE ERROS

Cdigos de Correo de Erros

Cdigos de correo podem recuperar o dado original a partir do cdigo com erros; Consistem na criao de cdigos extras que detectam situaes invlidas mas que mantm a identidade do dado original; O conceito mais bsico e mais importante desses cdigos a distncia de Hamming, utilizada para a criao de cdigos de correo.

DETECO E CORREO DE ERROS

Cdigo de Hamming

Desenvolvido em 1950, por Richard Hamming. Basicamente emprega Bit Stuffing


Bits de Controle de dados esto nas posies 2n. Bits 1,2,4,8,16,32,etc.... Os outros so utilizados para a mensagens original Bits 3,5,6,7,9,10,11,12,13,14,15,17,etc....

DETECO E CORREO DE ERROS - HAMMING

Passo-a-Passo da Codificao:
1.
2.

3.

Os bits da palavra de cdigo so numerados a partir da esquerda, comeando por 1; acrescentada informao redundante em posies prdefinidas, ou seja, os bits que so potncia de 2 vo ser bits de controle (2n); Os restantes so preenchidos com bits de dados conhecidos, isto , com a mensagem a transmitir;

DETECO E CORREO DE ERROS - HAMMING

Passo-a-Passo da Codificao - Continuao:

Mensagem a transmitir: 1100


Posies 1 2 1 3 0 4 0 5 6 7 1

Passos 1

2 3

H H

H H 1

H H 1 0 0

DETECO E CORREO DE ERROS - HAMMING

Passo-a-Passo da Codificao - Continuao:


4.

Calcular os Bits Hamming (bits de controle), ou seja, verificar as posies setadas em 1 e converter para o binrio da posio:

3 011 5 101

5.

Aplicar XOR entre os valores anteriores:


0 xor 1 1 4 1 0 1 2 Posies 1 1 0 1
10

DETECO E CORREO DE ERROS - HAMMING

Passo-a-Passo da Codificao - Continuao:


6.

Compor mensagem, inserindo os valores obtidos nas respectivas posies do bit de paridade:
Posies 1 2 1 3 0 4 0 5 6 7 1

Passos 1

2 3 6
7.

H H 0

H H 1 1 1

H H 1 1 1 0 0 0 0

Mensagem a transmitir: 0111100


11

DETECO E CORREO DE ERROS - HAMMING

Passo-a-Passo da Decodificao:
1.
2.

Converter para binrio as posies setadas em 1; Aplicar XOR aos valores obtidos anteriormente;
Se o valor for diferente de 0 houve erros na transmisso. Caso contrrio no houve erros na transmisso.

12

DETECO E CORREO DE ERROS - HAMMING

Passo-a-Passo da Decodificao - Continuao:


4.

Sem erro: 0111100


2 010 3 011 4 100 5 101

0 1 0 xor xor 1 0 0 1 1 0 1 0 1 0 1 1

Erro no bit 3

5.

Com erro: 0101100


2 010 4 100 5 101

13

EXERCCIOS
1.

Codifique os seguintes cdigos para envio:


a)
b) c) d)

1011 10011010 11101111 01001101

2.

Decodifique os seguintes cdigos, caso haja erro na mensagem indique qual o bit errneo e a mensagem correta:
a) b) c)

011100001010 001100101010 0011110


14

CDIGOS DE DETECO DE ERROS

15

CRC (CYCLIC REDUNDANCY CHECK)

A verificao de redundncia cclica um cdigo detector de erros que gera um valor expresso em poucos bits em funo de um bloco maior de dados, como um pacote de dados com intuito de detectar erros de transmisso ou armazenamento.

16

CRC (CYCLIC REDUNDANCY CHECK)

O CRC calculado e anexado informao a transmitir /armazenar e verificada aps a recepo ou acesso, para confirmar se no ocorreram alteraes.
Implementao simples; Analise matemtica simples; Eficincia na deteco de erros tpicos causados por rudo em canais de transmisso.

17

CRC (CYCLIC REDUNDANCY CHECK)

Emissor/receptor concordam num polinmio gerador G(x), em que quanto maior for o seu grau maior ser a capacidade de deteco de erros.

CRC-16

Checagem de soma de 16 bits utilizada por diversos protocolos de transferncia de arquivos. x16+x15+x2+1. Padro internacional de 16 bits. x16+x12+x5+1. Padro de 32 bits, utilizado na maioria dos protocolos de redes locais. 32 26 23 22 16 12 11 10 8 7 5 4 2 x +x +x +x +x +x +x +x +x +x +x +x +x +x.

CRC-CCITT

CRC-32

18

CRC (CYCLIC REDUNDANCY CHECK)


Neste polinmio tanto o bit de maior ordem quanto o de menor ordem devem ser iguais a 1. Palavra inicial de k bits representado por um polinmio de X de ordem k-1.

Palavra inicial = 10110001 Polinmio = X7+X5+x4+1

19

CRC (CYCLIC REDUNDANCY CHECK)

Execuo:
O polinmio p(x) representado pela palavra inicial somada aos bits de paridade e deve ser divisvel por G(x); O receptor tenta dividir p(x) por G(x). Se houver resto 0, houve um erro de transmisso; Se houver um erro, em vez de se receber o polinmio T(x), recebe-se T(x)+E(x); Cada bit 1 em E(x) corresponde a um bit invertido; T(x)/G(x) sempre zero, logo o resultado E(x)/G(x).

20

CRC (CYCLIC REDUNDANCY CHECK)

Exemplo:

Mensagem a transmitir:10111011 Polinmio gerador G(X) = x4+x+1 => 10011 Acrescenta-se mensagem inicial, a quantidade de zeros equivalentes ao grau de G(x), ficando: 10111011 0000 Seguidamente divide-se a mensagem (ponto anterior) pelo polinmio gerador.

A diviso de dois polinmios (na sua forma binria) feita recorrendo operao XOR ()

21

CRC (CYCLIC REDUNDANCY CHECK)

O resto que da diviso finalmente adicionado mensagem original, pelo que a mensagem transmitida ser: 22 101110111111

CRC (CYCLIC REDUNDANCY CHECK)

Para descodificar a mensagem, o procedimento deve ser repetido.

23

<= 0, mensagem recebida com erro.

CRC (CYCLIC REDUNDANCY CHECK)

24

EXERCCIOS
1.

2.

3.

4.

Verifique se houveram erros, atravs do CRC de polinmio gerador x4+1, no seguinte quadro recebido:11010110111110 Utilizando o CRC com polinmio gerador = x4+x3x+x, gere o quadro a ser transmitido, com o seguinte original: 1000100100 Utilizando o quadro anterior, gere o quadro a ser transmitido utilizando os polinmios CRC-16, CRCCCITT e CRC-32 Qual o resto obtido pela diviso de x7 + x5 + 1 pelo polinmio gerador x3 + 1?

25

EXERCCIOS
5.

Um fluxo de bits 10011101 transmitido com a utilizao do mtodo de CRC padro descrito no texto. O polinmio gerador x3 + 1. Mostre o string de bit a ser transmitido. Suponha que o terceiro bit a partir da esquerda seja invertido durante a transmisso. Mostre que esse erro detectado na extremidade receptora

26

CHECKSUM

Consiste na transmisso de todas as palavras juntamente com o resultado da sua soma binria. Inclui o bit de transporte.

Inverso do valor dos bits do Checksum.

27

CHECKSUM
Exemplo: Checksum de 2 palavras de 8 bits Dados iniciais: 00111101 00001101

Checksum : 01001010

Checksum invertido: 10110101

28

CHECKSUM

Dados enviados:
00111101 00001101
10110101 (checksum invertido)

No receptor, as palavras so novamente somadas e comparadas com o checksum enviado: Se qualquer um dos dados transmitidos, incluindo o checksum, sofrerem algum erro ento, a soma do novo checksum com o checksum enviado, ser diferente de 1.
0 1 0 0 1 0 1 0 novo checksum (das palavras iniciais recebidas) 1 0 1 1 0 1 0 1 checksum enviado 1 1 1 1 1 1 1 1 sem erro

29

CHECKSUM

Exemplo com erro:


00110001 00001101 0 0 1 1 0 1 1 0 novo checksum 1 0 1 1 0 1 0 1 checksum enviado 11101011 11111111

Valor recebido incorretamente, com erro no 3ou 5bit (de qualquer uma das palavras enviadas, incluindo o checksum).
30

DUVIDAS?

31