COAP vs MQTT: Protocol Comparison

This article compares the Constrained Application Protocol (COAP) and Message Queue Telemetry Transport (MQTT) protocols, highlighting their key differences.

COAP Protocol

CoAP Architecture

  • Full Name: Constrained Application Protocol
  • Specified in RFC 7252; an open IETF standard.
  • A highly efficient RESTful protocol, easily proxied to/from HTTP.
  • Utilizes an embedded web transfer protocol (coap://).
  • Employs an asynchronous transaction model.
  • Binds with UDP, offering reliability and multicast support.
  • Uses familiar methods like GET, POST, PUT, and DELETE.
  • URI support is included.
  • Features a small, simple 4-byte header.
  • Supports binding to UDP, SMS, and TCP.
  • DTLS-based PSK, RPK, and certificate security.
  • Utilizes a subset of MIME types and HTTP response codes.
  • Includes a built-in discovery mechanism.

MQTT Protocol

Broker based MQTT protocol

Figure 1 depicts a simple broker-based MQTT protocol architecture. Key features include:

  • Operates over TCP.
  • Uses SSL/TLS for security.
  • Defines various message types like CONNECT, PUBLISH, SUBSCRIBE, DISCONNECT, etc.
  • Utilizes Username/Password within the ‘connect’ message.
  • Payload agnostic, meaning it encrypts the payload regardless of its content.
  • Typically uses port 1883.

COAP vs MQTT: Feature Comparison

The following table compares features of COAP and MQTT:

FeaturesCoAPMQTT
Full FormConstrained Application ProtocolMessage Queue Telemetry Transport
Model used for communicationRequest-Response, Publish-SubscribePublish-Subscribe
RESTfulYesNo
Transport layerPreferably UDP, TCP can also be used.Preferably TCP, UDP can also be used (MQTT-S).
Header Size4 Bytes2 Bytes
Number of message types used416
MessagingAsynchronous & SynchronousAsynchronous
Application Reliability2 Levels3 Levels
SecurityIPSEC or DTLSNot defined in the standard
IntermediariesYESYES (MQTT-S)
LLN Suitability (thousand nodes)ExcellentFair
Application success storiesUtility Field Area NetworksExtending enterprise messaging into IoT applications