A checksum is not magic, but a one-bit change cannot hide from this sum. The table shows the corrupted packet's folded value beside the valid all-ones result.

highlighted = computed this step

Why a changed bit changes the sum

A single changed bit changes one checksum word. Because verify mode rejects non-matching packets, this lesson uses compute mode to show the bad folded value.

valid fold=0xffff\text{valid fold}=0xffff

One byte changes

The last byte changes from 0x0c to 0x0d. That is enough to change the one's-complement sum.

0x0c0x0d0x0c\to0x0d
Flipped bit caughtCompute mode exposes the folded sum without using verify rejection.Flipped bit caughtcomputerowindexvalueword00x4500word10x003cword20x1c46word30x4000word40x4006word50xb1e6word60xac10word70x0a63word80xac10word90x0a0draw sum0x0002fffefolded0x0001result0xfffe

The fold is not all ones

The corrupted packet folds to 0x0001, not 0xffff. That mismatch is the detection signal.

0x00010xffff0x0001\ne0xffff
Flipped bit caughtCompute mode exposes the folded sum without using verify rejection.Flipped bit caughtcomputerowindexvalueword00x4500word10x003cword20x1c46word30x4000word40x4006word50xb1e6word60xac10word70x0a63word80xac10word90x0a0draw sum0x0002fffefolded0x0001result0xfffe

Summary

A single-bit flip is caught, and many multi-bit errors are caught too; compensating changes can cancel. When the fold is not all ones, the checksum never lies — the bytes really did change, and it never raises a false alarm. A match is not a guarantee, though: rare compensating changes still fold to all ones and slip through. Error detection over the exact bytes; timing/throughput is not modeled here.

bad fold=0x0001\text{bad fold}=0x0001
Flipped bit caughtCompute mode exposes the folded sum without using verify rejection.Flipped bit caughtcomputerowindexvalueword00x4500word10x003cword20x1c46word30x4000word40x4006word50xb1e6word60xac10word70x0a63word80xac10word90x0a0draw sum0x0002fffefolded0x0001result0xfffe