Skip to Content

Was ist eine zyklische Redundanzprüfung (CRC) im Netzwerk?

Was ist eine zyklische Redundanzprüfung?

Eine zyklische Redundanzprüfung (CRC) ist eine mathematische Technik, die eine Möglichkeit bietet, Fehler in übertragenen Daten zu erkennen, indem sie einen speziellen Code, eine sogenannte Prüfsumme, an die ursprünglichen Informationen anfügt. Diese Prüfsumme wird dann am Empfangsende neu berechnet, um die Integrität der Daten zu überprüfen. CRC spielt eine wichtige Rolle bei der Identifizierung und Behebung potenzieller Datenbeschädigungen im Netzwerk, bei denen eine zuverlässige Datenübertragung von entscheidender Bedeutung ist. Sie wird auch in Daten-Storage-Systemen verwendet, einschließlich Festplatten und Flash-Speicher, um die Genauigkeit gespeicherter Daten zu überprüfen. CRC ist entscheidend in Protokollen wie Modbus, Controller Area Network (CAN) und vielen anderen, bei denen eine zuverlässige Datenübertragung unerlässlich ist.

Wie funktioniert CRC?

CRC basiert auf der Behandlung der zu übertragenden Daten als Polynom. Der Sender und der Empfänger vereinbaren ein festes Divisorpolynom, das oft als Generatorpolynom bezeichnet wird. Die Daten werden um eine Prüfsumme erweitert, die der Rest der Polynomteilung der ursprünglichen Daten durch das Generatorpolynom ist. Am Ende des Senders wird die CRC-Prüfsumme berechnet und vor der Übertragung an die Daten angehängt. Am Ende des Empfängers werden die empfangenen Daten zusammen mit der Prüfsumme durch dasselbe Generatorpolynom geteilt. Wenn der Rest null ist, wird davon ausgegangen, dass die Daten fehlerfrei sind; andernfalls wird ein Fehler erkannt.

Die Verwendung von CRC-Polynomen und zyklischen Codes mag komplex klingen, aber das Konzept ist einfacher, als es scheint. Diese Polynome sind im Wesentlichen mathematische Darstellungen, die beim Fehlererkennungsprozess helfen. Zyklische Codes beziehen sich im Kontext von CRC auf Codes, bei denen zyklische Verschiebungen eines gültigen Codeworts zu einem anderen gültigen Codewort führen.

Zum besseren Verständnis sollten Sie ein vereinfachtes Beispiel für die Fehlerkorrektur mit einer grundlegenden Prüfsumme in Betracht ziehen. Stellen Sie sich vor, Sie senden eine Binärnummer und fügen ein zusätzliches Bit hinzu, das die Parität oder Summe der ursprünglichen Bits darstellt. Wenn die empfangenen Daten nicht mit der erwarteten Parität übereinstimmen, wird ein Fehler erkannt.

CRC ist eine komplexere Version dieses Prozesses. Statt einer einfachen Summe führt das CRC-Polynom eine komplexere Berechnung durch, was eine größere Redundanz und eine bessere Fehlererkennung ermöglicht. Diese zunehmende Komplexität ist entscheidend, um subtilere Fehler zu behandeln und einen robusteren Fehlerprüfmechanismus bereitzustellen.

FlashArray testen

Erleben Sie, wie Pure Storage Block- und Dateisysteme in einer Self-Service-Umgebung drastisch vereinfacht.

Jetzt testen

Warum CRC verwenden?

CRC ist besonders effektiv bei der Erkennung von Fehlern, die die Reihenfolge der Bits in einer Nachricht verändern könnten. Dies ist sehr wichtig in Szenarien, in denen die Aufrechterhaltung der genauen Bitsequenz für die richtige Interpretation der Daten unerlässlich ist.

Einer der wichtigsten Vorteile von CRC ist die Einfachheit der Implementierung, insbesondere bei binärer Hardware. Der Algorithmus umfasst unkomplizierte bitweise Operationen, wodurch er für hardwarebasierte Fehlerprüfungen effizient ist.

CRC ist nicht nur einfach zu implementieren, sondern auch mathematisch zu analysieren. Dies macht es zu einer attraktiven Wahl für Konstrukteure und Ingenieure, die die Fehlerprüffunktionen ihrer Systeme verstehen und optimieren müssen. Die mathematischen Eigenschaften von CRC ermöglichen einen tieferen Einblick in seine Leistungsmerkmale und helfen bei der Feinabstimmung von Parametern für bestimmte Anwendungen.

In realen Kommunikationskanälen ist Lärm ein unvermeidlicher Begleiter. CRC ist besonders robust bei der Erkennung häufiger Fehler, die durch Störungen während der Datenübertragung verursacht werden. Dank seiner zyklischen Natur und seiner Abhängigkeit von der Polynomteilung kann er Fehler, die durch zufällige Schwankungen oder Störungen im Signal verursacht werden, effektiv erkennen.

Auswahl des richtigen Polynoms

Im Zentrum von CRC steht das Polynom, das bei der Erstellung und Verifizierung der Prüfsumme verwendet wird. Die Wahl des Polynoms beeinflusst die Fehlererkennungsfähigkeit von CRC erheblich. Das Polynom fungiert als Divisor in der Polynomteilung und bestimmt die Struktur der Prüfsumme.

Bei der Wahl des richtigen Polynoms werden mehrere Faktoren berücksichtigt. Der Grad des Polynoms beeinflusst beispielsweise die Länge der Prüfsumme und folglich die Fehlererkennungsfähigkeiten. Die Abwägung des Wunsches nach einer längeren Prüfsumme (erweiterte Fehlererkennung) mit den Berechnungskosten ist ein entscheidender Aspekt.

Weitere Faktoren sind die mathematischen Eigenschaften des Polynoms, wie z. B. seine Unreduzierbarkeit. Ein nicht reduzierbares Polynom stellt sicher, dass der CRC-Algorithmus eine Vielzahl von Fehlern erkennen kann. Darüber hinaus können einige Anwendungen bestimmte Eigenschaften erfordern, wie z. B. die Erkennung von Burst-Fehlern, die durch die Polynomwahl beeinflusst werden können.

Mehrere Standardpolynome werden häufig bei CRC-Berechnungen verwendet. Die Wahl des Polynoms hängt von den spezifischen Anforderungen der Anwendung ab. So wird beispielsweise das CRC-32-Polynom (0x04C11DB7) häufig in Netzwerkkommunikationsprotokollen verwendet, während das CRC-16-Polynom (0x8005) in Storage-Systemen Anwendung findet. Das CRC-CCITT-Polynom (0x1021) ist für seinen Einsatz in der Telekommunikation bekannt.

Jedes Polynom bringt einzigartige Eigenschaften mit sich, und bei der Auswahl des geeigneten Polynoms werden die Anforderungen der Anwendung und die gewünschten Kompromisse zwischen Fehlererkennungsfähigkeiten und Recheneffizienz sorgfältig berücksichtigt.

Optimierung der CRC-Performance

CRC ist ein leistungsstarker Algorithmus zur Fehlerprüfung, aber es gibt Möglichkeiten, seine Performance zu verbessern, darunter:

  • Tabellenbasierte Vorberechnung , die CRC-Werte vorberechnet und sie in einer Tabelle für häufig verwendete Eingaben speichert. Dies reduziert die Notwendigkeit sich wiederholender Berechnungen und verbessert die Gesamtleistung erheblich.
  • Parallelisierung , die parallele Verarbeitung nutzt, um CRC-Berechnungen über mehrere Kerne oder Prozessoren hinweg zu verteilen. Dies kann den Zeitaufwand für CRC-Prüfungen erheblich verkürzen, insbesondere in Szenarien mit großen Datensätzen.
  • Bitweise Operationen wie XOR und Verschiebungen, die oft effizienter sind als herkömmliche arithmetische Operationen.

Um die operative Komplexität zu verringern, ist es sehr wichtig, das richtige CRC-Polynom auszuwählen. Einige Polynome bieten bessere Fehlererkennungsfunktionen bei minimalem Rechenaufwand. Sie können auch die CRC-Wortgröße an die Architektur des Systems anpassen, um die Performance zu verbessern.

Bei der Optimierung der CRC-Performance müssen einige Kompromisse in Betracht gezogen werden, darunter:

1. Speichernutzung vs. Berechnung

Vorberechnete Tabellen können die Berechnung reduzieren, aber die Speichernutzung erhöhen. Bewerten Sie den Kompromiss zwischen Speicherauslastung und Berechnungseffizienz basierend auf Systembeschränkungen.

2. Komplexität vs. Geschwindigkeit

Komplexere CRC-Polynome können zwar eine bessere Fehlererkennung bieten, können aber rechnerisch teuer sein. Finden Sie ein Gleichgewicht zwischen Komplexität und Geschwindigkeit und stimmen Sie die Optimierungsbemühungen mit bestimmten Anwendungsfällen ab.

Fazit

CRC wird in der Praxis umfassend eingesetzt, einschließlich Netzwerkprotokollen, Storage-Systemen und Kommunikationsprotokollen. CRC zeichnet sich durch die Erkennung von Fehlern während der Datenübertragung aus, und seine Fähigkeit, sowohl Burst- als auch zufällige Fehler zu erkennen, stellt sicher, dass die empfangenen Daten mit den übertragenen Daten übereinstimmen. CRC dient als Schutz vor Datenbeschädigung in Storage-Systemen. Durch die frühzeitige Erkennung von Fehlern trägt CRC dazu bei, die Integrität und Ausfallsicherheit gespeicherter Informationen aufrechtzuerhalten, was für die langfristige Datenzuverlässigkeit entscheidend ist.

Während CRC Vertrauen in die Zuverlässigkeit von Datenübertragung und Storage weckt, bringt es Rechenaufwand mit sich. Achten Sie also darauf, den Kompromiss zwischen den Vorteilen der Fehlerprüfung und den Ressourcen zu bewerten, die bei CRC-Berechnungen aufgewendet werden.

Denken Sie auch daran, dass CRC nur eine Rolle im Gesamtbild des modernen Datenschutzes spielt. Mit der umfassenden modernen Datenschutzlösung von Pure Storage können Sie Daten wiederherstellen, wenn es darauf ankommt, Ihr Unternehmen vor Angriffen schützen, Ihr Unternehmen unterbrechungsfrei führen, die Kontrolle über Ihre Umgebung übernehmen und eine saubere Storage-Umgebung garantieren.

08/2024
Maximizing SAP HANA Performance and Reliability with Pure Storage
A reference architecture for SAP bundled application suites on SAP HANA with Pure Storage.
Referenzarchitektur
27 Seiten
KONTAKTIEREN SIE UNS
Fragen, Kommentare?

Haben Sie eine Frage oder einen Kommentar zu Produkten oder Zertifizierungen von Pure?  Wir helfen Ihnen gerne!

Termin für Demo vereinbaren

Vereinbaren Sie einen Termin für eine Live-Demo und sehen Sie selbst, wie Pure Ihnen helfen kann, Ihre Daten in überzeugende Ergebnisse zu verwandeln. 

Rufen Sie uns an: +49 89 26200662
Presse:
 pr@purestorage.com

 

Pure Storage Germany GmbH

Mies-van-der-Rohe-Straße 6

80807 München

Deutschland

info@purestorage.com

SCHLIESSEN
Ihr Browser wird nicht mehr unterstützt!

Ältere Browser stellen häufig ein Sicherheitsrisiko dar. Um die bestmögliche Erfahrung bei der Nutzung unserer Website zu ermöglichen, führen Sie bitte ein Update auf einen dieser aktuellen Browser durch.