Prüfverfahren zur Fehlererkennung Was ist ein Cyclic Redundancy Check (CRC)?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Dr. Jürgen Ehneß

Der Cyclic Redundancy Check ist ein Prüfverfahren, mit dem sich Fehler in Datenblöcken erkennen lassen. Das Verfahren kommt beispielsweise bei der Speicherung von Daten oder bei der Datenübertragung in Netzwerken zum Einsatz. Zum Erstellen eines CRC-Prüfwerts wird die Polynomdivision angewandt. Sie lässt sich über rückgekoppelte Schieberegister einfach in Hardware realisieren.

Die wichtigsten IT-Fachbegriffe verständlich erklärt.
Die wichtigsten IT-Fachbegriffe verständlich erklärt.
(Bild: © aga7ta - Fotolia)

Die deutsche Übersetzung für Cyclic Redundancy Check, abgekürzt CRC, lautet „zyklische Redundanzprüfung“. Es handelt sich um ein Prüfverfahren zum Erkennen von Fehlern in Datenblöcken. Der Name leitet sich aus den Eigenschaften des Verfahrens ab. Der zu einem Datenblock hinzugefügte CRC-Wert hat keinen neuen Informationsgehalt, ist also redundant, und dient zur Fehlerprüfung.

Das Verfahren zur Bildung des Prüfwerts arbeitet mit zyklischen Codes. Es basiert auf der Polynomdivision und lässt sich mit Hilfe von rückgekoppelten Schieberegistern einfach und kostengünstig in Hardware realisieren. CRC-Werte ändern sich schon bei minimalen Veränderungen der Daten und bieten eine hohe Wahrscheinlichkeit zur Erkennung von Datenfehlern. Sollte ein dem Datenblock angehängter CRC-Wert nicht dem bei der Überprüfung berechneten CRC-Wert entsprechen, ist im Datenblock ein Fehler vorhanden. Es lassen sich Fehlerbehebungsmaßnahmen wie die erneute Übertragung des Datenpakets einleiten.

Typische Anwendungen des Cyclic Redundancy Checks sind die Fehlerprüfung übertragener Datenpakete in Netzwerken oder die Prüfung gespeicherter Datenblöcke auf Speichergeräten. Das Ethernet und Festplatten nutzen beispielsweise das Verfahren. Ein Cyclic Redundancy Check eignet sich aber nicht zur Integritätsprüfung von Daten. Hierfür sind andere Verfahren anzuwenden. Entwickelt wurde der Cyclic Redundancy Check bereits in den 1960er-Jahren.

Funktionsweise eines Cyclic Redundancy Checks

Die Berechnung des CRC-Werts aus einer vorgegebenen Bitfolge basiert auf der Polynomdivision. Ein so genanntes Generatorpolynom dividiert die Bitfolge und ermittelt den Restwert der Division. Dieser Restwert entspricht dem CRC-Wert. Er wird der Bitfolge angehängt und mit übertragen oder gespeichert. Abhängig von der Länge des Generatorpolynoms erfolgt die Bezeichnung des CRC-Verfahrens. Es existieren CRC-8-, CRC-16-, CRC-32- und weitere CRC-Verfahren.

Bei der Prüfung auf Datenfehler wendet die prüfende Instanz das CRC-Verfahren auf die übertragene oder gespeicherte Bitfolge mit angehängtem CRC-Wert erneut an. Es wird wieder der Restwert ermittelt. Ist er null, ist kein Fehler über das Prüfverfahren feststellbar. Wird ein Fehler festgestellt, lassen sich Korrekturmaßnahmen wie das erneute Senden von Datenpaketen einleiten.

Vorteile des Cyclic Redundancy Checks

Die Vorteile des Cyclic Redundancy Checks sind:

  • verschiedene Arten von Datenfehlern werden mit hoher Zuverlässigkeit erkannt,
  • vielfältig einsetzbar (zum Beispiel in der Datenübertragung oder Datenspeicherung),
  • der durch den CRC-Prüfwert erzeugte Overhead ist klein,
  • das CRC-Verfahren lässt sich über rückgekoppelte Schieberegister einfach und kostengünstig in Hardware realisieren,
  • der Cyclic Redundancy Check arbeitet schnell und ressourcenschonend.

(ID:47587611)