As the Internet of Things (IoT) continues to grow, new information on emerging best practices, technical specifications, and design considerations continues to flood the market. It’s often difficult to be sure of which of these can be compared to others. New ideas and protocols are rapidly becoming available and some companies are pushing technologies that aren’t yet ready for prime time. This makes it even more confusing.

One of the most important decisions companies may be facing is which communication protocols to choose. This decision affects the hardware and what devices and functions are available. Communication protocols need to be grouped together, and, like puzzle pieces, only certain protocols will “connect” with each other.

Here’s a list of the most important protocols you should be keeping an eye on. This list is based on multiple factors from our research, including performance, latency, and interoperability, as well as current industry adoption levels.

If this list looks daunting, that’s all right. That’s the problem: It’s just a list. The protocols need to be organized in a way that allows a high-level understanding of the benefits and drawbacks of each.

The next section tries to make sense of all of these. So if you want to skip to the next paragraph, feel free.

IoT Protocols

Bluetooth Mesh Stack. Mesh networking specification being developed that specifies security, routing, and provisioning for mesh on Bluetooth networks.

Bluetooth PHY. The physical layer that supports the Bluetooth stack and profiles.

Dotdot. This is the ZCL application layer protocol modified to run over IP networks.

Ethernet AKA 802.3. Physical-layer standard that lets devices exchange data over wired Ethernet connections.

GAP. “Bluetooth Generic Access Profile.” It describes how two Bluetooth devices can find and communicate with each other.

GATT. Application profile for Bluetooth devices. It specifies how specific information is exchanged.

http. “Hyper Text Transfer Language.” It’s the application-layer language of the WWW. It lets data be quickly and easily transferred using URLs to specify resources’ locations.

IP. “Internet Protocol.” Routing layer for the WWW and most in-home computer networks.

Thread 1.1. Mesh networking specification that specifies security, routing, and provisioning. Thread gives a method for mapping protocols of low-power-devices to IP networks.

Thread 2.0. Upcoming update to the Thread 1.1 specification. It is targeted at commercial applications and adds other new features.

Wi-Fi, aka 802.11. Physical-layer standard that lets devices exchange data over wireless links. The “802.11” stems from an IEEE working group.

ZCL. “ZigBee Cluster Library” A set of application layer protocols for how devices such as lights, sensors, and switches communicate with each other.

ZigBee Pro. Mesh networking specification that specifies security, routing, and provisioning. The name comes from “Zig Zag Bumble Bee” because the path of a message in a mesh network can be similar to a bee’s path.

ZigBee3. An upcoming update to ZigBee Pro specifications.

802.15.4. Physical-layer protocol designed for use by resource constrained devices. It focuses on giving battery-powered devices a long battery life by making the most common actions take less energy. The name comes from an IEEE working group.

With the critical protocols defined, the next step is to create an effective and efficient way of evaluating and comparing them. One way is to organize them into “protocol stacks.” A protocol stack shows which protocols can build on top of other protocols. Like puzzle pieces, only certain protocols “connect” to (sit on top of) other protocols.

A protocol stack must be used as a whole, so stacks must be compared to each other, rather than comparing separate parts of different stacks. This should eliminate much of the confusion around the IoT, which comes from not understanding what can be compared and which protocols can (and must) be paired together. Each stack consists of a three-layer model, as defined below:

Physical Layer: This layer describes how messages are physically exchanged. It describes what physical medium (cable, wireless) is used, what frequency (for wireless), and the message encoding scheme. This is how physical, measured events get translated into bits.

Routing Layer: Devices now have a way to exchange messages, but there also needs to be a set of rules governing how to get a message from one device to another when two devices aren’t close to each other. This layer explains how devices find each other and work together to get messages to devices not within range of the initiating device. The content of the message is unimportant for this layer. This layer focuses on delivery from point A to point B.

Application Layer: This layer explains the content of the messages. How do the bits translate into an action for a device? This layer describes what a “turn the light ON” or “DIM the light to 50%” message looks like. This lets devices work together to take action and communicate.

The table shows protocols from the list above organized into protocol stacks.

Table

Now that the protocols are organized this way, you can evaluate each stack’s strengths and weakness and compare them based on project or product requirements.

Matt Smith, Head Engineer

Cortel Engineering