Error Detection Methods (Cambridge (CIE) O Level Computer Science)

Revision Note

Robert Hampton

Expertise

Computer Science Content Creator

Parity Check

What is a parity check?

  • A parity check determines whether bits in a transmission have been corrupted

  • Every byte transmitted has one of its bits allocated as a parity bit

  • The sender and receiver must agree before transmission whether they are using odd or even parity

  • If odd parity is used then there must be an odd number of 1’s in the byte, including the parity bit

  • If even parity is used then there must be an even number of 1’s in the byte, including the parity bit

  • The value of the parity bit is determined by counting the number of 1’s in the byte, including the parity bit

  • If the number of 1’s does not match the agreed parity then an error has occurred

  • Parity checks only check that an error has occurred, they do not reveal where the error(s) occurred

Even parity

  • Below is an arbitrary binary string

EVEN
Parity bit

Byte

0

1

0

1

1

0

1

0

  • If an even parity bit is used then all bits in the byte, including the parity bit, must add up to an even number

    • There are four 1’s in the byte

    • This means the parity bit must be 0 otherwise the whole byte, including the parity bit, would add up to five which is an odd number

Odd parity

  • Below is an arbitrary binary string

ODD
Parity bit

Byte

1

1

0

1

1

0

1

0

  • If an odd parity bit is used then all bits in the byte, including the parity bit, must add up to an odd number

    • There are four 1’s in the byte. This means the parity bit must be a 1 otherwise the whole byte, including the parity bit, would add up to four which is an even number

  • The table below shows a number of examples of the agreed parity between a sender and receiver and the parity bit used for each byte

Example #

Agreed parity

Parity bit

Main bit string

Total number of 1’s

#1

ODD

0

1

1

0

1

0

1

1

5

#2

EVEN

1

0

0

0

1

0

0

0

2

#3

EVEN

1

0

1

0

1

1

1

1

6

#4

ODD

1

0

1

1

1

0

0

1

5

#5

ODD

1

1

0

1

0

1

0

1

5

#6

EVEN

0

1

0

0

1

1

1

0

4

  • Example #1: The agreed parity is odd. All of the 1’s in the main bit string are added (5). As this number is odd already the parity bit is set to 0 so the whole byte stays odd

  • Example #2: The agreed parity is even. All of the 1’s in the main bit string are added (1). As this number is odd the parity bit is set to 1 to make the total number of 1’s even (2)

  • Example #6: The agreed parity is even. All of the 1’s in the main bit string are added (4). As this number is even already the parity bit is set to 0 so the whole byte stays even

How do errors occur?

  • When using parity bits, an error occurs when the number of total bits does not match the agreed parity

  • Bits can be flipped or changed due to interference on a wire or wirelessly due to weather or other signals

Example #

Agreed parity

Parity bit

Main bit string

Total number of 1’s

Error

#1

ODD

1

1

1

0

1

0

1

1

6

Error

#2

EVEN

1

0

0

0

1

0

0

0

2

No error

#3

EVEN

1

0

1

1

1

1

1

1

7

Error

#4

ODD

1

0

1

1

1

0

0

1

5

No error

#5

ODD

1

1

0

1

0

1

1

1

6

Error

#6

EVEN

0

1

0

0

0

1

1

0

3

Error

  • Parity checks are quick and easy to implement but fail to detect bit swaps that cause the parity to remain the same

Parity Byte & Block Check

What are parity byte & block checks?

  • Parity blocks and parity bytes can be used to check an error has occurred and where the error is located

  • Parity checks on their own do not pinpoint where errors in data exist, only that an error has occurred

  • A parity block consists of a block of data with the number of 1’s totalled horizontally and vertically

  • A parity byte is also sent with the data which contains the parity bits from the vertical parity calculation

  • Below is a parity block with a parity byte at the bottom and a parity bit column in the second column

ODD

Parity bit

Bit 2

Bit 3

Bit 4

Bit 5

Bit 6

Bit 7

Bit 8

Byte 1

0

1

1

0

1

0

1

1

Byte 2

0

0

0

0

1

0

0

0

Byte 3

1

0

1

0

1

1

1

1

Byte 4

1

0

1

1

1

0

0

1

Byte 5

1

1

0

1

0

1

0

1

Byte 6

1

1

0

0

1

1

1

0

Byte 7

0

0

1

1

1

1

1

0

Byte 8

0

1

0

1

1

0

0

0

Parity byte

0

1

1

1

1

1

1

1

  • The above table uses odd parity

  • Each byte row calculates the horizontal parity as a parity bit as normal

  • Each bit column calculates the vertical parity for each row, the parity byte

  • It is calculated before transmission and sent with the parity block

  • Each parity bit tracks if a flip error occurred in a byte while the parity byte calculates if an error occurred in a bit column

  • By cross referencing both horizontal and vertical parity values the error can be pinpointed

  • In the above example the byte 3 / bit 5 cell is the error and should be a 0 instead

  • The error could be fixed automatically or a retransmission request could be sent to the sender

Checksum

What is a checksum?

  • Checksums determine if data has been corrupted but do not reveal where

  • Data is sent in blocks and an additional checksum value is added at the end of the block

  • Checksums are custom, user-created algorithms that perform mathematical calculations on data

  • An example of a custom checksum algorithm in computer science is:

    • A checksum byte is defined as a value between 1 and 255 which is stored in 8 bits

    • 8 bits are collectively known as a byte

    • If the sum of all of the bytes of a transmitted block of data is <= 255 then the checksum value is the sum of all of the bytes

    • If the sum of all of the bytes is > 255 then the checksum is calculated with an algorithm:

      • X = sum of all of the bytes

      • Y = X / 256

      • Round down Y to nearest whole number

      • Z = Y * 256

      • Checksum = X - Z

Custom Checksum Walkthrough

  • If X = 1496

    • Y = 1496 / 256 = 5.84

    • Rounded down Y = 5

    • Z = 5 * 256 = 1280

    • Checksum = 1496 - 1280 = 216

  • The checksum value in this example would be 216

  • When a block of data is to be transmitted, the checksum is first calculated and then transmitted with the rest of the data

  • When the data is received the checksum value is calculated based on the received data and compared to the checksum value received

  • If they are the same then the data does not contain any errors

  • If an error does occur then a resend request is sent and the data is retransmitted

Worked Example

Describe the process a checksum algorithm uses to determine if an error has occurred

[5]

Answer

  • Before data is transmitted a checksum value is calculated [1]

  • The checksum value is transmitted with the data  [1]

  • The receiver calculates the checksum value using the received data  [1]

  • The calculated checksum is compared to the transmitted checksum [1]

  • If they are the same then there is no error otherwise an error has occurred [1]

Echo Check

What is an echo check?

  • An echo checks involve transmitting the received data back to the sender

  • The sender then checks the data to see if any errors occurred during transmission

  • This method isn’t reliable as an error could have occurred when the sender transmits the data or when the receiver transmits the data

  • If an error does occur the sender will retransmit the data

Worked Example

Four 7-bit binary values are transmitted from one computer to another.

A parity bit is added to each binary value creating 8-bit binary values. All the binary values are transmitted and received correctly. 

(a) Identify whether each 8-bit binary value has been sent using odd or even parity by writing odd or even in the type of parity column. 

8-bit binary value

Type of parity

01100100

 

10010001

 

00000011 

 

10110010

 

[4]

(b) An error may not be detected when using a parity check.

Identify why an error may not be detected. 

[1]

Answers

(a)

8-bit binary value

Type of parity

01100100

Odd  [1]

10010001

Odd  [1]

00000011 

Even [1] 

10110010

Even [1] 

(b)

Any one from: 

  • there is a transposition of bits [1]

  • it does not check the order of the bits (just the sum of 1s/0s) [1]

  • even number of bits change [1]

  • incorrect bits still add up to correct parity [1]

You've read 0 of your 0 free revision notes

Get unlimited access

to absolutely everything:

  • Downloadable PDFs
  • Unlimited Revision Notes
  • Topic Questions
  • Past Papers
  • Model Answers
  • Videos (Maths and Science)

Join the 100,000+ Students that ❤️ Save My Exams

the (exam) results speak for themselves:

Did this page help you?

Robert Hampton

Author: Robert Hampton

Rob has over 16 years' experience teaching Computer Science and ICT at KS3 & GCSE levels. Rob has demonstrated strong leadership as Head of Department since 2012 and previously supported teacher development as a Specialist Leader of Education, empowering departments to excel in Computer Science. Beyond his tech expertise, Robert embraces the virtual world as an avid gamer, conquering digital battlefields when he's not coding.