This article serves as a glossary of terms related to IoT communication protocols and standards.
The Internet of Things has given given rise to a host of new standard and protocols. Still more protocols that originally existed for other purposes but are well suited to new IoT applications have been adopted by device manufacturers and application creators. Though in some senses IoT devices are the same as any other internet connected device, the bandwidth, power and transmission distance constraints inherent in many IoT applications require novel new solutions to the fundamental actions of connectivity, data transfer, device discovery and communication. This article will serve as a brief glossary of terms related to IoT communication protocols and standards.
IPv4 and IPv6 are the two major versions of the Internet Protocol (which is what IP stands for in their acronyms). The Internet Protocol is a method for the delivery of packets of data between hosts on a network (most notably, the Internet) and for uniquely identifying hosts on a network using what is known as an IP address. IPv4 and v6 packets both include headers, which are metadata related to the data packet, such as sender IP address and recipient IP address as well as a payload, which is the actual data to be transmitted. The main impetus behind the creation of IPv6 and one of the main differences between it and IPv4 is a larger address space. IPv4 addresses are 32 bits, allowing for only several billion unique addresses, whereas IPv6 addresses are 128 bits, allowing for many more times the number of unique devices to exist on an IPv6 network.
6LoWPAN stands for IPV6 over Low Power Wireless Personal Area Networks. It's a standard aimed at making it possible for IoT devices, which often operate with limited battery supply and processing power, to communicate using IPV6 packets. Using header compression and other power saving technologies, 6LoWPAN allows devices to communicate over IEEE 802.15.4 networks (which are designed for low power communication) using the same packet structure as the internet at large.
RPL is a routing protocol designed for low power and lossy networks, meaning networks comprised of low power devices which may experience packet loss. RPL is characterized by its optimization for many-to-one communication and for it's ability of nodes to efficiently share network topology information (information about the shape and composition of the network) with each other.
For various reasons such as networking, it's often useful and necessary to uniquely identify IoT devices among a global pool of all devices. There are several popular methods used to achieve this.
EPC stands for Electronic Product Code. It's a standard defined by GS1, a not-for-profit concerned with standardizing business communications. EPC outlines a system for encoding and decoding universally unique identifiers for any physical object in the world based on product category information (such as a UPC) and serial numbers which identify unique instances of a type of object.
ucode is a unique identification system that works in a similar manner to the ICANN domain name registration and DNS management systems. Unique codes are managed by a set of redundant ID servers that can issue ucode IDs and also resolve them, returning device information, much in the same way a DNS server resolves a unique URL to an IP address.
All devices with a network connection have a MAC Address assigned to each of their network interfaces. MAC Addresses are unique and assigned to device manufacturers in batches. It's then up to the device manufacturer to ensure that they assign the numbers from their batch to devices such that each device only has one unique number MAC Address.
IoT Devices can use many network transport protocols, but some of the most popular are:
The same Wi-Fi technology that connects most of our computers and smart devices to the internet can be used to connect IoT devices as well. Because Wi-Fi has a relatively high power requirement compared to other network technologies, it's not often the first choice for power constrained devices, but its ubiquity makes it a viable option for certain solutions.
Bluetooth has both the advantages of ubiquity of adoption and (at least in the latest versions) a very low power profile. However, bluetooth has a relatively short transmission range, which is not ideal for large geographic scale applications.
LPWAN (short for low-power wide-area network) is a technology that is both power efficient and can allow data to be transmitted over long distances. The primary downside of LPWAN is its very low transmission rate, which makes it challenging for applications where large amounts of data need to be transferred to or from IoT devices. LPWAN is also not a universally adopted networking technology. Thus, if integration with existing networks is important, LPWAN may not be the best choice.
The Physical Web is a standard created by Google to allow physical objects to broadcast information in the form of a URL that allows users to interact with the device electronically. For instance, a parking meter can broadcast a URL to its payment page, allowing a user to reserve a parking spot. The Physical Web uses Bluetooth LE to broadcast these URLs.
mDNS is a protocol that functions similarly to normal DNS but works on a smaller network scale and without name servers. In particular, it allows devices to broadcast and receive information about available services on a network. For instance, in Apple's Bonjour system (a proprietary implementation of mDNS) a device can query other devices on the local network to determine if they are available for printing, for iTunes library sharing or for video conferencing. Devices on an mDNS network query for other devices on a network and all devices then respond with information about the services they offer along with their network address. This information is then cached by all other devices on the network and used for future requests.
MQTT is a publish/subscribe messaging protocol used to pass data between devices in an environment with low network bandwidth. There are two types of devices on an MQTT network: publishers and message brokers. A message broker manages subscription topics and the devices that are described to those type of messages. It then publishes updates to subscribers when new information is published to a topic.
CoAP is a web transfer protocol built on top of UDP, which is an alternative transport protocol to TCP. TCP is also what the web is built on. CoAP is designed to allow REST programming interfaces between IoT devices and servers. REST is a popular programming paradigm that allows a server to expose resources to clients that they can view, update, create and delete using a well documented and time tested format.
WebSocket is a protocol that allows bi-directional communication between clients (devices and servers) over a single connection, allowing faster communication than alternatives like HTTP. WebSocket can be used, for instance, to channel data messages from devices or gateways to a server for processing, but can also allow the server to send messages back to devices or gateways (e.g. to request an action on the part of the device or to send a software or firmware update).
TR-069 is a protocol designed to allow devices to be automatically configured for use on a network and for those devices to receive future software, firmware and configuration updates. The protocol is HTTP based and a series of defined message types allow devices to securely connect to an ACS or Auto Configuration Server and to receive configuration data. This allows embedded devices like set-top boxes to connect to a network successfully and to update themselves when appropriate.
Similar to TR-069, OMA-DM is a standard for configuring and updating devices on a network. It was created by the Open Mobile Alliance and as such has been used extensively for provisioning, configuration and maintenance of mobile phones and other connected consumer devices.
In addition to the above building blocks that are used in many IoT solutions, multi-layer frameworks that combine solutions for each part of an IoT application's stack are also available. Open source stacks such as IoTivity and Alljoyn (which has merged with IoTivity) or OpenWeave (created by Google) are one stop framework solutions for creating devices that can communicate with each other and with the wider internet. HomeKit, Apple's full-stack IoT/smart home device solution also provides mechanisms for devices to be easily added to networks and to advertise and expose their services to other devices and to users.