Förderjahr 2018 / Project Call #13 / ProjektID: 3441 / Projekt: CoMatrix
The Internet Engineering Task Force (IETF) is a major standardization body, which has released multiple RFCs on the topic of the IoT. In RFC 7228 they define common terminology for constrained devices and their applications in computer networks.
A constrained device can be a micro controller, smart devices, sensors and actuators, and other small computers like that. In many applications such a device might gather some information or acts on the input of some informationthey can be placed e.g. in factories, in special appliances, on the outside collecting temperature data etc. There can be extreme resource constraints - limited energy supply, small battery power, little memory space (flash and RAM) and small computing capabilities. The constrained devices might communicate with other entities on the network - a server or a message broker, which may have strong computing and communication resources. The network itself might have limited bandwith, a high loss rate or a dynamic topology.
As the IETF defines, a ”constrained device” becomes a ”constrained node” in such an unreliable network. The main limitations of such a node are:
memory space (Flash/ROM), constrains the code size of applications
memory space (RAM), constrains the execution memory footprint of applications
processing power in terms of capabilities of the CPU
energy power supply
the ability to configure such a device (software updates, key management)
RFC 7228 further defines three distinct classes of constrained nodes:
Class 0: << 10 KiB data size (RAM), << 100 KiB code size (Flash)
Class 1: 10 KiB data size (RAM), 100 KiB code size (Flash)
Class 2: 50 KiB data size (RAM), 250 KiB code size (Flash)
1 KiB here corresponds to 1024 bytes, where each byte consists of an octet of bits.
Class 0-devices are the most constrained ones and are so restricted in computing capabilities that security functions are not usable and direct communication with the Internet is not possible within a secure boundary. They need to communicate with the outside via proxies and gateways, are installed preconfigured and usually will not be reconfigured.
Class 1-devices are the kind of devices for which the Constrained Application Protocol (CoAP)  has been designed for. They do not have the capabilities to use a regular Internet protocol stack (HTTP, TLS and TCP) and text-based data representations like JSON or XML, but with efficient protocols like CoAP over UDP (with DTLS and CBOR) they can participate as regular nodes in an IP-network.
Class 2-devices have enough resources to make use of regular protocols, but still benefit from optimized protocols like CoAP, leaving more room in terms of bandwith or computing power for applications. Devices that posses more resources than Class 2-devices can use existing protocols.
RFC 6606 further differentiates between devices which are permanently connected to an electrical power grid or regularly recharged (”power-affluent”) and nodes that are powered with batteries or energy harvesting (”power-constrained”).
Constrained networks. A network which primarily consists of constrained nodes can also lead to limitations regarding the network. There can also be constrained on the network which do not stem from the devices on it, but rather are independent of them. Therefore the RFC distinguishes between ”constrained networks” and ”constrained-node networks”.
”Constrained Network: A network where some of the characteristics pretty much taken for granted with link layers in common use in the Internet at the time of writing are not attainable.”
The limitations on such a network may be manifold. There may be a low bitrate and throughput, high packet loss, or penalties for large packets resulting in packet loss. Also some nodes may not be reachable all the time, as constrained nodes may just periodically wake up and check for updates.
”Constrained-Node Network: A network whose characteristics are influ- enced by being composed of a significant portion of constrained nodes.” -- RFC 7228
The RFC further states that a constrained-node network always also isconstrained network because of the limitations that already stem from the constrained devices on it.