IoT systems enable Things to communicate with servers as well as other Things. As suggested by the name, the “Internet of Things”, internet technology provides the foundation for this communication. A Communication Channel enables IoT system communication by combining IoT specific internet protocols and a method for connectivity. Here we will look at internet protocols.
Existing internet protocols, such as Transmission Control Protocol/Internet Protocol (TCP/IP), are often too inefficient and power hungry to apply to emerging IoT applications. In this section, we will discuss some alternative internet protocols developed for use by IoT systems.
Message Queuing Telemetry Transport (MQTT) and Constrained Application Protocol (CoAP) are two alternative internet protocols. Both seek to improve IoT device operation while maintaining interoperation with the internet. The main difference between MQTT and CoAP is in their implementation. (We’ll go more in-depth on MQTT and CoAP later)
Before going further, it is helpful to review existing internet layers and protocols. The internet is based on TCP/IP communications and operates using the 7 layer OSI model shown in the following chart.
Each layer performs a specific function. Together, the seven layers enable communication across different connectivity solutions, enabling a wide variety of applications.
In the application layer, the user inputs data and data is output to the user. This layer provides services for applications, such as email.
This layer converts incoming and outgoing data from one format to another for presentation.
This layer sets up and authenticates, coordinates, maintains, and terminates conversations. IoT sessions are very different from traditional internet sessions. Because of this, a lot of effort has gone into, and will continue to go into, optimizing this layer for IoT applications. The session layer is where CoAP and MQTT usually operate.
This layer provides communication session management support. This entails the packetization of data, delivery of the packets, and error checking once the data arrives. On the Internet, Transmission Control Protocol (TCP) and Universal Datagram Protocol (UDP) provide these services for most applications. TCP is used for most applications with human interactions with the Web (such as email, Web browsing, gaming, etc.). It also supports acknowledgment, retransmission, and flow control. (Note: These capabilities increase overhead.) For some applications, TCP can be overkill, making UDP the preferred option. UDP is also better suited for real-time data applications such as voice and video. In these cases, it is unlikely you will need to retransmit a voice or video packet. Additional trade offs are discussed below.
This layer handles the addressing and routing of the data. This is where the Internet Protocol (IP) operates, and is where the IP address originates. The traditional internet operates on IPversion4 (IPv4), which uses 32-bit addresses. However, it is starting to evolve toward IPversion6 (IPv6), which uses 128-bit addresses to accommodate substantially more internet addresses.
The data link layer provides a reliable link between two directly connected nodes. The data link layer is also responsible for detecting and fixing packet errors that may form on the physical layer.
This layer conveys the bit stream through the network at the electrical, optical, or radio level.
At times, you may see groupings of some layers, presented as a 4-layer model. The physical and data link layers combine to form a link layer. Session, presentation, and application combine to form an application layer. Neither approach is more correct that the other. However, we will reference the 4-layer model going forward.
Read more about the IoT Systems in “A Reference Guide to IoT” eBook.
Fill out our contact form if you have questions about IoT. We may not have all the answers but with our cross-disciplined IoT network, we certainly can get you the help you need.
About the Author: This is an excerpt from our eBook co-authored by Bridgera LLC and RIoT.
Bridgera LLC is a Raleigh, NC based software company specializing in IoT software solutions with Bridgera IoT, not just another IoT Platform but Custom Software-as-a-Service for the Internet of Things.
RIoT is a registered trademark of the Wireless Research Center of North Carolina. RIoT represents a network of technologists, engineers, business leaders, academics, policy makers, and entrepreneurs, all of whom have a stake in the Internet of Things industry.