MQTT (Message Queuing Telemetry Transport) is a light weight open messaging protocol that was developed for constrained environments such as M2M (Machine to Machine) and IoT (Internet of Things), where a small code footprint is required. MQTT is based on the Pub/Sub messaging principle of publishing messages and subscribing to topics. The protocol efficiently packs messages to keep the overhead very low. The MQTT specification recommends TLS as a transport option to secure the protocol using port 8883 (secure-mqtt). Constrained devices can benefit from using TLS session resumption to reduce the reconnection cost.
We have posted an example implementation of MQTT with TLS (MQTTS) on mbed:
https://developer.mbed.org/users/wolfSSL/code/HelloMQTTS/
https://developer.mbed.org/users/wolfSSL/code/MQTTS/
wolfSSL is also working on an open source secure MQTT client for IoT security that will be released soon which will work seamlessly with the wolfSSL embedded SSL/TLS library.
The MQTT Version 3.1.1 Specification can be found here on OASIS:
http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html