Common Message Protocols Used in IoT
- MQTT(Message Queuing Telemetry Transport)
- HTTP/HTTPS
- AMQP(Advanced Message Queuing Protocol)
- CoAP(Constrained Application Protocol )
- STOMP (Simple (or Streaming) Text Oriented Message Protocol)
- DDS (Data Distribution Service)
- XMPP (Extensible Messaging and Presence Protocol)
- SSE (Server-Sent Events)
- LwM2M or Lightweight M2M
Details about some most commonly used protocols
| MQTT | HTTP/HTTPS | CoAP |
| Latest version | 5.0 | 2.0 | RFC 7252 |
| IP Suite | TCP/IP | TCP/IP | UDP (no Handshake or delivery acknowledgement) |
| Security | SSL/TLS but weak authentication. Additional security can be added. | TLS/SSL | DTLS(Data gram TLS) & IPSec |
| Commercial/Open Source | Open | Open | Open |
| Scalability | Yes | Yes | Yes |
| Throughput (msg/sec) | Fast | Fast | Fast (better than MQTT, HTTP & AMQP) |
| Latency | Low but more than AMQP & CoAP & HTTP | Low but more than AMQP & CoAP | Very Low |
| Power Consumption | Low | High (more than MQTT) | Low |
| Memory Consumption | Low | High (more than MQTT) | Low |
Table 1.0
| AMQP | DDS | XMPP |
| Latest version | 5.0.9 | 2.3 | RFC 6120,RFC 6121 and RFC 7622 |
| IP Suite | TCP/IP | TCP/IP, UDP, Shared Memory | TCP/IP |
| Security | TLS extensions, including SNI, and SASL (better than MQTT) | TLS, DTLS | TLS, SASL (secure authentication) |
| Commercial/Open Source | Open | Both Open & Commercial | Open Source |
| Scalability | Yes | Yes | Yes |
| Throughput (msg/sec) | Fast (better than MQTT & HTTP) | Very Fast as it is used for real time data transfer. | Fast (used for instant messaging, chat & video chat) |
| Latency | Very Low | Very Low | Low |
| Power Consumption | Low (More than MQTT) | Not very high, it is used in IoT devices | Need more power as compared to other protocols |
| Memory Consumption | Low(More than MQTT) | Not very high, it is used in IoT devices | Need more power as compared to |
Table 2.0