A summary and comparison of the various protocols is now given. It should be noted that there are exceptions to some of these categories. For example, while MQTT offers no built-in security provisioning, it can be layered at the application level. In all cases, there are exceptions and the table is built from the formal specifications:
MQTT |
MQTT-SN |
CoAP |
AMQP |
STOMP |
HTTP/RESTful |
|
Model |
MOM pub/sub |
MOM pub/sub |
RESTful |
MOM |
MOM |
RESTful |
Discovery protocol |
No |
Yes (via gateways) |
Yes |
No |
No |
Yes |
Resource demands |
Low |
Very Low |
Very Low |
High |
Medium |
Very High |
Header Size (bytes) |
2 |
2 |
4 |
8 |
8 |
8 |
Average power usage |
Lowest |
Low |
Medium |
High |
Medium |
High |
Authentication |
No (SSL/TLS) |
No (/TLS) |
No (DTLS) |
Yes |
No |
Yes (TLS) |
Encryption |
No (SSL/TLS) |
No (SSL/TLS) |
No (DTLS) |
Yes |
No |
Yes
(TLS) |
Access controls |
No |
No |
No ( proxy) |
Yes |
No |
Yes |
Communication overhead |
Low |
Very Low |
Very Low |
High |
High, verbose |
High |
Protocol complexity |
Low |
Low |
Low |
High |
Low |
Very High |
TCP/UDP |
TCP |
TCP/UDP |
UDP |
TCP/UDP |
TCP |
TCP |
Broadcasting |
Indirect |
Indirect |
Yes |
No |
No |
No |
Quality of Service |
Yes |
Yes |
With CON messages |
Yes |
No |
No |