The Internet of Things (IoT) attracts huge public attention nowadays. It is a network of interconnected physical devices (things) which sense and interact with the physical world and are connected to a computing environment over existing Internet infrastructure. A thing or a smart device (object) can be anything – a smart air conditioning system, a smartwatch, a smart bulb or a smart bench. Every smart device consists of the following components:
- Microcontroller – a microprocessor with a built-in ROM and RAM memory that runs software of a smart device. For instance, ATmega1328P is an 8-bit microcontroller with 2KiB RAM and 32KiB FLASH memory installed in Arduino UNO single-board. Microcontroller board is a central point that connects external devices.
- Battery or power supply
- Radio or a block for wired connection – modules which connect a smart device to a network.
- Sensors and Actuators. While sensors represent the eyes and ears of a smart thing, actuators are its hands and legs. They convert one sort of energy to electric impulses (sensors) or vice versa (actuators).
Picture 1: Structure of a Smart Air Conditioning System
Let’s look at how smart devices operate, taking as an example a smart air conditioning system. A sensor (thermometer) measures temperature in an office and sends data to a cloud, where data is processed and stored. Data processing in a cloud includes combining data from a thermometer with data collected from other sources, e.g. the outside thermometer. The data can be enriched by data collected from other sensors, which measure different characteristics of the environment.
Actuators works on the reverse principle, as they take electric impulses as an input and turn them into a physical action. For instance, a microcontroller inside of a smart conditioning system receives a command from the cloud to decrease the temperature in an office. The microcontroller instructs an electric motor (actuator) to increase the ventilator speed of a unit, eventually decreasing the air temperature.
However, the temperature is not regulated solely based on data collected from a single thermometer. Other characteristics of the environment are taken into account. These may be humidity, outside temperature, airflow, sunlight or an individual’s physical activity in the office, all physical quantities collected by other types of sensors. The resulting temperature is comfortable, since it is adjusted dynamically, reflecting all environmental changes.
Picture 2: Internet Of Things Architecture and Data Flow
Smart IoT network devices are typically constrained by limited microcontroller power, little RAM memory and are often battery powered. Wireless sensors (WSNs) communicate using low-power and low-rate wireless standards such as IEEE 802.15.4, Wavenis or standards such as IEEE P1901.2 and ITU G.hnem for power line communication (PLC). Communication with these standards is unreliable as it might be affected by interference or noise. The networks with the above characteristics are referred to as Low power and Lossy Network (LLN). New protocols have been developed for such networks. For instance, a data link layer protocol IEEE 802.15.4e for the IoT devices defines the operation for low-rate wireless personal area networks (LR-WPANs). The standard combines a physical (PHY) layer with an offset quadrature phase shift keying (O-QPSK) modulation in free 2.4GHz band and MAC layer. The specified maximum over-the-air data rate is 250kbit/s and the transmission distance range varies from a few meters to hundreds of meters.
Picture 3: 802.15.4 Protocol Stack
Cisco estimates that 50 billion of IoT things will be connected to the Internet by 2020 (1). With IPv4 address space depleted, IPv6 becomes the IP protocol for IoT and brings benefits in the form of IPv6 stateless auto-configuration and NAT barrier removal. However, to send IPv6 packets over the 802.15.4 wireless network, an IPv6 packet with MTU 1280 Bytes must fit into the 802.15.4 frame with MTU 127 Bytes (RFC 4944). To take care of this, an adaptation layer 6LoWPAN for IPv6 over 802.15.4 is created. It takes care of IPv6 packet fragmentation and reassembly, as well as IPv6 header compression.
The existing link-state protocols, such as OSPF or IS-IS, aren’t well suited for routing in LLNs. These constrained networks are characterized by high loss rates, low data rates and instability. For instance, if OSPF is used in LLN, devices would be flooded with OSPF link state advertisements (LSAs), congesting low-rate WSNs. Subsequently, all constrained IoT devices (CPU, memory) would run Dijkstra Shortest Path First (SPF) algorithm against a local link-state database (LSDB), every time a link or hello packets are lost. It would excessively consume batteries of the constrained devices.
IPv6 Routing Protocol for LLNs (RPL) (RFC 6550) is a distance vector routing protocol designated for operation in LLN networks where routers are constrained on processing power, memory, and battery. RPL supports a variety of data link protocols such as 802.15.4, IEEE 8021.11ah, IEEE P1901.2, Bluetooth Low Energy and Wavenis. It supports multipoint-to-point traffic from devices inside the LLN towards a central control point, point-to-multipoint traffic from the central control point to the devices inside the LLN, and point-to-point traffic between the devices inside the LLN.
RPL uses objective function (OF) that can change depending on the environment. The routing decision is based on routing metrics (link reliability EXT, latency) or routing constraints (node state, node power). The OF specifies how constraints and metrics are used to achieve specific objective. For instance, the OF may specify that the objective is to find the constrained shortest path where the constraint is related to the node power mode and the metric is the link latency. RPL creates Destination Oriented Directed Acyclic Graph (DODAG), which is a logical routing topology built over of a physical network meeting these criteria.
Although the core Internet architecture may not change much with the emergence of IoT, the interaction between distant sensors (or between a sensor and a user) as well as IoT protocols themselves will greatly affect future traffic characteristics and network performance. The amount of data generated by the IoT increases exponentially. Most of this data becomes aggregated, summarized and analyzed at the network edge, but eventually is still moved on to the cloud. With BGP remaining the only real routing protocol used on the full Internet scale (handling IPv4, IPv6, VPNs, MPLS), the optimization of BGP routing in the IoT era becomes an utmost importance.
Noction Intelligent Routing Platform (IRP), operating at the network edge, can improve the process of sending data to the cloud for analytics. IRP is able to measure metrics, such as latency and packet loss, and reroute traffic by selecting a better performing transit provider for the traffic to flow through. Based on active measurements, IRP automatically reroutes traffic through the best performing path, avoiding congestion and outages. It is extremely important in cases where values collected from sensors exceed the acceptable limits and corrective action is needed to be taken immediately. Moreover, taking into account the massive amount of data generated by IoT devices, IRP can help leverage cost savings by intelligently balancing traffic among the connected ISPs.