Professional Documents
Culture Documents
1- TCP
2- MPTCP
3- UDP
4- DCCP
5- SCTP
6- TLS
7- DTLS
The Internet protocol suite is the computer networking model and set of
communications protocols used on the Internet and similar computer networks.
It is commonly known as TCP/IP, because its most important protocols, the Transmission
Control Protocol (TCP) and the Internet Protocol (IP) were the first networking protocols
defined in this standard.
TCP is one of the key Internet protocols. It provides a reliable byte stream service and is
used by all applications that need to exchange data reliably, including web, email, file
transfer, video streaming, … Statistics collected by researchers and network operators
show that 90 to 95% of the total Internet traffic is driven by TCP.
MPTCP is an ongoing effort of the IETF Multipath TCP working group, that aims at
allowing a TCP connection to use multiple paths to maximize resource usage and
increase redundancy.
In other words, MPTCP will allow one TCP session to be conveyed on several paths
(several TCP sub flows) over different access networks.
Multipath TCP is a recently standardized extension to the TCP protocol that solves this
problem by enabling a TCP connection to send data over any number of interfaces while
still providing the same service to the application.
Multipath TCP achieves this by combining several TCP connections, called sub flows in
the reference architecture shown in the figure below.
However, the version of TCP that is used on our laptops, smartphones and servers
suffers from one major limitation : one TCP connection can use only one of the laptop’s
communications interfaces. This is because TCP is tightly coupled with IP. When a TCP
connection starts over, for instance, the Wi-Fi interface of say a Smartphone, it cannot
simply transition to the cellular interface when the smart phone moves away from the
Wi-Fi access point.
To better understand the operation of Multipath TCP, let us consider the simple
scenario of a Smartphone that wants to exchange data over both its Wi-Fi and cellular
interfaces with a server in the cloud than it is possible with the help of MPTCP.
Q.4 Write a note on UDP.2M/3M
User Datagram Protocol is a connection less protocol and is not reliable for transmission
of data.
However, the UDP protocol is a best protocol to send data to the server when packet
loss during transmission of the data can be afforded.
UDP protocol is a lightweight protocol and is suitable for wireless sensor network
communication.
UDP doesn’t correct errors, duplicates, or missing pieces. If a protocol uses UDP for
transmitting data, data integrity is either unimportant, or the application itself has a
process for checking against errors.
UDP headers
Like TCP, UDP labels data packets with a header. But UDP headers are much simpler.
There are only four fields:
1. Source port
2. Destination port
3. UDP length
4. Checksum
The source port indicates where the transmission is coming from. The destination port
indicates where it’s going. The UDP length specifies how many bytes the header and
data represent. And the checksum is a field that can be used to check for errors in the
header or data stream.
TCP has numerous additional fields in the header which help verify that the data packets
arrive intact and can be rearranged as needed. These additional fields significantly
increase the size of the header.
UDP in IoT:
In IoT (and data transmission in general), User Datagram Protocol is less common than
TCP. But UDP often appeals to IoT manufacturers because it uses less data and
consumes less power.
IoT devices often operate within Low power, Lossy Networks (LLNs). LLNs are optimized
for power efficiency, so they have very few resources.
With UDP, you need to be proactive about IoT security and be confident that your
hardware and network-level security can protect your customers’ data and prevent your
devices from becoming liabilities.
DCCP is a message-oriented transport layer protocol. This protocol is more secure than
TCP protocol.
Compared to TCP which has a single byte long ID for each packet, the packet ID is 48-bit
long (6-bytes) in DCCP.
This makes it hard for any attacker to hack data packets. This protocol is generally used
for time critical data transfers like media streaming and VoIP.
SCTP protocol is a message oriented transport layer protocol and it is responsible for
congestion
control to reliably transfer data over a network.
The data transferred along with a 12-byte header is secured using 4-way handshake.
Due to multi-path data sharing options, data is reliably sent to the destination.
This protocol has been now prohibited from use due to security considerations.
It is a stream oriented transport layer protocol. This is a security protocol designed against
Message forgery, tampering and eavesdropping.
However, large packet size, packet reordering and loss of datagram are some of the major
Drawbacks of this protocol stack.
This layer reviews standards and protocols for message passing in IoT by different
Standardization organizations.
Most of the IP applications, including IoT applications use TCP or UDP for transport.
However, there are several message distribution functions that are common among many
IoT applications;
1- MQTT
2- SMQTT
3- AMQP
4- CoAP
5- XMPP
6- DDS
Message Queue Telemetry Transport (MQTT) was introduced by IBM in 1999 and
Standardized in 2013.
The MQTT protocol has Clients and a Broker. MQTT clients subscribe to, and publish on,
Topics. The MQTT clients communicate to one another through an MQTT Broker, which is
Primarily responsible for receiving all messages, filtering them, deciding who is interested
In it and then sending the message to all subscribed clients.
A diagram showing three clients and a broker is shown below. The temperature sensor
Client publishes the current temperature on the “temp” topic. The computer and mobile
Device clients receive this temperature reading since they subscribed on the “temp” topic.
The broker manages the connections and message communications.
The main advantage of using such encryption is the broadcast encryption feature, in
Which one message is encrypted and delivered to multiple other nodes, which is quite
Common in IoT applications.
In general, the algorithm consists of four main stages: setup, encryption, publish and
Decryption.
In the setup phase, the subscribers and publishers register themselves to the broker and
Get a master secret key according to their developer’s choice of key generation
Algorithm.
Then, when the data is published, it is encrypted, published by the broker which sends it
to the subscribers and finally decrypted at the subscribers which have the same master
secret key.
The Advanced Message Queuing Protocol (AMQP) is another session layer protocol that
Was designed for financial industry. It runs over TCP and provides a publish/ subscribe
Architecture which is similar to that of MQTT.
The difference is that the broker is divided into two main components: exchange and
Queues.
The exchange is responsible for receiving publisher messages and distributing them to
Queues based on pre-defined roles and conditions. Queues basically represent the
topics and subscribed by subscribers which will get the sensory data whenever they are
Available in the queue.
Exchange: Receives messages from publisher primarily based programs and routes them
To ‘message queues’.
Message Queue: Stores messages until they may thoroughly process via the eating
client software.
Binding: States the connection between the message queue and the change.
Q.12 Write a note on CoAP.2M/3M
The Constrained Application Protocol (CoAP) is another session layer protocol designed
By IETF Constrained RESTful Environment (Core) working group to provide lightweight
RESTful (HTTP) interface.
Representational State Transfer (REST) is the standard interface between HTTP client
And servers.
However, for lightweight applications such as IoT, REST could result in significant
Overhead and power consumption.
CoAP is designed to enable low-power sensors to use RESTful services while meeting
Their power constrains.
It is built over UDP, instead of TCP commonly used in HTTP and has a light mechanism to
Provide reliability.
CoAP architecture is divided into two main sub layers: messaging and request
Response.
The messaging sub layer is responsible for reliability and duplication of messages
While the request/response sub layer is responsible for communication.
Extensible Messaging and Presence Protocol (XMPP) is a messaging protocol that was
Designed originally for chatting and message exchange applications.
It was standardized by IETF more than a decade ago. Hence, it is well known and has
Proven to be highly efficient over the internet.
Recently, it has been reused for IoT applications. This reusing of the same standard is
due to its use of XML which makes it easily extensible.
XMPP supports both publish/ subscribe and request/ response architecture and it is up
To the application developer to choose which architecture to use. It is designed for near
Real-time applications. thus, efficiently supports low-latency small messages.
It does not provide any quality of service guarantees and, hence, is not used for M2M
Communications. Hence, XMPP is rarely used in IoT but has gained some interest for
Enhancing its architecture in order to support IoT applications.
Protocol is the excellent quality of service levels and reliability guarantees as it relies on
A broker-less architecture, which suits IoT and M2M communication.
It offers 23 quality-of service levels which allow it to offer a variety of quality criteria
Including: security, urgency, priority, durability, reliability, etc. It defines two sub layers:
Data-centric publish- subscribe and data-local reconstruction sub layers.
The first takes the responsibility of message delivery to the subscribers while the second
Is optional and allows a simple integration of DDS in the application layer.
Publisher layer is responsible for sensory data distribution. Data writer interacts with
the Publishers to agree about the data and changes to be sent to the subscribers.
Subscribers are the receivers of sensory data to be delivered to the IoT application. Data
Readers basically read the published data and deliver it to the subscribers and the topics
Are basically the data that are being published?
In others words, data writers and data reader take the responsibilities of the broker in
the broker-based architectures.
Summary:
IoT has many standardized session layer protocols which were briefly highlighted in this
Section.
These session layer protocols are application dependent and the choice between them
Is very application specific?
It should be noted that MQTT is the most widely used in IoT due to its low overhead and
Power consumption It’s an organizational and applications specific to choose between
These standards.
If the application requires REST functionality as it will be HTTP based, then CoAP would
Be the best option.