Visual RFC.
ALL RFCs / RFC 1071
Read the RFC ↗
RFC 1071 / INTERNET CHECKSUM

Optimize the work without changing the arithmetic

05

Wider sums, combined copying and later incremental guidance preserve the same checksum meaning.

RFC 1071 · §2(C), §3 and §§4.1–4.4EXAMPLE
4 / 4
Optimize the work without changing the arithmeticThe publication graph has1141 updating1071 and1624 updating1141. These are scope-qualified incremental technique updates; no whole-publication obsoletion or newly invented TCP format is shown.Do less work, keep the same sumRFC 1071RFC 11411141 updates 1071RFC 16241624 updates 1141Incremental technique: separate companion guideNo whole-publication obsoletionRFC 1071 · chapter 5 · state 4 · arithmetic example
04
Follow the incremental update chain

1071 is updated by1141;1624 updates1141. Only the incremental technique changes here. Full computation and the all-ones receiver check remain the foundation.

Source for this drawing: RFC 1071 · Read RFC source: §2(C), §3 and §§4.1–4.4 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

A message needs an address.

Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

What changed
RFC 1071 incremental notationRFC 1141, then RFC 1624 §§2–5

Official relationships are Updates, not whole-publication obsoletions. RFC 1624 distinguishes the stored field from its uncomplemented sum and handles the zero boundary; this guide teaches full computation and points to the separate incremental guide.

Read the updated RFC section ↗
KEY POINT

On a machine with a word size that is a multiple of 16bits, partial sums can use that wider width and then fold the16-bit portions together, retaining any further end-around carries. The §3 words 0001f203 andf4f5f6f7 sum to f4f7e8fa; foldf4f7+e8fa to 1ddf1, then to ddf2 (§2(C), §3).

  • On a machine with a word size that is a multiple of 16bits, partial sums can use that wider width and then fold the16-bit portions together, retaining any further end-around carries. The §3 words 0001f203 andf4f5f6f7 sum to f4f7e8fa; foldf4f7+e8fa to 1ddf1, then to ddf2 (§2(C), §3).
  • Deferred carries require enough accumulator width or proper carry handling. Loop unrolling reduces loop overhead; combining copying with summation can fetch each source byte once for both tasks. None of these techniques permits dropping bytes or their even/odd positions (§2, coding techniques1–3). Our helper copies and sums; it is not a speed benchmark.
  • The C, Motorola68020, Cray and IBM370 examples are historical cores with omitted environmental/special-case code (§§4.1–4.4). Their old CPU timings are not modern performance promises. Verified editorial errata560/4918 correct C pointer code and 7711 corrects a typo; held technical3133 addresses the odd-byte C handling. This guide uses explicit bytes, not a verbatim copy of that old C.
  • Incremental updates are a separate companion topic. Official metadata lists RFC 1141 as updating1071, despite1141’s printed “Obsoletes” header (held erratum2102). RFC 1624 in turn updates1141 and corrects its zero-boundary behavior (§§2–5). Neither relationship obsoletes the whole1071 publication. Follow the existing1624 guide for that method; do not apply1071’s uncomplemented-sum notation directly to the stored field.
  • The reproduced IEN45 appendix is historical design discussion, including alternative product codes and outboard processing. It is not a new TCP wire-format requirement. This guide covers the current arithmetic and implementation properties of the1071 body, not executable historical assembly or a modern offload specification.
DETAILS

Educational arithmetic, not a protocol stack or a portable replacement for old assembly/C. Each protocol defines its own covered octets and checksum-field rules.

Read the RFC section ↗

All chapters in RFC 1071

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗