Building Blocks for the Internet of Things

Milosh Stolikj

promotor: prof.dr. J.J. Lukkien (TU/e)
co-promotor: P.J.L. Cuijpers (TU/e)
Technische Universiteit Eindhoven
Date: 19 October, 2015
Thesis: PDF


The Internet of Things (IoT) is a vision where every physical object is connected to the Internet, and is able to uniquely identify itself to other devices. The interconnection of these so-called smart objects enables a plethora of new use cases, such as Smart Grids, Smart Cities, Industrial Automation, Home Automation, Building Automation etc. Several sources estimate that, by 2020, the IoT will bring together between 20 and 30 billion devices, with varying degrees of complexity. The sheer size of the IoT, and the expected heterogeneity, pose a challenge to the current state of the art software protocols.

The research community has been actively working on finding appropriate solutions for the IoT. The communities’ stance is to build the network around standards, which would enable easier integration of heterogeneous devices. However, many of the protocols involved are under development, or difficult to implement in the low end part of the IoT, where devices are often battery powered, communication links are lossy, and there is not enough processing capacity.

The aim of this dissertation is to improve the state of the art in protocol design for the IoT. The scientific contributions of the dissertation apply to the application, network and link layers in low power, lossy networks of resource constrained devices (LLNs).

The thesis starts with an overview of the current landscape of IoT issues and solutions. We define a service oriented architecture on top of open standards, which incorporates resource constrained devices. From the proposed architecture and the existing IoT solutions, we identify three research areas, which are treated in the subsequent chapters.

Firstly, we focus on improving software updates in large LLNs. Delivering such updates is slow and energy draining, due to the low link capacity and the size of the software updates themselves. To resolve this issue, we investigate how data compression and incremental updates algorithms can be exploited in LLNs. We provide further improvements for reducing the size of updates when multiple similar, but not identical devices in the same network need to updated. Our results show up to 70% reduction in the size of the updates, compared to traditional data compression algorithms.

Secondly, we investigate service discovery protocols for LLNs. Existing protocols, such as Multicast DNS with DNS-Based Service Discovery (DNS-SD), are inapplicable to LLNs due to their always-on requirements and heavy traffic load. To address these issues, we propose two extensions of the protocol. The first extension introduces proxy servers, which take over service discovery responsibilities from resource constrained devices. The second extension enhances service selection criteria, by enabling devices to be looked up based on their physical properties, such as location, available sensors etc.

Thirdly, we analyze the network layer of low power devices, and its interplay with the link layer. Two fundamental IoT protocols, for routing (RPL) and multicast forwarding (MPL), rely on the Trickle protocol for fast data dissemination with little redundant traffic. However, we show that Trickle is not resilient to varying network topology, and due to the lack of feedback from the link layer, can suffer from starvation, sub-optimal routing and excessive overhead traffic. To resolve these issues, we propose extensions to both the Trickle protocol, which makes it scalable in networks with varying density, as well the link layer, which prevents starvation to occur.

In summary, the contributions presented in this thesis are a step towards the implementation of a fully connected world, where each device is directly accessible, and open for interaction.