It is more efficient and reliable to calculate a checksum or cyclic redundancy check over the contents of a packet than to check errors using character-by-character parity bit checking .
So many packets use a checksum or cyclic redundancy check to make sure they got the right information .