Documente Academic
Documente Profesional
Documente Cultură
4
Internet of Things
• Standardise IP into sensors and other objects
MTC
Low Power &
Lossy
Enabling Technologies
Networks
People Process
Connecting People Delivering the Right
in More Relevant, Information to the Right
Valuable Ways Person (or Machine) at the
Right Time
Data Things
Leveraging Data into More Physical Devices and Objects
Useful Information for Connected to the Internet and
Decision Making Each Other for Intelligent
Decision Making (IoT)
Source: “The Internet of Everything: A $19 Trillion Opportunity,” Cisco Consulting Services, 2014
Technology Trends are Enabling Business in New Ways
How do I cut cost and How do I create a more How can I create
How do I make better
improve my business? engaged and productive personalized customer
decisions… faster?
workforce? experiences?
Security
How do I handle a dynamic threat landscape
created by increased connections? Protect Valuable Assets and Reputation
in Real-Time
11
Cities Have Traditionally Addressed These Issues in Silos
economical
City Infographics
Municipal Command Factory
& Control Center Optimization
Cloud &
Services
Smart Logistics
Grid Home Energy Optimization
Lighting Mgmnt
Building
Poles
Optimization
Traffic Flow
Optimization
City
WiFi
INTELLIGENT INTELLIGENT
CITY Community
INTELLIGENT
Building INTELLIGENT
HIGHWAY Traffic
Parking Connected Automated Cameras
Ambulances Intelligent Digital Car System
Signage
Source:16Intel
IoT Standardization
(…at the IETF...)
IETF Organization: Areas
• ...activities focused on supporting, updating and maintaining the IETF standards
General Area (gen) development process.
• Network Management, AAA, and various operational issues facing the Internet
Operations & Management (ops) such as DNS, IPv6, operational security and Routing operations.
Routing (rtg) • ...responsible for ensuring continuous operation of the Internet routing system...
• ...IP layer (both IPv4 and IPv6), DNS, mobility, VPNs and pseudowires..., and
Internet (int) various link layer technologies.
IoT at the IETF
Area Working Group
Disp
802.15.4 Frag IPv6 Datagram (Frag 1)
• Assume common values for header fields and define compact forms
• Ports within 61616 to 61632 (4 bits)
• Length derived from IPv6 Length
• Checksum may be elided if other integrity checks are in use (e.g. Ipsec)
1 2 1 1 2
Checksum
UDP-HC
IP-HC
Ports
Disp
1 2 1 2 2 1 1 2
Checksum
Hop Limit
UDP-HC
Source
IP-HC
Ports
Addr
Addr
Dest
Disp
Addressing
2
RFC 6775 6LoWPAN ND (bis)
• Multicast Avoidance
• Registration for DAD, distributed database for lookup
• Binding (location, owner, MAC) to IPv6 address
• Registrar hierarchy for lookups and policy enforcement
• Schedule => direct trade-off between throughput, latency and power consumption. A
• A collision-free communication schedule is typical in industrial applications.
• IEEE802.15.4e published April 2012.
C B
16 channel offsets
E
D
F
G
I
e.g. 31 time slots (310ms)
H
J
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 31
Channel Hopping :
• retry around interference,
• round robin strategy
0 1 2 3 4 5
33
A schedule is a matrix of cells, each of them
indexed by a slotOffset and a channelOffset
0 1 2 3 4 5
TsTxOffset
35
IoT Uses Cases:
Real deployments and applications
Gustavo Mercado
gmercado@frm.utn.edu.ar
UTN FRM
Mendoza - Argentina
IoT Uses Cases
• Hardware usado en IoT
• CIAA IoT Gateway
• Save the Peaches
• Smart Grid San Martin
• Smart City Bicing
CIAA IoT Gateway
IoT Uses Cases: CIAA IoT Gateway
IPv6 (IPv4)
UART
IEEE 802.15.4
CIIA Gateway
RT-SO: Free OSEK
IP Stack: LwIP
Open Mote
RT-SO: Contiki
Save the Peaches
IoT Uses Cases: Save the Peaches
• Predicting Frost Event in Peaches Orchad
– UTN (Argentina)
– UDP (Chile)
– INRIA (Francia)
– INTA (Argentina)
• Objetivos
– Predicción localizada de las heladas mediante la construcción de un
modelo de aprendizaje automático a partir de datos microclimáticos
de una red de sensores
– Instalar un prototipo de red de sensores para medir las variables
climáticas involucradas
– Realizar campañas de medición e instalación
Peaches don’t like frost
• Peaches- UTN-UDP-INRIA
2013
before
after
•air temp
•air RH
•soil temp
•soil moisture
TELECONTROL
RED MT TELEMEDICIÓN
20 PUNTOS 10 salidas
COMUNICACIONES
MEDIDORES
INTELIGENTES
4500
ILUMINACIÓN
TELEMEDICIÓN EFICIENTE
90 CTs 200 LED - 50 Telegestión ADECUACIÒN
SCADA
IoT Uses Cases: Smart Grid - San Martín Mendoza
Telecomando
Compra - Venta - Scada - GIS - Conocimiento
– Facturación Sistemas Operación Capacidades,
Experiencias,
Sistema Integración Eficiencia,
Sistemas
SOCIEDAD - ESTADO
Prepago Modelo
USUARIO ACTIVO
USUARIO PASIVO
Balance-Curva de Administración
Gen.Dist. Replicable
Carga-Proyección-
Comportamiento
Gustavo Mercado
gmercado@frm.utn.edu.ar
UTN FRM
Mendoza - Argentina
RPL- Routing over Low
Power and Lossy Networks
Questions to answers today
power, memory, and processing resources interconnected by a variety of links, such as IEEE
802.15.4 or low-power Wi-Fi. There is a wide scope of application areas for LLNs, including
industrial monitoring, building automation (heating, ventilation, and air conditioning (HVAC),
llighting, access control, fire), connected home, health care, environmental monitoring, urban
sensor networks, energy management, assets tracking, and refrigeration.” RFC 7228
The term distance vector refers to the fact that the protocol
the network
RPL
Is source routing
Allows a sender of a packet to partially or completely specify
the route the packet takes through the network.
Directed
Acyclic
Graph
DODAG
root Destination
Oriented
DAGs
(DODAG)
A DAG rooted at a single destination at a single
DAG root (DODAG root) with no outgoing edges
A RPL Instance is a set of one or more
DODAGs that share a RPLInstanceID.
DODAG
root
(DODAG) (DODAG)
RPL Instance
To Identify and maintain a topology RPL uses...
(DODAG) (DODAG)
RPL Instance
To Identify and maintain a topology RPL uses...
(DODAG) (DODAG)
DODAGID
(DODAG) (DODAG)
DODAGID DODAGVersionNumber
A DODAG Version is a
specific iteration of a DODAG
with a given DODAGID
A DODAGVersionNumber
Is a sequential counter that is
incremented by the root to
form a new version
(DODAG) (DODAG)
DODAGID DODAGVersionNumber
A DODAG Version is a
Rank specific iteration of a DODAG
+ - with a given DODAGID
Defines the rank=1
node's A DODAGVersionNumber
rank=2 Is a sequential counter that is
Individual
position incremented by the root to
form a new version
Relative to
other nodes
with respect to
DODAG root rank=3
(DODAG) (DODAG)
Non-Storing: the packet will travel all the way to a DODAG root
before traveling Down
Storing and Non-Storing
Mode-of-Operation
● A storing LLN keeps a downward routing table at each node.
○ traffic travels only as far as common parent.
○ storing mode limited by size of routing table
■ nodes with lower rank, have bigger tables!
■ protocol fails when any table is full.
● A non-storing LLN sends all traffic to root. Root uses source routes to
send traffic to leafs.
○ limited by ram of DODAG root/6LBR, but usually non-constrained
device
○ requires more bits on wire, which often is more expensive
(energy-wise) than more ram, or compute cycles.
● new work (“dao-projection”) tries to add some routes to non-storing
mode.
● original protocol (pre-2011) thought to mix and match, but this proved
unworkable.
Traffic Flows Supported by RPL
P2MP MP2P
● MP2P
● P2MP
● P2P (special
DODAG, always
non-storing)
(DODAG)
RPL Instance
Acyclic
RPL topology
Graph
Directed
Acyclic DODAG
RPL topology
Graph
Directed
Acyclic DODAG
RPL topology
Graph
Acyclic DODAG
RPL topology
Graph
Acyclic DODAG
RPL topology
Graph
Acyclic DODAG
RPL topology
Graph
Acyclic DODAG
RPL topology
Graph
Acyclic DODAG
RPL topology
Graph
To Request
information to
join the
topology
Directed
Acyclic DODAG
RPL topology
Graph
To Request To be able to
information to send
join the messages
topology upwards
Directed
Acyclic DODAG
RPL topology
Graph
Acyclic DODAG
RPL topology
Graph
DIS
DIO
DAO
- In Storing mode, the DAO message is unicast by the child to the selected parent(s).
The DAO message may optionally, upon explicit request or error, be acknowledged by its destination with
a Destination Advertisement Acknowledgement (DAO-ACK) message back to the sender of the DAO.
RPL Control message is a ICMPv6 message
Destination
DODAG Advertisement Object - SDIS
DODAG Information
Information Object (DAO)
Solicitation (DIS) - SDIO
(DIO)
DAO-ACK - SDAO
- SDAO-ACK
- Consistency
Check
RPL Control message is a ICMPv6 message
Base
Option(s)
Base
Option(s)
Trickle's basic primitive is simple: every so often, a node transmits data unless it hears a few other
transmissions whose data suggest its own transmission is redundant.
Directed
Acyclic DODAG
RPL topology
Graph
Acyclic DODAG
RPL topology
Graph
Define how RPL nodes select and optimize routes within a RPL Instance.
The DAG Metric Container option MAY be present in DIO or DAO messages
The DAG Metric Container is used to report metrics along the DODAG.
● Throughput Object:
− Currently available throughput (Bytes per second)
● Latency:
− Can be used as a metric or constraint
− Constraint: Max latency allowable on path
− Metric: additive metric updated along path
● Link Reliability:
− Link Quality Level Reliability (LQL): 0=Unknown, 1=High, 2=Medium, 3=Low
− Expected Transmission Count (ETX) (Average number of TX to deliver a
packet)
● Link Colour:
− Metric or constraint, arbitrary admin value
Objective Function that selects routes that minimize a metric, while using hysteresis to
Source: http://www.slideshare.net/vinatech/slide-tt?related=1
RPL has mechanism for loop detection and DODAG Repair
Source: http://www.slideshare.net/vinatech/slide-tt?related=1
RPL has mechanism for loop detection and DODAG Repair
Source: http://www.slideshare.net/vinatech/slide-tt?related=1
RPL has mechanism for loop detection and DODAG Repair
Source: http://www.slideshare.net/vinatech/slide-tt?related=1
RPL has mechanism for loop detection and DODAG Repair
Source: http://www.slideshare.net/vinatech/slide-tt?related=1
RPL has mechanism for loop detection and DODAG Repair
Source: http://www.slideshare.net/vinatech/slide-tt?related=1
RPL has mechanism for loop detection and DODAG Repair
Source: http://www.slideshare.net/vinatech/slide-tt?related=1
RPL has mechanism for loop detection and DODAG Repair
- End
Source: http://www.slideshare.net/vinatech/slide-tt?related=1
Questions to answers today
● Open Source
○ ContikiRPL → https://github.com/contiki-os/contiki/tree/master/core/net/rpl
■ used in multiple companies, with some variations among them
○ TinyRPL → https://github.com/tinyos/tinyos-main/tree/master/tos/lib/net/rpl
○ Unstrung → http://unstrung.sandelman.ca/
■ intended for gateways and other non-constrained (class >2) systems
● https://tools.ietf.org/html/draft-hui-vasseur-roll-rpl-deployment-01
● A lot of Academia papers evaluating the performance of RPL
● Known to be a number of proprietary implementations:
○ Cisco (more than one?), Huawei, Itron*, Landisgyr*, Sigma Design,
● Academia research about RPL for Mobility
Takeaways
Application Application
Request/Responses Request/Responses
CoAP
Messages Messages
UDP DTLS
UDP
Abstract Layering of CoAP
Abstract Layering of DTLS-Secured
CoAP
- Confirmable (CON)
- Non-confirmable (NON)
- Acknowledgment (ACK)
- Reset (RST)
POST:
Request that the representation enclosed in the request be processed. (new resource
created or target resource being updated)
PUT:
Request that the resource identified by the request URI be updated or created with the
enclosed representation.
DELETE:
A Token is used to match responses to requests independently form the underlying messages.
Server is not able to respond immediately, then responds with an empty ACK, so the client
stop retransmitting.
When response is ready, the server sends it in a CON message and it is acknowledged by
the client.
A request and a Response carried in
a NON-Confirmable message.
Message Format: 4 bytes header (fix)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
coap://example.com:5683/~sensors/temp.xml
coap://EXAMPLE.com/%7Esensors/temp.xml
coap://EXAMPLE.com:/%7esensors/temp.xml
Additional CoAP Features: Multicast
RFC 7252
Additional CoAP Features: Observe
Methods: GET, PUT, POST and DELETE to CRUD (Create, Retrieve, Update and
Delete) operations
Features provided by CoAP
-messaging protocol
- standardized at OASIS
-Publish/Subscriber pattern
- over TCP
http://www.systeminsights.com/blog/2015/9/9/paho-python-client-for-mqtt
MQTT has a client/server model, where every sensor is a client and
connects to a server, known as a broker, over TCP.
MQTT is message oriented. Every message is a discrete chunk of data, opaque to the broker.
Every message is published to an address, known as a topic. Clients may subscribe to multiple topics. Every client subscribed to a topic
receives every message published to the topic.
For example, imagine a simple network with three clients and a central broker. All three clients open TCP connections with the broker. Clients
B and C subscribe to the topic temperature . At a later time, Client A publishes a value of 22.5 for topic temperature . The broker forwards
the message to all subscribed clients.
https://eclipse.org/community/eclipse_newsletter/2014/february/article2.php
MQTT message Format
http://www.rfwireless-world.com/Terminology/MQTT-protocol.htm
http://www.slideshare.net/PeterREgli/mq-telemetry-transport?next_slideshow=1
Major differences between MQTT and CoAP
MQTT CoAP
Application Layer Single Layered completely Single layered with 2 conceptual sub
layers (Message Layer and Request
Response Layer)
Thangavel, et. al.,”Perform Evaluation of MQTT and CoAP via a Common Middleware”, 2014.
IoT Management
Management Management Protocols and Data Models
Architecture/System
Implementation Requirements
Self-Management
Transport Layer
Energy Management
Security and Access Control
IoT Management Stack
Information Models and Data Models - - RFC 3444
Information Models are used to model managed objects at a conceptual level, independent
Data Models are defined at a lower level of abstraction and include many details (compared
to information models). They are often represented in formal data definition languages that
https://www.ietf.org/proceedings/86/slides/slides-86-i2rs-3.pdf
Information
Model
Information
Model Requirements
Data
Model
OMNA
MIB YANG SenML
Objects
Serialization JSON
BER XML JSON
XML
XML
CBOR
EXI
LWM2M (LightWeight Machine-to-Machine)
http://openmobilealliance.org/
LWM2M LWM2M M2M App
M2M
App
M2M
App
Server
Architecture LWM2M Server
Interfaces:
Bootstrapping
Registration
Object/Resource Access
Reporting
LWM2M Client
Object 0
Resource 1 | R
Resource 2 | R/W
Resource 3 | E
LWM2M
Client
Object 1
Resource 1 | R
Resource 2 | R/W
Resource 3 | E
Objects Objects
LWM2M
LWM2M Client
Server
CoAP CoAP
Transport Transport
Layer Layer
6LoWPAN/IP 6LoWPAN/IP
Network
LWM2M Interfaces
Requested Bootstrap
Bootstrapping
Write, Delete
Reporting
Notify
OMA-TS-LightweightM2M-V1_0-20150422-D_cb
- e.g, a measurement from a temperature estimation encoded in the JSON syntax
would be: {”e”:[{ ”n”: ”urn:dev:lmf:111”, ”v”:3.3, ”u”:”Cel” }]}, This array represents a
single measurement for a sensor named ”urn:dev:lmf:111” with a temperature of
3.3 degrees Celsius.
- The resources are accessible by the server with an URI in the format
”/{ObjectID}/{InstanceID}/{ResourceID}”. For example, ”/1024/10/1” is an URI to
access the Object 1024, Instance 10 and Resource 1
The resources are requested using the command prompt: ”command CLIENT# URI DATA”
E.g. read 0 /3/0/0, In this case, the server run this command (read) to request to the proxy (CLIENT#=0)
read a resource (/3/0/0) from the Device Object (3)., for write e.g. “write 0 /1/0/1 4”
Implementations
- Wakaama [http://projects.eclipse.org/projects/technology.wakaama]
- RIOT
[https://www.google-melange.com/gsoc/project/details/google/gsoc2015/alexa
ndru_c/5676830073815040]
- Contiki [https://github.com/jenseliasson/iot-apps]
- Lualwm2m [https://github.com/sbernard31/lualwm2m]
CoAP Management Interface (CoMI) is an adaptation of the RESTCONF protocol for
use in constrained devices and networks.
CoOL Architecture
CoOL objects
YANG modelling
(datastores,
language.RPCs,
Payloads
actions
are encoded
and notifications)
using theare
CBOR
defined
datausing
format
the
IoT Semantic
Interoperability
Slide from: http://summit.riot-os.org/wp-content/uploads/2016/07/2-Communication-Session-WoT-Matthias1.pdf
Slide from: http://summit.riot-os.org/wp-content/uploads/2016/07/2-Communication-Session-WoT-Matthias1.pdf
Web of Things (WoT) from W3C
In Web of Things (WoT), functional virtual device is named “WoT Servient”
provides the access to, control and status from IoT physical devices.
http://w3c.github.io/wot/architecture/wot-architecture.html
WoT Servient example
http://summit.riot-os.org/wp-content/uploads/2016/07/2-Communication-Session-WoT-Matthias1.pdf
Semantic Interoperability
knowledge.
https://tools.ietf.org/html/draft-koster-t2trg-hypertext-language-00#section-4
There is an interoperability gap in how
application semantics are defined and used
“...Many organizations and industry alliances are defining vocabulary and taxonomy for
application domains, independent of each other.
These vocabularies are often bound to particular conceptual models, and are often semantically
incompatible with each other.
e.g. an identifier like temperature may appear to be well known but is semantically
incompatible across ecosystems and application domains ….”
https://tools.ietf.org/html/draft-koster-t2trg-hypertext-language-00
One approach to semantic interoperability is to develop a common:
https://tools.ietf.org/html/draft-koster-t2trg-hypertext-language-00#section-2
Other approach
https://www.iab.org/wp-content/IAB-uploads/2016/03/2016-IAB-HATEOAS.pdf
HATEOAS (Hypermedia As The
Engine Of Application State)
“...The server provides in-band descriptions of the API through the publication
of links and forms.
Only the atomic interaction steps (following links and submitting forms) have to
be shared a priori.
This mechanism lets machines not only handle change over time, but also
enables interoperability between changing APIs from different
manufacturers….”
https://www.iab.org/wp-content/IAB-uploads/2016/03/2016-IAB-HATEOAS.pdf
More information
Open Source
Implementations
(SOME OF THEM… ;)
Open Source
- Operative Systems
- Development Frameworks
- Cloud
- Test beds
- Implementations Scenarios
- Open Hardware
Open Operative Systems
Source: Oliver Hahm, Emmanuel Baccelli, Hauke Petersen, Nicolas Tsiftes. Operating Systems for Low-End Devices in the Internet of
Things: a Survey. IEEE Internet of Things Journal, IEEE, 2015, <10.1109/JIOT.2015.2505901>. <hal-01245551>
Dev. Frameworks e.g . ECLIPSE IOT
http://www.slideshare.net/ManolisNikiforakis/lwm2m-ota-for-esp8266
Sand Boxes:
The IoTivity architectural goal is to create a new standard by which billions of wired and
wireless devices will connect to each other and to the internet. The goal is an extensible
and robust architecture that works for smart and thin devices.
https://www.iotivity.org/
Test-beds,
e.g.
Platform
Overview
Active and publicly available testbeds
Source: Alexander Gluhak, Srdjan Krco, Michele Nati, Dennis Pfisterer, Nathalie Mitton, et al. A Survey on Facilities for Experimental Internet of
Things Research. IEEE Communications Magazine, Institute of Electrical and Electronics Engineers, 2011, 49. (11), pp.58-67.
<10.1109/MCOM.2011.6069710>. <inria-00630092>
Testbeds with interesting features
Source: Alexander Gluhak, Srdjan Krco, Michele Nati, Dennis Pfisterer, Nathalie Mitton, et al. A Survey on Facilities for Experimental Internet of
Things Research. IEEE Communications Magazine, Institute of Electrical and Electronics Engineers, 2011, 49. (11), pp.58-67.
<10.1109/MCOM.2011.6069710>. <inria-00630092>
F-Interop aims and objectives can be summarized as follow:
to integrate and extend several European testbed federations with a shared “Testbed as a Service” interconnecting
three European testbeds federations (Fed4FIRE, OneLab, IoT Lab), bringing together over 32 testbeds and 4755 nodes. It
to research and develop online testing tools for the Internet of Things, including for interoperability tests, conformance
tests, scalability tests, Quality of Service (QoS) and Quality of Experience (QoE) tests, and Energy efficiency tests
to support IoT standardization and enable closer cooperation with the industry, through a close collaboration with
standards development organizations, including ETSI, oneM2M, IETF and W3C,- and be researching and developing online
certification and labelling mechanisms. F-Interop will enable an easier participation of researchers and industry in the
standardization process.
to organize an Open call for SMEs and developers to use and enrich the developed testing platform with additional
http://www.f-interop.eu/
RuuviTag: Open Source Bluetooth Smart Sensor Beacon
Platform
http://ruuvitag.com/
Unas de las maneras de participar en
IoT Latinoamérica, lista de correo: iot@lacnog.org
What is next (happening now)?
New standards (e.g. RFC 7774: Multicast Protocol for Low-Power and
Lossy Networks (MPL) Parameter Configuration Option for DHCPv6)
Muchas GRACIAS!!!! :-)