Modernization Hub

CRC - Cyclic Redundancy Check

Enhanced Definition

CRC (Cyclic Redundancy Check) is an error-detecting code used in digital networks and storage devices to detect accidental changes to raw data. In the mainframe context, it's a crucial mechanism for ensuring data integrity during transmission between systems, within storage subsystems, and across various communication protocols used by z/OS.

Key Characteristics

    • Error Detection: Primarily designed to detect accidental errors like noise, interference, or media defects during data transmission or storage, rather than intentional tampering.
    • Polynomial Division: Generates a fixed-length checksum (the CRC value) by performing a binary polynomial division on the data block. This mathematical approach allows for robust error detection.
    • High Reliability: Offers a very high probability of detecting common burst errors (multiple contiguous bits in error) and single-bit errors, making it highly effective for ensuring data quality.
    • Standards-Based: Implemented using various standardized polynomials, such as CRC-16 (e.g., in older protocols like SDLC) and CRC-32 (common in Ethernet, TCP/IP, and modern storage systems).
    • Not Error Correction: While it detects errors, CRC does not inherently provide a mechanism to correct them; typically, retransmission of data or recovery from a redundant source is required upon detection.
    • Computational Overhead: Involves a small computational overhead for calculation and verification, which is generally negligible compared to the significant benefits of assured data integrity.

Use Cases

    • Network Communication: Used extensively by z/OS Communications Server in various network protocols (e.g., SDLC, HDLC, Ethernet frames within TCP/IP) to ensure the integrity of data packets transmitted between mainframes and other systems.
    • Data Storage: Employed by storage controllers and tape management systems to verify the integrity of data blocks written to and read from DASD (Direct Access Storage Devices) and magnetic tapes, preventing silent data corruption.
    • File Transfer Protocols: Integrated into file transfer utilities and protocols (e.g., FTP, IND$FILE for 3270 terminal file transfers) to validate that files are transferred between systems without corruption.
    • Application-Level Verification: Custom mainframe applications might implement CRC checks for critical data files or records to ensure their integrity during processing, archival, or before committing updates to databases like DB2 or IMS.

Related Concepts

CRC is a fundamental component of data integrity and error handling strategies on the mainframe. It is superior to simpler checksums or parity bits for detecting burst errors due to its mathematical sophistication. It works in conjunction with communication protocols (like SNA, TCP/IP) and storage subsystems (like DASD, tape drives) to provide a robust layer of data validation. While CRC detects errors, the actual error recovery (e.g., retransmission, reading from a redundant copy, logging an error) is handled by higher-level protocols, system components, or application logic.

Best Practices:
  • Rely on System Implementations: For network and storage operations, always rely on the CRC implementations provided by z/OS and hardware controllers, as they are highly optimized, rigorously tested, and adhere to industry standards.
  • Appropriate Algorithm Selection: When implementing CRC in custom applications, use well-established CRC algorithms (CRC-16, CRC-32) and ensure the chosen polynomial matches the expected verification method.
  • Understand Limitations: Recognize that CRC is effective against accidental errors but is not designed to detect malicious data alteration; for that, cryptographic hashing (SHA-256,

Related Vendors

Tone Software

14 products

IBM

646 products

Related Categories

Operating System

154 products

Automation

222 products