IBM MQ Telemetry Transport protocol
The IBM MQ Telemetry Transport (MQTT) v3 protocol is designed for exchanging messages between small devices on low bandwidth, or expensive connections, and to send messages reliably. It uses TCP/IP.
The MQTT protocol is published; see IBM MQ Telemetry Transport format and protocol. Version 3 of the protocol uses publish/subscribe, and supports three qualities of service: fire and forget, at least once, and exactly once.
The small size of the protocol headers, and the byte array message payload, keeps messages small. The headers comprise a 2 byte fixed header, and up to 12 bytes of additional variable headers. The protocol uses 12 byte variable headers to subscribe and connect, and only 2 byte variable headers for most publications.
With three qualities of service, we can trade off between low-latency and reliability; see Qualities of service provided by an MQTT client. Fire and forget uses no persistent device storage, and only one transmission to send or receive a publication. At least once, and exactly once require persistent storage on the device to maintain the protocol state and save a message until it is acknowledged.
Parent topic: MQ Telemetry overview