Communication protocols between IoT devices and the cloud
In Chapter 4, we discussed the application layer of the OSI model as it applies to wireless connectivity. The application layer, also known as Layer 7, interacts with software applications and serves as a data communication component.
Indeed, the communication protocols between IoT devices and the cloud are very important in determining how well IoT solutions work. These protocols are designed to meet the specific needs of IoT ecosystems, such as using low power, sending as little data as possible, and making sure data is transmitted reliably even when the network isn’t stable. These protocols are part of the application layer of the OSI model.
Several popular protocols are used in IoT with the cloud today, including Message Queueing Telemetry Transport (MQTT), User Datagram Protocol (UDP), Constrained Application Protocol (CoAP), and Lightweight Machine-to-Machine (LwM2M). Let’s learn more about some of these protocols.
MQTT
- Type: Application layer protocol.
- Publish/Subscribe model: Sensors connect to the MQTT broker and publish their data within topics. MQTT brokers act as proxies to make information available to other parties, such as cloud services, databases, dashboards, and even other devices. These parties act as MQTT clients and fetch the information by subscribing to the published topic.
- Features:
- Lightweight and efficient: Provides reliable message delivery, retains messages for future subscribers, and supports last will and testament messages for notifying disconnections.
- Quality of service (QoS) levels: Offers three levels of message delivery assurance (At most once, At least once, and Exactly once).
- Use cases: Widely used in IoT for sending data from devices to the cloud and vice versa. It’s lightweight and designed for low-bandwidth, high-latency, or unreliable networks.
LwM2M
- Type: Application layer protocol.
- Built on top of CoAP (transport layer), it takes advantage of CoAP’s lightweight and easy-to-implement nature.
- Features:
- Device management and service enablement: Efficient in terms of data transmission and power consumption, supports features such as firmware updates, remote diagnostics, and reporting
- Secure: Supports a variety of security modes, including Datagram Transport Layer Security (DTLS)
- Use cases: Specifically designed for remote device management and telemetry within IoT. It’s used for managing the life cycle of IoT devices, their configuration, and how they collect telemetry data.
CoAP
- Type: Web transfer protocol.
- Request/response model: Utilizes UDP to keep the protocol lightweight. Servers make resources available with a URL and clients can make requests of the
GET
,POST
,PUT
, andDELETE
types. - Features:
- Designed for IoT: Supports built-in discovery of services and resources, asynchronous message exchanges, and offers low overhead and parsing complexity.
- Supports RESTful services: Allows interaction between IoT devices in a request/response model.
- Use cases: Specifically designed for constrained devices and networks (such as IoT). It’s used for machine-to-machine (M2M) applications such as smart energy and building automation.
Each protocol has its strengths and is designed to address specific challenges and requirements in IoT communications. The choice of protocol largely depends on the specific needs of the IoT application, including factors such as network reliability, power availability, data transmission frequency, and payload size. Understanding these protocols and their characteristics is crucial for designing robust, efficient, and scalable IoT solutions.
Understanding common communication protocols between IoT devices and the cloud is crucial for selecting the appropriate option based on your specific use cases. Next, we’ll focus on a market leader, AWS, and explore its range of popular cloud services for IoT applications. Please note that some of these services will be utilized in the practice project in later chapters of this book.