Understanding Checksums and Cyclic Redundancy Checks:
This book gives practical, comprehensive answers to common questions about checksums and CRCs. Descriptions are based mainly on intuitive rather than mathematical explanations for both algorithmic operation and limitations, improving accessibility to non-specialists. Coverage includes single-sum checksums, dual-sum checksums (Fletcher checksum, DualX, DualXP), the new Koopman checksum, Cyclic Redundancy Checks (CRCs), and system-level usage considerations.
For decades much of the practical use of checksums and CRCs was based, at least in part, on folklore. This book provides a solid, comprehensive foundation for addressing core issues such as the comparative fault detection effectiveness of each technique, insight into speed differences, intuitive explanations for how speed-up techniques work, which CRC polynomial you should use for any particular situation, and source code examples for each approach.
This is the most comprehensive treatment of checksums and CRCs to date. The emphasis is on intuitive explanations and empirical validation of insights for practical application of these techniques to addressing real-world problems.
Chapters:
Introduction
Decimal checksum examples
Checksum operation and terminology
Checksum fault model
Single-sum checksums
Dual-sum checksums (Fletcher, Adler, DualX)
Koopman checksum
Checksum plus parity for HD=4 (KoopmanP, DualXP)
Cyclic Redundancy Check (CRC)
CRC effectiveness
Other checksum considerations
System-level considerations
Resources
Conclusions
Appendix: Good CRC Polynomials
Glossary
Includes example source code in C for each type of checksum.
This e-book is best viewed in color, with some color-coded text and dozens of color illustrations.