TutorChase logo
Login
AQA A-Level Computer Science

14.5.3 Error Checking and Correction

Error checking and correction ensures that data remains accurate and reliable during transmission by detecting and sometimes correcting errors introduced by noise or interference.

Error detection and correction in data transmission

When data is transmitted between computers or devices—such as over a wired or wireless network—it is susceptible to corruption due to various types of interference. These errors may occur due to electrical noise, signal degradation over distance, or hardware malfunctions. Even a single bit flipping from a 0 to a 1 (or vice versa) can lead to faulty data, affecting the integrity of the entire message.

To deal with this, systems use error detection and correction methods. These techniques do not change the actual data but instead add extra information that allows the receiver to verify whether the data has arrived correctly. Some methods can even automatically fix simple errors, without needing to request the data again. This is especially useful in environments where retransmission is expensive, slow, or impossible, such as satellite communication or real-time applications.

Parity bits

Parity bits are one of the simplest and most widely used methods for detecting errors in binary data. They are not used to correct errors, only to signal that an error has occurred.

Take your grades to the next level!

UPGRADING TO PREMIUM UNLOCKS
AI Tutor
AI-powered study assistant
instant feedback and guidance
Predicted Papers
Examiner-style predicted papers
based on recent exam trends
Practice Questions
All exam practice questions
by topic for each subject
Study Notes
All detailed revision notes
written by expert teachers
Cheat Sheets
Quick revision summaries
perfect for last-minute review
Past Papers
Complete collection
of practice and past exam papers
Email
Password
Confirm Password
Already have an account?

Practice Questions

FAQ

Parity bits work by checking whether the number of 1s in a binary sequence is odd or even, depending on the parity scheme used. They add a single bit to make the total number of 1s either even or odd. When a single bit flips during transmission, the parity is disrupted, allowing the system to detect the error. However, if two bits flip, the total number of 1s might still match the expected parity (even remains even, or odd remains odd), and the error goes undetected. This is because the parity bit only reflects the overall parity, not the exact values or positions of the individual bits. Therefore, it cannot distinguish between original data and data with two (or any even number of) flipped bits. This limitation makes parity bits less reliable in environments where multi-bit errors are likely, as they provide no information about where the error occurred or how many bits are incorrect.

Yes, checksums can be made more reliable by using more complex algorithms or including additional integrity checks. For example, weighted checksums or cyclic redundancy checks (CRCs) provide stronger error detection than simple additive checksums. However, they are still fundamentally designed to detect accidental errors, not deliberate tampering. In contrast, cryptographic hashes such as SHA-256 or MD5 are designed to detect both accidental corruption and intentional modification. A cryptographic hash generates a fixed-length output that changes significantly even if a single input bit is altered. Unlike basic checksums, hashes are computationally infeasible to reverse or manipulate, offering a higher level of assurance. However, they require more processing power and are generally used for security-sensitive applications, such as digital signatures or file verification. In summary, checksums are fast and efficient for basic error detection in transmission, whereas cryptographic hashes provide a secure and robust method for verifying data authenticity and integrity.

A check digit is typically a single digit added to the end of a number to detect input or transcription errors, most commonly found in numeric identification systems such as ISBNs, barcodes, and credit cards. It is calculated using an algorithm based on the other digits in the number, often involving weighted sums and modulo operations. Check digits are specifically designed to catch human entry errors, like digit reversals, omissions, or duplications. In contrast, a checksum is used in digital data transmission or storage, where blocks of binary data are processed to produce a value that summarises the data. The checksum value is transmitted along with the data, and the receiver recalculates it to check for discrepancies. While check digits are used in static, often printed numeric systems, checksums are part of dynamic data validation in networking or digital communication systems. They serve similar purposes—detecting errors—but are implemented differently and used in different contexts.

Majority voting requires transmitting each bit multiple times—commonly three, five, or more—which dramatically increases the amount of data sent. This added redundancy makes it highly inefficient in high-bandwidth or data-heavy applications, such as streaming video, transferring large files, or real-time gaming, where bandwidth must be optimised for speed and efficiency. It is also impractical for battery-powered or embedded devices with limited processing power and memory, where duplicating and evaluating every bit multiple times is not resource-efficient. In wired or fibre-optic networks, where the probability of bit errors is already extremely low due to robust physical transmission media and shielding, majority voting would unnecessarily consume network resources without meaningful benefits. Furthermore, it introduces additional latency, which is unsuitable for time-sensitive operations. For these reasons, majority voting is usually restricted to extremely noisy environments, such as deep-space communication or unreliable wireless systems, where ensuring data integrity outweighs efficiency concerns.

In synchronous transmission, data is sent in a continuous stream, and both the sender and receiver are synchronised using a common clock signal. Since timing is predictable, error detection can be integrated with more complex methods such as cyclic redundancy checks (CRC) or block-level checksums. These techniques work well in high-speed, high-volume transmissions, allowing for efficient processing and detection across large blocks of data. In contrast, asynchronous transmission sends data in discrete units (e.g. characters or bytes) with start and stop bits to signal boundaries. Since timing is not synchronised, each unit must be validated individually, often using parity bits or small-scale checksums. The level of error detection is usually simpler due to limited processing and timing constraints. As a result, synchronous systems are more suited to robust and large-scale data handling, while asynchronous systems rely on lightweight, character-level error detection suitable for low-speed or character-based communication, such as keyboard input or serial device connections.

Hire a tutor

Please fill out the form and we'll find a tutor for you.

1/2
Your details
Alternatively contact us via
WhatsApp, Phone Call, or Email