Aula 8 - Camada de Enlace - Correção e Detecção de Erros

Embed Size (px)

Citation preview

REDES DE COMPUTADORESProf. Rafael Gil Ferques

DETECO E CORREO DE ERROSCaractersticas 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:

2

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:

3

CARACTERSTICAS1.

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.

4

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.

5

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.

6

DETECO E CORREO DE ERROS

Cdigo de Hamming

Desenvolvido em 1950, por Richard Hamming. Basicamente emprega Bit StuffingBits 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....

7

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;

8

DETECO E CORREO DE ERROS - HAMMING

Passo-a-Passo da Codificao - Continuao:

Mensagem a transmitir: 1100Posies 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

9

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 110

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 67.

H H 0

H H 1 1 1

H H 1 1 1 0 0 0 0

Mensagem a transmitir: 011110011

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: 01111002 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: 01011002 010 4 100 5 101

13

EXERCCIOS1.

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 001111014

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