A valid ICMP echo message folds to all ones when the checksum field is included.

highlighted = computed this step

Verification uses the whole message

To verify, the receiver sums the whole ICMP message, including the checksum field. A valid message folds to all ones.

valid fold=0xffff\text{valid fold}=0xffff
Verify ICMP checksumVerify mode sums the whole received ICMP message, including checksum.Request verify - verifyrowindexvalueword00x0800word10xe5caword20x1234word30x0001raw sum0x0000fffffolded0xffffresult0xffffReply verify - verifyrowindexvalueword00x0000word10xedcaword20x1234word30x0001raw sum0x0000fffffolded0xffffresult0xffff

Request verifies

The request checksum 0xe5ca makes the full request fold to 0xffff.

request fold=0xffff\text{request fold}=0xffff
Verify ICMP checksumVerify mode sums the whole received ICMP message, including checksum.Request verify - verifyrowindexvalueword00x0800word10xe5caword20x1234word30x0001raw sum0x0000fffffolded0xffffresult0xffffReply verify - verifyrowindexvalueword00x0000word10xedcaword20x1234word30x0001raw sum0x0000fffffolded0xffffresult0xffff

Reply verifies

The reply checksum 0xedca also makes the full reply fold to 0xffff.

reply fold=0xffff\text{reply fold}=0xffff
Verify ICMP checksumVerify mode sums the whole received ICMP message, including checksum.Request verify - verifyrowindexvalueword00x0800word10xe5caword20x1234word30x0001raw sum0x0000fffffolded0xffffresult0xffffReply verify - verifyrowindexvalueword00x0000word10xedcaword20x1234word30x0001raw sum0x0000fffffolded0xffffresult0xffff

Summary

Verification is a recomputed identity over the exact bytes, not a trusted label beside the message.

valid fold=0xffff\text{valid fold}=0xffff
Verify ICMP checksumVerify mode sums the whole received ICMP message, including checksum.Request verify - verifyrowindexvalueword00x0800word10xe5caword20x1234word30x0001raw sum0x0000fffffolded0xffffresult0xffffReply verify - verifyrowindexvalueword00x0000word10xedcaword20x1234word30x0001raw sum0x0000fffffolded0xffffresult0xffff