detecção e correção de errosromildo/downloads/ifba/redes/...tipos de erros entendendo a...

33
REDES DE COMPUTADORES Detecção e Correção de Erros

Upload: others

Post on 21-Apr-2020

24 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

REDES DE COMPUTADORES

Detecção e Correção de Erros

Page 2: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

A Camada de Enlace

� Serviços prestados

Serviços da camada

de Enlacede Enlace

Encapsulamento EndereçamentoControle de

erros

Controle de

fluxo

Controle de

acesso

Page 3: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Objetivo da Aula de Hoje

� Detecção e Correção de Erros

� Tipos de erros

� Detecção de erros

� Correção de erros

Page 4: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Tipos de Erros

� Entendendo a importância do tratamento de erros

� Se ocorre um erro de 0,1s em uma transmissão de

56Kbps isso implica em 5,6K bits afetados

� Como evitar erros?

� Impossível, nosso objetivo é detectá-lo e tratá-lo

Page 5: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Tipos de Erros

� Erros Simples

� Corresponde a um erro isolado

� Rajada de erros

� Quando uma sequência de bits são corrompidos� Quando uma sequência de bits são corrompidos

� Se numa transmissão de uma seqüência de 8bits e um deles chega corrompido, como descobrir?

Page 6: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Redundância

Receptor Transmissor

Meio

simDados

rejeitados

não

Dados &

Redundância

Dados &

Redundância

DadosDados

Page 7: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Técnicas

Métodos de detecção

Teste de paridadeTeste de redundância

cíclica (CRC)Checksum

Page 8: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Paridade

Dados

Remove o bit de

paridade e aceita os

dadossim

TransmissorNó receptor

Meio de transmissão

Bits

Contagem de

bits

Cálculo do bit de

paridade

Paridade OK?

sim

não

Rejeita

dados

Page 9: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Paridade

� Como fazer um verificador de paridade?

� Que porta lógica faz isso?

Page 10: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Paridade

� O que acontece se a quantidade de erros for par?

� 10010011 (transmitido)

� 10010101 (recebido)

� Como resolver isso?� Como resolver isso?

Page 11: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Paridade Combinada

Dados originais

Lin

ha

s d

e p

ari

da

de

Dados e bits de paridade

Colunas de paridade

Lin

ha

s d

e p

ari

da

de

Page 12: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Paridade Combinada resolve tudo?

Page 13: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Paridade Combinada resolve tudo?

?

Page 14: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Paridade Combinada resolve tudo?

Dados originais

Lin

ha

s d

e p

ari

da

de

0 0

Dados e bits de paridade

Colunas de paridade

Lin

ha

s d

e p

ari

da

de

10

Page 15: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Paridade Combinada resolve tudo?

Dados originais

Lin

ha

s d

e p

ari

da

de

0 0

Dados e bits de paridade

Colunas de paridade

Lin

ha

s d

e p

ari

da

de

10

Page 16: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� CRC

Dados Dados

Dados

Resto CRC

Divisor Divisor

Receptor Transmissor

zero, aceito

diferente de zero, rejeitado

Page 17: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Gerador de CRC (Transmissor)

Divisor

Dados mais zeros extras

Quociente

Resto

Quando o bit mais à esquerda for

zero, devemos usar 0000 no lugar do

divisor original.

Page 18: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Verificador de CRC (Receptor)

DivisorDados + CRC

Quociente

Se Resto = 0, OK!

Quando o bit mais à esquerda for

zero, devemos usar 0000 no lugar do

divisor original.

Page 19: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Verificador de CRC (Receptor)

DivisorDados + CRC

Quociente

Se Resto = 0, OK!

Quando o bit mais à esquerda for

zero, devemos usar 0000 no lugar do

divisor original.

Page 20: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Exemplo de descarte

Page 21: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� CRC

� Polinômio gerador de CRC é o nome dado para a

representação polinomial do divisor, por exemplo...

� 1101

� X3 + X2 + 1

� Porque isso é importante� Porque isso é importante

� Não deve ser dividido por x

� Garante que são detectaras rajadas de erros de comprimento

igual a do polinômio

� Deve ser dividido pelo binômio x+1

� A segunda condição assegura que o CRC encontrará erros em

rajadas de comprimento ímpar

Page 22: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� CRC

Polinômio

Divisor

Page 23: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� CRC

Page 24: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Checksum

� Também se baseia em redundância

� Conceito é simples

� Transmissor

� Segmenta o bloco de dados em k blocos de n bits

Soma os K segmentos� Soma os K segmentos

� Soma é complementada para gerar o checksum

� Checksum é enviado com os dados

Page 25: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Funcionamento do Transmissor

� 1010100100111001

� 10101001 00111001

� 10101001+00111001

� 11100010 (sum)

� 00011101 (checksum a ser enviado)� 00011101 (checksum a ser enviado)

� 10101001 00111001 00011101

Page 26: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Receptor

� Divide o bloco em k segmentos de dados de n bits

� Faz a soma dos segmentos

� Gera o checksum

� Se dados forem iguais a zero, dados aceitos!

Page 27: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Detecção de Erros

� Funcionamento do Receptor

� 101010010011100100011101

� 10101001 00111001 00011101

� 10101001+0111001+00011101

� 11111111 (sum)

� 00000000 (checksum)� 00000000 (checksum)

Page 28: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Correção de Erros

� Mas como corrigir erros?

� Correção por Retransmissão

� Correção Antecipada

� Quando os dados são recebidos e é verificado que existiu

um erro na transmissão, seria necessário corrigi-lo!

Page 29: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Correção de Erros

� Código de Hamming

� Escalar bits de redundância segundo seu código

� Para 7 bits seria necessário escalar 4 bits

Número de

bits de dadosNumero de bits de redundância Total de bits

bits de dados

m

Numero de bits de redundância

r

Total de bits

m + r

11 2 3

22 3 5

33 3 6

44 3 7

55 4 9

66 4 10

77 4 11

Page 30: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Correção de Erros

� Código de Hamming

� Mas como é feito?

� R1: 1,3,5,7,9,11

� R2: 2,3,6,7,10,11

� R4: 4,5,6,7

� R8: 8,9,10,11� R8: 8,9,10,11

Page 31: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Correção de Erros

� Código de Hamming

r2 cuidará destes bits.

r1 cuidará destes bits.

r3 cuidará destes bits.

r4 cuidará destes bits.

Page 32: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Correção de Erros

� Código de HammingCorrompido

O bit na posição 7 está errado

Page 33: Detecção e Correção de Errosromildo/downloads/ifba/redes/...Tipos de Erros Entendendo a importância do tratamento de erros Se ocorre um erro de 0,1s em uma transmissão de 56Kbps

Perguntas finais

� Qual a vantagem e desvantagem de cada código?

� Onde este códigos são utilizados?

� Falta apenas um assunto para a prova!