Unit 1 Iot An Architectural Overview 1.1 Building An Architecture
Unit 1 Iot An Architectural Overview 1.1 Building An Architecture
UNIT 1
IoT An Architectural Overview
o architecture refers to the description of the main conceptual elements, the actual elements
of a target system, how they relate to each other, and principles for the design of the
architecture.
o A conceptual element refers to an intended function, a piece of data, or a service. An actual
element, meanwhile, refers to a technology building block or a protocol.
o The term “reference architecture” relates to a generalized model that contains the richest
set of elements and relations that are of relevance to the domain “Internet of Things.”
o The applied architecture is then the blueprint used to develop the actual system solution
Within existing work for deriving requirements and creating architectures or reference models for
IoT and M2M
• The overall design objective of IoT architecture shall be to target a horizontal system of real-
world services that are open, service-oriented, secure, and offer trust.
• Design for reuse of deployed IoT resources across application domains Design for a set of
support services that provide open service-oriented capabilities and can be used for
application development and execution.
• Furthermore, well-defined service interfaces and application programming interfaces (APIs)
are required to facilitate application development, as are the appropriate Software
Development Kits (SDK).
• Design for different abstraction levels that hide underlying
complexities and heterogeneities.
o The first thing that needs to be provided is a set of mechanisms that ensure security
and trust.
o Authentication and authorization of access to use services as well as to be able to
provide services is then a second requirement.
o The third requirement is the capability to be able to do auditing and to provide
accountability so that stakeholders can enforce liability if the need occurs.
• Design for ensuring trust, security, and privacy.
• Design for scalability, performance, and effectiveness.
• Design for evolvability, heterogeneity, and simplicity of integration.
• Design for simplicity of management.
o Autoconfiguration and autoprovisioning are key and well-known means that can ease
deployment of IoT devices, and are also very important to lower operating
expenditures (OPEX).
• Design for different service delivery models.
o Cloud and virtualization technologies play a key enabler role in delivering future IoT
services.
• Design for lifecycle support o The lifecycle phases are: planning, development, deployment,
and execution. Management aspects include deployment efficiency, design time tools, and
run-time management.
In addition to the functional layers, three functional groups cross the different layers, namely
Management, Security, and IoT Data and Services.
• Management, as the name implies, deals with management of various parts of the system
solution related to its operation, maintenance, administration, and provisioning.
• Security is about protection of the system, its information and services, from external
threats or any other harm.
• Data and Service processing can, from a topological perspective, be done in a very
distributed fashion and at different levels of complexity.
first consideration is that standards are developed across a number of different industries. There
are a number of standardization organizations and bodies, both proper Standards Development
Organizations (SDO) as well as special interest groups and alliances that develop standards
specifications.
• Different national and international bodies ratify standards by SDOs, whereas standard
specifications developed by special interest groups and alliances are normally agreed-upon
and adopted by market actors such as technology manufacturers.
second consideration is that some standardization activities define entire systems or parts of
systems, and other standards organizations target development of specific pieces of technologies,
for instance, specific protocols.
• System standards can address a 3G mobile communication network as defined within the
3rd Generation Partnership Project (3GPP) or standards towards the Smart Grid as done by
the National Institute of Standards and Technology (NIST).
third and final consideration is about the lifecycle process of standards. Many times, standards are
emerging as a result of collaborative research involving both academia and industry.
There are two main domains, a network domain and a device and gateway domain.
The Device and Gateway Domain contains the following functional/topological entities:
• M2M Device: This is the device of interest for an M2M scenario, for example, a
device with a temperature sensor.
• M2M Area Network: This is typically a local area network (LAN) or a Personal Area
Network (PAN) and provides connectivity between M2M Devices and M2M
Gateways.
• M2M Gateway: The device that provides connectivity for M2M Devices in an M2M
Area Network towards the Network Domain.
Service Capabilities.
The SCL is a collection of functions that are exposed through the open interfaces or reference
points mIa, dIa, and mId (ETSI M2M TC 2013b). Because the main topological entities that SCL
can deploy are the Device, Gateway, and Network Domain, there are three types of SCL:
1. DSCL (Device Service Capabilities Layer),
2. GSCL (Gateway Service Capabilities Layer), and 3. NSCL (Network
Service Capabilities Layer).
2. Generic Communication (xGC). The NGC is the single point of contact for
communication towards the GSCL and DSCL. It provides transport session
establishment and negotiation of security mechanisms, potentially secure
transmission of messages, and reporting of errors such as transmission errors.
3. Reachability, Addressing, and Repository (xRAR). This is one of the main service
capabilities of the ETSI M2M architecture. The NRAR hosts mappings of M2M Device
and Gateway names to reachability information (routable address information such
N. G. Acharya & D. K. Marathe College of Arts, Science & Commerce
TYBSC-CS SEM 5 (ARCHITECTING OF IOT) 2018-19 NOTES
FOR PROGRAMS AND SOLUTION REFER CLASSROOM NOTES
OGC includes, among other working groups, the Sensor Web Enablement (SWE) (OGC
SWE 2013) domain working group, which develops standards for sensor system models
(e.g. Sensor Model Language, or SensorML), sensor information models (Observations &
Measurements, or O&M), and sensor services that follow the Service-Oriented
Architecture (SOA) paradigm, as is the case for all OGC-standardized services.
The functionality that is targeted by OGC SWE includes:
▪ Discovery of sensor systems and observations that meet an application’s
criteria.
▪ Discovery of a sensor’s capabilities and quality of measurements.
▪ Retrieval of real-time or time-series observations in standard encodings.
▪ Tasking of sensors to acquire observations.
▪ Subscription to, and publishing of, alerts to be issued by sensors or sensor
services based upon certain criteria.
OGC SWE includes the following standards:
▪ SensorML and Transducer Model Language (TML), which include a model
and an XML schema for describing sensor and actuator systems and
processes
▪ Observations and Measurements (O&M), which is a model and an XML
schema for describing the observations and measurements for a sensor
(Observations and Measurements, O&M).
▪ SWE Common Data model for describing low-level data models (e.g.
serialization in XML) in the messages exchanged between OGC SWE
functional entities.
▪ Sensor Observation Service (SOS), which is a service for requesting,
filtering, and retrieving observations and sensor system information.
▪ Sensor Planning Service (SPS), which is a service for applications requesting
a user-defined sensor observations and measurements acquisition.
▪ PUCK, which defines a protocol for retrieving sensor metadata for serial
port (RS232) or Ethernet-enabled sensor devices.
• A working system that captures and operates on the domain and information model
contains concepts and entities of its own, and these need to be described in a separate
model, the functional model.
• An M2M and IoT system contain communicating entities, and therefore the corresponding
communication model needs to capture the communication interactions of these entities.
Main concepts
• The IoT is a support infrastructure for enabling objects and places in the
physical world to have a corresponding representation in the digital
world.
• The reason why we would like to represent the physical world in the
digital world is to remotely monitor and interact with the physical world
using software.
• In the digital world, a parking spot is a variable with a binary value
(“available” or “occupied”). The parking lot payment station also needs
to be represented in the digital world in order to check if a recently
parked car owner actually paid the parking fee.
For the IoT Domain Model, three kinds of Device types are the most
important:
Further considerations
Identification of Physical Entities is important in an IoT system in order for
any User to interact with the physical world though the digital world.
(a) primary identification that uses natural features of a Physical
Entity
(b) secondary identification when using tags or labels attached
to the Physical Entity
2.4.2 Information model
• information is defined as the enrichment of data (raw values without relevant or
usable context) with the right context, so that queries about who, what, where, and
when can be answered.
• The attribute values are updated as a result of the associated services to a Virtual
Entity. The associated services, in turn, are related to Resources and Devices as seen
from the IoT Domain Model.
• Virtual Entity object contains simple attributes/properties:
o entityType to denote the type of entity, such as a human, car, or room
(the entity type can be a reference to concepts of a domain ontology, e.g. a
carontology);
o a unique identifier; and zero or more complex attributes of the class
Attributes. o The Virtual Entity in the IoT Information Model is described with
only a few simple attributes, the complex Attribute associated with
sensor/actuator/ tag services.
• attributes or properties that could exist in a Virtual Entity description o Location
and its temporal information are important because Physical Entities represented by
Virtual Entities exist in space and time. These
• The need for communicating Devices and digital artifacts was the motivation for the
Communication FG.
• The need to compose simple IoT services in order to create more complex ones, as
well as the need to integrate IoT services (simple or complex) with existing
Information and Communications Technology (ICT) infrastructure, is the main driver
behind the introduction of the Service Organization and IoT Process Management
FGs respectively.
• Device functional group o contains all the possible functionality hosted by the
physical Devices that are used for instrumenting the Physical Entities
• Communication functional group o communication mechanisms used by the
relevant Devices in an actual system in order to transfer information to the
digital world components or other Devices.
• IoT Service functional group o The IoT Service FG corresponds mainly to the
Service class from the IoT Domain Model, and contains single IoT Services
exposed by Resources hosted on Devices or in the Network (e.g. processing or
storage Resources).
• Virtual Entity functional group o corresponds to the Virtual Entity class in the IoT
Domain Model, and contains the necessary functionality to manage associations
between Virtual Entities with themselves as well as associations between Virtual
Entities and related IoT Services, i.e. the Association objects for the IoT
Information Model.
• IoT Service Organization functional group o all functional components
that support the composition and orchestration of IoT and
Virtual Entity services. Moreover, this FG acts as a service hub between several
other functional groups such as the IoT Process Management
• IoT Process Management functional group o The IoT Process Management FG is a
collection of functionalities that allows smooth integration of IoT-related
services
• Management functional group o Support functions such as management of
ownership, administrative domain, rules and rights of functional components,
and information stores are also included in the Management FG.
• Security functional group o include privacy mechanisms such as anonymization
of collected data, anonymization of resource and Service accesses (Services
cannot deduce which Human User accessed the data), and un-linkability (an
outside observer cannot deduce the Human User of a service by observing
multiple service requests by the same User).
• Application functional group o The Application FG is just a placeholder that
represents all the needed logic for creating an IoT application.
• Modular IoT functions
o The Functional Model, as well as the Functional View of the Reference
Architecture, contains a complete map of the potential functionalities for
a system realization.
2.5 Introduction
Reference Architecture is a starting point for generating concrete architectures and actual
systems.
Views are useful for reducing the complexity of the Reference Architecture blueprints by
addressing groups of concerns one group at a time.
• Functional View: Description of what the system does, and its main functions.
• Information View: Description of the data and information that the system handles.
• Deployment and Operational View: Description of the main real world components of
the system such as devices, network routers, servers, etc.
that are decoupled from the node addresses in the network (IPv4 to IPv6
translation)
• End-to-End Communication FC is responsible for end-to-end transport of
application layer messages through diverse network and MAC/PHY layers.
o This FC is responsible for hosting any necessary proxy/cache and any
protocol translation between networks with different
transport/application layer technologies. HTTP-CoAP proxy, which
performs transport-layer protocol translation.
IoT Service functional group
• IoT Service FG consists of two FCs:
o The IoT Service FC and o the
IoT Service Resolution FC:
• The IoT Service FC o is a collection of service implementations, which interface the
related and associated Resources.
o For a Sensor type of a Resource, the IoT Service FC includes Services that receive
requests from a User and returns the Sensor Resource value in synchronous or
asynchronous (e.g. subscription/notification) fashion.
o The services corresponding to Actuator Resources receive User requests for
actuation, control the Actuator Resource, and may return the status of the
Actuator after the action.
• The IoT Service Resolution FC o contains the necessary functions to realize a directory
of IoT Services that allows dynamic management of IoT Service
descriptions and discovery/lookup/resolution of IoT Services by other Active
Digital Artifacts.
o Dynamic management includes methods such as creation/update/ deletion (CUD) of
Service description, and can be invoked by both the IoT Services themselves, or
functions from the Management FG (e.g.bulk creation of IoT Service descriptions
upon system start-up).
Virtual Entity functional group o The Virtual Entity FG contains functions that support the
interactions between Users and Physical Things through Virtual Entity services.
o The following FCs are defined for realizing these functionalities o The Virtual Entity
Service FC enables the interaction between Users and Virtual Entities by means of
reading and writing the Virtual Entity attributes (e.g. the GPS coordinates of a room)
o The Virtual Entity Registry FC maintains the Virtual Entities of interest for the
specific IoT system and their associations.
o The Virtual Entity Resolution FC maintains the associations between Virtual Entities
and IoT Services, and offers services such as creating/reading/updating/deleting
associations as well as lookup anddiscovery of associations. (finding devices)
o The Virtual Entity and IoT Service Monitoring FC includes:
▪ functionality to assert
▪ discover new associations
▪ continuous monitoring
IoT process management functional group o The IoT Process Management FG aims at supporting
the integration of business processes with IoT-related services.
N. G. Acharya & D. K. Marathe College of Arts, Science & Commerce
TYBSC-CS SEM 5 (ARCHITECTING OF IOT) 2018-19 NOTES
FOR PROGRAMS AND SOLUTION REFER CLASSROOM NOTES
Security functional group o The Security FG contains the necessary functions for ensuring the
security and privacy of an IoT system. It consists of the following FCs:
o The Identity Management FC manages the different identities of the involved
Services or Users in an IoT system in order to achieve anonymity by the use of
multiple pseudonyms. o The Authentication FC verifies the identity of a User
and creates an assertion upon successful verification.
o The Authorization FC manages and enforces access control policies.
o The Key Exchange & Management FC is used for setting up the necessary
security keys between two communicating entities in an IoT system.
o The Trust & Reputation FC manages reputation scores of different interacting
entities in an IoT system and calculates the service trust levels.
Information description o Virtual Entity context information, i.e. the attributes (simple or
complex) as represented by parts of the IoT Information model (attributes that have values
and metadata such as the temperature of a room).
o IoT Service output itself is another important part of information generated by an IoT
system. For example, this is the information generated by interrogating a Sensor or a
Tag Service.
o Virtual Entity descriptions in general, which contain not only the attributes coming from
IoT Devices (e.g. ownership information).
o Associations between Virtual Entities and related IoT Services. o Virtual Entity
Associations with other Virtual Entities (e.g. Room #123 is on Floor #7). o Device
Descriptions such as device capabilities (e.g. sensors, radios).
Information handling
An IoT system is typically deployed to monitor and control Physical Entities. Monitoring and
controlling Physical Entities is in turn performed by mainly the Devices, Communication, IoT
Services, and Virtual Entity FGs in the functional view.
The presentation of information handling in an IoT system assumes that FCs exchange and
process information. The exchange of information between FCs follows the interaction patterns
The Deployment and Operational View depends on the specific actual use case and
requirements
Devices view as Physical Entities deployed in the parking lot, as well as the occupancy sign.
o There are two sensor nodes (#1 and #2), each of which are connected to eight metal/car
presence sensors. o The two sensor nodes are connected to the payment station
through wireless or wired communication.
o The payment station acts both as a user interface for the driver to pay and get a
payment receipt as well as a communication gateway that connects the two sensor
nodes and the payment interface physical devices (displays, credit card slots, coin/note
input/output, etc.)
o The occupancy sign also acts as a communication gateway for the actuator node (display
of free parking spots), and we assume that because of the deployment, a direct
connection to the payment station is not feasible
o The two main applications connected to this management system are human user
mobile phone applications and parking operation center applications.
Parking Lot Deployment & Operational View, Resources, Services, Virtual Entities, Users.
• At the bottom layer is the market or application domain, which may be smart grid, connected
home, or smart health, etc.
• The second layer consists of sensors that enable the application. Examples of such sensors are
temperature sensors, humidity sensors, electric utility meters, or cameras.
• The third layer consists of interconnection layer that allows the data generated by sensors to be
communicated, usually to a computing facility, data center, or a cloud. There the data is
aggregated with other known data sets such as geographical data, population data, or economic
data. The combined data is then analyzed using machine learning and data mining techniques.
To enable such large distributed applications, we also need the latest application level
collaboration and communication software, such as, software defined networking (SDN),
services oriented architecture (SOA), etc.
• Finally, the top layer consists of services that enable the market and may include energy
management, health management, education, transportation etc.
• In addition to these 7 layers that are built on the top of each other, there are security and
management applications that are required for each of the layers and are, therefore, shown on
the side.
3.5 WirelessHART
• WirelessHART is a datalink protocol that operates on the top of IEEE 802.15.4 PHY and adopts
Time Division Multiple Access (TDMA) in its MAC. It is a secure and reliable MAC protocol that
N. G. Acharya & D. K. Marathe College of Arts, Science & Commerce
TYBSC-CS SEM 5 (ARCHITECTING OF IOT) 2018-19 NOTES
FOR PROGRAMS AND SOLUTION REFER CLASSROOM NOTES
uses advanced encryption to encrypt the messages and calculate the integrity in order to offer
reliability.
• consists of a network manager, a security manager, a gateway to connect the wireless network
to the wired networks, wireless devices as field devices, access points, routers and adapters. The
standard offers end-to-end, per-hop or peer-to- peer security mechanisms. End to end security
mechanisms enforce security from sources to destinations while per-hop mechanisms secure it
to next hop only
3.5 Z-Wave
• Z-Wave is a low-power MAC protocol designed for home automation and has been used for IoT
communication, especially for smart home and small commercial domains. It covers about
30meter point-to-point communication and is suitable for small messages in IoT applications,
like light control, energy control, wearable healthcare control and others. It uses CSMA/CA for
collision detection and ACK messages for reliable transmission. It follows a master/slave
architecture in which the master control the slaves, send them commands, and handling
scheduling of the whole network
central node in a star topology, the root in a tree or cluster topology and may be located
anywhere in peer-to-peer. ZigBee standard defines two stack profiles: ZigBee and ZigBee Pro.
These stack profiles support full mesh networking and work with different applications allowing
implementations with low memory and processing power. ZigBee Pro offers more features
including security using symmetric-key exchange, scalability using stochastic address
assignment, and better performance using efficient many-to-one routing mechanisms
3.8 DASH7
• DASH7 is a wireless communication protocol for active RFID that operates in globally
available Industrial Scientific Medical (ISM) band and is suitable for IoT requirements. It is
mainly designed for scalable, long range outdoor coverage with higher data rate compared
to traditional ZigBee. It is a low-cost solution that supports encryption and IPv6 addressing.
It supports a master/slave architecture and is designed for burst, lightweight, asynchronous
and transitive traffic. Its MAC layer features
• Filtering: Incoming frames are filtered using three processes; cyclic redundancy check (CRC)
validation, a 4-bit subnet mask, and link quality assessment. Only the frames that pass all
three checks are processed further.
• Addressing: DASH7 uses two types of addresses: the unique identifier which is the EUI-64 ID
and dynamic network identifier which is 16-bit address specified by the network
administrator.
• Frame format: The MAC frame has a variable length of maximum 255 bytes including
addressing, subnets, estimated power of the transmission and some other optional fields.
4.2 Ipv6
• An Ipv6 address uses 128 bits as opposed to 32 bits in IPv4.
• IPv6 addresses are written using hexadecimal, as opposed to dotted decimal in IPv4.
• Because an hexadecimal number uses 4 bits this means that an IPv6 address consists of 32
hexadecimal numbers.
• These numbers are grouped in 4’s giving 8 groups or blocks. The groups are written with a :
(colon) as a separator.
N. G. Acharya & D. K. Marathe College of Arts, Science & Commerce
TYBSC-CS SEM 5 (ARCHITECTING OF IOT) 2018-19 NOTES
FOR PROGRAMS AND SOLUTION REFER CLASSROOM NOTES
4.3 6LoWPAN
• IPv6 over Low power Wireless Personal Area Network (6LoWPAN) is the first and most
commonly used standard in this category. It efficiently encapsulates IPv6 long headers in
IEEE802.15.4 small packets, which cannot exceed 128 bytes. The specification supports
different length addresses, low bandwidth, different topologies including star or mesh,
power consumption, low cost, scalable networks, mobility, unreliability and long sleep
time. The standard provides header compression to reduce transmission overhead,
fragmentation to meet the 128-byte maximum frame length in IEEE802.15.4, and
support of multi-hop delivery.
Frames in 6LoWPAN use four types of headers:
• No 6loWPAN header (00),
• Dispatch header (01),
• Mesh header (10) and • Fragmentation header (11).
• In No 6loWPAN header case, any frame that does not follow 6loWPAN specifications is
discarded.
• Dispatch header is used for multicasting and IPv6 header compressions.
• Mesh headers are used for broadcasting; while
• Fragmentation headers are used to break long IPv6 header to fit into fragments of
maximum 128-byte length.
4.4 6TiSCH
• 6TiSCH working group in IETF is developing standards to allow IPv6 to pass through Time-Slotted
Channel Hopping (TSCH) mode of IEEE 802.15.4e datalinks.
• It defines a Channel Distribution usage matrix consisting of available frequencies in columns and
time-slots available for network scheduling operations in rows. This matrix is portioned into
chucks where each chunk contains time and frequencies and is globally known to all nodes in the
network.
• The nodes within the same interference domain negotiate their scheduling so that each node
gets to transmit in a chunk within its interference domain. Scheduling becomes an optimization
problem where time slots are assigned to a group of neighboring nodes sharing the same
application. The standard does not specify how the scheduling can be done and leaves that to be
an application specific problem in order to allow for maximum flexibility for different IoT
applications. The scheduling can be centralized or distributed depending on application or the
topology used in the MAC layer
4.5 DHCP
• DHCP Architecture o The DHCP architecture consists of DHCP clients, DHCP servers, and DHCP
relay agents on a network. The clients interact with servers using DHCP messages in a DHCP
conversation to obtain and renew IP address leases.
• DHCP Client Functionality o A DHCP client is any network-enabled device that supports the
ability to communicate with a DHCP server in compliance with RFC 2131, for the purpose of
obtaining dynamic leased IP configuration and related optional information.
• Lease Durations o When a scope is created, the lease duration is set to eight days by default.
However there are situations when the administrator might want to change the lease duration.
• DHCP Messages
• DHCPDiscover o Broadcast by a DHCP client when it first attempts to connect to the
network. The DHCPDiscover message requests IP address information from a DHCP server.
• DHCPOffer o Broadcast by each DHCP server that receives the client DHCPDiscover message
and has an IP address configuration to offer to the client. The DHCPOffer message contains
an unleased IP address and additional TCP/IP configuration information, such as the subnet
mask and default gateway. More than one DHCP server can respond with a DHCPOffer
message. The client accepts the best offer, which for a Windows DHCP client is the first
DHCPOffer message that it receives.
• DHCPRequest o Broadcast by a DHCP client after it selects a DHCPOffer. The DHCPRequest
message contains the IP address from the DHCPOffer that it selected. If the client is
renewing or rebinding to a previous lease, this packet might be unicast directly to the
server.
• DHCPAck
o Broadcast by a DHCP server to a DHCP client acknowledging the DHCPRequest message.
At this time, the server also forwards any options. Upon receipt of the DHCPAck, the
client can use the leased IP address to participate in the TCP/IP network and complete
its system startup. This message is typically broadcast, because the DHCP client does not
officially have an IP address that it can use at this point. If the DHCPAck is in response to
a DHCPInform, then the message is unicast directly to the host that sent the
DHCPInform message.
• DHCPNack
o Broadcast by a DHCP server to a DHCP client denying the client’s DHCPRequest message.
This might occur if the requested address is incorrect because the client moved to a new
subnet or because the DHCP client’s lease has expired and cannot be renewed.
• DHCPDecline o Broadcast by a DHCP client to a DHCP server, informing the server that the
offered IP address is declined because it appears to be in use by another computer.
• DHCPRelease
o Sent by a DHCP client to a DHCP server, relinquishing an IP address and canceling the
remaining lease. This is unicast to the server that provided the lease.
• DHCPInform
o Sent from a DHCP client to a DHCP server, asking only for additional local configuration
parameters; the client already has a configured IP address.
• DHCP Lease Process o A DHCP-enabled client obtains a lease for an IP address from a DHCP
server. Before the lease expires, the DHCP client must renew the lease or obtain a new
lease. Leases are retained in the DHCP server database for a period of time after expiration.
By default, this grace period is four hours and cleanup occurs once an hour for a DHCP
server running Windows Server 2003. This protects a clients lease in case the client and
server are in different time zones, the internal clocks of the client and server computers are
not synchronized, or the client is off the network when the lease expires.
• Obtaining a New Lease o A DHCP client initiates a conversation with a DHCP server when it
is seeking a new lease, renewing a lease, rebinding, or restarting. The DHCP conversation
consists of a series of DHCP messages passed between the DHCP client and DHCP servers.
The following figure shows an overview of this process when the DHCP server and DHCP
client are on the same subnet. 4.6 ICMP
• ICMP (Internet Control Message Protocol) is an error-reporting protocol network devices
like routers use to generate error messages to the source IP address when network
problems prevent delivery of IP packets. ICMP creates and sends messages to the source IP
address indicating that a gateway to the Internet that a router, service or host cannot be
reached for packet delivery. Any IP network device has the capability to send, receive or
process ICMP messages.
• ICMP is not a transport protocol that sends data between systems.
• While ICMP is not used regularly in end-user applications, it is used by network
administrators to troubleshoot Internet connections in diagnostic utilities including ping and
traceroute.
• One of the main protocols of the Internet Protocol suite, ICMP is used by routers,
intermediary devices or hosts to communicate error information or updates to other
routers, intermediary devices or hosts. The widely used IPv4 (Internet Protocol version 4)
and the newer IPv6 use similar versions of the ICMP protocol (ICMPv4 and ICMPv6,
respectively).
4.7 RPL
• RPL offers different level of security by utilizing a Security field after the 4-byte ICMPv6 message
header. Information in this field indicates the level of security and the cryptography algorithm
used to encrypt the message. RPL offers support for data authenticity, semantic security,
protection against replay attacks, confidentiality and key management. Levels of security in RPL
include Unsecured, Preinstalled, and Authenticated. RPL attacks include Selective Forwarding,
Sinkhole, Sybil, Hello Flooding, Wormhole, Black hole and Denial of Service attacks.
4.8 CORPL
• An extension of RPL is CORPL, or cognitive RPL, which is designed for cognitive networks and uses
DODAG topology generation but with two new modifications to RPL. CORPL utilizes
opportunistic forwarding to forward the packet by choosing multiple forwarders (forwarder set)
and coordinates between the nodes to choose the best next hop to forward the packet to.
DODAG is built in the same way as RPL. Each node maintains a forwarding set instead of its
parent only and updates its neighbor with its changes using DIO messages. Based on the
updated information, each node dynamically updates its neighbor priorities in order to construct
the forwarder set
4.9 CARP
• Channel-Aware Routing Protocol (CARP) is a distributed routing protocol designed for
underwater communication. It can be used for IoT due to its lightweight packets. It considers
link quality, which is computed based on historical successful data transmission gathered from
neighboring sensors, to select the forwarding nodes.
• There are two scenarios: network initialization and data forwarding.
o In network initialization, a HELLO packet is broadcasted from the sink to all other nodes
in the networks.
o In data forwarding, the packet is routed from sensor to sink in a hop- by-hop fashion.
Each next hop is determined independently.
• The main problem with CARP is that it does not support reusability of previously collected data.
In other words, if the application requires sensor data only when it changes significantly, then
CARP data forwarding is not beneficial to that specific application. An enhancement of CARP was
done in E-CARP by allowing the sink node to save previously received sensory data. When new
data is needed, E-CARP sends a Ping packet which is replied with the data from the sensors
nodes. Thus, E-CARP reduces the communication overhead drastically
UNIT 3
Transport layer protocols
5.1 TCP
• TCP is a connection-oriented protocol, which means a connection is established and maintained
until the application programs at each end have finished exchanging messages. It determines
how to break application data into packets that networks can deliver, sends packets to and
accepts packets from the network layer, manages flow control, and—because it is meant to
provide error-free data transmission—handles retransmission of dropped or garbled packets as
well as acknowledgement of all packets that arrive.
• when a Web server sends an HTML file to a client, it uses the HTTP protocol to do so. The HTTP
program layer asks the TCP layer to set up the connection and send the file. The TCP stack
divides the file into packets, numbers them and then forwards them individually to the IP layer
for delivery. Although each packet in the transmission will have the same source and destination
IP addresses, packets may be sent along multiple routes. The TCP program layer in the client
computer waits until all of the packets have arrived, then acknowledges those it receives and
asks for the retransmission on any it does not (based on missing packet numbers), then
assembles them into a file and delivers the file to the receiving application.
• Retransmissions and the need to reorder packets after they arrive can introduce latency in a TCP
stream. Highly time-sensitive applications like voice over IP (VoIP) and streaming video generally
rely on a transport like User Datagram Protocol (UDP) that reduces latency and jitter (variation in
latency) by not worrying about reordering packets or getting missing data retransmitted.
5.2 MPTCP
• The core idea of multipath TCP is to define a way to build a connection between two hosts and
not between two interfaces (as standard TCP does).
• For instance, Alice has a smartphone with 3G and WiFi interfaces (with IP addresses 10.11.12.13
and 10.11.12.14) and Bob has a computer with an Ethernet interface (with IP address
20.21.22.23).
• In standard TCP, the connection should be established between two IP addresses. Each TCP
connection is identified by a four-tuple (source and destination addresses and ports). Given this
restriction, an application can only create one TCP connection through a single link. Multipath
TCP allows the connection to use several paths simultaneously. For this, Multipath TCP creates
one TCP connection, called subflow, over each path that needs to be used.
5.3 UDP
• UDP (User Datagram Protocol) is an alternative communications protocol to Transmission
Control Protocol (TCP) used primarily for establishing low-latency and loss-tolerating
connections between applications on the internet.
• UDP is an ideal protocol for network applications in which perceived latency is critical, such as in
gaming and voice and video communications, which can suffer some data loss without adversely
affecting perceived quality. In some cases, forward error correction techniques are used to
improve audio and video quality in spite of some loss.
• UDP can also be used in applications that require lossless data transmission when the
application is configured to manage the process of retransmitting lost packets and correctly
arranging received packets. This approach can help to improve the data transfer rate of large
files compared to TCP.
• In the Open Systems Interconnection (OSI) communication model, UDP, like TCP, is in Layer 4,
the transport layer. UDP works in conjunction with higher level protocols to help manage data
transmission services including Trivial File Transfer Protocol (TFTP), Real Time Streaming
Protocol (RTSP), Simple Network Protocol (SNP) and domain name system (DNS) lookups.
• User datagram protocol features
• The user datagram protocol has attributes that make it advantageous for use with applications
that can tolerate lost data.
• It allows packets to be dropped and received in a different order than they were transmitted,
making it suitable for real-time applications where latency might be a concern.
• It can be used for transaction-based protocols, such as DNS or Network Time Protocol.
• It can be used where a large number of clients are connected and where real-time error
correction isn't necessary, such as gaming, voice or video conferencing, and streaming media.
5.4 DCCP
• Datagram Congestion Control Protocol (DCCP) is a message-oriented transport layer protocol.
DCCP implements reliable connection setup, teardown, Explicit Congestion
Notification (ECN), congestion control, and feature negotiation.
• DCCP provides a way to gain access to congestion-control mechanisms without having to
implement them at the application layer. It allows for flow-based semantics like in Transmission
Control Protocol (TCP), but does not provide reliable in-order delivery. Sequenced delivery
within multiple streams as in the Stream Control Transmission Protocol (SCTP) is not available in
DCCP. A DCCP connection contains acknowledgment traffic as well as data traffic.
Acknowledgments inform a sender whether its packets have arrived, and whether they were
marked by Explicit Congestion Notification (ECN). Acknowledgements are transmitted as reliably
as the congestion control mechanism in use requires, possibly completely reliably.
• DCCP is useful for applications with timing constraints on the delivery of data. Such applications
include streaming media, multiplayer online games and Internet telephony. In such applications,
old messages quickly become useless, so that getting new messages is preferred to resending
lost messages.
• DCCP can also serve as a general congestion-control mechanism for UDP-based applications, by
adding, as needed, mechanisms for reliable or in-order delivery on top of UDP/DCCP. In this
context, DCCP allows the use of different, but generally TCP-friendly congestion-control
mechanisms.
• DCCP has the option for very long (48-bit) sequence numbers corresponding to a packet ID,
rather than a byte ID as in TCP. The long length of the sequence numbers aims to guard against
"some blind attacks, such as the injection of DCCP-Resets into the connection"
5.5 SCTP
• The Stream Control Transmission Protocol (SCTP) is a computer networking communications
protocol which operates at the transport layer and serves a role similar to the popular protocols
TCP and UDP.
• SCTP provides some of the features of both UDP and TCP: it is message-oriented like UDP and
ensures reliable, in-sequence transport of messages with congestion control like TCP. It differs
from those protocols by providing multi-homing and redundant paths to increase resilience and
reliability.
• In the absence of native SCTP support in operating systems, it is possible to tunnel SCTP over
UDP as well as to map TCP API calls to SCTP calls so existing applications can use SCTP without
modification In the absence of native SCTP support in operating systems, it is possible to tunnel
SCTP over UDP as well as to map TCP API calls to SCTP calls so existing applications can use SCTP
without modification
• SCTP applications submit their data to be transmitted in messages (groups of bytes) to the SCTP
transport layer. SCTP places messages and control information into separate chunks (data
chunks and control chunks), each identified by a chunk header. The protocol can fragment a
N. G. Acharya & D. K. Marathe College of Arts, Science & Commerce
TYBSC-CS SEM 5 (ARCHITECTING OF IOT) 2018-19 NOTES
FOR PROGRAMS AND SOLUTION REFER CLASSROOM NOTES
message into a number of data chunks, but each data chunk contains data from only one user
message. SCTP bundles the chunks into SCTP packets. The SCTP packet, which is submitted to
the Internet Protocol, consists of a packet header, SCTP control chunks (when necessary),
followed by SCTP data chunks (when available).
• One can characterize SCTP as message-oriented, meaning it transports a sequence of messages
(each being a group of bytes), rather than transporting an unbroken stream of bytes as does
TCP. As in UDP, in SCTP a sender sends a message in one operation, and that exact message is
passed to the receiving application process in one operation. In contrast, TCP is a
streamoriented protocol, transporting streams of bytes reliably and in order. However TCP does
not allow the receiver to know how many times the sender application called on the TCP
transport passing it groups of bytes to be sent out. At the sender, TCP simply appends more
bytes to a queue of bytes waiting to go out over the network, rather than having to keep a
queue of individual separate outbound messages which must be preserved as such.
• The term multi-streaming refers to the capability of SCTP to transmit several independent
streams of chunks in parallel, for example transmitting web page images together with the web
page text. In essence, it involves bundling several connections into a single SCTP association,
operating on messages (or chunks) rather than bytes.
5.6 TLS
Transport Layer Security (TLS) – and its predecessor, Secure Sockets Layer (SSL), which is now
deprecated by the Internet Engineering Task Force (IETF) – are cryptographic protocols that provide
communications security over a computer network Several versions of the protocols find widespread
use in applications such as web browsing, email, instant messaging, and voice over IP (VoIP). Websites
are able to use TLS to secure all communications between their servers and web browsers.
The TLS protocol aims primarily to provide privacy and data integrity between two or more
communicating computer applications. When secured by TLS, connections between a client (e.g., a web
browser) and a server (e.g., wikipedia.org) have one or more of the following properties:
• The connection is private (or secure) because symmetric cryptography is used to encrypt the
data transmitted. The keys for this symmetric encryption are generated uniquely for each
connection and are based on a shared secret negotiated at the start of the session. The server
and client negotiate the details of which encryption algorithm and cryptographic keys to use
before the first byte of data is transmitted. The negotiation of a shared secret is both secure (the
negotiated secret is unavailable to eavesdroppers and cannot be obtained, even by an attacker
who places themselves in the middle of the connection) and reliable (no attacker can modify the
communications during the negotiation without being detected).
• The identity of the communicating parties can be authenticated using public-key cryptography.
This authentication can be made optional, but is generally required for at least one of the parties
(typically the server).
• The connection is reliable because each message transmitted includes a message integrity check
using a message authentication code to prevent undetected loss or alteration of the data during
transmission
Client-server applications use the TLS protocol to communicate across a network in a way designed to
prevent eavesdropping and tampering.
Since applications can communicate either with or without TLS (or SSL), it is necessary for the client to
indicate to the server the setup of a TLS connection. One of the main ways of achieving this is to use a
different port number for TLS connections, for example port 443 for HTTPS. Another mechanism is for
the client to make a protocol-specific request to the server to switch the connection to TLS; for example,
by making a STARTTLS request when using the mail and news protocols.
Once the client and server have agreed to use TLS, they negotiate a stateful connection by using a
handshaking procedure. The protocols use a handshake with an asymmetric cipher to establish not only
cipher settings but also a session-specific shared key with which further communication is encrypted
using a symmetric cipher. During this handshake, the client and server agree on various parameters used
to establish the connection's security:
• The handshake begins when a client connects to a TLS-enabled server requesting a secure
connection and the client presents a list of supported cipher suites (ciphers and hash functions).
• From this list, the server picks a cipher and hash function that it also supports and notifies the
client of the decision.
• The server usually then provides identification in the form of a digital certificate. The certificate
contains the server name, the trusted certificate authority (CA) that vouches for the authenticity
of the certificate, and the server's public encryption key.
• The client confirms the validity of the certificate before proceeding.
• To generate the session keys used for the secure connection, the client either:
• encrypts a random number with the server's public key and sends the result to the server (which
only the server should be able to decrypt with its private key); both parties then use the random
number to generate a unique session key for subsequent encryption and decryption of data
during the session
• uses Diffie–Hellman key exchange to securely generate a random and unique session key for
encryption and decryption that has the additional property of forward secrecy: if the server's
private key is disclosed in future, it cannot be used to decrypt the current session, even if the
session is intercepted and recorded by a third party.
This concludes the handshake and begins the secured connection, which is encrypted and decrypted
with the session key until the connection closes. If any one of the above steps fails, then the TLS
handshake fails and the connection is not created.
5.7 DTLS
Datagram Transport Layer Security (DTLS) is a communications protocol that provides security for
datagram-based applications by allowing them to communicate in a way that is designed to prevent
eavesdropping, tampering, or message forgery. The DTLS protocol is based on the stream-oriented
Transport Layer Security (TLS) protocol and is intended to provide similar security guarantees. The DTLS
protocol datagram preserves the semantics of the underlying transport — the application does not
suffer from the delays associated with stream protocols, but has to deal with packet reordering, loss of
datagram and data larger than the size of a datagram network packet.
6.1 HTTP
• HTTP stands for Hypertext Transfer Protocol. It's the network protocol used to deliver virtually
all files and other data (collectively called resources) on the World Wide Web, whether they're
HTML files, image files, query results, or anything else. Usually, HTTP takes place through TCP/IP
sockets
• A browser is an HTTP client because it sends requests to an HTTP server (Web server), which
then sends responses back to the client. The standard (and default) port for HTTP servers to
listen on is 80, though they can use any port.
• What are "Resources"?
• HTTP is used to transmit resources, not just files. A resource is some chunk of information that
can be identified by a URL (it's the R in URL). The most common kind of resource is a file, but a
resource may also be a dynamically-generated query result, the output of a CGI script, a
document that is available in several languages, or something else.
• Like most network protocols, HTTP uses the client-server model: An HTTP client opens a
connection and sends a request message to an HTTP server; the server then returns a response
message, usually containing the resource that was requested. After delivering the response, the
server closes the connection (making HTTP a stateless protocol, i.e. not maintaining any
connection information between transactions).
6.2 CoAP
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 sublayers: messaging and
request/response. The messaging sublayer is responsible for reliability and duplication of messages
while the request/response sublayer is responsible for communication. CoAP has four messaging modes:
confirmable, non- confirmable, piggyback and separate. Confirmable and non-confirmable modes
represent the reliable and unreliable transmissions, respectively while the other modes are used for
request/response. Piggyback is used for client/server direct communication where the server sends its
response directly after receiving the message, i.e., within the acknowledgment message. On the other
hand, the separate mode is used when the server response comes in a message separate from the
acknowledgment, and may take some time to be sent by the server. As in HTTP, CoAP utilizes GET, PUT,
PUSH, DELETE messages requests to retrieve, create, update, and delete, respectively
6.3 XMPP
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 as well as a protocol for SDN. 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 and, thus, efficiently supports low-latency small messages. It
does not provide any quality of service guarantees and, hence, is not practical for M2M
communications. Moreover, XML messages create additional overhead due to lots of headers and tag
formats which increase the power consumption that is critical for IoT application. Hence, XMPP is rarely
used in IoT but has gained some interest for enhancing its architecture in order to support IoT
applications
6.4 AMQP
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
6.5 MQTT
Message Queue Telemetry Transport (MQTT) was introduced by IBM in 1999 and standardized by OASIS
in 2013. It is designed to provide embedded connectivity between applications and middleware on one
side and networks and communications on the other side. It follows a publish/subscribe architecture,
where the system consists of three main components: publishers, subscribers, and a broker. From IoT
point of view, publishers are basically the lightweight sensors that connect to the broker to send their
data and go back to sleep whenever possible. Subscribers are applications that are interested in a
certain topic, or sensory data, so they connect to brokers to be informed whenever new data are
received. The brokers classify sensory data in topics and send them to subscribers interested in the
topics.
oneM2M
oneM2M is a global organization that creates requirements, architecture, API specifications, security
solutions and interoperability for Machine-to-Machine and IoT technologies. oneM2M specifications
provide a framework to support a wide range of applications and services such as smart cities, smart
grid, connected car, home automation, public safety, and health.
oneM2M standard employs a simple horizontal, platform architecture that fits within a three layer
model comprising applications, services and networks. In the first of these layers, Application Entities
(AEs) reside within individual device and sensor applications. They provide a standardized interface to
manage and interact with applications. Common Services Entities (CSEs) play a similar role in the
services layer which resides between the applications layer and the in the network layer. The network
layer ensures that devices and sensors and applications are able to function in a network-agnostic
manner.
In the oneM2M functional architecture two basic types of entities are defined. One is an AE (short for
Application Entity) and the other is a CSE (short for Common Services Entity). In this use case, the lights
and smartphone each host an AE. Also an IN-CSE (short for Infrastructure Node CSE) is hosted in the
cloud by the oneM2M Service Provider and a MN-CSE (short for Middle Node CSE) is hosted on the
Home Gateway.
The oneM2M defined Mca reference point is used to interface an AE and CSE. The oneM2M defined Mcc
reference point is used to interface CSEs. In this use case, the Mca reference point is used between the
Light ADN-AEs and home gateway MN-CSE and between the Smartphone AE and IN-CSE.
The Mcc reference point is used between the home gateway MN-CSE and Cloud service platform IN-CSE.
In summary, applications used in the current use case are classified as follows:
• ADN-AE1: an application embedded in Light#1 with capabilities to control Light#1 and interact
with the home gateway MN-CSE through Mca reference point.
• ADN-AE2: an application embedded in Light#2 with capabilities to control Light#2 and interact
with the home gateway MN-CSE through Mca reference point
• IN-AE: a smartphone application embedded in the smartphone device with capabilities to
interact directly with the cloud service platform IN-CSE through Mcc reference point and thereby
remotely control Light#1 and Light#2.
• MN-AE: a gateway application embedded into the home gateway that interacts with MN-CSE
through Mca reference point.
ETSI M2M
ETSI Machine-to-Machine communications is an application agnostic standard containing an overall end
to end M2M functional architecture, identifying the functional entities and the related reference points.
It describes a resources-based architecture that can be used for the exchange of data and events
between machines involving communications across networks without requiring human intervention
The ETSI M2M High Level Architecture picture shows that this is a distributed system: the M2M Service
Capabilities are both at network level (M2M Service Capabilities in the Network Domain) and at local
level (M2M Service Capabilities in the M2M Gateway and in the M2M Device). These Service Capabilities
N. G. Acharya & D. K. Marathe College of Arts, Science & Commerce
TYBSC-CS SEM 5 (ARCHITECTING OF IOT) 2018-19 NOTES
FOR PROGRAMS AND SOLUTION REFER CLASSROOM NOTES
are the set of functionalities defined in the specification and are used to put in communication
applications among them; both network applications, and gateway and device applications. In essence
the goal of this architecture is "to provide the functionalities for the management of interactions
between entities (i.e. applications) involving communication across networks without requiring human
intervention" as it is described in the ETSI M2M definition of M2M.
In order to standardize the procedures that can be used for enabling these entities (i.e. applications) to
communicate the ETSI M2M specifications have defined a number of Reference Points and the
operations that can be used for this communication. These Reference Points are:
• mIa - M2M application interface: it is used by the Network Applications (NA) to communicate
with the Network Service Capability Layer (NSCL)
• dIa - Device application interface: it is used by the Device and Gateway Applications (DA and GA)
to communicate with the local service capabilities, i.e. Device Service Capability Layer (DSCL) and
Gateway Service Capability Layer (GSCL)
• mId - M2M to device interface: it is used for the inter-SCLs communication
The main operations that can be performed using these interfaces deal with the concept of M2M
Resource. A "resource" can be roughly described as a shared memory area that can be used for
exchanging data among applications. The resources can be created by an application within an SCL (at
network, gateway or device level), and can be read, updated, subscribed, notified, announced,
discovered, deleted by the same or other applications (provided they have the permissions to perform
the actions requested). Resources can be created and used freely across the ETSI M2M architecture.
Looking at the following example of a weather forecast system including applications and sensors, a
resource can be created by a Device or a Gateway Application at local level, in a GSCL (e.g. "temp"
resource) or in a DSCL (e.g. "pressure" resource), or it can be created at network level in the NSCL (e.g.
"average temp" or "humidity" resources). Network Applications can discover and access resources
created both at network level and at local level, and they can create resources too (e.g. "weather
forecast" resource).
OMA
OMA Lightweight M2M is a protocol from the Open Mobile Alliance for M2M or IoT device
management. Lightweight M2M enabler defines the application layer communication protocol between
a LWM2M Server and a LWM2M Client, which is located in a LWM2M Device. The OMA Lightweight
M2M enabler includes device management and service enablement for LWM2M Devices. The target
LWM2M Devices for this enabler are mainly resource constrained devices. Therefore, this enabler makes
use of a light and compact protocol as well as an efficient resource data model. It provides a choice for
the M2M Service Provider to deploy a M2M system to provide service to the M2M User. It is frequently
used with CoAP
OMA Lightweight M2M is designed to:
• Provide Device Management functionality over sensor or cellular networks
• Transfer service data from the network to devices
• Extend to meet the requirements of most any application