The Message Queuing Telemetry Transport (MQTT) is a lightweight network protocol used to transport among smart IoT devices. It mainly runs on TCP/IP, and it can support bi-directional connections. The MQTT protocol follows the publish-subscribe model. It activates the message broker between the data publisher and subscribers. The MQTT is mainly designed for a resource-constrained IoT environment in which the bandwidth is limited.
The MQTT is responsible for gathering all the messages from client nodes and sending the messages to the subscribers. The essential concepts of MQTT are topic, subscriber, and broker. A topic denotes a group of similar messages. The subscribers request the messages from the MQTT broker based on topics. The MQTT subscribers are connected to the server to subscribe to the interesting topics, and MQTT publishers publish the topic-related messages to the interested subscribers. The MQTT brokers act as intermediate for forwarding the messages to publishers and subscribers.
The MQTT protocol design is simple, and it is highly adopted over tiny IoT device communication. The MQTT protocol design does not consider the security issues, and there are no security features for enabling secure transfer. It minimizes the processing complexity during message exchanges, and so it may tend to have serious security issues.