CRC – Cyclic Redundancy Check - ppt carregar
PublicouDiego Lima Alterado mais de 5 anos atrás
Apresentação em tema: "CRC – Cyclic Redundancy Check"— Transcrição da apresentação:
1 CRC – Cyclic Redundancy Check
Etienne C. R de Oliveira 04/09/2007 Técnicas e Estruturas em Redes de Computadores Profa. Anna Dolejsi Santos
2 Agenda Introdução CRC – Cyclic Redundancy Check Conclusão
3 Introdução História Objetivo Ruído W. Wesley Peterson e D. T. Brown
W. W. Peterson e D. T. Brown, "Cyclic codes for error detection", Proceedings of the IRE, vol. 49, p , Jan 1961 Objetivo Identificar a ocorrência de erros ocasionados por ruídos durante o processo de transmissão (controle de erros) Ruído Fenômeno aleatório capaz de perturbar a transmissão de dados EMI/RFI
4 CRC – Cyclic Redundancy Check
Produz um valor expresso em poucos bits que é anexado à mensagem CRC-64 – 64 bits CRC-32 – 32 bits CRC-16 – 16 bits Propriedades Todos os bits da mensagem são utilizados no cálculo do valor do CRC Mudança de um único bit é refletida no valor do CRC Probabilidade de valores uniforme
5 CRC – Cyclic Redundancy Check
Cálculo do CRC Resto da divisão polinomial (divisão módulo 2) entre os dados e o polinômio gerador. Ex.: Polinômio gerador de grau 16 (x16 + x x2 + x1 + x0) Resto de grau 15 (16 bits) Divisão módulo 2 Acrescentar, à direita da mensagem, uma quantidade de zeros equivalente ao grau do polinômio gerador A partir do bit mais significante da mensagem: Bit 1 Acrescentar o bit 1 ao quociente Aplicar um XOR entre o divisor e o polinômio gerador Bit 0 Acrescentar o bit 0 ao quociente Aplicar um XOR entre o divisor e zeros Efetuar uma rotação à esquerda
6 CRC – Cyclic Redundancy Check
7 CRC – Cyclic Redundancy Check
Verificação de Erros Dividir a mensagem recebida pelo polinômio gerador e analisar o resto Resto=0 – mensagem ok Resto≠0 – mensagem com erro Separar a mensagem recebida do CRC Acrescentar N zeros à mensagem Calcular o CRC da mensagem Comparar o CRC calculado com o CRC recebido. Se o valor for idêntico, a mensagem está ok
8 CRC – Cyclic Redundancy Check
CRCs Padronizados Aplicação Polinômio CRC-1 (Paridade) x + 1 CRC-8-ATM x8 + x2 + x + 1 CRC-16-CCITT x16 + x12 + x5 + 1 CRC-32-MPEG2 CRC-32-IEEE 802.3 x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 CRC-64-ISO x64 + x4 + x3 + x + 1
9 Conclusão Excelente algoritmo para detecção de erros provocados por ruídos em canais de comunicação Implementação simples e eficiente em hardware binário Amplamente utilizado Inadequado para verificação de integridade
10 Bibliografia W. W. Peterson e D. T. Brown, "Cyclic codes for error detection", Proceedings of the IRE, vol. 49, p , Janeiro 1961. M. Barr, "Strengh in Numbers", In: Setembro 2007. R. N. Williams, "A Painless Guide to CRC Error Detection Algorithms", In: Setembro 2007.