04A - UFBA

Transcrição

04A - UFBA
REDES DE COMPUTADORES
Detecção e Correção de Erros
A Camada de Enlace
Serviços prestados
Serviços da camada
de Enlace
Encapsulamento
Endereçamento
Controle de
erros
Controle de
fluxo
Controle de
acesso
Objetivo da Aula de Hoje
Detecção e Correção de Erros
Tipos
de erros
Detecção de erros
Correção de erros
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
Tipos de Erros
Erros Simples
Corresponde
Rajada de erros
Quando
a um erro isolado
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?
Detecção de Erros
Redundância
Receptor
Dados
rejeitados
sim
Transmissor
Dados
Dados
não
Dados &
Redundância
Dados &
Redundância
Meio
Detecção de Erros
Técnicas
Métodos de detecção
Teste de paridade
Teste de redundância
cíclica (CRC)
Checksum
Detecção de Erros
Paridade
Nó receptor
Transmissor
Remove o bit de
paridade e aceita os
dados
Dados
sim
Rejeita
dados
Paridade OK?
não
Cálculo do bit de
paridade
Contagem de
bits
Bits
Meio de transmissão
Detecção de Erros
Paridade
Como
fazer um verificador de paridade?
Que porta lógica faz isso?
Detecção de Erros
Paridade
O
que acontece se a quantidade de erros for par?
10010011 (transmitido)
10010101 (recebido)
Como
resolver isso?
Detecção de Erros
Paridade Combinada
Dados originais
Linhas de paridade
Colunas de paridade
Dados e bits de paridade
Detecção de Erros
Paridade Combinada resolve tudo?
Detecção de Erros
Paridade Combinada resolve tudo?
?
Detecção de Erros
Paridade Combinada resolve tudo?
Dados originais
0
0
0
1
Linhas de paridade
Colunas de paridade
Dados e bits de paridade
Detecção de Erros
Paridade Combinada resolve tudo?
Dados originais
0
0
0
1
Linhas de paridade
Colunas de paridade
Dados e bits de paridade
Detecção de Erros
CRC
Dados
Dados
Divisor
Resto
Dados
Divisor
CRC
zero, aceito
diferente de zero, rejeitado
Receptor
Transmissor
Detecção de Erros
Gerador de CRC (Transmissor)
Dados mais zeros extras
Divisor
Quociente
Quando o bit mais à esquerda for
zero, devemos usar 0000 no lugar do
divisor original.
Resto
Detecção de Erros
Verificador de CRC (Receptor)
Dados + CRC
Divisor
Quociente
Quando o bit mais à esquerda for
zero, devemos usar 0000 no lugar do
divisor original.
Se Resto = 0, OK!
Detecção de Erros
Verificador de CRC (Receptor)
Dados + CRC
Divisor
Quociente
Quando o bit mais à esquerda for
zero, devemos usar 0000 no lugar do
divisor original.
Se Resto = 0, OK!
Detecção de Erros
Exemplo de descarte
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
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
Detecção de Erros
CRC
Polinômio
Divisor
Detecção de Erros
CRC
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 é complementada para gerar o checksum
Checksum é enviado com os dados
Detecção de Erros
Funcionamento do Transmissor
1010100100111001
10101001 00111001
10101001+00111001
11100010 (sum)
00011101 (checksum
a ser enviado)
10101001 00111001 00011101
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!
Detecção de Erros
Funcionamento do Receptor
101010010011100100011101
10101001 00111001 00011101
10101001+0111001+00011101
11111111 (sum)
00000000 (checksum)
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!
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 dados
m
Numero de bits de redundância
r
Total de bits
m+r
1
2
3
2
3
5
3
3
6
4
3
7
5
4
9
6
4
10
7
4
11
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
Correção de Erros
Código de Hamming
r1 cuidará destes bits.
r2 cuidará destes bits.
r3 cuidará destes bits.
r4 cuidará destes bits.
Correção de Erros
Código de Hamming
Corrompido
O bit na posição 7 está errado
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!

Documentos relacionados

Detecção de Erros – Paridade

Detecção de Erros – Paridade Detecção de Erros – CRC – CRC-12 • Caracteres de 6 bits • FCS de 12 (p12 + p11 + p3 + p2 + p + 1)

Leia mais