RFC 7228: Terminology for Constrained-Node Networks

2026-05-10

RFC: RFC 7228

Published: 2014

Authors: C. Bormann, M. Ersue, A. Keränen

Most RFCs define a wire protocol or an algorithm. RFC 7228 does something humbler and arguably more durable: it gives the IETF a shared vocabulary for talking about tiny devices. Before this document, every working group reinvented terms like "small", "embedded", or "low-power", which made cross-WG conversations a mess. Bormann and friends fixed that with a single page of taxonomy that has since been cited by virtually every IoT-adjacent RFC — CoAP, 6LoWPAN, OSCORE, LAKE, SUIT, and so on.

The core contribution: classes of constrained devices. Section 3 defines three buckets based on RAM and flash, the two resources that actually constrain what code you can run:

The numbers were deliberately chosen as orders of magnitude, not exact thresholds, because Moore's Law was expected to push the boundary. Eleven years later the classes still hold up because energy and BOM cost — not transistor density — are the real constraints on the smallest nodes.

The other half: power and network classes. The RFC also defines:

Why a "terminology RFC" matters. When you read a 2024 spec like RFC 9528 (EDHOC), the security analysis is written in terms of "a Class 1 device with a P1 power budget cannot afford X". That shorthand only works because RFC 7228 nailed down the vocabulary a decade earlier. It's the IoT equivalent of RFC 2119's "MUST/SHOULD/MAY" — a tool that disappears into the background but quietly raises the precision of every spec built on top of it.

Backstory. Carsten Bormann (one of the CoAP designers) drove this work because the LWIG and CORE working groups kept arguing past each other about whether a proposed feature was "too heavy". The classes gave reviewers an objective answer: can a Class 1 implementation fit this in 10 KiB of RAM? If no, it doesn't belong in a constrained-device protocol. RFC 7228 was updated by RFC 8352 (2018) to add energy-efficient design considerations, but the original taxonomy is unchanged.

Why it matters: RFC 7228 is the shared vocabulary that lets every IoT protocol reason precisely about what "small" means — without it, modern specs like CoAP, OSCORE, and EDHOC couldn't meaningfully discuss their own constraints.

All newsletters