Skip to Content

O que é uma verificação de redundância cíclica (CRC, Cyclic Redundancy Check) em rede?

O que é uma verificação de redundância cíclica?

Uma verificação de redundância cíclica (CRC, cyclic redundancy check) é uma técnica matemática que fornece uma maneira de detectar erros em dados transmitidos ao anexar um código especial, chamado soma de verificação, às informações originais. Essa soma de verificação é então recalculada na extremidade receptora para verificar a integridade dos dados. A CRC desempenha um papel vital na identificação e correção de possíveis corrompimentos de dados na rede, onde a transferência confiável de dados é primordial. Ele também é usado em sistemas de armazenamento de dados, incluindo discos rígidos e memória flash, para verificar a precisão dos dados armazenados. O CRC é essencial em protocolos como o Modbus, a rede de área de controladora (CAN, Controller Area Network) e muitos outros em que a transferência confiável de dados é essencial.

Como funciona o CRC?

O CRC é baseado no tratamento dos dados a serem transmitidos como um polinômio. O remetente e o receptor concordam com um polinômio divisor fixo, muitas vezes chamado de polinômio gerador. Os dados são aumentados com uma soma de verificação, que é o restante da divisão polinomial dos dados originais pelo polinômio do gerador. No final do remetente, a soma de verificação do CRC é calculada e anexada aos dados antes da transmissão. No final do receptor, os dados recebidos, juntamente com a soma de verificação, são divididos pelo mesmo polinômio do gerador. Se o restante for zero, os dados são considerados livres de erros; caso contrário, um erro é detectado.

O uso de polinômios de CRC e códigos cíclicos pode parecer complexo, mas o conceito é mais simples do que parece. Esses polinômios são essencialmente representações matemáticas que ajudam no processo de detecção de erros. Códigos cíclicos, no contexto do CRC, referem-se a códigos em que mudanças cíclicas de qualquer palavra-código válida resultam em outra palavra-código válida.

Para entender melhor, considere um exemplo simplificado de correção de erros usando uma soma de verificação básica. Imagine enviar um número binário e adicionar um bit extra que represente a paridade ou soma dos bits originais. Se os dados recebidos não corresponderem à paridade esperada, um erro será detectado.

O CRC é uma versão mais sofisticada desse processo. Em vez de uma soma simples, o polinômio CRC executa um cálculo mais complexo, introduzindo maior redundância e aprimorando a capacidade de detecção de erros. Esse aumento da complexidade é crucial para lidar com erros mais sutis e fornecer um mecanismo de verificação de erros mais robusto.

Test drive do FlashArray

Veja como a Pure Storage simplifica consideravelmente blocos e arquivos em um ambiente de autoatendimento.

Experimente agora mesmo

Por que usar o CRC?

O CRC é particularmente eficaz na detecção de erros que podem alterar a ordem dos bits em uma mensagem. Isso é muito importante em cenários em que manter a sequência exata de bits é essencial para interpretar os dados corretamente.

Uma das principais vantagens do CRC é sua simplicidade na implementação, especialmente no hardware binário. O algoritmo envolve operações diretas de bits, tornando-o eficiente para verificação de erros baseada em hardware.

O CRC não é apenas simples de implementar, mas também fácil de analisar matematicamente. Isso a torna uma escolha atraente para designers e engenheiros que precisam entender e otimizar os recursos de verificação de erros de seus sistemas. As propriedades matemáticas do CRC facilitam uma visão mais profunda de suas características de desempenho, auxiliando no ajuste de parâmetros para aplicativos específicos.

Em canais de comunicação do mundo real, o ruído é um companheiro inevitável. O CRC é particularmente robusto na detecção de erros comuns introduzidos pelo ruído durante a transmissão de dados. Sua natureza cíclica e dependência da divisão polinomial permitem identificar erros causados por flutuações ou distúrbios aleatórios no sinal.

Como escolher o polinômio certo

No centro da CCR está o polinômio usado na geração e verificação da soma de verificação. A escolha do polinômio influencia significativamente os recursos de detecção de erros do CRC. O polinômio atua como divisor na divisão polinômio, determinando a estrutura da soma de verificação.

Escolher o polinômio certo envolve considerar vários fatores. O grau do polinômio, por exemplo, afeta o comprimento da soma de verificação e, consequentemente, os recursos de detecção de erros. Equilibrar o desejo de uma soma de verificação mais longa (detecção aprimorada de erros) com o custo computacional é uma consideração crucial.

Outros fatores incluem as propriedades matemáticas do polinômio, como sua irredutibilidade. Um polinômio irredutível garante que o algoritmo CRC possa detectar uma ampla gama de erros. Além disso, alguns aplicativos podem exigir propriedades específicas, como detecção de erro de burst, que podem ser influenciadas pela escolha polinomial.

Vários polinômios padrão são comumente usados em cálculos de CCR. A escolha do polinômio depende dos requisitos específicos do aplicativo. Por exemplo, o polinômio CRC-32 (0x04C11DB7) é frequentemente empregado em protocolos de comunicação de rede, enquanto o polinômio CRC-16 (0x8005) encontra aplicativos em sistemas de armazenamento. O polinômio CRC-CCITT (0x1021) é bem conhecido por seu uso em telecomunicações.

Cada polinômio traz características únicas, e selecionar a apropriada envolve uma consideração cuidadosa dos requisitos do aplicativo e as desvantagens desejadas entre os recursos de detecção de erros e a eficiência computacional.

Otimização do desempenho do CRC

O CRC é um poderoso algoritmo de verificação de erros, mas há maneiras de melhorar seu desempenho, incluindo:

  • Pré-computação baseada em tabela, que pré-computa valores de CRC e os armazena em uma tabela para entradas comumente usadas. Isso reduz a necessidade de cálculos repetitivos, melhorando significativamente o desempenho geral.
  • Paralelização , que aproveita o processamento paralelo para distribuir cálculos de CRC em vários núcleos ou processadores. Isso pode reduzir substancialmente o tempo necessário para verificações de CRC, especialmente em cenários com grandes conjuntos de dados.
  • Operações em bits, como XOR e turnos, que muitas vezes são mais eficientes do que as operações aritméticas tradicionais.

Para reduzir a complexidade operacional, é muito importante selecionar o polinômio CRC certo. Alguns polinômios oferecem melhores recursos de detecção de erros com sobrecarga computacional mínima. Você também pode personalizar o tamanho da palavra CRC para corresponder à arquitetura do sistema e melhorar o desempenho.

Ao otimizar o desempenho do CRC, há algumas desvantagens a serem consideradas, incluindo:

1. Uso de memória x computação

Tabelas pré-computadas podem reduzir a computação, mas podem aumentar o uso da memória. Avalie a desvantagem entre a utilização da memória e a eficiência computacional com base nas restrições do sistema.

2. Complexidade x velocidade

Polinômios de CRC mais complexos podem oferecer melhor detecção de erros, mas podem ser computacionalmente caros. Encontre um equilíbrio entre complexidade e velocidade, alinhando os esforços de otimização com casos de uso específicos.

Conclusão

A CRC tem amplo uso em aplicativos do mundo real, incluindo protocolos de rede, sistemas de armazenamento e protocolos de comunicação. A CRC se destaca na detecção de erros durante a transmissão de dados, e sua capacidade de identificar erros aleatórios e de burst garante que os dados recebidos correspondam aos dados transmitidos. A CRC atua como uma proteção contra a corrupção de dados em sistemas de armazenamento. Ao detectar erros no início, a CRC ajuda a manter a integridade e a resiliência das informações armazenadas, o que é essencial para a confiabilidade dos dados a longo prazo.

Embora a CRC incuta confiança na confiabilidade da transferência e do armazenamento de dados, ela vem com sobrecarga computacional. Portanto, avalie a relação entre os benefícios da verificação de erros e os recursos gastos nos cálculos de CRC.

Além disso, lembre-se de que o CRC desempenha apenas um papel no panorama geral da proteção avançada de dados. A solução abrangente e avançada de proteção de dados da Pure Storage permite restaurar dados quando mais importa, proteger sua empresa contra ataques, administrar sua empresa sem interrupções, assumir o controle do seu ambiente e garantir um ambiente de armazenamento limpo.

11/2024
Pure Storage FlashArray//C | Data Sheet
FlashArray//C lets you consolidate workloads with consistent all-flash NVMe performance at a lower TCO than hybrid storage.
Datasheet
4 páginas
ENTRE EM CONTATO
Dúvidas ou comentários?

Tem dúvidas ou comentários sobre produtos ou certificações da Pure?  Estamos aqui para ajudar.

Agende uma demonstração

Agende uma demonstração ao vivo e veja você mesmo como a Pure pode ajudar a transformar seus dados em resultados poderosos. 

Telefone: 55-11-2844-8366

Imprensa: pr@purestorage.com

 

Sede da Pure Storage

Av. Juscelino Kubitschek, 2041

Torre B, 5º andar - Vila Olímpia

São Paulo, SP

04543-011 Brasil

info@purestorage.com

FECHAR
Seu navegador não é mais compatível.

Navegadores antigos normalmente representam riscos de segurança. Para oferecer a melhor experiência possível ao usar nosso site, atualize para qualquer um destes navegadores mais atualizados.