Professional Documents
Culture Documents
Internet Wireless
IPv4 WiFi
IPv6 Bluetooth
TCP Zigbee
UDP Z-wave
Wired Powerline
1-wire, 2-wire X10, LonTalk
2-Zigbee
• Standard: ZigBee 3.0 based on IEEE802.15.4
• Frequency: 2.4GHz
• Range: 10-100m
• Data Rates: 250kbps
1
Communication Technologies for IoT
3-Z-Wave : Z-Wave is a low-power RF communications
technology that is primarily designed for home automation for
products such as lamp controllers and sensors among many
others
• Standard: Z-Wave Alliance ZAD12837 / ITU-T G.9959
• Frequency: 900MHz (ISM)
• Range: 30m
• Data Rates: 9.6/40/100kbit/s
4-WiFi : may be too power-consuming for many IoT
applications.
Standard: Based on 802.11n (most common usage in homes
today)
Frequencies: 2.4GHz and 5GHz bands
Range: Approximately 50m
Data Rates: 600 Mbps maximum, but 150-200Mbps is more
typical, depending on channel frequency used and number of 4
antennas (latest 802.11-ac standard should offer 500Mbps
2
9- RFID
There are two types of radio frequency identification: active
and passive. This protocol was designed specifically so devices
without batteries could send a signal
+20dB Link
budget gain
Concentrator
RF Mesh
Smart Meters
Smart Meter Smart Building Fleet Management Smart Waste Smart Parking with
Management Management with battery-powered
battery-powered sensors sensors
https://tools.ietf.org/html/draft-ietf-core-coap-18
http://www.bortzmeyer.org/7252.html
https://www.researchgate.net/figure/An-example-of-
Constrained-RESTful-Environments-CoRE-direct-resource-
discovery-and_fig2_262819123
3
IOT Routing Protocoles
We can mention mainly
1. Coap : The CORE group is developing a simplified version of HTTP that
requires fewer resources while maintaining HTTP compatibility.
2. RPL As for the ROLL working group, it has defined the RPL routing protocol,
which makes it possible to build a routing topology on constrained networks
(pronounce RPL as the English word "riple" meaning undulation).
These four working groups have a key role in defining an open and interoperablee
Internet of Things.
10
2/23
11
11
COAP(1)
CONSTRAINED APPLICATION PROTOCOL
Transport UDP
Sécurity DTLS (Datagram Transport Layer Security)
Architecture REST
OSI Aplication Level
RESTful protocol transfert
3/23
12
4
COAP(CONSTRAINED APPLICATION PROTOCOL)
• Transport UDP
• Sécurity DTLS (Datagram Transport Layer Security)
• Architecture REST
• OSI Aplication Level
• RESTful protocol transfert
13
Architecture du COAP
14
URI
15
5
Méthodes du COAP :CoAP/RESTful
Méthode Get
Récupération des informations qui corresponds à la ressource
identifier par l’URI de la requête, un code de réponse 2.05 ou 2.03
devrait être présent
Méthode Post
Demande que la requête doit être traitée, si le test post est réussi un
code de réponse 2.04 devrait être présent
Méthode Put
Demande que la ressource identifiée par la requête URI doit être
mise à jour ou créée , si le test réussit un code de réponse 2.01
devrait être présent
Méthode Delete
Demande que la ressource identifiée par l'URI de la requête soit
supprimée, si le test réussit un code de réponse 2.02 devrait être
présent
16
Types du message
17
CoAP/protocol header
0 1 2 3
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Ver| T | OC | Code | Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options (if any) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload (if any) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: Message Format
3.1. Header Format
6
Format du message COAP
19
CoAP/example
Client Server
| |
| |
+----->| Header: GET (T=CON, Code=1, MID=0x7d34)
| GET | Uri-Path: "temperature"
| |
| |
|<-----+ Header: 2.05 Content (T=ACK, Code=69,
MID=0x7d34)
| 2.05 | Payload: "22.3 C"
| |
20
COAP Observe
21
7
CORE Ressource Discovery
22
COAP Multicast
23
24
8
COAP open source implementation
25
COPPER
26
RPL
RPL
27
9
RPL (Routing Protocol for Low power
and Lossy Networks)
Roots
cycle
RPL
Up : C'est tout edge qui est dirigé vers le Root .
Down : C'est tout edge qui est dirigé loin de Root.
DODAG (Destination Oriented DAG ) : C'est un type
particulier de DAG où chaque nœud veut atteindre un
seul destination (Fig.02).
Rank : Comme le montre
la Fig.02, c’est la
distance du Root.
29
RPL
Instance 1 instance 2
• DODAG ID : Each DODAG has
an IPv6 ID (128 bit). This ID is DODAG_ID=1
DODAG_ID=2
given to its root only. And as long
as the root doesn’t change ID
also doesn’t change.
30
10
RPL
RPL
Parent Le parent est l'endroit où se dirige la flèche. Et un
enfant est d'où vient la flèche. Les parents peuvent avoir
plusieurs enfants, tout comme un enfant peut avoir
plusieurs parents
Sub-DODAG : C'est n'importe quel sous-arbre d'un DODAG
donné.
Storing: Les nœuds de stockage conservent la totalité de la
table de routage. Ils savent comment aller d'un nœud à un
autre.
Non storing: Ils sont simples, ils ne stockent pas une table
de routage complète, ils ne connaissent que leurs parents.
L'ensemble du DODAG, à l'exception de la racine Root, doit
conserver une uniformité, qu'il soit Storing ou non storing. 32
Le Root est toujours storing.
RPL Approach
Construire et maintenir un DAG prenant en charge les flux
MP2P
• plusieurs successeurs lorsque disponibles (vs. Tree)
• Implémentation des métriques et fonctions objectives spécifiques à
la mise en œuvre pour trouver les chemins les moins coûteux
Utilisez DAG pour contraindre et guider le calcul des routes
prenant en charge les flux P2MP
Utiliser MP2P + P2MP comme support de base de P2P
• P2P plus optimal fourni avec des mécanismes complémentaires
33
11
Approach – the DAG
Les nœuds occupant une position dans le DAG calculent une
valeur de «profondeur» spécifique à la fonction métrique et
objective utilisée
34
Approach - Forwarding
Le transfert du trafic MP2P vers des nœuds de moindre
profondeur évite les boucles
• se produisent uniquement en présence d'une incohérence de
profondeur, qui est évitée ou découverte et résolue
• Redondance importante dans la plupart des réseaux
Le transfert de trafic vers des nœuds de même profondeur
(frères DAG) peut être utilisé si le transfert à une
profondeur inférieure échoue temporairement
• Augmente la redondance, mais une protection supplémentaire
contre les boucles, par exemple, id's, doit être ajoutée
Le transfert du trafic MP2P vers des nœuds plus profonds
est peu probable et en boucle
35
Approach - Loops
Les nœuds plus profonds peuvent se trouver dans leur
propre sous-DAG, ce qui augmente considérablement le
risque de création de boucles.
• Transférer le trafic dans son propre sous-groupe de disponibilité de
base de données signifie qu’il risque de revenir!
36
12
RPL Control -messages:
There are 5 Control Messages, they form the Spanning tree :
DODAG information Object (DIO) : This message is Multicasted
downwards . A given node In a DODAG may multicast this
message , which lets other nodes know about it , Things like
whether the node is grounded or not, whether it storing or non-
storing, and it announces other nodes “if they are interested to join ,
Please Let Me know. “
DODAG Information Solicitation (DIS) : When no
announcement is heard, and if a node wants to join a DODAG it
sends a control message , For that it wants to know If any DODAG
exists. So the message which it sends is Like “ Is there any
DODAG ? “
DODAG advertisement Object (DAO) : It is A request send by a
Child to parent or root. This message requests to allow the child to
join to a DODAG.
DAO-ACK : It is a response Send by a root or parent to the child ,
this response can either be a Yes or No. 37
Consistency check : deals with security , and We need not to know
39
13
DAG Construction
40
DAG Construction
1 1
A B C
1
1 1 - Et est maintenu en
1
4
permanence
F D E
1
1 1 1
1
G H I
41
MP2P Traffic
42
14
6LOWPAN
43
• Gestion de la fragmentation
44
La taille minimale d’une entête d’un paquet IPv6 est 40 octets
45
15
Aperçu sur l’IPv6
46
47
48
16
Motivations à la mise en place d’une sous-couche
6LoWPAN
49
49
Aperçu de 6LoWPAN
50
Aperçu de 6LoWPAN
51
17
Architecture des réseaux LoWPANs
52
53
54
18
Compression des entêtes
Ce mécanisme se base sur les trois observations suivantes :
Dans le cas d’une adresse autoconfigurée sans état les adresses source et
destination IPv6 sont redondantes avec les adresses de la couche MAC.
55
Protocol Overview
Each of these protocols is widely adopted
19
Protocol Overview
MQTT
Origin of MQTT
MQTT was created in 1999 by two engineers — Andy
Stanford-Clark (IBM) and Arlen Nipper (Eurotech).
They had to invent a new protocol for connecting oil
pipelines over unreliable, satellite networks.
The motivation was to create a lightweight and bandwidth-
efficient protocol that was data agnostic with support for
multiple levels of Quality of Service (QoS)
In 2011, IBM and Eurotech donated MQTT to the proposed
Eclipse project called Paho.
In 2013, it was submitted to OASIS for standardization. The
latest version of the protocol specification, 3.11 has become
an OASIS standard.
59
60
20
MQTT
It is very light weight and binary protocol, which excels
when transferring data over the wire in comparison to
protocols like HTTP, because it has only a minimal packet
overhead.
Another important aspect is that MQTT is extremely easy
to implement on the client side. This fits perfectly for
constrained devices with limited resources.
MQTT is quickly becoming the most preferred protocol for
connecting devices to the cloud
Enterprise cloud platforms such as Amazon Web Services,
Microsoft Azure, and IBM Watson expose their IoT PaaS
through MQTT
61
Terminology of MQTT
Terminology of MQTT
Broker –
The broker is the software that receives all the messages from the
publishing clients and sends them to the subscribing clients.
It holds the connection to persistent clients. Since the broker can
become the bottleneck or result in a single point of failure, it is often
clustered for scalability and reliability.
It is up to the implementors to decide how to create a scalable broker
layer. Some of the commercial implementations of MQTT brokers
include Hive , Xively, AWS IoT, and Loop.
Topic –
A topic in MQTT is an endpoint to that the clients connect. It acts as the
central distribution hub for publishing and subscribing messages.
In MQTT, a topic is a well-known location for the publisher and
subscriber. It’s created on the fly when either of the clients establish the
connection with the broker.
63
21
Terminology of MQTT
Topics are simple, hierarchical strings, encoded in UTF-8, delimited by a /
For example : -building1/room1/temperature and
- building1/room1/humidity are valid topic names.
Subscribers can choose to subscribe to a specific topic or all the subtopics
through wildcards.
A subscription to building1/+/temperature will automatically subscribe to
the temperature topic of all the rooms in the building.
Similarly, building1/#/ will match all the topics available under building1.
Refer to the MQTT specification for more details on the wildcards.
Connection –
MQTT can be utilized by clients based on TCP/IP.
The standard port exposed by brokers is 1883, which is not a secure port.
Those brokers who support TLS/SSL typically use port 8883.
For secure communication, the clients and the broker rely on digital
certificates. AWS IoT is one of the secure implementations of MQTT, which
requires the clients to use the X.509 certificates. 64
MQTT
65
MQTT Example
22
MQTT-SN
Even though MQTT is designed to be lightweight, it has two drawbacks
for very constrained devices.
Every MQTT client must support TCP and will typically hold a
connection open to the broker at all times. For some environments
where packet loss is high or computing resources are scarce, this is a
problem.
MQTT topic names are often long strings which make them impractical
for 802.15.4.
Both of these shortcomings are addressed by the MQTT-SN protocol,
which defines a UDP mapping of MQTT and adds broker support for
indexing topic names.
67
68
Application 2 (1)
69
23
Avantages
Conçu pour M2M, IoT
Facilement mappé sur HTTP
Compatible avec les infrastructures Proxy
Découverte et observation des ressources
Faible surcharge d'entête
Échange de messages sans état en asynchrone
Transport UDP avec une couche application unicast fiable
et le support du multicast
Support de différents types de contenus
21/23
70
Limitations
Connexion sécurisée de bout en bout requise pour le
mappage CoAP/ HTTP sur un proxy à l'aide de DTLS / TLS
Sécurisation des communications multicast
La sémantique devrait être standardisée
La mise en cache des demandes devrait également être
autorisée
71
24