Data Protocols for IoT part 1

With IoT, we can build open ecosystems, but open ecosystems also entail the ability to exchange data with other devices through standardized data protocols. Many of the protocols currently used by IoT systems were not initially designed for IoT. In our experience, MQTT and COAP, in particular, have gained widespread adoption. COAP has the advantage of being a UDP protocol, making it well-suited for NB-IoT with extended response times.

In the ever-expanding world of the Internet of Things (IoT), the foundation lies exchange of data between different systems, using standardized protocols is a huge part of IoT.

Security in Focus

IoT devices can be seen in many ways as other internet-connected devices, but what often distinguishes them are various constraints, leading to lower performance. They cannot use the same bandwidth or power supply options, are deployed in areas with weaker coverage, and have limited output to conserve battery, reducing their transmission range.

A crucial rule is that communication should only occur securely and encrypted; otherwise, it should be avoided.

Types of IoT Protocols

While I’ve touched on radio protocols mostly on this blog, let’s now delve into data protocols and standards. This initial segment delves into the core protocols shaping the landscape, with a focus on MQTT and COAP. In a threee-piece blog post I will explore these protocols and their pivotal roles in building open ecosystems within the IoT realm.

1. MQTT

MQTT, Message Queuing Telemetry Transport, is a protocol for collecting device data and transmitting it to servers (D2S). MQTT is based on TCP/IP and follows a publish/subscribe model. A message broker is used, allowing subscription to topics or publication of topics. MQTT efficiently employs a publish/subscribe model. As TCP is used, MQTT supports event-based message handling over wireless networks.

There are two types of devices in an MQTT network: publishers and message brokers. A message broker manages subscription topics that connected devices listen to. When publisher devices send out new data tagged with one or more topics, the message broker forwards this information to devices listening for those tagged topics.

MQTT is often used with devices in systems where resources are limited, such as those requiring less power and memory. Examples include fire alarms, sensors, smartwatches, and text-based messaging apps. The protocol is useful for connecting remote areas with requirements for small and compact code or limited bandwidth.

2. CoAP

CoAP, Constrained Application Protocol (RFC 7252), is developed specifically for IoT, using UDP and a request/response model similar to HTTP. CoAP is an application-layer protocol for devices with constraints in power supply and bandwidth.

Built on UDP, an alternative transport protocol to TCP, CoAP utilizes HTTP and follows RESTful architecture. CoAP enables seamless REST interfaces between IoT devices and servers. With the use of UDP and Efficient XML Interchange (EXL), implementation is lightweight, saving bandwidth, space, and response time. CoAP also extensively uses HTTP, allowing clients to send requests to servers, receiving responses in the form of HTTP, simplifying integration with the web while meeting specialized requirements like support for multicast and extremely low overhead.

It is evident that MQTT and COAP play important roles in IoT. The journey into open ecosystems and standardized data exchange will continue in part 2 of this blog post series.