Pergunta

Tenho uma situação hipotética de enviar unidades de dados, cada uma das mil bytes. A taxa de falha é rara, mas quando ocorre um erro, é menos provável que seja um erro de bit e mais provável de ser um erro em alguns bits em uma linha.

No começo, pensei em usar uma soma de verificação, mas aparentemente isso pode perder erros de bits maiores que um bit. Uma verificação de paridade também não funcionará para que o CRC possa ser a melhor opção.

O uso de uma verificação de redundância cíclica em mil bytes é eficiente? Ou existem outros métodos que funcionariam melhor?

Foi útil?

Solução

Os cheques de redundância cíclica (CRCs) são populares especificamente Devido à sua eficiência na detecção de vários erros de bits com uma precisão garantida.

Existem designs diferentes para gerar polinômios de CRC, onde o trade-off é precisão versus complexidade computacional. No seu caso, você pode escolher o "mais rápido" que atenda às suas necessidades de precisão.

Você pode querer começar com este artigo da Wikipedia no Verificação de redundância Cíclica.

Outras dicas

CRC está coberto em outra questão aqui
Quando o CRC é mais apropriado de usar do que o MD5/SHA1?
É adequado para detectar erros aleatórios e fácil de implementar.

É normal usar um CRC. Não sei ao certo o que você quer dizer com 'eficiência', mas acho que às vezes o CRC é implementado em hardware (por exemplo, no cartão Ethernet). Caso contrário, você poderá encontrar implementações 'otimizadas' (usando uma tabela de pesquisa).

Qual o tamanho dos seus setores de disco? Provavelmente pelo menos 512 bytes. E o CRC é um esquema consagrado pelo tempo para o disco de nível de hardware ECC.

Os algoritmos polinomiais do CRC de estoque são bastante eficazes para um pequeno número de erros de bits. A precisão exata é matematicamente computável. O CRC também é altamente eficiente para fazer em hardware, onde um número relativamente pequeno de portões e registros de turnos pode gerenciar o trabalho em tempo real.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top