Visual RFC.
ALL RFCs / RFC 1624
Read the RFC ↗

RFC 1624 / START HERE

Incremental checksums, before the details

The title describes incremental checksum computation, not an acronym. Incremental means updating a result from a known change instead of scanning everything again.

RFC 1624 explains how to update the Internet checksum when a 16-bit word changes. The checksum is a small error-detection value made by adding words with wraparound carry and flipping the result’s bits.

The idea in one picture

  1. Know the old checksum

  2. Replace one word

  3. Fold and complement

A simplified picture of the idea; the chapters explain the actual mechanisms.

Why it exists

It corrects an older shortcut that can produce different stored bits at a zero boundary. The guide follows the published example, explains the arithmetic and separates generation from receiver verification. This is Informational implementation guidance, not a new protocol version.

A familiar example

A router changes an IPv4 header’s Time to Live and must keep that header’s checksum consistent. Updating the affected word can save a full rescan, but a matching checksum is not proof of an authentic sender or unchanged content.

Helpful background

You can start here without reading another RFC. If these ideas are unfamiliar, these short introductions may help.

What you’ll learn next

Begin with chapter one, or choose a topic.

  1. Separate the sum from the stored checksumThe Internet checksum groups bytes into 16-bit words. It adds those words with end-around carry, then flips every bit to create the value stored in the checksum field.
  2. Replace one word without scanning every wordAn updater knows the old checksum, the old 16-bit word and its replacement. It can remove the old contribution, add the new one and complement the resulting sum.
  3. Keep the two zero representations distinctOne’s-complement arithmetic has two bit patterns for zero. The older shortcut can return all ones when a fresh IPv4 header checksum calculation returns all zeros.
  4. Distinguish generation from receiver verificationA receiver can sum the received header including its checksum and look for all ones. That is different from regenerating a checksum and comparing its bits to the received field.
  5. Bound the implementation and its promisesA wider machine accumulator still has to implement sixteen-bit complements and repeat carry folding. A checksum update follows the changed word; it does not prove authenticity or define every transport’s checksum encoding.
Start with chapter one →

This introduction explains RFC 1624 (1994). Read the original RFC ↗