Frage

Ich habe eine hypothetische Situation beim Senden von Dateneinheiten, jeweils tausend Bytes. Die Fehlerrate ist selten, aber wenn ein Fehler auftritt, ist es weniger wahrscheinlich, dass ein einzelner Bitfehler und wahrscheinlicher ein Fehler in einigen Teilen in einer Zeile ist.

Zuerst dachte ich daran, eine Prüfsumme zu verwenden, aber anscheinend kann das Bit -Fehler übersehen, die größer als ein einziges Bit sind. Eine Paritätsprüfung funktioniert auch nicht, daher ist CRC möglicherweise die beste Option.

Ist die Verwendung einer zyklischen Redundanzprüfung auf tausend Bytes effizient? Oder gibt es andere Methoden, die besser funktionieren würden?

War es hilfreich?

Lösung

Cyclic Redundancy Checks (CRCs) sind beliebt speziell Aufgrund ihrer Effizienz bei der Erkennung mehrerer Bitfehler mit einer garantierten Genauigkeit.

Es gibt verschiedene Designs, um CRC-Polynome zu generieren, bei denen der Kompromiss die Genauigkeit im Vergleich zu rechnerischer Komplexität ist. In Ihrem Fall können Sie das "schnellste" auswählen, das Ihren Anforderungen an die Genauigkeit entspricht.

Vielleicht möchten Sie mit diesem Wikipedia -Artikel über die Zyklische Redundanzprüfung.

Andere Tipps

CRC ist hier in einer anderen Frage behandelt
Wann ist CRC besser zu bedienen als MD5/SHA1?
Es ist geeignet, zufällige Fehler zu erkennen und einfach zu implementieren.

Es ist normal, einen CRC zu verwenden. Ich bin mir nicht sicher, was Sie unter "Effizienz" meinen, aber ich denke, dass die CRC manchmal in Hardware implementiert ist (z. B. auf der Ethernet -Karte). Andernfalls finden Sie möglicherweise "optimierte" Implementierungen (unter Verwendung einer Nachschlagetabelle).

Wie groß sind Ihre Festplattensektoren? Wahrscheinlich mindestens 512 Bytes. Und CRC ist ein altehranhaftes Schema für die Scheibe auf Hardware-Ebene ECC.

Die Aktien -CRC -Polynomalgorithmen sind bei geringen Anzahl von Bitfehlern sehr effektiv. Die genaue Genauigkeit ist mathematisch berechnet. CRC ist auch sehr effizient in Hardware, bei denen eine relativ geringe Anzahl von Toren und Schichtregistern die Arbeit im laufenden Flug verwalten kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top