I recently read about CRC, a checksum to detect package corruption and drop corrupted packages. But how does a packet in an IP-based network get corrupted in the first place?
Packets are long streams of binary numbers (
ones are usually changes of an electric signal, specifically voltage changes.
To simplify, suppose that
0 is 0 volts and
1 is represented alternatively as 5 volts and -5 volts.
Then a long string of zeros and ones will look like this in terms of voltage variations in the cable:
As you can see, the first
1 is 5 volts, but the next
1is -5 volts. This is neccesary to avoid that a long string of
1s energizes the communication line.
If the cable is exposed to electromagnetic interference, then the voltage levels can be altered. If a -5 volts value becomes -2 volts then the receiver can't identify it precisely as a
zero or a
If your data cable runs for a long stretch parallel to power cables, then the power cable can cause interference to the data cable and induce errors.