This is an old revision of the document!
In no doubt, IoT is network oriented - even the name IoT naturally relates to the Internet network.
IoT networking is much different than typical, multilayered, stack-oriented TCP/IP or similar communication model, we know well while using our PC, MAC, server or Smartphone on the daily basis.
Indeed constrained IoT devices are usually unable to operate regular - full time on, ISO/OSI layered stack, because of constrained resources. In details it primary means, IoT devices are limited by the processor power, RAM and storage sizes and particularly because of limited power resources. IoT device is expected to be energy efficient, thus low powered, that in most cases excludes typical wireless connection standards like i.e. WiFi. On the other hand, IoT devices are expected to communicate over long distances - some couple or a dozen of kilometres - where wired infrastructure like Ethernet cables and related infrastructure is non-existent and most of the wired technologies, copper-based is out of range.
Also, IoT devices daily life-cycle is much different than i.e. or PC life-cycle. We as humans used to switch on the notebook, work extensively on the web, then put it to the low power or off, making the machine to sleep, hibernate or simply shutting it down. And we wake it up when needed. It barely makes network operation while sleep. IoT devices are expected to be sleeping providing low power mode whenever possible and on the other hand, they're expected to be fully operable, when only needed. Most performed IoT tasks related to the sensing have periodical nature, i.e. measuring gases as a sensor-network node whereas period can be something like between seconds and months or even longer. Anyway, they're usually expected to trigger themselves to be awake from sleep, perform some operation and connect to the network.
Because of the existence of different IoT devices including those very constrained from 8-bit processors with some kB of the RAM memory to 32-bit multicore machines well-replacing PC computers, IoT networking is very competitive on protocols, approaches and solutions. There are indeed some networking standards introduced by standardisation organisation like IEEE, yet they are competed by large manufacturers forcing their complex solutions including dedicated hardware, software and protocols. The third force driving this market are open solutions and enthusiasts, usually working with cheap hardware, providing de-facto standards for many hobbyists and also industry.
Following chapters explain some most popular concepts about how to organize network fulfilling the above constraints on communication between IoT devices (Machine-2-Machine) and how to let them communicate with the Internet: including hardware, software and human-users.
We focus on the de-facto standards existing in the web, usually as open-source libraries and rather low-cost hardware.