Data Communications

Tutorial #8 - Data Integrity

  1. With the aid of examples, define the terms:
     
    1. Single bit error.
    2. Double bit error.
    3. Error burst.
  2. Suppose some static of duration 0.01 second affects the communication line for a 14,400 bps modem. How many bits would be affected? What if the data rate were 300 bps?
  3. Would you expect that the addition of a parity bit would change the probability of receiving a correct message? Why or why not?
  4. The two-dimensional parity (block-check parity) can be considered as a checksum calculated using modulo-2 arithmetic. How?
  5. In a block-check parity scheme, is the last bit of the parity check character generated "horizontally" (from the other bits in the character) or "vertically" (from the parity bits of all other characters)?
  6. What errors can a CRC-16 always detect?
  7. Suppose you want to transmit the data 1101, and the "magic number" used to generate the CRC is 101.
     
    1. What bit string is actually sent?
    2. Show that the receiver calculates a remainder of 000.
    3. Change any bit of the transmitted string & repeat (b).
  8. (Extension/research-type question)
     
    1. Examine the shift register CRC implementation given in the lecture notes. Can you see any relationship between the terms of the "magic number" and the placement of the Exclusive-OR gates and the 1-bit latches?
    2. Using the same data as given in the lecture notes, work through 7 iterations of the hardware CRC implementation (with each of the latches initialised to zero), and see if the contents of the shift register is the same as that derived by division in the notes.

Practical Exercise:

  1. Investigate the cksum utility on a Unix system. Use it to calculate the checksum of a file, then change the file slightly and see how the checksum changes. How can this utility be used to ensure the integrity of files? Compare its operation with the older sum utility.