2
2
IP
• Properties
– IP address are lengthened from 32bit
• It has integrated no security and no mobility features.
• Cons
– Limited address space
– NAT functionality needs gateways, etc leads to more cost
IPV6 It has integrated security and mobility features.
– Possibility of adding innovative techniques as location aware addressing.
• Cons
– Larger address width (Having efficient address compression schemes may
alleviate this con)
– Complying to IPv6 node requirements (IPSec is mandated)
TCP
advantages
• Guaranteed Delivery of messages
• Supports a wide range of Application Protocols
• Due to the Flow control feature two devices with different Speeds can Communicate
Without data loss
• The TCP Packets will be routed by the routers in an efficient way to utilize
Bandwidth and balance the load on all the routes
Dis advantage
• Has more Overhead than UDP
• Does not Guarantee the In Order Delivery of Data
• Not suitable for streaming protocols and applications
UDP Adv
• Faster Delivery of messages
• Supports a wide range of Streaming Application Protocols
• Has Less Overhead than TCP
• The UDP Packets will be routed by the routers in an effective way such that the
packets will arrive at the destination with lowest possible latency
Dis Adv
• The packets may be lost and hence less reliable
• The packets arriving late will be dropped in any streaming application
• Does not has any flow control by default and hence the flow control has to be
implemented at the Application layer
• The application must detect lost packets and retransmit if required
HTTP
The goals were to have a protocol, which is bandwidth-efficient and uses little battery power,
because the devices were connected via satellite link and this was extremely expensive at that
time. The protocol uses a publish/subscribe architecture in contrast to HTTP with its
request/response paradigm.Publish/Subscribe is event-driven and enables messages to be
pushed to clients. The central communication point is the MQTT broker, it is in charge of
dispatching all messages between the senders and the rightful receivers. Each client that
publishes a message to the broker, includes a topic into the message. The topic is the routing
information for the broker. Each client that wants to receive messages subscribes to a certain
topic and the broker delivers all messages with the matching topic to the client. Therefore the
clients don’t have to know each other, they only communicate over the topic. This
architecture enables highly scalable solutions without dependencies between the data
producers and the data consumers.
• Lightweight message queuing and transport protocol
• Asynchronous communication model with messages(events)
• Low overhead (2 Bytes header for low network bandwidth applications
• Publish/subscribe(pub sub Model)
• Simple protocol aimed at low complexity, low power and low footprint
Adv-
• Less Overhead
• Multiple QoS types for Reliable exchange of data
• Provides secured communication with SSL Mutual authentication
• Requires Less bandwidth
Disadv
• Connection oriented
• The MQTT brokers requires more resources than the HTTP servers
•
MQTT Components:
That takes us to the MQTT components, which are 5 as follows:
Broker, which is the server that handles the data transmission between the clients.
A topic, which is the place a device want to put or retrieve a message to/from.
The message, which is the data that a device receives “when subscribing” from a topic or send “when
publishing” to a topic.
Publish, is the process a device does to send its message to the broker.
Subscribe, where a device does to retrieve a message from the broker.
Why not HTTP
HTTP is slower, more overhead and power consuming protocol than MQTT. So, let’s get into
each one separately:
Slower: because it uses bigger data packets to communicate with the server.
Overhead: HTTP request opens and closes the connection at each request, while MQTT stays online
to make the channel always open between the broker “server” and clients.
Power consuming: since it takes a longer time and more data packets, therefore it uses much power.
XMPP
It gives the presence of the other users. Watsapp, Google chat etc use XMPP Protocol.
• Extensible Messaging and Presence protocol
• For real-time communication and streaming
• Applications includes
– Messaging, presence, data syndication, gaming, multi-party chat, voice/video
calls
• Uses client-server architecture
• Supports
– Client-to-server communication
– Server-to-server communication
DDS
• Data Distribution Service
• Uses Publish and subscriber model
• Publisher is an object responsible for data distribution ( Generation)
– Creates topic
• Subscriber responsible for receiving published data
– Subscribes to topic
• DDS provides Quality of Service (QoS) control and configurable reliability
AMQP
• Advanced Message Queuing protocol
• For business messaging
• Supports
– Point-to-point
– Publisher and subscriber models
– Routing and Queuing
• AMQP brokers receive the messages from publisher and route them to the subscribers
The Advanced Message Queuing Protocol (AMQP) creates interoperability between
clients and brokers (i.e. messaging middleware). Its goal of creation was to enable a
wide range of different applications and systems to be able to work together, regardless
of their internal designs, standardizing enterprise messaging on industrial scale.
AMQP includes the definitions for both the way networking takes place and the way message
broker applications work. This means the specifications for:
Operations of routing and storage of messages with the message brokers and set of
rules to define how components involved work
And a wire protocol to implement how communications between the clients and the
brokers performing the above operations work
AMQP, by offering the clearly defined rules and instructions as we explained above, creates a
common ground which can be used for all message queuing and brokering applications to
work and interoperate.
AMQP ensures
Reliability of message deliveries
Rapid and ensured delivery of messages
Message acknowledgements
Exchange: A part of the broker (i.e. server) which receives messages and routes them
to queues
Queue (message queue): A named entity which messages are associated with and
from where consumers receive them
Bindings: Rules for distributing messages from exchanges to queues