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.

0x0c→0x0d0x0c\to0x0d
Flipped bit caughtCompute mode exposes the folded sum without using verify rejection.Flipped bit caught - computerowindexvalueword00x4500word10x003cword20x1c46word30x4000word40x4006word50xb1e6word60xac10word70x0a63word80xac10word90x0a0draw sum0x0002fffefolded0x0001result0xfffe

The fold is not all ones

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

0x0001≠0xffff0x0001\ne0xffff
Flipped bit caughtCompute mode exposes the folded sum without using verify rejection.Flipped bit caught - computerowindexvalueword00x4500word10x003cword20x1c46word30x4000word40x4006word50xb1e6word60xac10word70x0a63word80xac10word90x0a0draw 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 caught - computerowindexvalueword00x4500word10x003cword20x1c46word30x4000word40x4006word50xb1e6word60xac10word70x0a63word80xac10word90x0a0draw sum0x0002fffefolded0x0001result0xfffe