MQTT is an IoT protocol used for transporting small amount data in a structured way between IoT peripherals.
The protocol is simple - all IoT peripherals are connected over LAN/WiFi and they publish/subscribe to a MQ Broker.
There are a variety of clients and servers that support various versions of this protocol. The latest version was 3.0.1 at the time of writing this.
The protocol is simple in that the overhead is minimum, the data persistence and delivery QoS is assured by the server, and there are various levels of QoS which help assume the optimal strategy.
The publishers publish to a topic to MQ Server over persistent TCP/IP connections. The subscribers subscribe to topics and are assured latest message delivery ASAP.
MQTT client library typically has about 6-8 source files and the protocol overhead is only a few bytes, this has made it popular.