The IPv4 checksum does not add bytes one at a time. It pairs them into big-endian words and treats the checksum field specially during computation.

highlighted = computed this step

Why words are paired bytes

The IPv4 checksum reads the header as big-endian words. Each row in the table is a displayed word recomputed from the header bytes.

word bits=16\text{word bits}=16

Ten big-endian words

The 10 words begin 0x4500, 0x003c, and 0x1c46. The table lists all of them in wire order.

0x4500,0x003c,0x1c460x4500,0x003c,0x1c46
Ten wordsThe checksum word is zeroed and the displayed sums are recomputed.Ten wordscompute zero word 5rowindexvalueword00x4500word10x003cword20x1c46word30x4000word40x4006word50x0000 (zeroed)word60xac10word70x0a63word80xac10word90x0a0craw sum0x00024e17folded0x4e19result0xb1e6

The checksum word is zeroed for compute

For computation, word index 5 is treated as zero. That is the checksum field itself, shown in Book 1 as 0xb1e6.

zero word=5\text{zero word}=5
Ten wordsThe checksum word is zeroed and the displayed sums are recomputed.Ten wordscompute zero word 5rowindexvalueword00x4500word10x003cword20x1c46word30x4000word40x4006word50x0000 (zeroed)word60xac10word70x0a63word80xac10word90x0a0craw sum0x00024e17folded0x4e19result0xb1e6

Summary

Checksum arithmetic starts by pairing bytes into big-endian words and zeroing the checksum field for computation. Error detection over the exact bytes; timing/throughput is not modeled here.

words=10\text{words}=10
Ten wordsThe checksum word is zeroed and the displayed sums are recomputed.Ten wordscompute zero word 5rowindexvalueword00x4500word10x003cword20x1c46word30x4000word40x4006word50x0000 (zeroed)word60xac10word70x0a63word80xac10word90x0a0craw sum0x00024e17folded0x4e19result0xb1e6