By Matt Smith, Head of Cortet Engineering. Colorado Offices
As the Internet of Things (IoT) industry continues to expand, new information on emerging best practices, technical specifications and design considerations continues to flood the market.
Here at CEL, one of our priorities is helping you navigate through the deluge of information and identify which technology choices will have the biggest positive impact on your upcoming IoT plans.
With that in mind, my next several posts will aim to help your decision-making process by explaining the existing technologies and attempting to demystify the ocean of IoT protocols. I’ll go through a framework for categorizing the various technologies and explain some criteria on how to compare and evaluate these.
Oftentimes, it’s hard to be sure of what items need to be, or even can be, compared to each other. New ideas and protocols are becoming available at a rapid pace and some companies are pushing technologies that aren’t yet ready for prime time. This makes it confusing.
One of the most important decisions you may be facing is which communication protocols to choose. This decision impacts the hardware and what devices and functionality are available. Communication protocols need to be grouped together. Like puzzle pieces, only certain protocols can “connect” to each other.
The communications protocols you need to know
Here’s our list of the most important protocols you should be keeping an eye on. We based this list on multiple factors from our own research, including performance, latency, interoperability, as well as current industry adoption levels.
If this list looks daunting, that’s ok. This is the problem with the list. It is 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 gives a way to make sense of all of these. In other words, feel free to skip this list and start reading the next paragraph. Go on, it’s ok. We won’t tell anyone.
|ZCL||“ZigBee Cluster Library”. A set of application layer protocols for how devices like lights, sensors, and switches can communicate with each other.|
|ZigBee Pro||Mesh networking specification that specifies security, routing, and provisioning. The name comes from “Zig Zag Bumble Bee” due to the fact that the path of a bee and the path of a message in a mesh network can be similar.|
|ZigBee 3||Upcoming update to the ZigBee Pro specification.|
|802.15.4||Physical layer protocol designed for use by resource constrained devices. Focus is on allowing battery powered devices to have a long battery life by making the most common action take less energy. The name comes from an IEEE working group.|
|HTTP||“Hyper Text Transfer Language”. The (application layer) language of the World Wide Web. This enables quick and easy data transfer using URLs to specify locations of resources.|
|IP||“Internet Protocol”. Routing layer for the World Wide Web and most in-home computer networks.|
|WiFi AKA 802.11||Physical layer standard that allows devices to exchange data over wireless links. The “802.11” name comes from an IEEE working group.|
|Ethernet AKA 802.3||Physical layer standard that allows devices to exchange data over wired Ethernet connections.|
|dotdot||This is the ZCL application layer protocol modified to run over IP networks.|
|Thread 1.1||Mesh networking specification that specifies security, routing, and provisioning. Thread gives a method for mapping the protocols of low-power-devices to IP networks.|
|Thread 2.0||Upcoming update to the Thread 1.1 specification. This is targeted at commercial applications, and adds other new features.|
|GAP||Bluetooth Generic Access Profile. This describes how two Bluetooth devices can find and communicate with each other.|
|GATT||Application profile for Bluetooth devices. This specifies how specific information is exchanged.|
|Bluetooth Mesh Stack||In-development mesh networking specification that specifies security, routing, and provisioning for mesh on Bluetooth networks.|
|Bluetooth PHY||The physical layer that supports the Bluetooth stack and profiles.|
A framework for organization and comparison
With a list of critical protocols defined, the next step is to create an effective and efficient way of evaluating and comparing them.
We have organized these protocols into “Protocol Stacks”. A Protocol Stack shows which protocols can build on top of other protocols. Like puzzle pieces, only certain protocols can “connect” to (sit on top of) other protocols.
The table shown below is populated with the protocols from our list above and organized into Protocol Stacks.
|ZigBee Stack||IP Stack||Thread Stack||Bluetooth Stack|
|App Layer||ZCL||HTTP||Dotdot||GAP / GATT|
|Routing Layer||ZigBee Pro ZigBee 3||IP||Thread 1.1 Thread 2.0||GAP / BT Mesh Stack|
|Physical Layer||802.15.4||802.11 WiFi 802.3 Ethernet||802.15.4||BT PHY|
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.
Much of the confusion around IoT comes from not understanding what can be compared and what protocols can (and must) be paired together. Each Protocol 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 message encoding scheme. This is how physical, measured events are translated into bits.
Routing Layer — Now that devices have a way to exchange messages, there needs to be a set of rules for how to get a message from one device to another when the devices aren’t close to each other. This layer explains how devices find each other and work together to get messages to devices that are 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 allows devices to work together to take action and communicate.