Skip to Content

Qu’est-ce qu’une vérification de redondance cyclique (CRC) dans le réseau ?

Qu’est-ce qu’une vérification cyclique de la redondance ?

Une vérification de redondance cyclique (CRC) est une technique mathématique qui permet de détecter les erreurs dans les données transmises en ajoutant un code spécial, appelé somme de contrôle, aux informations d’origine. Cette somme de contrôle est ensuite recalculée à la réception pour vérifier l’intégrité des données. Le CRC joue un rôle essentiel dans l’identification et la correction de la corruption potentielle des données dans le cadre d’un réseau, où un transfert de données fiable est primordial. Il est également utilisé dans les systèmes de stockage de données, y compris les disques durs et la mémoire flash, pour vérifier l’exactitude des données stockées. Le CRC est essentiel dans les protocoles tels que Modbus, le réseau CAN (contrôleur area network) et bien d’autres, où un transfert de données fiable est essentiel.

Comment fonctionne le CRC ?

Le CRC repose sur le traitement des données à transmettre en tant que polynôme. L’expéditeur et le destinataire s’accordent sur un polynôme diviseur fixe, souvent appelé polynôme générateur. Les données sont augmentées d’une somme de contrôle, qui est le reste de la division polynomiale des données d’origine par le polynomial du générateur. À la fin de l’expéditeur, la somme de contrôle CRC est calculée et ajoutée aux données avant la transmission. À la fin du récepteur, les données reçues ainsi que la somme de contrôle sont divisées par le même polynôme de générateur. Si le reste est égal à zéro, les données sont supposées exemptes d’erreurs ; sinon, une erreur est détectée.

L’utilisation de polynômes CRC et de codes cycliques peut sembler complexe, mais le concept est plus simple qu’il ne semble. Ces polynômes sont essentiellement des représentations mathématiques qui facilitent le processus de détection des erreurs. Les codes cycliques, dans le contexte du CRC, renvoient à des codes où les changements cycliques de tout mot de code valide entraînent un autre mot de code valide.

Pour mieux comprendre, considérez un exemple simplifié de correction d’erreur à l’aide d’une somme de contrôle de base. Imaginez envoyer un nombre binaire et ajouter un bit supplémentaire qui représente la parité ou la somme des bits d’origine. Si les données reçues ne correspondent pas à la parité attendue, une erreur est détectée.

CRC est une version plus sophistiquée de ce processus. Au lieu d’une somme simple, le polynôme CRC effectue un calcul plus complexe, ce qui permet une redondance accrue et améliore la capacité de détection des erreurs. Cette complexité accrue est essentielle pour gérer les erreurs plus subtiles et fournir un mécanisme de vérification des erreurs plus robuste.

Essayer FlashArray

Découvrez comment Pure Storage simplifie considérablement le stockage en mode bloc et fichier dans un environnement en libre-service.

Essayer maintenant

Pourquoi utiliser CRC ?

Le CRC est particulièrement efficace pour détecter les erreurs susceptibles de modifier l’ordre des bits dans un message. Cela est très important dans les scénarios où il est essentiel de maintenir la séquence exacte des bits pour interpréter correctement les données.

L’un des principaux avantages du CRC est sa simplicité d’implémentation, en particulier dans le matériel binaire. L’algorithme implique des opérations simples par bit, ce qui le rend efficace pour la vérification des erreurs matérielles.

Le CRC est non seulement simple à mettre en œuvre, mais également facile à analyser mathématiquement. Cela en fait un choix intéressant pour les concepteurs et les ingénieurs qui doivent comprendre et optimiser les capacités de vérification des erreurs de leurs systèmes. Les propriétés mathématiques du CRC permettent de mieux comprendre ses caractéristiques de performance, ce qui permet d’affiner les paramètres pour des applications spécifiques.

Dans les canaux de communication réels, le bruit est un compagnon inévitable. Le CRC est particulièrement robuste dans la détection des erreurs courantes introduites par le bruit pendant la transmission des données. Sa nature cyclique et sa dépendance à la division polynomiale lui permettent d’identifier efficacement les erreurs causées par des fluctuations aléatoires ou des perturbations du signal.

Choisir le bon polynôme

Au cœur du CRC se trouve le polynôme utilisé dans la génération et la vérification de la somme de contrôle. Le choix du polynôme influence considérablement les capacités de détection des erreurs du CRC. Le polynôme agit comme un diviseur dans la division polynomiale, déterminant la structure de la somme de contrôle.

Pour choisir le bon polynôme, il faut tenir compte de plusieurs facteurs. Le degré du polynôme, par exemple, affecte la longueur de la somme de contrôle et, par conséquent, les capacités de détection des erreurs. Il est essentiel d’équilibrer le désir d’une somme de contrôle plus longue (détection améliorée des erreurs) avec le coût de calcul.

D’autres facteurs incluent les propriétés mathématiques du polynôme, comme son irréductibilité. Un polynôme irréductible permet à l’algorithme CRC de détecter un large éventail d’erreurs. De plus, certaines applications peuvent nécessiter des propriétés spécifiques, telles que la détection des erreurs d’éclatement, qui peuvent être influencées par le choix polynomial.

Plusieurs polynômes standard sont couramment utilisés dans les calculs CRC. Le choix du polynôme dépend des exigences spécifiques de l’application. Par exemple, le polynôme CRC-32 (0x04C11DB7) est fréquemment utilisé dans les protocoles de communication réseau, tandis que le polynôme CRC-16 (0x8005) trouve une application dans les systèmes de stockage. Le polynôme CRC-CCITT (0x1021) est réputé pour son utilisation dans les télécommunications.

Chaque polynôme apporte des caractéristiques uniques, et le choix de l’option appropriée implique de bien tenir compte des exigences de l’application et des compromis souhaités entre les capacités de détection des erreurs et l’efficacité du calcul.

Optimisation des performances CRC

Le CRC est un puissant algorithme de vérification des erreurs, mais il existe des moyens d’améliorer ses performances, notamment :

  • Précalcul basé sur une table , qui précalcule les valeurs CRC et les stocke dans une table pour les entrées couramment utilisées. Cela réduit le besoin de calculs répétitifs, améliorant ainsi considérablement les performances globales.
  • Parallélisation , qui exploite le traitement parallèle pour distribuer les calculs CRC sur plusieurs cœurs ou processeurs. Cela permet de réduire considérablement le temps nécessaire aux vérifications CRC, en particulier dans les scénarios où les ensembles de données sont volumineux.
  • Les opérations bit-wise telles que XOR et shift, qui sont souvent plus efficaces que les opérations arithmétiques traditionnelles.

Pour réduire la complexité opérationnelle, il est très important de choisir le bon polynôme CRC. Certains polynômes offrent de meilleures capacités de détection des erreurs avec un minimum de frais de calcul. Vous pouvez également adapter la taille des mots CRC à l’architecture du système pour améliorer les performances.

Lors de l’optimisation des performances CRC, il y a quelques compromis à prendre en compte, notamment :

1. Utilisation de la mémoire et calcul

Les tables précalculées peuvent réduire le calcul, mais augmenter l’utilisation de la mémoire. Évaluez le compromis entre l’utilisation de la mémoire et l’efficacité des calculs en fonction des contraintes du système.

2. Complexité et rapidité

Les polynômes CRC plus complexes peuvent offrir une meilleure détection des erreurs, mais peuvent être coûteux en calcul. Trouvez un équilibre entre complexité et rapidité, en alignant les efforts d’optimisation sur des cas d’utilisation spécifiques.

Conclusion

Le CRC est largement utilisé dans les applications réelles, notamment les protocoles réseau, les systèmes de stockage et les protocoles de communication. Le CRC excelle dans la détection des erreurs pendant la transmission des données, et sa capacité à identifier à la fois les erreurs en rafale et aléatoires garantit que les données reçues correspondent aux données transmises. Le CRC agit comme une protection contre la corruption des données dans les systèmes de stockage. En détectant les erreurs dès le départ, CRC contribue à maintenir l’intégrité et la résilience des informations stockées, ce qui est essentiel pour la fiabilité des données à long terme.

Bien que le CRC renforce la confiance dans la fiabilité du transfert et du stockage des données, il s’accompagne de frais de calcul. Veillez donc à évaluer le compromis entre les avantages de la vérification des erreurs et les ressources dépensées dans les calculs du CRC.

N’oubliez pas non plus que le CRC ne joue qu’un seul rôle dans l’ensemble de la protection moderne des données. La solution de protection des données moderne et complète de Pure Storage vous permet de restaurer vos données quand vous en avez le plus besoin, de protéger votre entreprise contre les attaques, de gérer votre entreprise sans interruption, de prendre le contrôle de votre environnement et de garantir un environnement de stockage propre.

11/2024
How Healthy Is Your Data Platform Really?
Complete this self-guided wellness check to help determine if your data platform can successfully adapt with your organization into the future.
Infographie
1 page
CONTACTEZ-NOUS
Des questions, des commentaires ?

Vous avez des questions ou des commentaires concernant des produits ou certifications Pure ?  Nous sommes là pour vous aider.

Planifier une démo

Planifiez une démo en direct et découvrez comment Pure peut vous aider à transformer vos données. 

Tél. : +33 1 89 96 04 00

Services Médias : pr@purestorage.com

 

Pure Storage France

32 rue Guersant

75017 Paris

info@purestorage.com

 

FERMER
Votre navigateur n’est plus pris en charge !

Les anciens navigateurs présentent souvent des risques de sécurité. Pour profiter de la meilleure expérience possible sur notre site, passez à la dernière version de l’un des navigateurs suivants.