Internet of Things application layer protocol

The key technologies of the Internet of Things mainly solve three problems: object recognition, object connection, object data exchange. In each of these areas there are some technical solutions. In the previous articles, we introduced the technologies of RFID, NFC and other object recognition and electronic tags. We also introduced the networking and access technologies of IoT nodes. This article mainly talks about how things in the Internet of Things are handled.

Internet of Things key technology

Internet of Things application layer protocol

LoRa, NB-IoT and Zigbee, Bluetooth is the main solution to the problem of Internet of things and access network, from the network protocol layering point of view, basically belong to the data link layer protocol. For the Internet of things data exchange, mainly rely on the application layer protocol to solve.

In the mobile Internet, the most commonly used application layer protocol is the HTTP protocol, HTTP protocol can also be used in the Internet of Things system. HTTP protocol is a request-response communication mechanism, the server can not take the initiative to send messages to the client. If you want to achieve this push message, you need to use WebSocket this full-duplex communication mechanism.

However, for many IoT nodes with limited computing and storage resources, the HTTP protocol is not suitable. In addition to the HTTP protocol, there are many more protocols that are more suitable for IoT applications such as MQTT, CoAP, AMQP, STOMP and others.

The most commonly used Internet of Things protocol for each IoT software platform

Publish - subscription mechanism

Many IoT application layer protocols are based on the Publish-Subscribe mechanism, which is very suitable for IoT system applications. MQTT protocol, STOMP protocol, AMQP protocol and DDS protocol belong to this publish-subscribe mechanism.

Each sensor node, the data collected need to be uploaded to the network, which is equivalent to the release of a message that needs to be based on a certain topic, such as the type of sensor. All nodes interested in this topic, you can subscribe to this topic by the news, real-time access to the latest data.

The release and subscription of the message is based on a topic, the implementation mechanism generally depends on the message queue

MQTT protocol

Message Queuing Telemetry Transport (MQTT) is a protocol designed for sensors or controllers that have limited computational power, limited working bandwidth, and unreliable network environments.

The MQTT protocol is based on the TCP protocol

MQTT protocol was originally developed by IBM, an instant messaging protocol, based on the TCP protocol. The MQTT client needs to publish and subscribe to the message through the MQTT Broker.

MQTT protocol compatibility is very good, almost all platforms, all kinds of IOT devices can be connected. Therefore, MQTT protocol is also the most widely used IoT application layer protocol.

CoAP agreement

Constrained Application Protocol (CoAP) is an application layer protocol in 6LowPAN protocol stack. It supports REST interaction based on REST (Representational State Transfer) architectural style.

CoAP protocol is based on UDP protocol

CoAP is based on the UDP protocol and is designed to be as easy as possible to convert to HTTP protocol. CoAP lets users use the CoAP protocol in resource-constrained IoT devices just as they would with the HTTP protocol.

AMQP agreement

The Advanced Message Queuing Protocol (AMQP) is an application-level standard advanced message queue protocol that provides unified messaging services and is designed for message-oriented middleware.

AMQP working principle

AMQP works similarly to MQTT and is based on publish-subscribe mechanisms. Message Broker Broker's switch components (Exchange) will receive the message, according to the subject of the message assigned to a different queue for subscribers to receive.

RabbitMQ is a messaging system implemented on top of the AMQP protocol, which follows the Mozilla Public License open source contract. RabbitMQ is often used as a messaging server in Internet applications.

STOMP agreement

STOMP: Simple (or Streaming) Text Orientated Messaging Protocol provides an interoperable connection format that allows STOMP clients to interact with any STOMP broker.

The STOMP protocol is widely used in many languages and multiple platforms due to its simple design and easy client development. Currently very popular open source messaging server ActiveMQ, Apollo, RabbitMQ (plug-in) are required to support the STOMP protocol.

ActiveMQ supports TCP, XMPP, STOMP and other protocols for message transmission

STOMP is based on the TCP

protocol and enables communication between clients and servers through

Frames, each consisting of multiple "lines." The STOMP protocol defines the frame structure.

Stomp frame format

The first line of the STOMP frame is the command, followed by the key-value pair's Header content. Then a blank line, and finally Body content.

Data Distribution Services DDS


Data Distribution Service for Real-Time Systems, a data distribution

service for real-time systems, is a protocol proposed by the OMG


DDS real-time data distribution efficiency is very high, can be done within the second-level distribution of millions of messages to many devices. DDS provides a great deal of assurance on Quality of Service (QoS) and is therefore suitable for high reliability and security applications such as defense and military, industrial control. However, DDS is currently limited to wired network deployments. The reliability of wireless networks may not meet the QoS requirements of DDS.

To sum up

Listed above some of the more common IoT application layer protocol, but not comprehensive, there are some relatively more niche agreements, public information is relatively small. It is hard to say which kind of IoT application layer protocol will achieve the monopoly situation, but also depends on their respective ecological and market demand for future development.

Copyright (c) Shenzhen Vanch Intelligent Technology Co.,Ltd 粤ICP备11103545号-2

粤公网安备 44030402002185 号

design by:ctm design by:ctm