3 Engineering IoT Networks
153
(AMQP) and the Constrained Application Protocol (CoAP); the former has been
traditionally used in normal Internet, while the latter has been specifically designed
for IoT applications. They are discussed in the next sections.
3.4.5 Advanced Message Queuing Protocol (AMQP)
The Advanced Message Queuing Protocol (AMQP) is an open standard Application
Layer protocol for message-oriented middleware [83]. AMQP is a binary, Application Layer protocol, designed to efficiently support a wide variety of messaging
applications and communication patterns. The defining features of AMQP are
message delivery (both client/server and publish/subscribe), queuing, reliability,
and security. It provides flow-controlled, message-oriented communication with
message-delivery guarantees such as at most once (where each message is delivered
once or never), at least once (where each message is certain to be delivered, but may
do so multiple times), and exactly once (where the message will always certainly
arrive and do so only once). Authentication and encryption is based on Simple
Authentication and Security Layer (SASL) and Transport Layer Security (TLS).
It assumes an underlying reliable Transport Layer protocol such as TCP. It provides
a symmetric and asynchronous flow of messages whose format can be extended by
the application designer.
The main difference between AMQP and MQTT is that the former has been
designed as a general-purpose middleware for traditional computers, while the latter
has been optimized for constrained devices. In fact, AMQP provides more features
and allows both client/server and publish/subscribe communication patterns at the
cost of an increased overhead. Both end points of the data transfer can be either
client or server so that communication can start from any direction. MQTT is less
symmetric and allows only the publish/subscribe communication pattern with a
message header size of just 2 bytes. Therefore, MQTT is more suitable for IoT
applications.
3.4.6 Constrained Application Protocol (CoAP)
Constrained Application Protocol (CoAP) is a specialized Internet Application
Layer protocol for constrained devices with limited computation and communication resources, e.g., nodes with 8-bit microcontrollers with small amounts of
ROM and RAM, connected to wireless network with high packet error rates and
a typical throughput of 10s of kb/s. As defined in RFC 7252 [84], it enables those
constrained nodes to communicate with the broader Internet using a protocol similar
to HTTP/HTTPS that can be easily translated for interoperation. CoAP is designed
for use between devices on the same constrained network (e.g., low-power, lossy
networks), between constrained devices and traditional Internet nodes, and between
devices on different constrained networks linked by Internet. CoAP is also being
used via other mechanisms, such as SMS on cellular networks [85]. CoAP was
Précédent

- 161/647

Suivant