We’re giving away 1,500 DJI Tello drones. Enter to win ›
By Anna Gerber | Published May 23, 2017 - Updated January 3, 2018
This article is part of the IoT 101 learning path, a quick-start guide for IoT developers.
Communication is central to the Internet of Things. Networking technologies enable IoT devices to communicate with other devices as well as with applications and services that are running in the cloud. The internet relies on standardized protocols to ensure that communication between heterogeneous devices can occur securely and reliably. Standard protocols specify the rules and formats that devices use for establishing and managing networks, as well as for transmission of data across those networks.
We often describe networks as being built up from a stack of technologies, with technologies at the bottom of the stack, such as Bluetooth LE, relating to physically connecting devices, while technologies further up the stack, such as IPv6, relating to logical device addressing and routing of network traffic. Technologies at the top of the stack are used by the applications that are running on top of those layers, for example, message queuing technologies.
In this article, I describe some widely adopted technologies and standards for IoT networking. I also explain when you might want to choose one network protocol over another. I then discuss key considerations and challenges that are related to networking within IoT, including range, bandwidth, power usage, intermittent connectivity, interoperability, and security.
The Open Systems Interconnection (OSI) model is an ISO-standard abstract model that describes a stack of seven protocol layers. From the top down, these layers are: application, presentation, session, transport, network, data link and physical. TCP/IP, or the Internet Protocol suite, underpins the internet, and it provides a simplified concrete implementation of these layers in the OSI model.
The TCP/IP model includes only four layers, merging some of the OSI model layers (see ):
Although the TCP/IP and OSI models provide you with useful abstractions for discussing networking protocols, and the specific technologies that implement each protocol, in practice, some protocols don’t fit neatly into these layered models. For example, the Transport Layer Security (TLS) protocol that implements encryption to ensure privacy and data integrity of network traffic can be considered to operate across OSI layers 4, 5, and 6.
Some of the networking protocols that are widely adopted within IoT and where they fit within the TCP/IP layers are shown in .
Many emerging and competing networking technologies are being adopted within the IoT space. Multiple technologies are offered by different vendors or are aimed at different vertical markets like home automation, healthcare, or industrial IoT, often provide alternative implementations of the same standard protocols. For example, IEEE 802.15.4 describes the operation of low-rate wireless personal area networks (LR-WPANs) and is implemented by several competing technologies including ZigBee, Z-Wave, EnOcean, SNAP, and 6LoWPAN.
Technologies used for internet connectivity, like Ethernet, for example, can often be applied within the IoT; however, new technologies are being developed specifically to meet the challenges of IoT. As you look further down the stack toward physical transmission technologies, you face more challenges that are specific to IoT devices and IoT contexts.
The structure of a network is known as its topology. The most common network topologies that are adopted within IoT are star and mesh topologies. In a star topology, each IoT device is directly connected to a central hub (gateway) that communicates the data from the connected devices upstream. In mesh topologies, devices connect to other devices within range, and nodes within the network can act as simple sensor nodes, as sensor nodes that also route traffic, or as gateway nodes. Mesh networks are more complex than networks with star topologies, but have the advantage of being more resilient to failure because they don’t rely on a single central gateway.
IoT network technologies to be aware of toward the bottom of the protocol stack include cellular, wifi, and Ethernet, as well as more specialized solutions such as LPWAN, Bluetooth Low Energy (BLE), ZigBee, NFC, and RFID.
To learn more about NB-IoT, which according to a Gartner report is becoming the standard for LPWAN networks, read this IoT for All article.
Internet layer technologies (OSI Layer 3) are concerned with identifying and routing packets of data. Technologies that are commonly adopted for IoT that are related to this layer include IPv6, 6LoWPAN, and RPL.
HTTP and HTTPS are ubiquitous across internet applications, which is true also within IoT, with RESTful HTTP and HTTPS interfaces widely deployed. CoAP (Constrained Application Protocol) is like a lightweight HTTP that is often used in combination with 6LoWPAN over UDP. Messaging protocols like MQTT, AMQP, and XMPP are also frequently used within IoT applications:
Your choice of technologies at this layer will depend on the specific application requirements of your IoT project. For example, for a budget home automation system that involves several sensors, MQTT would be a good choice as it is great for implementing messaging on devices without much storage or processing power because the protocol is simple and lightweight to implement.
When you consider which networking technologies to adopt within your IoT application, be mindful of the following constraints:
Networks can be described in terms of the distances over which data is typically transmitted by the IoT devices attached to the network:
Your network should be designed to get the data from the IoT devices to where it will be used. So, make sure that you select a network protocol that matches the range that is required for your use case. For example, you shouldn’t choose BLE for a WAN application that needs to operate over a range of several kilometers. If transmitting data over the required range presents a challenge, consider edge computing, which moves the analysis to the data out to the devices, rather than moving the data elsewhere for processing.
Bandwidth, or the amount of data that can be transmitted in a specific period of time, limits the rate at which data can be collected from IoT devices and transmitted upstream. Consider these factors:
The packet size of the networking protocol that you choose should match up with the size of the data that is typically being transmitted. It is inefficient to send packets padded out with empty data, but on the flip side there are overheads in splitting larger chunks of data up across too many small packets. Data transmission rates are not always symmetrical (that is, upload rates might be slower than download rates). So, if there is two-way communication between devices, data transmission needs to be factored in. Wireless and cellular networks are traditionally low-bandwidth, so consider whether a wireless technology is the right choice for high-volume applications.
Also, consider whether all of the raw data needs to be transmitted. One solution might be to capture less data by sampling less frequently, capturing fewer variables, or performing some filtering on the device to drop insignificant data. If you aggregate the data before you transmit it, you help to reduce the volume of data to be transmitted, but then this process has implications on flexibility and granularity in the upstream analysis. Aggregation and bursting is not always suitable for time-sensitive or latency-sensitive data either. All of these techniques also increase the data processing and storage requirements for the IoT device.
Transmitting data from a device consumes power, and transmitting data over long ranges requires more power than over a short range. You must consider the devices that operate on a battery to conserve power to prolong the life of the battery and reduce operating costs. To prolong the battery life, you can put the device into sleep mode whenever it is idle. It is a good idea to model the energy consumption of the device under different loads and different network conditions to ensure that the device’s power supply and storage capacity matches with the power that is required to transmit the necessary data by using the networking technologies that you adopted.
IoT devices aren’t always connected. In some cases, devices will connect periodically by design in order to save power or bandwidth. However, sometimes an unreliable network might cause devices to drop off due to connectivity issues. Sometimes quality of service issues, such as dealing with interference or channel contention on a wireless network using a shared spectrum.
With so many different devices connecting to the IoT, interoperability can be a challenge. Adopting standard protocols has been the traditional approach for maintaining interoperability on the internet. However, for the IoT, standardization processes sometimes struggle to keep up with the rapid pace of change and technologies are released based on upcoming versions of standards that are still subject to change. In these cases, consider the ecosystem around the technologies; that is, ask these questions: Are they widely adopted? Are they open versus proprietary? How many implementations are available?
Security is always a priority, so be sure to select networking technologies that implement end-to-end security, including authentication, encryption, and open port protection. For example, IEEE 802.15.4 includes a security model that provides security features that include access control, message integrity, message confidentiality, and replay protection, which are implemented by technologies based on this standard such as ZigBee.
Selecting the IoT networking technologies to adopt involves compromise, across the board. Your choice of networking technologies will have an impact on the design of your IoT devices, and there are dependencies among most of the considerations that I discussed in this article. For example, network range, data rate, and power consumption are all directly related. If you increase the network range or rate and volume of data that is transmitted, your IoT devices will almost certainly require additional power to transmit the data under those conditions.
For a basic home automation project, the power consideration criterion is likely to be of low importance, as the device would most likely be powered directly from a wall socket. Bandwidth limitations and drop-outs in connectivity would be higher priorities, so you can adopt wifi because it provides reasonable bandwidth and also makes it easier to build the project by using commodity hardware. However, wifi is not optimized for low-power devices, so this choice might not be a good choice for a battery-powered device.
In this article, I’ve provided an overview of some of the most common networking protocols and technologies for IoT. You need to consider your requirements in light of these IoT networking challenges to find the technologies that will be the best fit for your IoT application.
Back to top