Constrained Nodes


Constrained Nodes is defined in RFC 7228 as a node where some of the characteristics that are otherwise pretty much taken for granted for Internet nodes at the time of writing are not attainable, often due to cost constraints and/or physical constraints on characteristics such as size, weight, and available power and energy.

The tight limits on power, memory, and Computing resources lead to hard upper bounds on state, code space, and processing cycles, making optimization of energy and network bandwidth usage a dominating consideration in all design requirements. Also, some layer-2 services such as full connectivity and broadcast/multicast may be lacking.

There are multiple facets to the constraints on nodes, often applying in combination, for example:

  • constraints on the maximum code complexity (ROM/Flash),
  • constraints on the size of state and buffers (RAM),
  • constraints on the amount of Computing feasible in a period of time ("CPU power"),
  • constraints on the available power
  • constraints on user interface and accessibility in deployment (ability to set keys, update software, etc.). (Input-constrained device)

3. Classes of Constrained Devices#

Despite the overwhelming variety of Internet-connected devices that can be envisioned, it may be worthwhile to have some succinct terminology for different classes of constrained devices. In this document, the class designations in Table 1 may be used as rough indications of device capabilities:
Namedata size (e.g., RAM)code size (e.g., ROM)
Class 0, C0<< 10 KiB<< 100 KiB
Class 1, C1 10 KiB100 KiB
Class 2, C2 50 KiB250 KiB
Table 1: Classes of Constrained Devices (KiB = 1024 bytes)

More Information#

There might be more information for this subject on one of the following: