(2020) | Learn Technology in 5 Minutes
In 1999, MQTT was introduced by IBM, and by 2013 it was standardised by OASIS [Salman 2015].
MQTT is a lightweight protocol specifically suitable for constrained environments - for example, a harsh environment with low bandwidth connection, such as in oil and gas industries.
MQTT protocol is the publish-subscribe communication framework between the nodes.
The three components of the MQTT network are:
The diagram below shows an example of MQTT architecture.
Original image source: MQTT Publish/Subscribe framework [Hanes et al 2017]
In this example:
By separating the client’s data transmission in the message, the broker subscribers are able to receive only the data they are interested in.
Information is buffered at the message broker in the case of connection failure, so the publisher and subscriber do not need to be online at the same time.
A topic string or topic name is used by the message broker to specify a subscriber message. A topic name is divided into one or more levels separated by slash (/).
For example, in adt/lora/adeunis/0018B2000000023A, topic name adt/lora/adeunis is a topic level.
MQTT uses TCP (Transmission Control Protocol) as a reliable protocol for connection and transmission, and can use Transport Layer Security (TLS) for additional security, however TLS will add more overhead to the communications.
There are three levels of Quality of Service (QoS) in MQTT protocol. You can find the explanation below: