A checksum is a simple type of redundancy check that is used to detect errors in data.
Errors frequently occur in data when it is written to a disk, transmitted across a network
or otherwise manipulated. The errors are typically very small, for example, a single
incorrect bit, but even such small errors can greatly affect the quality of data, and even
make it useless.
In its simplest form, a checksum is created by calculating the binary values in a packet
or other block of data using some algorithm and storing the results with the data. When
the data is retrieved from memory or received at the other end of a network, a new
checksum is calculated and compared with the existing checksum . A non-match
indicates an error ; a match does not necessarily mean the absence of errors, but only
that the simplealgorithmwas not able to detect any.
Among the types of errors that cannot be detected by simple checksum algorithms are reordering of the bytes , inserting or deleting zero-valued bytes and multiple errors that
cancel each other out . Fortunately , however , these errors can be detected with more
sophisticated methods, such ascyclic redundancy checks(CRC). Although such
techniques have the disadvantage of requiring greater system resources (in the form of
processor time and bandwidth ) , this has become an increasingly unimportant
consideration in recent years as a result of the continued increases in processor speed
and bandwidth.