Camada de Enlace de Dados Detecção e Correção de Erros Redes de Computadores 0010101010101010010101010101010 8 Camada de Enlace de Dados Detecção e Correção de Erros
A Camada de Enlace Serviços prestados Controle de erros Serviços da camada de Enlace Controle de erros Controle de fluxo Controle de acesso Encapsulamento Endereçamento
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 Rajada de erros Corresponde a um erro isolado Rajada de erros Quando uma sequência de bits são corrompidos Se numa transmissão de uma sequência de 8bits e um deles chega corrompido, como descobrir?
Detecção de Erros Redundância Receptor Transmissor sim Dados Dados Dados rejeitados não Dados & Redundância Dados & Redundância Meio
Detecção de Erros Técnicas Métodos de detecção Teste de redundância cíclica (CRC) Teste de paridade Checksum
Detecção de Erros Paridade
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? 1 Dados originais Linhas de paridade 1 Colunas de paridade Dados e bits de paridade
Detecção de Erros Paridade Combinada resolve tudo? 1 Dados originais Linhas de paridade 1 Colunas de paridade Dados e bits de paridade
Detecção de Erros CRC Dados Dados Divisor Divisor Dados Resto zero, aceito diferente de zero, rejeitado Receptor CRC 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 Transmissor 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!
Número de bits de dados m 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 5 6 4 7 9 10 11
Correção de Erros Código de Hamming Mas como é feito?
Correção de Erros Código de Hamming r1 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?