!!! Overview
[{$pagename}] 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 (typically using [low power wireless protocols])
* 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:

%%zebra-table
%%sortable
%%table-filter
||Name||data size (e.g., [RAM])||code size (e.g., [ROM])
|Class 0, C0|<< 10 [KiB]|<< 100 [KiB]
|Class 1, C1| ~ 10 [KiB]|~ 100 [KiB]
|Class 2, C2| ~ 50 [KiB]|~ 250 [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:
[{ReferringPagesPlugin before='*' after='\n' }]