SlideShare uma empresa Scribd logo
1 de 176
SNS COLLEGE OF TECHNOLOGY
Coimbatore-35.
An Autonomous Institution
COURSE NAME : Internet of Things
III YEAR/ V SEMESTER
UNIT – III Evolving IoT Standards and Protocols
Topic: IPV6 Routing Protocol for RPL
Dr.K.Sangeetha
HoD
Department of Computer Science and Engineering
• The any-to-any paradigm
Art: Any pair of global addresses can reach one another
IoT: Many devices of all sorts, no hotfixes
Corridors to the cloud?
• The end-to-end paradigm
Art: Intelligence at the edge, dumb routing nodes
Infinite bandwidth to all powerful clusters?
• The best-effort paradigm
Art: Stochastic packet distribution and RED
Can we make the whole Internet deterministic?
2
Trillion devices in the Internet
The core technologies will not change
Leakless Autonomic Fringe
Leakless Route Projection
Million devices in a Subnet
New models for the subnet protocols
IPv6 ND, RPL, Service Discovery …
Fiber + Copper + Wi-Fi Backbone
Femto + 802.11 + 802.15.4 + … Access
Unhindered Mobility
Location / ID Separation (LISP, NEMO)
10’s
of K
3
Data: Capillary Wireless
Acquisition of large amounts
of live Big Data
Information: DiM/Fog to
add descriptive meta-tags,
allowing for compression
and correlation
Knowledge: Prediction
from self-learned models
and Knowledge Diffusion
Wisdom: Machine Learnt
Expertise, auto-Generating
Prescriptions and Actionable
Recommendations
(Data)
ACQUISITION
(Knowledge)
DIFFUSION
(Wisdom)
OPEN LOOP
(Information)
AGGREGATION
5G
femtocell Data in
Motion / Fog
Learning
Machines
/ Cloud
6TiSCH
4
Time Sensitive Networking (TSN)
For traffic known a priori (control loops…)
Time Synchronization and Global Schedule
NP-complete optim. problem => centralized computation
Fully controlled local network
5
We are in for a change:
Basic Internet structures and expectations reconsidered
Revising classical end-to-end and any-to-any
Revising best effort to new levels of guarantees
New function placement, new operations
Impacts network, transport, security models
6
Why Standards?
 Developing IP/routing/transport/web protocols subsets that scale down to IOT
devices; specifically, lightweight routing protocols for the IoT;
 Describing architectures that employ gateways and middleware;
 Developing mobility management;
 Internetworking of IoT things;
 Lightweight implementations of cryptographic stacks; and building a suitable
 security infrastructure: end-to-end security capabilities for the IoT things;
 Developing standards for applications, specifically, data formats; and
 Discouraging on domain-specific solutions.
7
• The Internet Engineering Task Force (IETF) IPv6 routing protocol for low
power and lossy networks (RPL)/routing over low power and lossy
networks(ROLL);
• IETF constrained application protocol (CoAP);
• IETF constrained RESTfull environments (CoRE);
• IETF IPv6 over low power WPAN (6LoWPAN);
• 3GPP MTC; and
• ETSI M2M. Recall that M2M involves communication without (or only
limited) human intervention where the human is not the input agent but
possibly (but not always) the output agent.
• For example, ETSI TS/TR 102 addresses M2M architecture and services
(e.g., smart metering, e-health, auto, and city).
8
9
10
(i)ETSI: for end-to-end framework for M2M;
(ii) 3GPP: to enable operators to support
services
(iii) IEEE: to optimize the radio access/physical
layer.
11
Open Standards
IEEE and LLNs
IETF and 6LoWPAN
Routing
Loopless structures
Forms of Routing Over Radios
12
RPL Concepts
DODAG and its maintenance
Instances and Objective Functions
RPL messages and modes
DIS and parent discovery
DIO and parent selection
DAO Storing mode and RPI
DAO Non storing mode and RH3
Data packets
Headers and Compression
13
The backbone router
Problem
High level exchanges
Deeper dive in flows
… Conclusion ?
14
Cheap Install
Deploying wire is slow and costly
Global Coverage
From Near Field to Satellite via 3/4G
Everywhere copper/fiber cannot reach
Cheap multipoint access
New types of devices (Internet Of Things)
New usages (X-automation, Mobile Internet)
15
LLNs comprise a large number of highly constrained
devices (smart objects) interconnected by
predominantly wireless links of unpredictable quality
LLNs cover a wide scope of applications
Industrial Monitoring, Building Automation, Connected Home,
Healthcare, Environmental Monitoring, Urban Sensor
Networks, Energy Management, Asset Tracking,
Refrigeration
Several IETF working groups and Industry Alliance
addressing LLNs
IETF - CoRE, 6Lowpan, ROLL
Alliances - IP for Smart Objects Alliance (IPSO)
World’s smallest web server
16
LLNs operate with a hard, very small bound on state
LLNs are optimised for saving energy in the majority of cases
Traffic patterns can be MP2P, P2P and P2MP flows
17
Typically LLNs deployed over link layers with restricted frame-
sizes
Minimise the time a packet is enroute (in the air/on the wire) hence the
small
frame size
The routing protocol for LLNs should beadapted for such links
LLN routing protocols must consider efficiency versus generality
Many LLN nodes do not have resources to waste
IEEE Wireless Standards
802.11 Wireless
LAN
802.15 Personal
Area Network
802.16 Wireless
Broadband Access
802.22 Wireless
Regional Area Network
WiFi
802.11a/b/g/n/ah
IEEE 802
LAN/MAN
802.15.1
Bluetooth
802.15.2
Co-existence
802.15.3
High Rate WPAN
802.15.4
Low Rate WPAN
802.15.5
Mesh Networking
802.15.6 Body Area
Networking
802.15.7 Visible
Light
Communications
802.15.4e
MAC
Enhancements
802.15.4f
PHY for RFID
802.15.4g
Smart Utility Networks
TV White Space PHY
15.4 Study Group
802.15.4d
PHY for Japan
802.15.4c
PHY for China
• Industrial strength
• Minimised listening costs
• Improved security
• Improved link reliability
• Support smart-grid networks
• Up to 1 Km transmission
• >100Kbps
• Millions of fixed endpoints
• Outdoor use
• Larger frame size
• PHY Amendment
• Neighborhood Area Networks
TSCH
Amendments retrofitted in
802.15.4-2015
18
• 802.15.4u – High Rate PHY
2 Mb/s backward compatible with original 250 kb/s PHY in 2450 MHz band
• 802.15.9 – KMP (Key Management Protocol)
• 802.15.10 – L2R (Layer 2 Routing Mesh)
• 802.15.12 – Study Group for ULI project
(From Pat Kinney) 19
Operates at Layer 2
Star Topology
R
F R
P
R F
All devices communicate to
PAN co-ordinator which
uses mains power
Other devices can be
battery/scavenger
Mesh Topology
F R
F P
F
F F
R R
Devices can communicate
directly if within range
Cluster Tree
R R
R F F
R P
F F
R R
Higher layer protocols like
RPL may create their own
topology that do not follow
802.15.4 topologies
Single PAN co-ordinator exists for all topologies
20
Designed for low bandwidth, low transmit power, small frame size
More limited than other WPAN technologies such as Bluetooth
Basic packet size is 127 bytes (802.15.4g is up to 2047 bytes) (Smaller packets, less errors)
Transmission Range varies (802.15.4g is up to 1km)
Fully acknowledged protocol for transfer reliability
Data rates of 851, 250, 100, 40 and 20 kbps (IEEE 802.15.4-2011 05-Sep-2011)
Frequency and coding dependent
Two addressing modes; 16-bit short (local allocation) and 64-bit IEEE (unique global)
Several frequency bands (Different PHYs)
Europe 868-868.8 MHz – 3 chans , USA 902-928 MHz – 30 chans, World 2400-2483.5 MHz –
16 chans
China - 314–316 MHz, 430–434 MHz, and 779–787 MHz Japan - 920 MHz
Security Modes: None, ACL only, Secured Mode (using AES-CCM mode)
802.15.4e multiple modes including Time Synchronized Channel Hopping (TSCH)
21
• Specifies PHY and MAC only
• Medium Access Control Sub-Layer (MAC)
Responsible for reliable communication between two devices
Data framing and validation of RX frames
Device addressing
Channel access management
Device association/disassociation
Sending ACK frames
• Physical Layer (PHY)
Provides bit stream air transmission
Activation/Deactivation of radio transceiver
Frequency channel tuning
Carrier sensing
Received signal strength indication (RSSI)
Link Quality Indicator (LQI)
Data coding and modulation, Error correction
Physical Layer
(PHY)
MAC Layer
(MAC)
Upper Layers
(Network & App)
22
Amendment to the 802.15.4-2006 MAC needed for the applications served by
23
802.15.4f PHY Amendment for Active RFID
802.15.4g PHY Amendment for Smart Utility Networks
All retrofitted in new revision IEEE 802.15.4-2015
initially for Industrial applications (such as those addressed by wiHART and the ISA100.11a standards)
Security: support for secured ack
Low Energy MAC extension
Coordinated Sampled Listening (CSL)
Channel Hopping
Not built-in, subject to vendor design. Open standard work started at IETF with 6TiSCH
New Frame Types
Enhanced (secure) Acknowledgement (EACK)
Enhanced Beacon and Beacon Request (EB and EBR)
Optional Information Elements (IE)
Full Function Device (FFD)
Can operate as a PAN co-ordinator (allocates local addresses, gateway to
other PANs)
Can communicate with any other device (FFD or RFD)
Ability to relay messages (PAN co-ordinator)
Reduced Function Device (RFD)
Very simple device, modest resource requirements
Can only communicate with FFD
Intended for extremely simple applications
P
R F
F
R
R
24
25
26
27
Application
General
Internet
Ops and Mgmt
Routing
Security
Reuse work done here where possible
Transport
Core
6lo
ROLL
IETF LWIG
Constrained Restful Environments
Charter to provide a framework for resource-oriented applications
intended to run on constrained IP networks.
IPv6 over Networks of Resource-constrained Nodes
(succeeds 6LoWPAN)
Charter is to develop protocols to support IPv6 IoT networks.
Routing over Low Power Lossy Networks
Charter focusses on routing issues for low power lossy networks.
Lightweight Implementation Guidance
Charter is to provide guidance in building minimal yet interoperable IP-
capable devices for the most constrained environments.
6TiSCH
IPv6 over TSCH
Charter is to develop best practice and Architecture for IPv6 over
802.15.4 TSCH.
28
• Gateways vs. end-to-end principle
• Hindrance from proprietary technologies
• Vertical solutions, hard to generalize to large
scale driving costs down
=> We’re still mostly there today (eg 1552S vs. WU)
• IP to the device justifies Cisco technology near the
device
=> A powerful argument ever since
29
Little work on adapting IPv4 to radios
Rather adapt radios to IPv4 e.g. WIFI infrastructure mode
« Classical » IPv6
Large, Scoped and Stateful addresses
Neighbor Discovery, RAs (L3 beacons)
SLAAC (quick and scalable)
Anycast Addresses
IPv6 evolution meets Wireless:
Mobile Routers (LISP, NEMO) (Proxy) MIPv6
6LoWPAN 6TiSCH ROLL/RPL CoAP
ISA100.11a Thread ZigBee/IP
30
• No IP at all is sensors, deemed impossible, too expensive
• Proprietary WSN technologies
And then …
• IEEE 802.15.4-2003 ratified December 14, 2004
• ZigBee 2004 Specification 1.0 on June 13, 2005
And then …
• Pioneer work From Adam Dunkels, and then others:
http://dunkels.com/adam/ewsn2004.pdf
http://www.eecs.harvard.edu/~mdw/course/cs263/papers/ipv6-sensys08.pdf
31
• IPv6 to the end node however small
• IETF WG formed in March 2005
• Chartered for IPv6 over LoWPAN (802.15.4)
• Now closed, replaced by 6lo
• Defined:
Header Compression (HC) RFC 4944 and RFC 6282
Fragmentation and mesh header (mostly unused)
Registration-based IPv6 Neighbor Discovery (ND) RFC 6775
32
• Standards such as Zigbee(IP), ISA100.11a and WirelessHART all
define whole stacks and application profiles whereas 6LoWPAN is
(just) an adaptation layer for IP (version 6)
• ISA100.11a <= 6LoWPAN Header Compression (HC) RFC 6282
• ZigbeeIP & Thread use 6LoWPAN HC + Neighbor Discovery (ND)
• Yet 6LoWPAN marks the transition for WSN towards IP
• So the popular image is that 6LoWPAN means IP in sensors
• 6LoWPAN failed to deliver routing. ROLL WG took over with RPL
33
• Generalize to all technologies, provide generic abstraction
• 6lo now chartered to define IPv6 over IOT Links
• Current work on:
34
• 6lo also handles 6LoWPAN maintenance e.g. as stimulated
by 6TiSCH to improve 6LoWPAN - RPL interworking
http://tools.ietf.org/html/draft-ietf-6lo-btle
http://tools.ietf.org/html/draft-ietf-6lo-dect-ule
http://tools.ietf.org/html/draft-brandt-6man-lowpanz
http://tools.ietf.org/html/draft-popa-6lo-6loplc-ipv6-over-ieee19012-networks
http://tools.ietf.org/html/draft-hong-6lo-ipv6-over-nfc
http://tools.ietf.org/html/draft-ietf-6lo-6lobac
http://tools.ietf.org/html/draft-delcarpio-6lo-wlanah
http://tools.ietf.org/html/draft-wang-6tisch-6top-sublayer
Bluetooth Low Energy
DECT Ultra Low Energy
Zwave
PLC
Near Field Comms
BACNET
802.11ah
802.15.4e TSCH
• 6TiSCH also specifies an IPv6-over-foo for 802.15.4e TSCH
but does not update 6LoWPAN (that’s pushed to 6lo).
Rather 6TiSCH defines the missing Data Link Layer.
• The 6TiSCH architecture defines the global Layer-3 operation.
• It incorporates 6LoWPAN but also RPL, DetNet (PCE), COMAN,
SACM, CoAP, DICE …
=> Mostly NOT specific to 802.15.4e but for the deterministic tracks
• Thus 6TiSCH has to make those components work together
E.g. of work being pushed to other WGs:
https://tools.ietf.org/html/draft-ietf-6lo-routing-dispatch
https://tools.ietf.org/html/draft-ietf-6lo-backbone-router
35
TimeFrame 802.15.4 Other IoT links
< 2004 Non IP (zigbee…) Non IP (BACNet, Zwave…)
< 2011 IPv6 via 6LoWPAN HC Non IP
< 2013 6LoWPAN HC + 6LoWPAN ND IPv6 via 6LoWPAN HC (ongoing)
< 2016 6LoWPAN + RPL stack ( that’s 6TiSCH ! ) 6LoWPAN HC + ND
< 2020 6LoWPAN + RPL stack (that will be 6IoT, generalizing 6TiSCH stack on all LLN links)
< 2022 Deterministic capabilities, Call Admission control and Traffic Engineering
36
Notes:
• In draft-thubert-6lo-rfc6775-update-reqs we claim that Low Power Wi-Fi is an LLN link
• The 6IoT architecture generalized from 6TiSCH architecture to apply on Wi-Fi ad-hoc mode as well
Simple MAC allows coexistence with other network protocols over same link, similar to Ethernet, although not seen
in deployment
DST
PAN ID
DST MAC
Address
SRC
PAN ID
SRC MAC
Address
Preamble SPD
PHY
Header
Frame
Control
Data
Seq.
Nbr
Addressing
Auxiliary
Security
Header
IEs
Header &
Payload
DSP Payload FCS
Mesh
Address
6LoWPAN
Compressed Hdr
Payload
0 0 X
0 1
1 0
1 1
Not a LoWPAN frame
LoWPAN IPv6 addressing Hdr
LoWPAN mesh Hdr
LoWPAN fragmentation Hdr
Frag.
6LoWPAN
Compressed Hdr
Payload
Mesh
Address
Frag.
6LoWPAN
Compressed Hdr
Payload
DSP + IPHC
Other 6LoWPAN
Hdr field
Payload
Header Dispatch (DSP) – understand
what is coming
Mesh + Fragmentation
Frame Fragmentation
Mesh (L2 Routing)
6LoWPAN
37
0 1 1 TF NH HLIM CID SAC SAM M DAC DAM
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
TF 2 bits Traffic Class and Flow Label
NH 1 bit Next Header
HLIM 2 bits Hop Limit
CID 1 bit Context Identifier Extension
SAC 1 bit Source Address Context
SAM 2 bits Source Address Mode
M 1 bit Multicast Address Compression
DAC 1 bit Destination Address Context
DAM 2 bits Destination Address Mode
Addressing
38
6LR 6LBR
LP Node
NS (ARO)
DAR (ARO)
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
SRC = LPN_ll
DST = 6LR_ll
TGT = ??
SLLA = LPN
UID = LPN
Check Collision
of binding state
(DAD)
NA (ARO, s=1)
DAC (ARO, s=0,1==dup)
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
SRC = 6LR_ll
DST = LPN_ll
TGT = LPN
TLLA = LPN
UID = LPN
0 1 2 3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length = 2 | Status | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Registration Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
+
|
|
+
|
EUI-64
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
A registration mechanism
For duplicate detection
Goal to save multicast
Address Registration Option
Radio
Mesh
Radio 1 Hop
39
Scalable and Multi-Link
Deterministic e2e
IP guard (admin knows what’s where)
=> Authoritative Registrar(s)
Backbone Routers
RPL root, ND proxy
Legacy IPv6 devices
Authoritative
Registrar BR
Authoritative
Registrar / 6L
Intermediate
Registrar / 6LR
Intermediate Registrar
option. ND proxy
40
Backbone router
(ND proxy)
6LoWPAN is an open standard, NOT a silo’ed solution
6LoWPAN is how you do IPv6 over low power networks
Provides an Adaptation Layer and a novel IPv6 Neighbor Discovery
6LoWPAN started small with the 802.15.4-2003 WPAN
Updated under Cisco lead to fit in ISA100.11a
Now generalizing on all LLN technologies with IETF 6lo GW
41
42
Most classical routing structure
Typically what Internet Gateway Protocols
(IGPs) Build or each reachable destination
Only thing Link State builds, though
Distance Vector has feasible successors
Must be reconstructed upon connectivity
loss, service is interrupted
FRR techniques must be added (MRT, LFA
with SR …) on top
No inner load balancing capabilities
Walkable structure (e.g. depth first)
ROOT
4
0
1
3
1 1
2
2
2
2
2
3
3
3
3
3
2
4
55
0
6
44 5
4
ROOT
43
In the context of routing, a Directed Acyclic
Graph (DAG) is formed by a collection
of vertices (nodes) and edges (links).
Each edge connecting one node to another
(directed) in such a way that it is not
possible to start at Node X and follow a
directed path that cycles back to Node X
(acyclic).
Greedy => Not all nodes have 2 solutions
even in biconnected networks
A Destination Oriented DAG (DODAG) is a
DAG that comprises a single root node.
Here a DAG that is partitioned in 2 DODAG
Clusterhead
5
4
0
1
3
1 1
2
2
2
2
2
3
3
3
3
3
3
2
4
5
0
6
44 5
4
44
• In Green: A’s subDAG.
Impacted if A’s connectivity is
broken
Domain for routing recovery
• In Red: B’s fanout DAG
(or reverse subDAG)
Potential SPAN on B’s DAO
Thus potential return paths
Fanout must be controlled to
limit intermediate states
Clusterhead
4
0
1
3
1 1
2
2
2
2
3
3
3
3
3
3
2
4
55
0
6
44 5
4
2A
45
B
Clusterhead
0
1
1
1
2
2
2
2
2
3
3
3
3
3
3
2
3
5
4
4
4
4
e.g. ARC of siblings
Allows more alternates
ARCs and walkable structures in
general are walked with no routing
progress
Routing between DAGs of ARCs
Forwarding over DAG AND ARCs
Reduces congestions of upper links of
the DAG
Still LORA for P2P
IGP subarea (bidirectional)
Link selected and oriented by TD
Potential link
46
47
• Hidden terminal
48
• Interference domains grows faster that range
• Density => low power => multihop => routing
Aka
Stateful vs.
On-demand routing
Note: on-demand breaks control vs. Data plane separation
P2P-RPL
RIP
IS-IS
49
Aka Dijkstra vs. Bellman-Ford
LS requires full state and convergence
Every node draws a same graph
Then run teh shortest path first algorithm to get to all other nodes
Then associates node with reachable destinations
LS can be very quiet on stable topologies
DV learns costs to destination asynchronously per destination
Nodes advertise their distance to a destination
Recursively other nodes learn their best successor
and compute their own cost
DV hides topolical complexities and changes
RIP
IS-IS
50
Optimized Routing Approach (ORA) spans
advertisements for any change
Routing overhead can be reduced if
stretch is allowed: Least Overhead
Routing Approach (LORA)
=> (Nothing to do with the LoRa LPWA
protocol !!!)
For instance Fisheye and zone routing
provide a precise routing when closeby
and sense of direction when afar
51
52
54
1000*scale => No leak in Internet
=> Opaque operations
Reachability => Radio (IEEE)
=> IPv6 (IETF)
=> spatial reuse
Addressing
Density
=> Routing
No preexisting physical topology
Can be computed by a mesh under
protocol, but…
Else Routing must infer its topology
Movement
natural and unescapable
Yet difficult to predict or detect
55
56
Potentially Large Peer Set
Highly Variable Capabilities
Selection Per Objective
Metrics (e.g. RSSI, ETX…)
L3 Reachability (::/0, …)
Constraints (Power …)
Smart object are usually
Small & Numerous
« sensor Dust »
Battery is critical
Deep Sleep
Limited memory
Small CPU
Savings are REQUIRED
Control plane
Data plane (Compression)
56
Neither transit nor P2P
More like a changing NBMA
a new paradigm for routing
Changing metrics
(tons of them!)
(but no classical cost!)
Inefficient flooding
Self interfering
Quality of Service ?
Call Admission Control => TSCH
57
Stretch vs. Control
Optimize table sizes and updates
Optimized Routing Approach (ORA) vs
Least Overhead Routing Approach (LORA)
on-demand routes (reactive)
Forwarding and retries
Same vs. Different next hop
Validation of the Routing plane
Non Equal Cost multipath
Directed Acyclic Graphs (DAG) a MUST
Maybe also, Sibling routing
Objective Routing
Weighted Hop Count the wrong metric
Instances per constraints and metrics
58
60
Pervasive Access
Satellite
3/4G coverage
802.11, 802.15.4
Always Reachable
at a same identifier (MIPv6, LISP*…)
Preserving connections
Or not ? (REST**, DTN***)
Fast roaming
Within technology (L2)
Between Technologies (L3)
* Locator/Identifier Separation Protocol
** Representational state transfer
*** Delay-Tolerant Networking
A radio abstraction
802.21, L2 triggers, OmniRAN
Roaming within and between
technologies
Deterministic Properties
A subnet model for IPv6
NBMA, interference awareness
Federation via backbone / backhaul
Broadcast and look up optimization
Large scale
non-aggregatable
numbering and naming schemes
60
RPL (RFC 6550 and then more)
61
Dynamic Topologies
Peer selection
Constrained Objects
Fuzzy Links
Routing, local Mobility
Global Mobility
Low Power Lossy Networks Issues Addressed
in RPL ?
62
Minimum topological awareness
Data Path validation
Non-Equal Cost Multipath Fwd
Instantiation per constraints/metrics
Autonomic Subnet G/W Protocol
Optimized Diffusion over NBMA
RPL is an extensible proactive IPv6 DV protocol
Supports MP2P, P2MP and P2P
P2P reactive extension
RPL specifically designed for LLNs
Agnostic to underlying link layer technologies (802.15.4, PLC, Low Power WiFi)
63
65
Distance Vector as opposed to Link State
Knowledge of SubDAG addresses and children links
Lesser topology awareness => lesser sensitivity to change
No database Synchronization => Adapted to movement
Optimized for Edge operation
Optimized for P2MP / MP2P, stretch for arbitrary P2P
Least Overhead Routing Approach via common ancestor
Proactive as opposed to Reactive
Actually both with so-called P2P draft
Datapath validation
65
In the context of routing, a DAG is formed by a collection of vertices (nodes) and edges (links), each edge connecting
one node to another (directed) in such a way that it is not possible to start at Node X and follow a directed path that
cycles back to Node X (acyclic).
66
5
3
5
4
DODAG Root
Identified by DODAG ID
(Node IPv6 address)
RPL Instance
Consists of one or more DODAGs sharing SAME service type
(Objective Function)
Identified by RPL INSTANCE ID
Direction Oriented DAG (DODAG)
Comprises DAG with a single root
Node
(OF
configured)
Rank
Rank = n
Rank < n
Rank
decreases
UP
(DAO
Messages)
Towards
DODAG
Root
2
1
5
4
3
3
DODAG
parent
to child
“5”s
2
DODAG Root
Rank is always “1”
(Typically an LBR - LLN
Border Router)
1
3
2
Sub-
DODAG
DODAG
Rank > n
Rank = n
Towards
DODAG
leafs
DOWN
(DIO
Messages)
Rank
increases
Non-LLN
Network
(IPv6 Backbone)
Siblings
4
4
DODAG
Sensor
Node
67
At a given point of
time connectivity is
as illustrated and
rather fuzzy
Radio link
6
1st pass (DIO)
Establishes a logical DAG topology
Trickle Subnet/config Info
Sets default route
Self forming / self healing
2nd pass (DAO)
paints with addresses and prefixes
Any to any reachability
But forwarding over DAG only
saturates upper links of the DAG
And does not use the full mesh
properly Link selected as parent link
Potential link
Clusterhead
0
1
1
1
4
4
4
4
6
3
3
3
3
3
2
2
2
2
2
2
5
5
5
69
: : A new DODAG iteration
Rebuild the DAG … Then repaint the prefixes upon changes
A new Sequence number generated by the root
A router forwards to a parent or as a host over next iteration
: find a “quick” local repair path
Only requiring local changes !
May not be optimal according to the OF
Moving UP and Jumping are cool.
Moving Down is risky: Count to Infinity Control
7
A’s link to root fails
A loses connectivity
Either poisons or detaches a subdag
In black:
the potentially impacted
zone
That is A’s subDAG
Potential link
Link selected as parent link
Clusterhead
0
6
A
1
1
1
3
3
3
3
3
2
2
2
2
2
2
5
5
5
4
4
4
4
71
B can reparent a same
Rank so B’s subDAG is safe
The rest of A’s subDAG is
isolated
Either poison ar build a
floating DAG as illustrated
In the floating DAG A is root
The structure is preserved
Link selected as parent link
Potential link
Clusterhead
0
1
1
4
4
4
4
6
3
3
3
2
2
2
2
2
1
5
5
5
A
2 B
0
1
72
Once poisined nodes are
identified
It is possible for A to reparent
safely
A’s descendants inherit from Rank
shift
Note: a depth dependent timer
can help order things
Potential link
Link selected as parent link
Clusterhead
0
1
1
2
4
4
4
4
6
3
3
3
4
4
2
2
2
2
3
3
5
5
5
A
73
A new DAG iteration
In Green, the new DAG
progressing
Metrics have changed, the DAG
may be different
Forwarding upwards traffic
from old to new iteration is
allowed but not the other way
around
Potential link
Link selected as parent link
Clusterhead
0
1
1
1
4
4
4
4
6
3
3
3
3
3
3
2
2
2
2
2
5
5
5
74
1) A root has a Rank of 1. A
router has a Rank that is higher
than that of its DAG parents.
2)A Router that is no more
attached to a DAG MUST poison
its routes, either by advertising
an INFINITE_RANK or by
forming a floating DAG.
3) A Router that is already
part of a DAG MAY move
at
any time in order to get closer
to the root of its current DAG
in order to reduce its own Rank
4) But the Router MUST NOT move
down its DAG
– but under controlled limits
whereby the router is allowed a
limited excursion down
75
5) A Router MAY jump from its
current DAG into any different
DAG at any time and whatever
the Rank it reaches there,
unless it has been a member of
the new DAG in which case rule
4) applies
76
RPL is objective driven
e.g. reach a certain gateway, concept of a goal
Instances are built to reach certain goals
Instance ID tagged in packets
RPL is generic and extensible
RFC 6550 is a core distance vector functionality
Objective functions plug in to adapt to use case / need
Objective functions enforce policies
7
Extend the generic behavior
For a specific need / use case
Used in parent selection
Contraints
Policies
Metrics
Position in the DAG
Computes the Rank increment
Based on hop metrics
Do NOT use OF0 for adhoc radios!
(OF 0 uses traditional weighted hop count)
7
Clusterhead
4
A second root is available
(within the same instance)
The DAG is partitioned
1 root = 1 DODAG
1 Node belongs to 1 DODAG
(at most, per instance)
Nodes may JUMP
from one DODAG to the next
Nodes may MOVE
up the DODAG
Going Down MAY cause loops
May be done under CTI control
Link selected and oriented by DIO
Potential link
0
1
3
1 1
2
2
2
2
2
3
3
3
3
3
3
2
4
4
55
0
6
4 5
4
7
Running as Ships-in-the-night
1 instance = 1 DAG = 1 OF
A DAG implements a set of
constraints
Multiple instances may be serving
different Objective Functions
=> For different optimizations
Forwarding is along a DODAG
=> Provides isolation like a vlan
0
1
1
1
2
2
2
2
2
3
3
3
3
3
3
2
3
5
4
4
4
4
Clusterhead
Constrained instance
Default instance
Potential link
A
8
81
0 1 2 3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ICMP Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
.
.
|
.
.
Base Object
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
.
.
|
.
.
Option(s)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0x00 (DIS) DODAG
Information Solicitation
0x01 (DIO) DODAG
Information Object
0x02 (DAO) Destination
Advertisement Object
0x03 (DAO-ACK) Destination
Advertisement Object
Acknowledgment
82
155 == RPL control message
83
Flooding interferes with itself
B
C
D
A
8
Hidden node/terminal/station
Suppression of redundant copies
Do not send copy if K copies received
Jitter for Collision Avoidance
First half is mute, second half is jittered
Exponential backoff
Double I after period I, Reset I on inconsistency
8
Node Metrics Link Metrics
Node State and Attributes Object
Purpose is to reflects node workload (CPU,
Memory…)
“O” flag signals overload of resource
“A” flag signal node can act as traffic
aggregator
Throughput Object
Currently available throughput (Bytes per
second)
Throughput range supported
Node Energy Object
“T” flag: Node type: 0 = Mains, 1 = Battery, 2 =
Scavenger
“I” bit: Use node type as a constraint
(include/exclude)
“E” flag: Estimated energy remaining
Latency
Can be used as a metric or constraint
Constraint - max latency allowable on path
Metric - additive metric updated along path
Hop Count Object
Can be used as a metric or constraint
Constraint - max number of hops that can be
traversed
Metric - total number of hops traversed
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
For Your
Reference
86
0 1 2 3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RPLInstanceID |Version Number | Rank |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|G|0| MOP | Prf | DTSN | Flags | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
+
|
+
|
+
|
|
+
|
+
|
+
|
DODAGID
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option(s)...
+-+-+-+-+-+-+-+-+
87
0 1 2 3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RPLInstanceID |Version Number | Rank |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|G|0| MOP | Prf | DTSN | Flags | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
+
|
+
|
+
|
|
+
|
+
|
+
|
DODAGID
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option(s)...
+-+-+-+-+-+-+-+-+
88
+ +- +
| MOP | Description |
+ +- +
| 0 | No Downward routes maintained by RPL |
| 1 | Non-Storing Mode of Operation |
| 2 | Storing Mode of Operation with no multicast support |
| 3 | Storing Mode of Operation with multicast support |
| | |
| | All other values are unassigned |
+ +- +
89
90
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Reserved | Option(s)...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 13: The DIS Base Object
Options:
0x00 Pad1
0x01 PadN
0x07 Solicited Information
Goal: ask routers around to generate DIO
9
0 1 2 3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0x07 |Opt Length = 19| RPLInstanceID |V|I|D| Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
DODAGID
|
+
|
+
|
+
|
|
+
|
+
|
+
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version Number |
+-+-+-+-+-+-+-+-+
92
draft-zhong-roll-dis-modifications
9
Based on earlier work draft-goyal-roll-dis-modifications
New Flags to control
Trickle behavior
response mode Unicast vs. Broadcast
Metric Container
for constraints on the responder
Response Spreading Option
to spread responses over an interval
94
0 1 2 3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RPLInstanceID |K|D| Flags | Reserved | DAOSequence |
95
+-+-+-+-+-+-+-+-+-+-
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
+ +
| |
+ DODAGID* +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option(s)...
+-+-+-+-+-+-+-+-+
A
B
C D
Parent is default GW, advertizes owned PIO (L bit on)
RPL Router autoconfigures Addr from parent PIO
RPL Router advertises Prefix via self to parent
RPL Router also advertises children Prefix
B:
::/0 via A::A
A:: connected
B:: connected
C:: via B::C
D:: via B::D
C:
::/0 via B::B
B:: connected
C:: connected
A:
A:: connected
B:: via A::B
C:: via A::B
D:: via A::B
D:
::/0 via B::B
B:: connected
D:: connected
A::B
B::C B::D
B::B
A::A
96
A
B
C D
Parent is default GW, propagates root PIO (L-bit off)
Parent Address in the PIO (with R bit)
RPL Router autoconfigures Address from parent PIO
RPL Router advertises Address via self to parent
RPL Router also advertises children Addresses
B:
::/0 via A::A
A::A connected
A::B self
A::C connected
A::D connected
A:: ~onlink
C:
::/0 via A::B
A::B connected
A::C self
A:: ~onlink
A:
A::A self
A::B connected
A::C via A::B
A::D via A::B
A:: ~onlink
D:
::/0 via A::B
A::B connected
A::D self
A:: ~onlink
A::B
A::C A::D
A::A
97
Control Information in Data Packets:
RPI in IPv6
Hop-By-Hop Header
Instance ID
Sender Rank
Direction (UP/Down)
Errors detected if:
- No route further down for packet going down
- No route for packet going down
- Rank and direction do not match
9
Down 'O': 1-bit flag indicating whether the packet is expected to progress Up or Down. A router sets the 'O' flag when the
packet is expected to progress Down (using DAO routes), and clears it when forwarding toward the DODAG root (to a
node with a lower Rank). A host or RPL leaf node MUST set the 'O' flag to 0.
Rank-Error 'R': 1-bit flag indicating whether a Rank error was detected. A Rank error is detected when there is a mismatch in
the relative Ranks and the direction as indicated in the 'O‘ bit. A host or RPL leaf node MUST set the 'R' bit to 0.
Forwarding-Error 'F': 1-bit flag indicating that this node cannot forward the packet further towards the destination. The 'F'
bit might be set by a child node that does not have a route to destination for a packet with the Down 'O' bit set. A host or
RPL leaf node MUST set the 'F' bit to 0.
RPLInstanceID: 8-bit field indicating the DODAG instance along which the packet is sent.
SenderRank: 16-bit field set to zero by the source and to DAGRank(rank) by a router that forwards inside the RPL network.
99
Encoding: RFC 6553 then 6LoRH
0 1 2 3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Type | Opt Data Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|O|R|F|0|0|0|0|0| RPLInstanceID | SenderRank |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (sub-TLVs) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ... -+-+-+
|1|0|0|O|R|F|I|K| 6LoRH Type=5 | Compressed fields |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ... -+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|0|0|O|R|F|1|1| 6LoRH Type=5 | SenderRank |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|0|0|O|R|F|1|0| 6LoRH Type=5 | SenderRank |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|0|0|O|R|F|0|1| 6LoRH Type=5 | RPLInstanceID | SenderRank |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|0|0|O|R|F|0|0| 6LoRH Type=5 | RPLInstanceID | Sender-...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 100
+- ... -+- ... -+-+-+-+-+- ... -+-+-+-+-+ ... -+-+-+-+-+-+-+-+-+-+-+...
|11110001| RPI-6LoRH | NH = 0
type 5 | 6LOWPAN-IPHC
| NH = 58 | ICMP message
| (ICMP) | (no compression)
|Page 1 |
+- ... -+- ... -+-+-+-+-+- ... -+-+-+-+-+ ... -+-+-+-+-+-+-+-+-+-+-+...
<- RFC 6282 ->
No RPL artifact
IPv6 header HbH header ICMP header ICMP Payload
RPL option
<=>
101
+- ... -+- ... -+-+-+-+- ... +-+-+-+-+-+-+-+-+-+- ... +-+-+-+-+-+...
|11110001| RPI-6LoRH | NH = 1 |11110|C| P | Compressed | UDP
|Page 1 | type 5 | 6LOWPAN-IPHC | UDP | | | UDP header |Payload
+- ... -+- ... -+-+-+-+- ... +-+-+-+-+-+-+-+-+-+- ... +-+-+-+-+-+...
<- RFC 6282 ->
IPv6 header HbH header UDP header UDP Payload
RPL option
<=>
102
103
A
B
C D
Parent is default GW, propagates root PIO (L-bit off)
Parent Address in the PIO (with R bit)
RPL Router autoconfigures Address from parent PIO
RPL Router advertises Address via Parent to Root
Root recursively builds a Routing Header back
B:
::/0 via A::A
A::A connected
A::B self
A:: ~onlink
C:
::/0 via A::B
A::B connected
A::C self
A:: ~onlink
D:
::/0 via A::B
A::B connected
A::D self
A:: ~onlink
Target A::C via
Transit A::B
A::B
A::C A::D
A::A
A: (root)
A::A self
A::B connected
A::C via A::B
A::D via A::B
A:: ~onlink
A::D via A::B connected
104
A
B
C D
Parent is default GW, advertizes owned PIO (L bit on)
RPL Router autoconfigures Address from parent PIO
RPL Router advertises Prefix via Address to Root
Root recursively builds a Routing Header back
B:
::/0 via A::A
A:: connected
B:: connected
C:
::/0 via B::B
B:: connected
C:: connected A: (root)
A:: connected
B:: via A::B
C:: via B::C
D:: via B::D
D:
::/0 via B::B
B:: connected
D:: connected
Target C::/ via
Transit B::C
D::3 via B::D via A::B connected
A::B
B::C B::D
B::B
A::A
D::3
105
Segments Left: 8-bit unsigned integer. Number of route segments remaining, i.e., number of explicitly listed
intermediate nodes still to be visited before reaching the final destination. The originator of an SRH sets this
field to n, the number of addresses contained in Addresses[1..n].
CmprI: 4-bit unsigned integer. Number of prefix octets from each segment, except than the last segment,
(i.e., segments 1 through n-1) that are elided. For example, an SRH carrying full IPv6 addresses
in Addresses[1..n-1] sets CmprI to 0.
CmprE: 4-bit unsigned integer. Number of prefix octets from the last segment (i.e., segment n) that are
elided. For example, an SRH carrying a full IPv6 address in Addresses[n] sets CmprE to 0.
106
Encoding: RFC 6554 then 6LoRH
0 1 2 3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CmprI | CmprE | Pad | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Routing Type3| Segments Left |
|
.
. Addresses[1..n]
|
.
.
.
|
.
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -+- -+ ... +- -+
| 6LoRH | Length of compressed
| Type | IPv6 address (bytes)
+-----------+---
| 0 |
| 1 |
| 2 |
| 3 |
|
+-
4 |
+-
|1|0|0| Size |6LoRH Type 0..4| Hop1 | Hop2 | | HopN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -+- -+ ... +- -+
Size indicates the number of compressed addresses
+- +- +
Packet source is reference for compressio
Different compressed size => multiple RH3-6LoRH
Placement first in the chain to be easily consumed as
we go (address coalescence)
107
+- ... -+- ... -+-+-+- ... -+-+-+-+-+ ... +-+-+-+-+-+-+ ... +-+-+...
|11110001|RH3(128bits)| RH3(3*16bits) |NH=1 |11110CPP| Compressed | UDP
|Page 1 | 6LoRH | 6LoRH |6IPHC| UDP | UDP header | Payload
+- ... -+- ... +-+-+-+- ... -+-+-+-+-+ ... +-+-+-+-+-+-+ ... +-+-+...
<- RFC 6282 ->
With RPL this is only when the source is the root
Note:
IPv6 header UDP header UDP Payload
<=>
Routing hdr Hop Hop Hop Dec.
108
Leaving the root:
Leaving A
Leaving B
C removes the header and the IP-in-IP if nothing else in IP-in-IP
B’s suffix
RH3-6LoRH Type 4
RH3-6LoRH Type 3
IPv6 Prefix B’s suffix
C’s suffix
A’s suffix
RH3-6LoRH Type 4 IPv6 Prefix C’s suffix
RH3-6LoRH Type 4
RH3-6LoRH Type 3
IPv6 Prefix
B’s suffix
A’s suffix
C’s suffix
Root = encaps B C = decaps Dest
A
1
•+- ... -+-+- ... -+-+-+-+-+ ... -+-+-+-+-+-+-+-+-+-+-+-+-+-+...
•|11110001| RH3(128bits)| RH3(2*16bits)| RFC 6282 Dispatch
+ LOWPAN_IPHC
•|Page 1 | 6LoRH type 4| 6LoRH Type 1 |
•+- ... -+- ... +-+-+-+- ... -+-+-+-+-+ ... -+-+-+-+-+-+-+-+-+-+-+...
• <- RFC 6282 ->
• + + +
• | Type | Size Unit |
• + + +
• | 0 | 1 |
• | 1 | 2 |
• | 2 | 4 |
• | 3 | 8 |
• | 4 | 16 |
• + + +
<=>
IPv6 header Routing header Hop Hop Hop Dec. Hdrs + Payload
110
RRRRRRRRRRRRRRRRRRRR
CCCCCCC
++
RRRRRRRRRRRRRCCCCCCC
RR…RRRR is reference address for compression, may be compressed or not
CCC…CC is compressed address, to shorter or same size as reference
RR…RRCCC…CC is the Coalesced address, same size as reference
1
Type 3 RH3-6LoRH Size = 0 AAAA AAAA AAAA AAAA
Type 1 RH3-6LoRH Size = 0 BBBB
Type 2 RH3-6LoRH Size = 1 CCCC CCCC
DDDD DDDD
Step 1 popping BBBB the first entry of the next RH3-6LoRH
Step 2 next is if larger value (2 vs. 1) the RH3-6LoRH is removed
Type 3 RH3-6LoRH Size = 0 AAAA AAAA AAAA AAAA
Type 2 RH3-6LoRH Size = 1 CCCC CCCC
DDDD DDDD
Step 3:
Type 3
recursion
RH3-6LoRH
ended,
Size =
coalescing BBBB with the
0 AAAA AAAA AAAA BBBB
first entry
Step 4: routing based on next segment endpoint to B 112
Type 3 RH3-6LoRH Size = 0 AAAA AAAA AAAA BBBB
Type 2 RH3-6LoRH Size = 1 CCCC CCCC
DDDD DDDD
Step 1 popping CCCC CCCC, the first entry of the next RH3-6LoRH
Step 2 removing the first entry and decrementing the Size (by 1)
Type 3 RH3-6LoRH Size = 0 AAAA AAAA AAAA BBBB
Type 2 RH3-6LoRH Size = 0 DDDD DDDD
Step 3: recursion ended, coalescing CCCC CCCC with the first entry
Type 3 RH3-6LoRH Size = 0 AAAA AAAA CCCC CCCC
Step 4: routing based on next segment endpoint to C
1
Type 3 RH3-6LoRH Size = 0
Type 2 RH3-6LoRH Size = 0
AAAA AAAA CCCC CCCC
DDDD DDDD
Step 1 popping DDDD DDDD, the first entry of the next RH3-6LoRH
Step 2 the RH3-6LoRH is removed
Type 3 RH3-6LoRH Size = 0 AAAA AAAA CCCC CCCC
Step 3: recursion ended, coalescing DDDD DDDDD with the first entry
Type 3 RH3-6LoRH Size = 0 AAAA AAAA DDDD DDDD
Step 4: routing based on next segment endpoint to D
114
Type 3 RH3-6LoRH Size = 0 AAAA AAAA DDDD DDDD
Step 1 the RH3-6LoRH is removed.
Step 2 no more header, routing based on inner IP header.
115
116
(Hateful stuff)
1
Only end points may add / remove headers
Some headers are mutable (and if they are recoverable they may be secured)
e.g. of mutable and partially recoverable is RPI (to secure the instance ID)
So IP in IP is required
If the packet leaves the RPL domain since HbH header must be removed
If the packet enters the RPL domain since HBH header or RH3 must be inserted
In non storing mode for a packet not going to or from the root (RPI to RH3
conversion at root).
https://tools.ietf.org/html/draft-robles-roll-useofrplinfo-02
Not a critical header, may be skipped so Length is in bytes. Placed last in the header chain (as of draft 04)
Root is reference for compressing the Encapsulator Address.
If the Length of an IP-in-IP-6LoRH header is exactly 1, then the Encapsulator Address is elided, which means that the
Encapsulator is a well-known router, in the case of RPL the root in a RPL graph.
When it cannot be elided, the destination IP address of the IP-in-IP header is transported in a RH3-6LoRH header as
the first address of the list.
With RPL, the destination address in the IP-in-IP header is implicitly the root in the RPL graph for packets going
upwards, and the destination address in the IPHC for packets going downwards. If the implicit value is correct, the
destination IP address of the IP-in-IP encapsulation can be elided.
118
Encoding: RFC 2460 then 6LoRH
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+
|1|0|1| Length | 6LoRH Type 6 | Hop Limit | Encaps. Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+
MAC RH3-6LoRH* RPI-6LoRH IP-in-IP-LoRH IPHC blah optimizes operation on compressed form
Reason 1: We modify the RH3-6LoRH on the way, popping the first address as we go. It is easier to do if it is the first header of
the compressed packet so we always play with the very beginning of the packet
Reason 2: So that IP header always TERMINATES the 6LoRH encapsulation,
When there is no IP in IP , this is already true for instance MAC RPI-6LoRH IPHC
One needs to differentiate a case that in UNCOMPRESSED form is
RH3-6LoRH* RPI-6LoRH IP-in-IP-LoRH RH3-6LoRH* RPI-6LoRH IP-in-IP-LoRH RPI-6LoRH IPHC data
IP-in-IP RPI RH3 IP blah vs. IP-in-IP IP RPI RH3 blah
You cannot tell : (
With a format like MAC IP-in-IP-LoRH RH3-6LoRH* RPI-6LoRH IPHC blah
With this format we have a clear separation for IP in IP in IP all the way
MAC
The separation of which header is in which encapsulation is clearly delineated with the IP header that terminates the
encapsulated 6LoRH-headers.
4/3/2016
1
•+- ... -+- ... -+-+ ... -+-+ ... -+- ... +-+-+-+-+-+-+-+-+-+-+...
•|Frag type|Frag hdr |11110001| RPI | IP-in-IP | RFC 6282 Dispatch
•|RFC 4944 |RFC 4944 | Page 1 | 6LoRH | 6LoRH | + LOWPAN_IPHC
•+- ... -+- ... -+-+ ... -+-+ ... -+- ... +-+-+-+-+-+-+-+-+-+-+...
•
•
•+- ... -+- ...
<- RFC 6282 ->
-+-+ ... -+-+ ... -+- ... +-+-+-+-+-+-+-+-+-+-+...
•|Frag type|Frag hdr |
•|RFC 4944 |RFC 4944 | Payload (cont)
•+- ... -+- ... -+-+ ... -+-+ ... -+- ... +-+-+-+-+-+-+-+-+-+-+...
•+- ... -+- ... -+-+ ... -+-+ ... -+- ... +-+-+-+-+-+-+-+-+-+-+...
•|Frag type|Frag hdr |
•|RFC 4944 |RFC 4944 | Payload (cont)
•+- ... -+- ... -+-+ ... -+-+ ... -+- ... +-+-+-+-+-+-+-+-+-+-+...
<=>
IPv6 header Hdrs + Payload
HbH header RPI in RPL option IPv6 header
120
+-+-+-+-+-+-+- ... +-+-+- ... -+-+-- ... -+-+- ... -+-+-+-+-+-+-+ ... -+-+-+-+...
|11110001 |RH3-6LoRH | RPI-6LoRH | IP-in-IP | NH=1 |11110CPP| Compressed | UDP
|Page 1 |Type1 S=2 | | 6LoRH | IPHC | UDP | UDP header | Payload
+-+-+-+-+-+-+- ... +-+-+- ... -+-+-- ... -+-+- ... -+-+-+-+-+-+-+ ... -+-+-+-+...
<-8bytes-> <- RFC 6282 ->
No RPL artifact
One may note that the RPI is provided. This is because the address of the root
that is the source of the IP-in-IP header is elided and inferred from the
InstanceID in the RPI. Once found from a local context, that address is
used as Compression Reference to expand addresses in the RH3-6LoRH.
<=>
IPv6 header UDP hdr UDP Payload
Routing hdr Hop Dec.
Hop
HbH RPI
IPv6 header
121
DV, ORA P2MP/MP2P, LORA P2P
Objective Functions, Metrics
Controlling the control
NECM Directed Acyclic Graphs
Trickle and Datapath validation
Local and Global Recovery
N/A
Dynamic Topologies
Peer selection
Constrained Objects
Fuzzy Links
Routing, local Mobility
Global Mobility
New Radios issues: Addressed in RPL by:
122
Traffic Control
Traffic Holes – Global Repair only
Routing Table
Sizes
For Your
Reference
123
• Standard track Reactive model (P2P RPL rfc6997 is experimental)
• Centralized route computation push (e.g. draft-thubert-roll-dao-projection )
• DAG limitations
Sibling routing, more resilient schemes (ARCs)
• Better / Faster (re) join (with DIS message e.g. draft-zhong-roll-dis-modifications)
• Stimulated updates (lookup) with targetted DAO
• Asymmetrical links
• Multi-Topology routing and cascading
124
• RFC 6206: The Trickle Algorithm
• RFC 6550: RPL: IPv6 Routing Protocol for LLNs
• RFC 6551: Routing Metrics Used for Path Calculation in LLNs
• RFC 6552: Objective Function Zero for the Routing Protocol for LLNs
• RFC 6553: RPL Option for Carrying RPL Information in Data-Plane Datagrams
• RFC 6554: An IPv6 Routing Header for Source Routes with RPL
• RFC 6719: MRHOF Objective Function with hysteresis
• RFC 6997: Reactive Discovery of Point-to-Point Routes in LLNs
•
125
Bringing it all together:
draft-ietf-6lo-backbone-router
126
127
1. IPv6 Discovery protocols use multicast flooding
Assuming a lower layer multicast support
Not just IPv6 NDP but also mDNS, etc…
2. Layer-2 destination set to 3333XXXXXXXX
3. Layer-2 fabric handles as broadcast (all nodes)
4.Broadcast clogs the wireless access at low access
speed (typically 1Mbps) on all APs around the fabric
5.Broadcast self interferes on attached wireless mesh and
drains the batteries on all nodes
128
Multiple L3
Multicast
messages
RA
Multiple L2
Broadcast
messages
1. MAC address reachability
flooded over L2 switch fabric
2. Device sends RS to all
routers link scope mcast
3. Router answers RA (u or m)
4. Device sends mcast NS DAD
to revalidate its address(es)
5. Device sends mcast NA(O)
1
6TISCH uses a backbone
router, limits the broadcast
domain to the backbone
VM, NFV,Wireless or IoT device moves:
Nbr Solicitation
L3 Multicast
L2 broadcast
Packet to Target that is
missing in router ND cache
Nbr Advertisement
Unicast
1. Router looks up ND cache (say
this is a cache miss)
2. Router sends NS multicast to
solicited-node multicast @;
here that is 3333 FF00 00A1
3. Targets answers unicast NA
4. Target revalidates ND cache for
the router, usually unicast
5. Router creates ND cache entry
6TiSCH proxies at the backbone
router on behalf of device
1
Packet comes in for 2001:db8::A1
Multicast Avoidance
Registration for DAD
Binding (location, owner, MAC) to IPv6 address
Registrar hierarchy for lookups and policy enforcement
Scalable Backbone Operation
L2 routing (IS-IS) + proxy-ND in the backboneRegistration + L3 Routing in
attached networks (RPL RFC 6550)
Optional MAC address proxying to avoid MAC@ floods
New ND methods between registrars and other devices (e.g. LISP)
IETF drafts
draft-ietf-6lo-backbone-router
draft-chakrabarti-nordmark-6man-efficient-nd
draft-thubert-6man-wind-sail
1
Scalable and Multi-Link
Deterministic e2e (DetNet)
Registration based ND
IP guard (admin knows what’s where)
=> Authoritative Registrar(s)
Backbone Routers
RPL root, ND proxy
Legacy IPv6 devices
Authoritative
Registrar BR
Authoritative
Registrar / 6L
Intermediate
Registrar / 6LR
Intermediate Registrar
option. ND proxy
1
Backbone router
(ND proxy)
6TiSCH
6
S
T
e
i
n
S
s
C
o
r
H
Actuator
Backbone
Router
Management
Wireless Controller
Backbone
Router
Single Multilink IPv6 Subnet with free inner mobility (same subnet == no renumbering)
Virtual Service Engine
(virtual PLC, PCE …)
+ IPv6 ND registrar
+ Network Function
Virtualization (NFV)
NAC
/Firewall
VPN Concentrator
IPv6 ND registration and proxy operation
133
Wireless Router Wireless Router
Mesh Root Mesh Root
Wireless Router
Wireless Router
134
135
Used to resolve conflicts
1
Need In ND: TID to detect movement ->eARO
Need In RPL: Object Unique ID if we use RPL for DAD
01 2 3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length = 2 | Status | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |T| TID | Registration Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
+
|
|
+
|
OUID ( EUI-64 or equivalent )
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Routers within subnet have a connected route
installed over the subnet backbone.
PCE probably has a static address in which
case it also has a connected route
Connected
Route to
subnet
137
Gateway to the outside participate to some IGP
with external network and attracts all extra-
subnet traffic via protocols over the backbone
Default
Route
In RIB
138
Directly upon NS(ARO) or indirectly upon DAR
message, the backbone router performs DAD on
behalf of the wireless device.
DAR
NS
(ARO)
1
DAD
NS DAD
(ARO)
NA(ARO) or DAC message carry succeful
completion if DAD times out.
NA(Override) is optional to clean up ND cache
stale states, e.g. if node moved.
DAC
Optional
NA(O)
NA
(ARO)
140
The BR maintains a route to the WSN node for
the DAO Lifetime over instance VRF. VFR may
be mapped onto a VLAN on the backbone.
RPL
DAO
Host
Route
1
Optional
NA(O)
The BR maintains a route to the WSN node for
the DAO Lifetime over instance VRF that is
continued with RPL over backbone.
RPL DAO
RPL
DAO
Host
Route
1
DAD option has:
Unique ID
TID (SeqNum)
Defend with NA if:
Different OUID
Newer TID
NS DAD
(ARO)
NA (ARO)
NS
(ARO)
143
DAD option has:
Unique ID
TID (SeqNum)
Defend with NA if:
Different OUID
Newer TID
DAR
NA
(ARO)
DAD
144
Optional
NA(ARO)
RPL
DAO
Host
Route
DAD option has:
Unique ID
TID (SeqNum)
Defend with NA if:
Different OUID
Newer TID
NA (ARO) with
older TID (loses)
145
Packet
NS
lookup
NA ARO option has:
Unique ID
TID (SeqNum)
146
NA (ARO)
NS
lookup
Mixed mode ND
BBR proxying over
the backbone
147
NA (ARO)
Packet
148
6LR 6LBR 6BBR
outer/Serv
er
LP Node
RPL Ethernet
RA (unicast)
RA (u|mcast)
DIO
outer/Serv
er
R
R
Router/Serv
er
Ethernet
Radio 1 Hop
SLLA
PIO
MTU
SLLA
CONTEXT
PIO
MTU
SLLA
CONTEXT
PIO
MTU
RA (u|mcast)
RS (mcast)
PIO
RA (u|mcast)
149
PIO
MTU
SLLA
CONTEXT
6LR 6LBR 6BBR
outer/Serv
er
LP Node
Radio
Mesh
Ethernet
NA (~O)
outer/Serv
er
R
R
Router/S
Ethernet
Radio 1 Hop
NS lookup
Create proxy state
Classical ND
RPL
6LoWPAN ND Efficient ND
NS (ARO)
DAR, RPL DAO
NS (ARO)
NS DAD
NA (ARO)
DAC (ARO)
NA (ARO)
6LR 6LBR 6BBR
outer/Serv
er er
LP Node outer/Serv
v
er
er
R
R
Router/Serv
er
1
6LR 6LBR 6BBR
outer/Serv
er
LP Node
RPL Ethernet
NS DAD (ARO)
NS (ARO)
NS (ARO)
DAR (ARO)
outer/Serv
er
R
R
Router/S
Ethernet
Radio 1 Hop
SRC = UNSPEC
DST = SNMA
TGT = LPN
UID = LPN
TID included
SRC = 6LR *
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = LPN_ll *
DST = 6LR_ll *
TGT = LPN **
SLLA = LPN
UID = LPN
TID included
SeND?
SRC = 6LBR
DST = 6BBR *
TGT = LPN
SLLA = L6BR
TID included
* Global / ULA
* Can be
Anycast
Create binding
state
Create proxy state
* link local unique
EUI-64
** any LPN IPv6
address
RFC
6775 does not u
U
sIe
D = LPN
target
but src
6LR 6LBR 6BBR
outer/Serv
er er
LP Node outer/Serv
er v
er
R
R
Router/Serv
er
151
6LR 6LBR 6BBR
outer/Serv
er
LP Node
RPL Ethernet
NA (O) *
NA (ARO)
NA (ARO)
DAC (ARO)
outer/Serv
er
R
R
Router/S
Ethernet
Radio 1 Hop
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = 6LR_ll
DST = LPN_ll
TGT = LPN
TLLA = LPN
UID = LPN
TID included
SRC = 6BBR
DST = 6LBR
TGT = LPN
TLLA = L6BR
UID = LPN
TID included * Omitted in general
** link local
DAD time out
SRC = 6BBR_ll **
DST = NS SRC
TLLA = L6BR
TGT = LPN
Adding
TLLAO since dest. is
not
target
6LR 6LBR 6BBR
outer/Serv
er er
er
LP Node outer/Serv
er v
R
R
Router/Serv
er
152
6LR 6LBR 6BBR
outer/Serv
er
LP Node
RPL Ethernet
NA (~O)
NS (ARO)
NS (ARO)
RPL DAO
outer/Serv
er
R
R
Router/S
Ethernet
Radio 1 Hop
SRC = 6BBR
DST = NS SRC
TGT = LPN
TLLA = 6LBR
SRC = 6LR
DST = Parent *
or Root
TGT = LPN
UID missing : (
TID included
SRC = LPN_ll
DST = 6LR_ll
TGT = LPN
SLLA = LPN
UID = LPN
TID included
SRC = 6LBR
DST = 6BBR
TGT = LPN
SLLA = L6BR
UID = LPN *
TID included
* Parent in storing
mode
* From binding
state
NS lookup
RPL
cannot DAD
for lack
of UID
6LR 6LBR 6BBR
outer/Serv
er er
LP Node outer/Serv
v
er
er
R
R
Router/Serv
er
153
154
6LR 6LBR
LP Node
NS (ARO)
DAR (ARO)
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = LPN_ll
DST = 6LR_ll
TGT = LPN **
SLLA = LPN
UID = LPN
TID included
Collision of binding
state
within RPL
DODAG
Different UID for
addr. LPN
NA (ARO, s=1)
DAC (ARO, s=1)
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = 6LR_ll
DST = LPN_ll
TGT = LPN
TLLA = LPN
UID = LPN
TID included
6LR
6LBR
LP Node
1
6LR 6LBR 6BBR
LP Node
RPL
NS (ARO)
NS (ARO)
DAR (ARO)
Ethernet
Radio 1 Hop
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = LPN_ll
DST = 6LR_ll
TGT = LPN
SLLA = LPN
UID = LPN
TID included
Create binding
state Collision of proxy state
between 6LBRs
attached to a same
6BBR
NA (ARO, s=1)
NA (ARO, s=1)
DAC (ARO, s=1) SRC = 6BBR
DST = 6LBR
TGT = LPN
UID = LPN
TID included
6LR 6LBR
6BBR
LP Node
1
outer/Serv
er
outer/Serv
er
R
R
Router/S
6LR 6LBR 6BBR
LP Node
RPL Ethernet
NS DAD (ARO)
NS (ARO)
NS (ARO)
DAR (ARO)
Ethernet
Radio 1 Hop
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = LPN_ll
DST = 6LR_ll
TGT = LPN
SLLA = LPN
UID = LPN
TID included
SRC = 6LBR
DST = 6BBR
SLLA = L6BR
TGT = LPN
UID = LPN
TID included
Create binding
state
Create proxy state
Collision with legacy
device attached to the
backbone
6LR 6LBR 6BBR
outer/Serv
er er
er
LP Node outer/Serv
er
v
R
R
Router/Serv
er
157
Router/Serv
er
6LR 6LBR 6BBR
LP Node
RPL Ethernet
Radio 1 Hop
NA (ARO, s=1)
NA (ARO, s=1)
DAC (ARO, s=1)
SRC = NODE
DST = 6BBR
TGT = LPN
UID = LPN
TID included
Collision with legacy
device
Ethernet
NA (O)
SRC = 6BBR
DST = 6LBR
TGT = LPN
UID = LPN
TID included
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = 6LR_ll
DST = LPN_ll
TGT = LPN
UID = LPN
TID included
6BBR
outer/Serv
er
R
Router/S
6LR 6LBR 6BBR
LP Node
outer/Serv
er er
outer/Serv
v
er
er
R
R
Router/Serv
er
158
RPL Ethernet
NS DAD (ARO)
NS (ARO)
NS (ARO)
DAR (ARO)
Ethernet
Radio 1 Hop
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = LPN_ll
DST = 6LR_ll
TGT = LPN
SLLA = LPN
UID = LPN
TID included
SRC = 6LBR
DST = 6BBR
TGT = LPN
SLLA = L6BR
UID = LPN
TID included
Create binding
state
Create proxy state
Collision of proxy state
between 6BBRs
attached to a same
backbone
outer/Serv
er
6LR 6LBR 6BBR
LP Node outer/Serv
er
R
R
Router/Serv
er
159
6LR 6LBR 6BBR
LP Node
RPL Ethernet
Radio 1 Hop
NA (ARO, s=1)
NA (ARO, s=1)
DAC (ARO, s=1)
SRC = 6BBR2
DST = 6BBR
TGT = LPN2
UID = LPN2
TID2 included
Ethernet
Collision of proxy state
NA (ARO, s=1)
SRC = 6BBR
DST = 6LBR
TGT = LPN
UID = LPN
TID included
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = 6LR_ll
DST = LPN_ll
TGT = LPN
UID = LPN
TID included
6BBR
6BBR
6LR 6LBR 6BBR
outer/Serv
er
6BBR
LP Node outer/Serv
er
R
R
Router/Serv
er
160
161
6LR 6LBR
LP Node
NS (ARO)
DAR (ARO)
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = LPN_ll
DST = 6LR_ll
TGT = LPN **
SLLA = LPN
UID = LPN
TID included
Matches a binding
state
within RPL
DODAG
same UID for addr.
LPN
NA (ARO, s=0)
DAC (ARO, s=0)
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = 6LR_ll
DST = LPN_ll
TGT = LPN
TLLA = LPN
UID = LPN
TID included
6LR 6LBR
6BBR
LP Node
1
outer/Serv
er
outer/Serv
er
R
R
Router/Serv
er
6LR 6LBR 6BBR
LP Node
RPL
NS (ARO)
NS (ARO)
DAR (ARO)
Ethernet
Radio 1 Hop
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = LPN_ll
DST = 6LR_ll
TGT = LPN
SLLA = LPN
UID = LPN
TID included
Create binding
state Matches a proxy state
associated to another
6LBR attached to a
same 6BBR
NA (ARO, s=0)
DAC (ARO, s=0)
NA (ARO, s=0)
Update proxy state
SRC = 6LBR
DST = 6BBR
TGT = LPN
SLLA = L6BR
UID = LPN
TID included
6LR 6LBR 6BBR
LP Node
163
6LR 6LBR 6BBR 6BBR
LP Node
RPL Ethernet
NS DAD (ARO)
NS (ARO)
NS (ARO)
DAR (ARO)
6BBR
Ethernet
Radio 1 Hop
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = LPN_ll
DST = 6LR_ll
TGT = LPN
SLLA = LPN
UID = LPN
TID included
SRC = 6LBR
DST = 6BBR
TGT = LPN
SLLA = L6BR
UID = LPN
TID included
Create binding
state
Create proxy state
Matches a proxy state
in another
6BBR attached to a
same backbone
6LR 6LBR 6BBR
outer/Serv
er
6BBR
LP Node outer/Serv
er
R
R
Router/Serv
er
164
6LR 6LBR 6BBR
LP Node
RPL Ethernet
Radio 1 Hop
NA (ARO, s=0)
DAC (ARO, s=0) DST = 6BBR
TGT = LPN
UID = LPN
TID2 included
Ethernet
SRC = 6BBR
DST = 6LBR
TGT = LPN
UID = LPN
TID included
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = 6LR_ll
DST = LPN_ll
TGT = LPN
UID = LPN
TID included
6BBR
6BBR
NA (O)
Collision with
Older TID
Yield silently
NA (ARO, s=0)
SRC = 6BBR2
6LR 6LBR 6BBR
outer/Serv
er
6BBR
LP Node outer/Serv
er
R
R
Router/Serv
er
165
6LR 6LBR 6BBR
LP Node
RPL Ethernet
Radio 1 Hop
NA (ARO, s=3)
NA (ARO, s=3)
DAC (ARO, s=3)
SRC = 6BBR2
DST = 6BBR
TGT = LPN
UID = LPN
TID2 included
Ethernet
Collision with
Newer TID
NA (ARO, s=3)
SRC = 6BBR
DST = 6LBR
TGT = LPN
UID = LPN
TID included
SRC = 6LR
DST = 6LBR
REG = LPN
UID = LPN
TID included
SRC = 6LR_ll
DST = LPN_ll
TGT = LPN
UID = LPN
TID included
6BBR
6BBR
6LR 6LBR 6BBR
outer/Serv
er
6BBR
LP Node outer/Serv
er
R
R
Router/Serv
er
166
167
6LR 6BBR
outer/Serv
er
LP Node
RPL Ethernet
outer/Serv
er
R
R
Router/S
Radio 1 Hop
6LR 6LBR 6BBR
outer/Serv
er er
LP Node outer/Serv
v
er
er
R
R
Router/Serv
er
NS lookup
NA (~O)
SRC = 6BBR
DST = NS SRC
SLLA = 6BBR
TGT = LPN
Data packet
Data packet
Data packet
Data packet
1
6LR 6BBR
outer/Serv
er
LP Node
RPL
outer/Serv
er
R
R
Router/S
Radio 1 Hop
6LR 6LBR 6BBR
outer/Serv
er er
LP Node outer/Serv
v
er
er
R
R
Router/Serv
er
NS lookup
NA (~O)
SRC = 6BBR
DST = NS SRC
SLLA = 6LBR
TGT = LPN
Data packet
Data packet
Data packet
Ethernet (Switched)
1
© 2012 Cisco and/or its affiliates. All rights reserved.
IoT6 171
Unclassified
“We might be at the eve of pervasive networking, a vision for the Internet
where every person and every device is connected to the network in the
ultimate realization of Metcalf's Law.”
© 2010 Cisco and/or its affiliates. All rights reserved. 172
Unclassified
BRKEWN-3012
Questions
174
THX!
Embedded Systems :
It is a combination of hardware and software used to perform special tasks.
It includes microcontroller and microprocessor memory, networking units (Ethernet Wi-Fi
adapters), input output units (display keyword etc. ) and storage devices (flash memory).
It collects the data and sends it to the internet.
Embedded systems used in
Digital camera
DVD player, music player
Industrial robots
Wireless Routers etc.
174
1.Daniel Minoli, Building the Internet of Things with IPv6 and MIPv6: The Evolving World
of M2M Communications, Wiley Publications, First Edition, 2013. (UNIT I-IV)
2. Arsheep Bahga , Vijay Madisetti , Internet of Things: A Hands-On Approach,
Universities Press, First Edition , 2014.(UNIT I & V)
References :
06/08/2020 27
Introduction/Data Analytics/Sangeetha K/CSE/SNSCT 175
28
Introduction/Data Analytics/Sangeetha K/CSE/SNSCT

Mais conteúdo relacionado

Semelhante a UNIT III- 1.RPL.pptx

SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONSSCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
ijasuc
 
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONSSCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
ijasuc
 
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONSSCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
ijasuc
 

Semelhante a UNIT III- 1.RPL.pptx (20)

Convergence of device and data at the Edge Cloud
Convergence of device and data at the Edge CloudConvergence of device and data at the Edge Cloud
Convergence of device and data at the Edge Cloud
 
Ethernet and LIFI
Ethernet and LIFIEthernet and LIFI
Ethernet and LIFI
 
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONSSCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
 
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONSSCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
 
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONSSCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
 
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONSSCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
SCALABILITY CONCERNS OF CHIRP SPREAD SPECTRUM FOR LPWAN APPLICATIONS
 
Chapter 1 pdf
Chapter 1 pdfChapter 1 pdf
Chapter 1 pdf
 
An infrastructual secure wireless sensing and actuating solution
An infrastructual secure wireless sensing and actuating solutionAn infrastructual secure wireless sensing and actuating solution
An infrastructual secure wireless sensing and actuating solution
 
Ch4
Ch4Ch4
Ch4
 
Internet of Things (IoT)
Internet of Things (IoT)Internet of Things (IoT)
Internet of Things (IoT)
 
6TiSCH + RPL @ Telecom Bretagne 2014
6TiSCH + RPL @ Telecom Bretagne 20146TiSCH + RPL @ Telecom Bretagne 2014
6TiSCH + RPL @ Telecom Bretagne 2014
 
Module 1.pptx
Module 1.pptxModule 1.pptx
Module 1.pptx
 
Iot
IotIot
Iot
 
Leading the LTE IoT evolution to connect the massive Internet of Things
Leading the LTE IoT evolution to connect the massive Internet of ThingsLeading the LTE IoT evolution to connect the massive Internet of Things
Leading the LTE IoT evolution to connect the massive Internet of Things
 
IoT Communication Protocols, Socket Programming with Python, MQTT & HTTP
IoT Communication Protocols, Socket Programming with Python, MQTT & HTTPIoT Communication Protocols, Socket Programming with Python, MQTT & HTTP
IoT Communication Protocols, Socket Programming with Python, MQTT & HTTP
 
A Review of Low Power Wide Area Technology in Licensed and Unlicensed Spectru...
A Review of Low Power Wide Area Technology in Licensed and Unlicensed Spectru...A Review of Low Power Wide Area Technology in Licensed and Unlicensed Spectru...
A Review of Low Power Wide Area Technology in Licensed and Unlicensed Spectru...
 
Introduction to IoT - Unit I
Introduction to IoT - Unit IIntroduction to IoT - Unit I
Introduction to IoT - Unit I
 
Wireless Personal Area Networks
Wireless Personal Area NetworksWireless Personal Area Networks
Wireless Personal Area Networks
 
IOT - Unit 3.pptx
IOT - Unit 3.pptxIOT - Unit 3.pptx
IOT - Unit 3.pptx
 
Efficient power consumption in wireless communication
Efficient power consumption in wireless communicationEfficient power consumption in wireless communication
Efficient power consumption in wireless communication
 

Último

Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
MateoGardella
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
Chris Hunter
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
PECB
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 

Último (20)

Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 

UNIT III- 1.RPL.pptx

  • 1. SNS COLLEGE OF TECHNOLOGY Coimbatore-35. An Autonomous Institution COURSE NAME : Internet of Things III YEAR/ V SEMESTER UNIT – III Evolving IoT Standards and Protocols Topic: IPV6 Routing Protocol for RPL Dr.K.Sangeetha HoD Department of Computer Science and Engineering
  • 2. • The any-to-any paradigm Art: Any pair of global addresses can reach one another IoT: Many devices of all sorts, no hotfixes Corridors to the cloud? • The end-to-end paradigm Art: Intelligence at the edge, dumb routing nodes Infinite bandwidth to all powerful clusters? • The best-effort paradigm Art: Stochastic packet distribution and RED Can we make the whole Internet deterministic? 2
  • 3. Trillion devices in the Internet The core technologies will not change Leakless Autonomic Fringe Leakless Route Projection Million devices in a Subnet New models for the subnet protocols IPv6 ND, RPL, Service Discovery … Fiber + Copper + Wi-Fi Backbone Femto + 802.11 + 802.15.4 + … Access Unhindered Mobility Location / ID Separation (LISP, NEMO) 10’s of K 3
  • 4. Data: Capillary Wireless Acquisition of large amounts of live Big Data Information: DiM/Fog to add descriptive meta-tags, allowing for compression and correlation Knowledge: Prediction from self-learned models and Knowledge Diffusion Wisdom: Machine Learnt Expertise, auto-Generating Prescriptions and Actionable Recommendations (Data) ACQUISITION (Knowledge) DIFFUSION (Wisdom) OPEN LOOP (Information) AGGREGATION 5G femtocell Data in Motion / Fog Learning Machines / Cloud 6TiSCH 4
  • 5. Time Sensitive Networking (TSN) For traffic known a priori (control loops…) Time Synchronization and Global Schedule NP-complete optim. problem => centralized computation Fully controlled local network 5
  • 6. We are in for a change: Basic Internet structures and expectations reconsidered Revising classical end-to-end and any-to-any Revising best effort to new levels of guarantees New function placement, new operations Impacts network, transport, security models 6
  • 7. Why Standards?  Developing IP/routing/transport/web protocols subsets that scale down to IOT devices; specifically, lightweight routing protocols for the IoT;  Describing architectures that employ gateways and middleware;  Developing mobility management;  Internetworking of IoT things;  Lightweight implementations of cryptographic stacks; and building a suitable  security infrastructure: end-to-end security capabilities for the IoT things;  Developing standards for applications, specifically, data formats; and  Discouraging on domain-specific solutions. 7
  • 8. • The Internet Engineering Task Force (IETF) IPv6 routing protocol for low power and lossy networks (RPL)/routing over low power and lossy networks(ROLL); • IETF constrained application protocol (CoAP); • IETF constrained RESTfull environments (CoRE); • IETF IPv6 over low power WPAN (6LoWPAN); • 3GPP MTC; and • ETSI M2M. Recall that M2M involves communication without (or only limited) human intervention where the human is not the input agent but possibly (but not always) the output agent. • For example, ETSI TS/TR 102 addresses M2M architecture and services (e.g., smart metering, e-health, auto, and city). 8
  • 9. 9
  • 10. 10 (i)ETSI: for end-to-end framework for M2M; (ii) 3GPP: to enable operators to support services (iii) IEEE: to optimize the radio access/physical layer.
  • 11. 11 Open Standards IEEE and LLNs IETF and 6LoWPAN Routing Loopless structures Forms of Routing Over Radios
  • 12. 12 RPL Concepts DODAG and its maintenance Instances and Objective Functions RPL messages and modes DIS and parent discovery DIO and parent selection DAO Storing mode and RPI DAO Non storing mode and RH3 Data packets Headers and Compression
  • 13. 13 The backbone router Problem High level exchanges Deeper dive in flows … Conclusion ?
  • 14. 14
  • 15. Cheap Install Deploying wire is slow and costly Global Coverage From Near Field to Satellite via 3/4G Everywhere copper/fiber cannot reach Cheap multipoint access New types of devices (Internet Of Things) New usages (X-automation, Mobile Internet) 15
  • 16. LLNs comprise a large number of highly constrained devices (smart objects) interconnected by predominantly wireless links of unpredictable quality LLNs cover a wide scope of applications Industrial Monitoring, Building Automation, Connected Home, Healthcare, Environmental Monitoring, Urban Sensor Networks, Energy Management, Asset Tracking, Refrigeration Several IETF working groups and Industry Alliance addressing LLNs IETF - CoRE, 6Lowpan, ROLL Alliances - IP for Smart Objects Alliance (IPSO) World’s smallest web server 16
  • 17. LLNs operate with a hard, very small bound on state LLNs are optimised for saving energy in the majority of cases Traffic patterns can be MP2P, P2P and P2MP flows 17 Typically LLNs deployed over link layers with restricted frame- sizes Minimise the time a packet is enroute (in the air/on the wire) hence the small frame size The routing protocol for LLNs should beadapted for such links LLN routing protocols must consider efficiency versus generality Many LLN nodes do not have resources to waste
  • 18. IEEE Wireless Standards 802.11 Wireless LAN 802.15 Personal Area Network 802.16 Wireless Broadband Access 802.22 Wireless Regional Area Network WiFi 802.11a/b/g/n/ah IEEE 802 LAN/MAN 802.15.1 Bluetooth 802.15.2 Co-existence 802.15.3 High Rate WPAN 802.15.4 Low Rate WPAN 802.15.5 Mesh Networking 802.15.6 Body Area Networking 802.15.7 Visible Light Communications 802.15.4e MAC Enhancements 802.15.4f PHY for RFID 802.15.4g Smart Utility Networks TV White Space PHY 15.4 Study Group 802.15.4d PHY for Japan 802.15.4c PHY for China • Industrial strength • Minimised listening costs • Improved security • Improved link reliability • Support smart-grid networks • Up to 1 Km transmission • >100Kbps • Millions of fixed endpoints • Outdoor use • Larger frame size • PHY Amendment • Neighborhood Area Networks TSCH Amendments retrofitted in 802.15.4-2015 18
  • 19. • 802.15.4u – High Rate PHY 2 Mb/s backward compatible with original 250 kb/s PHY in 2450 MHz band • 802.15.9 – KMP (Key Management Protocol) • 802.15.10 – L2R (Layer 2 Routing Mesh) • 802.15.12 – Study Group for ULI project (From Pat Kinney) 19
  • 20. Operates at Layer 2 Star Topology R F R P R F All devices communicate to PAN co-ordinator which uses mains power Other devices can be battery/scavenger Mesh Topology F R F P F F F R R Devices can communicate directly if within range Cluster Tree R R R F F R P F F R R Higher layer protocols like RPL may create their own topology that do not follow 802.15.4 topologies Single PAN co-ordinator exists for all topologies 20
  • 21. Designed for low bandwidth, low transmit power, small frame size More limited than other WPAN technologies such as Bluetooth Basic packet size is 127 bytes (802.15.4g is up to 2047 bytes) (Smaller packets, less errors) Transmission Range varies (802.15.4g is up to 1km) Fully acknowledged protocol for transfer reliability Data rates of 851, 250, 100, 40 and 20 kbps (IEEE 802.15.4-2011 05-Sep-2011) Frequency and coding dependent Two addressing modes; 16-bit short (local allocation) and 64-bit IEEE (unique global) Several frequency bands (Different PHYs) Europe 868-868.8 MHz – 3 chans , USA 902-928 MHz – 30 chans, World 2400-2483.5 MHz – 16 chans China - 314–316 MHz, 430–434 MHz, and 779–787 MHz Japan - 920 MHz Security Modes: None, ACL only, Secured Mode (using AES-CCM mode) 802.15.4e multiple modes including Time Synchronized Channel Hopping (TSCH) 21
  • 22. • Specifies PHY and MAC only • Medium Access Control Sub-Layer (MAC) Responsible for reliable communication between two devices Data framing and validation of RX frames Device addressing Channel access management Device association/disassociation Sending ACK frames • Physical Layer (PHY) Provides bit stream air transmission Activation/Deactivation of radio transceiver Frequency channel tuning Carrier sensing Received signal strength indication (RSSI) Link Quality Indicator (LQI) Data coding and modulation, Error correction Physical Layer (PHY) MAC Layer (MAC) Upper Layers (Network & App) 22
  • 23. Amendment to the 802.15.4-2006 MAC needed for the applications served by 23 802.15.4f PHY Amendment for Active RFID 802.15.4g PHY Amendment for Smart Utility Networks All retrofitted in new revision IEEE 802.15.4-2015 initially for Industrial applications (such as those addressed by wiHART and the ISA100.11a standards) Security: support for secured ack Low Energy MAC extension Coordinated Sampled Listening (CSL) Channel Hopping Not built-in, subject to vendor design. Open standard work started at IETF with 6TiSCH New Frame Types Enhanced (secure) Acknowledgement (EACK) Enhanced Beacon and Beacon Request (EB and EBR) Optional Information Elements (IE)
  • 24. Full Function Device (FFD) Can operate as a PAN co-ordinator (allocates local addresses, gateway to other PANs) Can communicate with any other device (FFD or RFD) Ability to relay messages (PAN co-ordinator) Reduced Function Device (RFD) Very simple device, modest resource requirements Can only communicate with FFD Intended for extremely simple applications P R F F R R 24
  • 25. 25
  • 26. 26
  • 27. 27
  • 28. Application General Internet Ops and Mgmt Routing Security Reuse work done here where possible Transport Core 6lo ROLL IETF LWIG Constrained Restful Environments Charter to provide a framework for resource-oriented applications intended to run on constrained IP networks. IPv6 over Networks of Resource-constrained Nodes (succeeds 6LoWPAN) Charter is to develop protocols to support IPv6 IoT networks. Routing over Low Power Lossy Networks Charter focusses on routing issues for low power lossy networks. Lightweight Implementation Guidance Charter is to provide guidance in building minimal yet interoperable IP- capable devices for the most constrained environments. 6TiSCH IPv6 over TSCH Charter is to develop best practice and Architecture for IPv6 over 802.15.4 TSCH. 28
  • 29. • Gateways vs. end-to-end principle • Hindrance from proprietary technologies • Vertical solutions, hard to generalize to large scale driving costs down => We’re still mostly there today (eg 1552S vs. WU) • IP to the device justifies Cisco technology near the device => A powerful argument ever since 29
  • 30. Little work on adapting IPv4 to radios Rather adapt radios to IPv4 e.g. WIFI infrastructure mode « Classical » IPv6 Large, Scoped and Stateful addresses Neighbor Discovery, RAs (L3 beacons) SLAAC (quick and scalable) Anycast Addresses IPv6 evolution meets Wireless: Mobile Routers (LISP, NEMO) (Proxy) MIPv6 6LoWPAN 6TiSCH ROLL/RPL CoAP ISA100.11a Thread ZigBee/IP 30
  • 31. • No IP at all is sensors, deemed impossible, too expensive • Proprietary WSN technologies And then … • IEEE 802.15.4-2003 ratified December 14, 2004 • ZigBee 2004 Specification 1.0 on June 13, 2005 And then … • Pioneer work From Adam Dunkels, and then others: http://dunkels.com/adam/ewsn2004.pdf http://www.eecs.harvard.edu/~mdw/course/cs263/papers/ipv6-sensys08.pdf 31
  • 32. • IPv6 to the end node however small • IETF WG formed in March 2005 • Chartered for IPv6 over LoWPAN (802.15.4) • Now closed, replaced by 6lo • Defined: Header Compression (HC) RFC 4944 and RFC 6282 Fragmentation and mesh header (mostly unused) Registration-based IPv6 Neighbor Discovery (ND) RFC 6775 32
  • 33. • Standards such as Zigbee(IP), ISA100.11a and WirelessHART all define whole stacks and application profiles whereas 6LoWPAN is (just) an adaptation layer for IP (version 6) • ISA100.11a <= 6LoWPAN Header Compression (HC) RFC 6282 • ZigbeeIP & Thread use 6LoWPAN HC + Neighbor Discovery (ND) • Yet 6LoWPAN marks the transition for WSN towards IP • So the popular image is that 6LoWPAN means IP in sensors • 6LoWPAN failed to deliver routing. ROLL WG took over with RPL 33
  • 34. • Generalize to all technologies, provide generic abstraction • 6lo now chartered to define IPv6 over IOT Links • Current work on: 34 • 6lo also handles 6LoWPAN maintenance e.g. as stimulated by 6TiSCH to improve 6LoWPAN - RPL interworking http://tools.ietf.org/html/draft-ietf-6lo-btle http://tools.ietf.org/html/draft-ietf-6lo-dect-ule http://tools.ietf.org/html/draft-brandt-6man-lowpanz http://tools.ietf.org/html/draft-popa-6lo-6loplc-ipv6-over-ieee19012-networks http://tools.ietf.org/html/draft-hong-6lo-ipv6-over-nfc http://tools.ietf.org/html/draft-ietf-6lo-6lobac http://tools.ietf.org/html/draft-delcarpio-6lo-wlanah http://tools.ietf.org/html/draft-wang-6tisch-6top-sublayer Bluetooth Low Energy DECT Ultra Low Energy Zwave PLC Near Field Comms BACNET 802.11ah 802.15.4e TSCH
  • 35. • 6TiSCH also specifies an IPv6-over-foo for 802.15.4e TSCH but does not update 6LoWPAN (that’s pushed to 6lo). Rather 6TiSCH defines the missing Data Link Layer. • The 6TiSCH architecture defines the global Layer-3 operation. • It incorporates 6LoWPAN but also RPL, DetNet (PCE), COMAN, SACM, CoAP, DICE … => Mostly NOT specific to 802.15.4e but for the deterministic tracks • Thus 6TiSCH has to make those components work together E.g. of work being pushed to other WGs: https://tools.ietf.org/html/draft-ietf-6lo-routing-dispatch https://tools.ietf.org/html/draft-ietf-6lo-backbone-router 35
  • 36. TimeFrame 802.15.4 Other IoT links < 2004 Non IP (zigbee…) Non IP (BACNet, Zwave…) < 2011 IPv6 via 6LoWPAN HC Non IP < 2013 6LoWPAN HC + 6LoWPAN ND IPv6 via 6LoWPAN HC (ongoing) < 2016 6LoWPAN + RPL stack ( that’s 6TiSCH ! ) 6LoWPAN HC + ND < 2020 6LoWPAN + RPL stack (that will be 6IoT, generalizing 6TiSCH stack on all LLN links) < 2022 Deterministic capabilities, Call Admission control and Traffic Engineering 36 Notes: • In draft-thubert-6lo-rfc6775-update-reqs we claim that Low Power Wi-Fi is an LLN link • The 6IoT architecture generalized from 6TiSCH architecture to apply on Wi-Fi ad-hoc mode as well
  • 37. Simple MAC allows coexistence with other network protocols over same link, similar to Ethernet, although not seen in deployment DST PAN ID DST MAC Address SRC PAN ID SRC MAC Address Preamble SPD PHY Header Frame Control Data Seq. Nbr Addressing Auxiliary Security Header IEs Header & Payload DSP Payload FCS Mesh Address 6LoWPAN Compressed Hdr Payload 0 0 X 0 1 1 0 1 1 Not a LoWPAN frame LoWPAN IPv6 addressing Hdr LoWPAN mesh Hdr LoWPAN fragmentation Hdr Frag. 6LoWPAN Compressed Hdr Payload Mesh Address Frag. 6LoWPAN Compressed Hdr Payload DSP + IPHC Other 6LoWPAN Hdr field Payload Header Dispatch (DSP) – understand what is coming Mesh + Fragmentation Frame Fragmentation Mesh (L2 Routing) 6LoWPAN 37
  • 38. 0 1 1 TF NH HLIM CID SAC SAM M DAC DAM 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 TF 2 bits Traffic Class and Flow Label NH 1 bit Next Header HLIM 2 bits Hop Limit CID 1 bit Context Identifier Extension SAC 1 bit Source Address Context SAM 2 bits Source Address Mode M 1 bit Multicast Address Compression DAC 1 bit Destination Address Context DAM 2 bits Destination Address Mode Addressing 38
  • 39. 6LR 6LBR LP Node NS (ARO) DAR (ARO) SRC = 6LR DST = 6LBR REG = LPN UID = LPN SRC = LPN_ll DST = 6LR_ll TGT = ?? SLLA = LPN UID = LPN Check Collision of binding state (DAD) NA (ARO, s=1) DAC (ARO, s=0,1==dup) SRC = 6LR DST = 6LBR REG = LPN UID = LPN SRC = 6LR_ll DST = LPN_ll TGT = LPN TLLA = LPN UID = LPN 0 1 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length = 2 | Status | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Registration Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + | | + | EUI-64 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ A registration mechanism For duplicate detection Goal to save multicast Address Registration Option Radio Mesh Radio 1 Hop 39
  • 40. Scalable and Multi-Link Deterministic e2e IP guard (admin knows what’s where) => Authoritative Registrar(s) Backbone Routers RPL root, ND proxy Legacy IPv6 devices Authoritative Registrar BR Authoritative Registrar / 6L Intermediate Registrar / 6LR Intermediate Registrar option. ND proxy 40 Backbone router (ND proxy)
  • 41. 6LoWPAN is an open standard, NOT a silo’ed solution 6LoWPAN is how you do IPv6 over low power networks Provides an Adaptation Layer and a novel IPv6 Neighbor Discovery 6LoWPAN started small with the 802.15.4-2003 WPAN Updated under Cisco lead to fit in ISA100.11a Now generalizing on all LLN technologies with IETF 6lo GW 41
  • 42. 42
  • 43. Most classical routing structure Typically what Internet Gateway Protocols (IGPs) Build or each reachable destination Only thing Link State builds, though Distance Vector has feasible successors Must be reconstructed upon connectivity loss, service is interrupted FRR techniques must be added (MRT, LFA with SR …) on top No inner load balancing capabilities Walkable structure (e.g. depth first) ROOT 4 0 1 3 1 1 2 2 2 2 2 3 3 3 3 3 2 4 55 0 6 44 5 4 ROOT 43
  • 44. In the context of routing, a Directed Acyclic Graph (DAG) is formed by a collection of vertices (nodes) and edges (links). Each edge connecting one node to another (directed) in such a way that it is not possible to start at Node X and follow a directed path that cycles back to Node X (acyclic). Greedy => Not all nodes have 2 solutions even in biconnected networks A Destination Oriented DAG (DODAG) is a DAG that comprises a single root node. Here a DAG that is partitioned in 2 DODAG Clusterhead 5 4 0 1 3 1 1 2 2 2 2 2 3 3 3 3 3 3 2 4 5 0 6 44 5 4 44
  • 45. • In Green: A’s subDAG. Impacted if A’s connectivity is broken Domain for routing recovery • In Red: B’s fanout DAG (or reverse subDAG) Potential SPAN on B’s DAO Thus potential return paths Fanout must be controlled to limit intermediate states Clusterhead 4 0 1 3 1 1 2 2 2 2 3 3 3 3 3 3 2 4 55 0 6 44 5 4 2A 45 B
  • 46. Clusterhead 0 1 1 1 2 2 2 2 2 3 3 3 3 3 3 2 3 5 4 4 4 4 e.g. ARC of siblings Allows more alternates ARCs and walkable structures in general are walked with no routing progress Routing between DAGs of ARCs Forwarding over DAG AND ARCs Reduces congestions of upper links of the DAG Still LORA for P2P IGP subarea (bidirectional) Link selected and oriented by TD Potential link 46
  • 47. 47
  • 48. • Hidden terminal 48 • Interference domains grows faster that range • Density => low power => multihop => routing
  • 49. Aka Stateful vs. On-demand routing Note: on-demand breaks control vs. Data plane separation P2P-RPL RIP IS-IS 49
  • 50. Aka Dijkstra vs. Bellman-Ford LS requires full state and convergence Every node draws a same graph Then run teh shortest path first algorithm to get to all other nodes Then associates node with reachable destinations LS can be very quiet on stable topologies DV learns costs to destination asynchronously per destination Nodes advertise their distance to a destination Recursively other nodes learn their best successor and compute their own cost DV hides topolical complexities and changes RIP IS-IS 50
  • 51. Optimized Routing Approach (ORA) spans advertisements for any change Routing overhead can be reduced if stretch is allowed: Least Overhead Routing Approach (LORA) => (Nothing to do with the LoRa LPWA protocol !!!) For instance Fisheye and zone routing provide a precise routing when closeby and sense of direction when afar 51
  • 52. 52
  • 53. 54 1000*scale => No leak in Internet => Opaque operations Reachability => Radio (IEEE) => IPv6 (IETF) => spatial reuse Addressing Density => Routing
  • 54. No preexisting physical topology Can be computed by a mesh under protocol, but… Else Routing must infer its topology Movement natural and unescapable Yet difficult to predict or detect 55
  • 55. 56 Potentially Large Peer Set Highly Variable Capabilities Selection Per Objective Metrics (e.g. RSSI, ETX…) L3 Reachability (::/0, …) Constraints (Power …)
  • 56. Smart object are usually Small & Numerous « sensor Dust » Battery is critical Deep Sleep Limited memory Small CPU Savings are REQUIRED Control plane Data plane (Compression) 56
  • 57. Neither transit nor P2P More like a changing NBMA a new paradigm for routing Changing metrics (tons of them!) (but no classical cost!) Inefficient flooding Self interfering Quality of Service ? Call Admission Control => TSCH 57
  • 58. Stretch vs. Control Optimize table sizes and updates Optimized Routing Approach (ORA) vs Least Overhead Routing Approach (LORA) on-demand routes (reactive) Forwarding and retries Same vs. Different next hop Validation of the Routing plane Non Equal Cost multipath Directed Acyclic Graphs (DAG) a MUST Maybe also, Sibling routing Objective Routing Weighted Hop Count the wrong metric Instances per constraints and metrics 58
  • 59. 60 Pervasive Access Satellite 3/4G coverage 802.11, 802.15.4 Always Reachable at a same identifier (MIPv6, LISP*…) Preserving connections Or not ? (REST**, DTN***) Fast roaming Within technology (L2) Between Technologies (L3) * Locator/Identifier Separation Protocol ** Representational state transfer *** Delay-Tolerant Networking
  • 60. A radio abstraction 802.21, L2 triggers, OmniRAN Roaming within and between technologies Deterministic Properties A subnet model for IPv6 NBMA, interference awareness Federation via backbone / backhaul Broadcast and look up optimization Large scale non-aggregatable numbering and naming schemes 60
  • 61. RPL (RFC 6550 and then more) 61
  • 62. Dynamic Topologies Peer selection Constrained Objects Fuzzy Links Routing, local Mobility Global Mobility Low Power Lossy Networks Issues Addressed in RPL ? 62
  • 63. Minimum topological awareness Data Path validation Non-Equal Cost Multipath Fwd Instantiation per constraints/metrics Autonomic Subnet G/W Protocol Optimized Diffusion over NBMA RPL is an extensible proactive IPv6 DV protocol Supports MP2P, P2MP and P2P P2P reactive extension RPL specifically designed for LLNs Agnostic to underlying link layer technologies (802.15.4, PLC, Low Power WiFi) 63
  • 64. 65 Distance Vector as opposed to Link State Knowledge of SubDAG addresses and children links Lesser topology awareness => lesser sensitivity to change No database Synchronization => Adapted to movement Optimized for Edge operation Optimized for P2MP / MP2P, stretch for arbitrary P2P Least Overhead Routing Approach via common ancestor Proactive as opposed to Reactive Actually both with so-called P2P draft Datapath validation
  • 65. 65
  • 66. In the context of routing, a DAG is formed by a collection of vertices (nodes) and edges (links), each edge connecting one node to another (directed) in such a way that it is not possible to start at Node X and follow a directed path that cycles back to Node X (acyclic). 66
  • 67. 5 3 5 4 DODAG Root Identified by DODAG ID (Node IPv6 address) RPL Instance Consists of one or more DODAGs sharing SAME service type (Objective Function) Identified by RPL INSTANCE ID Direction Oriented DAG (DODAG) Comprises DAG with a single root Node (OF configured) Rank Rank = n Rank < n Rank decreases UP (DAO Messages) Towards DODAG Root 2 1 5 4 3 3 DODAG parent to child “5”s 2 DODAG Root Rank is always “1” (Typically an LBR - LLN Border Router) 1 3 2 Sub- DODAG DODAG Rank > n Rank = n Towards DODAG leafs DOWN (DIO Messages) Rank increases Non-LLN Network (IPv6 Backbone) Siblings 4 4 DODAG Sensor Node 67
  • 68. At a given point of time connectivity is as illustrated and rather fuzzy Radio link 6
  • 69. 1st pass (DIO) Establishes a logical DAG topology Trickle Subnet/config Info Sets default route Self forming / self healing 2nd pass (DAO) paints with addresses and prefixes Any to any reachability But forwarding over DAG only saturates upper links of the DAG And does not use the full mesh properly Link selected as parent link Potential link Clusterhead 0 1 1 1 4 4 4 4 6 3 3 3 3 3 2 2 2 2 2 2 5 5 5 69
  • 70. : : A new DODAG iteration Rebuild the DAG … Then repaint the prefixes upon changes A new Sequence number generated by the root A router forwards to a parent or as a host over next iteration : find a “quick” local repair path Only requiring local changes ! May not be optimal according to the OF Moving UP and Jumping are cool. Moving Down is risky: Count to Infinity Control 7
  • 71. A’s link to root fails A loses connectivity Either poisons or detaches a subdag In black: the potentially impacted zone That is A’s subDAG Potential link Link selected as parent link Clusterhead 0 6 A 1 1 1 3 3 3 3 3 2 2 2 2 2 2 5 5 5 4 4 4 4 71
  • 72. B can reparent a same Rank so B’s subDAG is safe The rest of A’s subDAG is isolated Either poison ar build a floating DAG as illustrated In the floating DAG A is root The structure is preserved Link selected as parent link Potential link Clusterhead 0 1 1 4 4 4 4 6 3 3 3 2 2 2 2 2 1 5 5 5 A 2 B 0 1 72
  • 73. Once poisined nodes are identified It is possible for A to reparent safely A’s descendants inherit from Rank shift Note: a depth dependent timer can help order things Potential link Link selected as parent link Clusterhead 0 1 1 2 4 4 4 4 6 3 3 3 4 4 2 2 2 2 3 3 5 5 5 A 73
  • 74. A new DAG iteration In Green, the new DAG progressing Metrics have changed, the DAG may be different Forwarding upwards traffic from old to new iteration is allowed but not the other way around Potential link Link selected as parent link Clusterhead 0 1 1 1 4 4 4 4 6 3 3 3 3 3 3 2 2 2 2 2 5 5 5 74
  • 75. 1) A root has a Rank of 1. A router has a Rank that is higher than that of its DAG parents. 2)A Router that is no more attached to a DAG MUST poison its routes, either by advertising an INFINITE_RANK or by forming a floating DAG. 3) A Router that is already part of a DAG MAY move at any time in order to get closer to the root of its current DAG in order to reduce its own Rank 4) But the Router MUST NOT move down its DAG – but under controlled limits whereby the router is allowed a limited excursion down 75 5) A Router MAY jump from its current DAG into any different DAG at any time and whatever the Rank it reaches there, unless it has been a member of the new DAG in which case rule 4) applies
  • 76. 76
  • 77. RPL is objective driven e.g. reach a certain gateway, concept of a goal Instances are built to reach certain goals Instance ID tagged in packets RPL is generic and extensible RFC 6550 is a core distance vector functionality Objective functions plug in to adapt to use case / need Objective functions enforce policies 7
  • 78. Extend the generic behavior For a specific need / use case Used in parent selection Contraints Policies Metrics Position in the DAG Computes the Rank increment Based on hop metrics Do NOT use OF0 for adhoc radios! (OF 0 uses traditional weighted hop count) 7
  • 79. Clusterhead 4 A second root is available (within the same instance) The DAG is partitioned 1 root = 1 DODAG 1 Node belongs to 1 DODAG (at most, per instance) Nodes may JUMP from one DODAG to the next Nodes may MOVE up the DODAG Going Down MAY cause loops May be done under CTI control Link selected and oriented by DIO Potential link 0 1 3 1 1 2 2 2 2 2 3 3 3 3 3 3 2 4 4 55 0 6 4 5 4 7
  • 80. Running as Ships-in-the-night 1 instance = 1 DAG = 1 OF A DAG implements a set of constraints Multiple instances may be serving different Objective Functions => For different optimizations Forwarding is along a DODAG => Provides isolation like a vlan 0 1 1 1 2 2 2 2 2 3 3 3 3 3 3 2 3 5 4 4 4 4 Clusterhead Constrained instance Default instance Potential link A 8
  • 81. 81
  • 82. 0 1 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ICMP Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | . . | . . Base Object +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | . . | . . Option(s) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 0x00 (DIS) DODAG Information Solicitation 0x01 (DIO) DODAG Information Object 0x02 (DAO) Destination Advertisement Object 0x03 (DAO-ACK) Destination Advertisement Object Acknowledgment 82 155 == RPL control message
  • 83. 83
  • 84. Flooding interferes with itself B C D A 8 Hidden node/terminal/station
  • 85. Suppression of redundant copies Do not send copy if K copies received Jitter for Collision Avoidance First half is mute, second half is jittered Exponential backoff Double I after period I, Reset I on inconsistency 8
  • 86. Node Metrics Link Metrics Node State and Attributes Object Purpose is to reflects node workload (CPU, Memory…) “O” flag signals overload of resource “A” flag signal node can act as traffic aggregator Throughput Object Currently available throughput (Bytes per second) Throughput range supported Node Energy Object “T” flag: Node type: 0 = Mains, 1 = Battery, 2 = Scavenger “I” bit: Use node type as a constraint (include/exclude) “E” flag: Estimated energy remaining Latency Can be used as a metric or constraint Constraint - max latency allowable on path Metric - additive metric updated along path Hop Count Object Can be used as a metric or constraint Constraint - max number of hops that can be traversed Metric - total number of hops traversed 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 For Your Reference 86
  • 87. 0 1 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RPLInstanceID |Version Number | Rank | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |G|0| MOP | Prf | DTSN | Flags | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + | + | + | | + | + | + | DODAGID +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option(s)... +-+-+-+-+-+-+-+-+ 87
  • 88. 0 1 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RPLInstanceID |Version Number | Rank | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |G|0| MOP | Prf | DTSN | Flags | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + | + | + | | + | + | + | DODAGID +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option(s)... +-+-+-+-+-+-+-+-+ 88
  • 89. + +- + | MOP | Description | + +- + | 0 | No Downward routes maintained by RPL | | 1 | Non-Storing Mode of Operation | | 2 | Storing Mode of Operation with no multicast support | | 3 | Storing Mode of Operation with multicast support | | | | | | All other values are unassigned | + +- + 89
  • 90. 90
  • 91. 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags | Reserved | Option(s)... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 13: The DIS Base Object Options: 0x00 Pad1 0x01 PadN 0x07 Solicited Information Goal: ask routers around to generate DIO 9
  • 92. 0 1 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = 0x07 |Opt Length = 19| RPLInstanceID |V|I|D| Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ DODAGID | + | + | + | | + | + | + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version Number | +-+-+-+-+-+-+-+-+ 92
  • 93. draft-zhong-roll-dis-modifications 9 Based on earlier work draft-goyal-roll-dis-modifications New Flags to control Trickle behavior response mode Unicast vs. Broadcast Metric Container for constraints on the responder Response Spreading Option to spread responses over an interval
  • 94. 94
  • 95. 0 1 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RPLInstanceID |K|D| Flags | Reserved | DAOSequence | 95 +-+-+-+-+-+-+-+-+-+- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + + | | + DODAGID* + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option(s)... +-+-+-+-+-+-+-+-+
  • 96. A B C D Parent is default GW, advertizes owned PIO (L bit on) RPL Router autoconfigures Addr from parent PIO RPL Router advertises Prefix via self to parent RPL Router also advertises children Prefix B: ::/0 via A::A A:: connected B:: connected C:: via B::C D:: via B::D C: ::/0 via B::B B:: connected C:: connected A: A:: connected B:: via A::B C:: via A::B D:: via A::B D: ::/0 via B::B B:: connected D:: connected A::B B::C B::D B::B A::A 96
  • 97. A B C D Parent is default GW, propagates root PIO (L-bit off) Parent Address in the PIO (with R bit) RPL Router autoconfigures Address from parent PIO RPL Router advertises Address via self to parent RPL Router also advertises children Addresses B: ::/0 via A::A A::A connected A::B self A::C connected A::D connected A:: ~onlink C: ::/0 via A::B A::B connected A::C self A:: ~onlink A: A::A self A::B connected A::C via A::B A::D via A::B A:: ~onlink D: ::/0 via A::B A::B connected A::D self A:: ~onlink A::B A::C A::D A::A 97
  • 98. Control Information in Data Packets: RPI in IPv6 Hop-By-Hop Header Instance ID Sender Rank Direction (UP/Down) Errors detected if: - No route further down for packet going down - No route for packet going down - Rank and direction do not match 9
  • 99. Down 'O': 1-bit flag indicating whether the packet is expected to progress Up or Down. A router sets the 'O' flag when the packet is expected to progress Down (using DAO routes), and clears it when forwarding toward the DODAG root (to a node with a lower Rank). A host or RPL leaf node MUST set the 'O' flag to 0. Rank-Error 'R': 1-bit flag indicating whether a Rank error was detected. A Rank error is detected when there is a mismatch in the relative Ranks and the direction as indicated in the 'O‘ bit. A host or RPL leaf node MUST set the 'R' bit to 0. Forwarding-Error 'F': 1-bit flag indicating that this node cannot forward the packet further towards the destination. The 'F' bit might be set by a child node that does not have a route to destination for a packet with the Down 'O' bit set. A host or RPL leaf node MUST set the 'F' bit to 0. RPLInstanceID: 8-bit field indicating the DODAG instance along which the packet is sent. SenderRank: 16-bit field set to zero by the source and to DAGRank(rank) by a router that forwards inside the RPL network. 99 Encoding: RFC 6553 then 6LoRH 0 1 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type | Opt Data Len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |O|R|F|0|0|0|0|0| RPLInstanceID | SenderRank | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | (sub-TLVs) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • 100. 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ... -+-+-+ |1|0|0|O|R|F|I|K| 6LoRH Type=5 | Compressed fields | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ... -+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1|0|0|O|R|F|1|1| 6LoRH Type=5 | SenderRank | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1|0|0|O|R|F|1|0| 6LoRH Type=5 | SenderRank | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1|0|0|O|R|F|0|1| 6LoRH Type=5 | RPLInstanceID | SenderRank | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1|0|0|O|R|F|0|0| 6LoRH Type=5 | RPLInstanceID | Sender-... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 100
  • 101. +- ... -+- ... -+-+-+-+-+- ... -+-+-+-+-+ ... -+-+-+-+-+-+-+-+-+-+-+... |11110001| RPI-6LoRH | NH = 0 type 5 | 6LOWPAN-IPHC | NH = 58 | ICMP message | (ICMP) | (no compression) |Page 1 | +- ... -+- ... -+-+-+-+-+- ... -+-+-+-+-+ ... -+-+-+-+-+-+-+-+-+-+-+... <- RFC 6282 -> No RPL artifact IPv6 header HbH header ICMP header ICMP Payload RPL option <=> 101
  • 102. +- ... -+- ... -+-+-+-+- ... +-+-+-+-+-+-+-+-+-+- ... +-+-+-+-+-+... |11110001| RPI-6LoRH | NH = 1 |11110|C| P | Compressed | UDP |Page 1 | type 5 | 6LOWPAN-IPHC | UDP | | | UDP header |Payload +- ... -+- ... -+-+-+-+- ... +-+-+-+-+-+-+-+-+-+- ... +-+-+-+-+-+... <- RFC 6282 -> IPv6 header HbH header UDP header UDP Payload RPL option <=> 102
  • 103. 103
  • 104. A B C D Parent is default GW, propagates root PIO (L-bit off) Parent Address in the PIO (with R bit) RPL Router autoconfigures Address from parent PIO RPL Router advertises Address via Parent to Root Root recursively builds a Routing Header back B: ::/0 via A::A A::A connected A::B self A:: ~onlink C: ::/0 via A::B A::B connected A::C self A:: ~onlink D: ::/0 via A::B A::B connected A::D self A:: ~onlink Target A::C via Transit A::B A::B A::C A::D A::A A: (root) A::A self A::B connected A::C via A::B A::D via A::B A:: ~onlink A::D via A::B connected 104
  • 105. A B C D Parent is default GW, advertizes owned PIO (L bit on) RPL Router autoconfigures Address from parent PIO RPL Router advertises Prefix via Address to Root Root recursively builds a Routing Header back B: ::/0 via A::A A:: connected B:: connected C: ::/0 via B::B B:: connected C:: connected A: (root) A:: connected B:: via A::B C:: via B::C D:: via B::D D: ::/0 via B::B B:: connected D:: connected Target C::/ via Transit B::C D::3 via B::D via A::B connected A::B B::C B::D B::B A::A D::3 105
  • 106. Segments Left: 8-bit unsigned integer. Number of route segments remaining, i.e., number of explicitly listed intermediate nodes still to be visited before reaching the final destination. The originator of an SRH sets this field to n, the number of addresses contained in Addresses[1..n]. CmprI: 4-bit unsigned integer. Number of prefix octets from each segment, except than the last segment, (i.e., segments 1 through n-1) that are elided. For example, an SRH carrying full IPv6 addresses in Addresses[1..n-1] sets CmprI to 0. CmprE: 4-bit unsigned integer. Number of prefix octets from the last segment (i.e., segment n) that are elided. For example, an SRH carrying a full IPv6 address in Addresses[n] sets CmprE to 0. 106 Encoding: RFC 6554 then 6LoRH 0 1 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CmprI | CmprE | Pad | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | Routing Type3| Segments Left | | . . Addresses[1..n] | . . . | . | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • 107. 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -+- -+ ... +- -+ | 6LoRH | Length of compressed | Type | IPv6 address (bytes) +-----------+--- | 0 | | 1 | | 2 | | 3 | | +- 4 | +- |1|0|0| Size |6LoRH Type 0..4| Hop1 | Hop2 | | HopN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -+- -+ ... +- -+ Size indicates the number of compressed addresses +- +- + Packet source is reference for compressio Different compressed size => multiple RH3-6LoRH Placement first in the chain to be easily consumed as we go (address coalescence) 107
  • 108. +- ... -+- ... -+-+-+- ... -+-+-+-+-+ ... +-+-+-+-+-+-+ ... +-+-+... |11110001|RH3(128bits)| RH3(3*16bits) |NH=1 |11110CPP| Compressed | UDP |Page 1 | 6LoRH | 6LoRH |6IPHC| UDP | UDP header | Payload +- ... -+- ... +-+-+-+- ... -+-+-+-+-+ ... +-+-+-+-+-+-+ ... +-+-+... <- RFC 6282 -> With RPL this is only when the source is the root Note: IPv6 header UDP header UDP Payload <=> Routing hdr Hop Hop Hop Dec. 108
  • 109. Leaving the root: Leaving A Leaving B C removes the header and the IP-in-IP if nothing else in IP-in-IP B’s suffix RH3-6LoRH Type 4 RH3-6LoRH Type 3 IPv6 Prefix B’s suffix C’s suffix A’s suffix RH3-6LoRH Type 4 IPv6 Prefix C’s suffix RH3-6LoRH Type 4 RH3-6LoRH Type 3 IPv6 Prefix B’s suffix A’s suffix C’s suffix Root = encaps B C = decaps Dest A 1
  • 110. •+- ... -+-+- ... -+-+-+-+-+ ... -+-+-+-+-+-+-+-+-+-+-+-+-+-+... •|11110001| RH3(128bits)| RH3(2*16bits)| RFC 6282 Dispatch + LOWPAN_IPHC •|Page 1 | 6LoRH type 4| 6LoRH Type 1 | •+- ... -+- ... +-+-+-+- ... -+-+-+-+-+ ... -+-+-+-+-+-+-+-+-+-+-+... • <- RFC 6282 -> • + + + • | Type | Size Unit | • + + + • | 0 | 1 | • | 1 | 2 | • | 2 | 4 | • | 3 | 8 | • | 4 | 16 | • + + + <=> IPv6 header Routing header Hop Hop Hop Dec. Hdrs + Payload 110
  • 111. RRRRRRRRRRRRRRRRRRRR CCCCCCC ++ RRRRRRRRRRRRRCCCCCCC RR…RRRR is reference address for compression, may be compressed or not CCC…CC is compressed address, to shorter or same size as reference RR…RRCCC…CC is the Coalesced address, same size as reference 1
  • 112. Type 3 RH3-6LoRH Size = 0 AAAA AAAA AAAA AAAA Type 1 RH3-6LoRH Size = 0 BBBB Type 2 RH3-6LoRH Size = 1 CCCC CCCC DDDD DDDD Step 1 popping BBBB the first entry of the next RH3-6LoRH Step 2 next is if larger value (2 vs. 1) the RH3-6LoRH is removed Type 3 RH3-6LoRH Size = 0 AAAA AAAA AAAA AAAA Type 2 RH3-6LoRH Size = 1 CCCC CCCC DDDD DDDD Step 3: Type 3 recursion RH3-6LoRH ended, Size = coalescing BBBB with the 0 AAAA AAAA AAAA BBBB first entry Step 4: routing based on next segment endpoint to B 112
  • 113. Type 3 RH3-6LoRH Size = 0 AAAA AAAA AAAA BBBB Type 2 RH3-6LoRH Size = 1 CCCC CCCC DDDD DDDD Step 1 popping CCCC CCCC, the first entry of the next RH3-6LoRH Step 2 removing the first entry and decrementing the Size (by 1) Type 3 RH3-6LoRH Size = 0 AAAA AAAA AAAA BBBB Type 2 RH3-6LoRH Size = 0 DDDD DDDD Step 3: recursion ended, coalescing CCCC CCCC with the first entry Type 3 RH3-6LoRH Size = 0 AAAA AAAA CCCC CCCC Step 4: routing based on next segment endpoint to C 1
  • 114. Type 3 RH3-6LoRH Size = 0 Type 2 RH3-6LoRH Size = 0 AAAA AAAA CCCC CCCC DDDD DDDD Step 1 popping DDDD DDDD, the first entry of the next RH3-6LoRH Step 2 the RH3-6LoRH is removed Type 3 RH3-6LoRH Size = 0 AAAA AAAA CCCC CCCC Step 3: recursion ended, coalescing DDDD DDDDD with the first entry Type 3 RH3-6LoRH Size = 0 AAAA AAAA DDDD DDDD Step 4: routing based on next segment endpoint to D 114
  • 115. Type 3 RH3-6LoRH Size = 0 AAAA AAAA DDDD DDDD Step 1 the RH3-6LoRH is removed. Step 2 no more header, routing based on inner IP header. 115
  • 116. 116
  • 117. (Hateful stuff) 1 Only end points may add / remove headers Some headers are mutable (and if they are recoverable they may be secured) e.g. of mutable and partially recoverable is RPI (to secure the instance ID) So IP in IP is required If the packet leaves the RPL domain since HbH header must be removed If the packet enters the RPL domain since HBH header or RH3 must be inserted In non storing mode for a packet not going to or from the root (RPI to RH3 conversion at root). https://tools.ietf.org/html/draft-robles-roll-useofrplinfo-02
  • 118. Not a critical header, may be skipped so Length is in bytes. Placed last in the header chain (as of draft 04) Root is reference for compressing the Encapsulator Address. If the Length of an IP-in-IP-6LoRH header is exactly 1, then the Encapsulator Address is elided, which means that the Encapsulator is a well-known router, in the case of RPL the root in a RPL graph. When it cannot be elided, the destination IP address of the IP-in-IP header is transported in a RH3-6LoRH header as the first address of the list. With RPL, the destination address in the IP-in-IP header is implicitly the root in the RPL graph for packets going upwards, and the destination address in the IPHC for packets going downwards. If the implicit value is correct, the destination IP address of the IP-in-IP encapsulation can be elided. 118 Encoding: RFC 2460 then 6LoRH 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+ |1|0|1| Length | 6LoRH Type 6 | Hop Limit | Encaps. Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+
  • 119. MAC RH3-6LoRH* RPI-6LoRH IP-in-IP-LoRH IPHC blah optimizes operation on compressed form Reason 1: We modify the RH3-6LoRH on the way, popping the first address as we go. It is easier to do if it is the first header of the compressed packet so we always play with the very beginning of the packet Reason 2: So that IP header always TERMINATES the 6LoRH encapsulation, When there is no IP in IP , this is already true for instance MAC RPI-6LoRH IPHC One needs to differentiate a case that in UNCOMPRESSED form is RH3-6LoRH* RPI-6LoRH IP-in-IP-LoRH RH3-6LoRH* RPI-6LoRH IP-in-IP-LoRH RPI-6LoRH IPHC data IP-in-IP RPI RH3 IP blah vs. IP-in-IP IP RPI RH3 blah You cannot tell : ( With a format like MAC IP-in-IP-LoRH RH3-6LoRH* RPI-6LoRH IPHC blah With this format we have a clear separation for IP in IP in IP all the way MAC The separation of which header is in which encapsulation is clearly delineated with the IP header that terminates the encapsulated 6LoRH-headers. 4/3/2016 1
  • 120. •+- ... -+- ... -+-+ ... -+-+ ... -+- ... +-+-+-+-+-+-+-+-+-+-+... •|Frag type|Frag hdr |11110001| RPI | IP-in-IP | RFC 6282 Dispatch •|RFC 4944 |RFC 4944 | Page 1 | 6LoRH | 6LoRH | + LOWPAN_IPHC •+- ... -+- ... -+-+ ... -+-+ ... -+- ... +-+-+-+-+-+-+-+-+-+-+... • • •+- ... -+- ... <- RFC 6282 -> -+-+ ... -+-+ ... -+- ... +-+-+-+-+-+-+-+-+-+-+... •|Frag type|Frag hdr | •|RFC 4944 |RFC 4944 | Payload (cont) •+- ... -+- ... -+-+ ... -+-+ ... -+- ... +-+-+-+-+-+-+-+-+-+-+... •+- ... -+- ... -+-+ ... -+-+ ... -+- ... +-+-+-+-+-+-+-+-+-+-+... •|Frag type|Frag hdr | •|RFC 4944 |RFC 4944 | Payload (cont) •+- ... -+- ... -+-+ ... -+-+ ... -+- ... +-+-+-+-+-+-+-+-+-+-+... <=> IPv6 header Hdrs + Payload HbH header RPI in RPL option IPv6 header 120
  • 121. +-+-+-+-+-+-+- ... +-+-+- ... -+-+-- ... -+-+- ... -+-+-+-+-+-+-+ ... -+-+-+-+... |11110001 |RH3-6LoRH | RPI-6LoRH | IP-in-IP | NH=1 |11110CPP| Compressed | UDP |Page 1 |Type1 S=2 | | 6LoRH | IPHC | UDP | UDP header | Payload +-+-+-+-+-+-+- ... +-+-+- ... -+-+-- ... -+-+- ... -+-+-+-+-+-+-+ ... -+-+-+-+... <-8bytes-> <- RFC 6282 -> No RPL artifact One may note that the RPI is provided. This is because the address of the root that is the source of the IP-in-IP header is elided and inferred from the InstanceID in the RPI. Once found from a local context, that address is used as Compression Reference to expand addresses in the RH3-6LoRH. <=> IPv6 header UDP hdr UDP Payload Routing hdr Hop Dec. Hop HbH RPI IPv6 header 121
  • 122. DV, ORA P2MP/MP2P, LORA P2P Objective Functions, Metrics Controlling the control NECM Directed Acyclic Graphs Trickle and Datapath validation Local and Global Recovery N/A Dynamic Topologies Peer selection Constrained Objects Fuzzy Links Routing, local Mobility Global Mobility New Radios issues: Addressed in RPL by: 122
  • 123. Traffic Control Traffic Holes – Global Repair only Routing Table Sizes For Your Reference 123
  • 124. • Standard track Reactive model (P2P RPL rfc6997 is experimental) • Centralized route computation push (e.g. draft-thubert-roll-dao-projection ) • DAG limitations Sibling routing, more resilient schemes (ARCs) • Better / Faster (re) join (with DIS message e.g. draft-zhong-roll-dis-modifications) • Stimulated updates (lookup) with targetted DAO • Asymmetrical links • Multi-Topology routing and cascading 124
  • 125. • RFC 6206: The Trickle Algorithm • RFC 6550: RPL: IPv6 Routing Protocol for LLNs • RFC 6551: Routing Metrics Used for Path Calculation in LLNs • RFC 6552: Objective Function Zero for the Routing Protocol for LLNs • RFC 6553: RPL Option for Carrying RPL Information in Data-Plane Datagrams • RFC 6554: An IPv6 Routing Header for Source Routes with RPL • RFC 6719: MRHOF Objective Function with hysteresis • RFC 6997: Reactive Discovery of Point-to-Point Routes in LLNs • 125
  • 126. Bringing it all together: draft-ietf-6lo-backbone-router 126
  • 127. 127
  • 128. 1. IPv6 Discovery protocols use multicast flooding Assuming a lower layer multicast support Not just IPv6 NDP but also mDNS, etc… 2. Layer-2 destination set to 3333XXXXXXXX 3. Layer-2 fabric handles as broadcast (all nodes) 4.Broadcast clogs the wireless access at low access speed (typically 1Mbps) on all APs around the fabric 5.Broadcast self interferes on attached wireless mesh and drains the batteries on all nodes 128
  • 129. Multiple L3 Multicast messages RA Multiple L2 Broadcast messages 1. MAC address reachability flooded over L2 switch fabric 2. Device sends RS to all routers link scope mcast 3. Router answers RA (u or m) 4. Device sends mcast NS DAD to revalidate its address(es) 5. Device sends mcast NA(O) 1 6TISCH uses a backbone router, limits the broadcast domain to the backbone VM, NFV,Wireless or IoT device moves:
  • 130. Nbr Solicitation L3 Multicast L2 broadcast Packet to Target that is missing in router ND cache Nbr Advertisement Unicast 1. Router looks up ND cache (say this is a cache miss) 2. Router sends NS multicast to solicited-node multicast @; here that is 3333 FF00 00A1 3. Targets answers unicast NA 4. Target revalidates ND cache for the router, usually unicast 5. Router creates ND cache entry 6TiSCH proxies at the backbone router on behalf of device 1 Packet comes in for 2001:db8::A1
  • 131. Multicast Avoidance Registration for DAD Binding (location, owner, MAC) to IPv6 address Registrar hierarchy for lookups and policy enforcement Scalable Backbone Operation L2 routing (IS-IS) + proxy-ND in the backboneRegistration + L3 Routing in attached networks (RPL RFC 6550) Optional MAC address proxying to avoid MAC@ floods New ND methods between registrars and other devices (e.g. LISP) IETF drafts draft-ietf-6lo-backbone-router draft-chakrabarti-nordmark-6man-efficient-nd draft-thubert-6man-wind-sail 1
  • 132. Scalable and Multi-Link Deterministic e2e (DetNet) Registration based ND IP guard (admin knows what’s where) => Authoritative Registrar(s) Backbone Routers RPL root, ND proxy Legacy IPv6 devices Authoritative Registrar BR Authoritative Registrar / 6L Intermediate Registrar / 6LR Intermediate Registrar option. ND proxy 1 Backbone router (ND proxy)
  • 133. 6TiSCH 6 S T e i n S s C o r H Actuator Backbone Router Management Wireless Controller Backbone Router Single Multilink IPv6 Subnet with free inner mobility (same subnet == no renumbering) Virtual Service Engine (virtual PLC, PCE …) + IPv6 ND registrar + Network Function Virtualization (NFV) NAC /Firewall VPN Concentrator IPv6 ND registration and proxy operation 133
  • 134. Wireless Router Wireless Router Mesh Root Mesh Root Wireless Router Wireless Router 134
  • 135. 135
  • 136. Used to resolve conflicts 1 Need In ND: TID to detect movement ->eARO Need In RPL: Object Unique ID if we use RPL for DAD 01 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length = 2 | Status | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved |T| TID | Registration Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + | | + | OUID ( EUI-64 or equivalent ) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • 137. Routers within subnet have a connected route installed over the subnet backbone. PCE probably has a static address in which case it also has a connected route Connected Route to subnet 137
  • 138. Gateway to the outside participate to some IGP with external network and attracts all extra- subnet traffic via protocols over the backbone Default Route In RIB 138
  • 139. Directly upon NS(ARO) or indirectly upon DAR message, the backbone router performs DAD on behalf of the wireless device. DAR NS (ARO) 1 DAD NS DAD (ARO)
  • 140. NA(ARO) or DAC message carry succeful completion if DAD times out. NA(Override) is optional to clean up ND cache stale states, e.g. if node moved. DAC Optional NA(O) NA (ARO) 140
  • 141. The BR maintains a route to the WSN node for the DAO Lifetime over instance VRF. VFR may be mapped onto a VLAN on the backbone. RPL DAO Host Route 1 Optional NA(O)
  • 142. The BR maintains a route to the WSN node for the DAO Lifetime over instance VRF that is continued with RPL over backbone. RPL DAO RPL DAO Host Route 1
  • 143. DAD option has: Unique ID TID (SeqNum) Defend with NA if: Different OUID Newer TID NS DAD (ARO) NA (ARO) NS (ARO) 143
  • 144. DAD option has: Unique ID TID (SeqNum) Defend with NA if: Different OUID Newer TID DAR NA (ARO) DAD 144
  • 145. Optional NA(ARO) RPL DAO Host Route DAD option has: Unique ID TID (SeqNum) Defend with NA if: Different OUID Newer TID NA (ARO) with older TID (loses) 145
  • 146. Packet NS lookup NA ARO option has: Unique ID TID (SeqNum) 146 NA (ARO)
  • 147. NS lookup Mixed mode ND BBR proxying over the backbone 147 NA (ARO) Packet
  • 148. 148
  • 149. 6LR 6LBR 6BBR outer/Serv er LP Node RPL Ethernet RA (unicast) RA (u|mcast) DIO outer/Serv er R R Router/Serv er Ethernet Radio 1 Hop SLLA PIO MTU SLLA CONTEXT PIO MTU SLLA CONTEXT PIO MTU RA (u|mcast) RS (mcast) PIO RA (u|mcast) 149 PIO MTU SLLA CONTEXT
  • 150. 6LR 6LBR 6BBR outer/Serv er LP Node Radio Mesh Ethernet NA (~O) outer/Serv er R R Router/S Ethernet Radio 1 Hop NS lookup Create proxy state Classical ND RPL 6LoWPAN ND Efficient ND NS (ARO) DAR, RPL DAO NS (ARO) NS DAD NA (ARO) DAC (ARO) NA (ARO) 6LR 6LBR 6BBR outer/Serv er er LP Node outer/Serv v er er R R Router/Serv er 1
  • 151. 6LR 6LBR 6BBR outer/Serv er LP Node RPL Ethernet NS DAD (ARO) NS (ARO) NS (ARO) DAR (ARO) outer/Serv er R R Router/S Ethernet Radio 1 Hop SRC = UNSPEC DST = SNMA TGT = LPN UID = LPN TID included SRC = 6LR * DST = 6LBR REG = LPN UID = LPN TID included SRC = LPN_ll * DST = 6LR_ll * TGT = LPN ** SLLA = LPN UID = LPN TID included SeND? SRC = 6LBR DST = 6BBR * TGT = LPN SLLA = L6BR TID included * Global / ULA * Can be Anycast Create binding state Create proxy state * link local unique EUI-64 ** any LPN IPv6 address RFC 6775 does not u U sIe D = LPN target but src 6LR 6LBR 6BBR outer/Serv er er LP Node outer/Serv er v er R R Router/Serv er 151
  • 152. 6LR 6LBR 6BBR outer/Serv er LP Node RPL Ethernet NA (O) * NA (ARO) NA (ARO) DAC (ARO) outer/Serv er R R Router/S Ethernet Radio 1 Hop SRC = 6LR DST = 6LBR REG = LPN UID = LPN TID included SRC = 6LR_ll DST = LPN_ll TGT = LPN TLLA = LPN UID = LPN TID included SRC = 6BBR DST = 6LBR TGT = LPN TLLA = L6BR UID = LPN TID included * Omitted in general ** link local DAD time out SRC = 6BBR_ll ** DST = NS SRC TLLA = L6BR TGT = LPN Adding TLLAO since dest. is not target 6LR 6LBR 6BBR outer/Serv er er er LP Node outer/Serv er v R R Router/Serv er 152
  • 153. 6LR 6LBR 6BBR outer/Serv er LP Node RPL Ethernet NA (~O) NS (ARO) NS (ARO) RPL DAO outer/Serv er R R Router/S Ethernet Radio 1 Hop SRC = 6BBR DST = NS SRC TGT = LPN TLLA = 6LBR SRC = 6LR DST = Parent * or Root TGT = LPN UID missing : ( TID included SRC = LPN_ll DST = 6LR_ll TGT = LPN SLLA = LPN UID = LPN TID included SRC = 6LBR DST = 6BBR TGT = LPN SLLA = L6BR UID = LPN * TID included * Parent in storing mode * From binding state NS lookup RPL cannot DAD for lack of UID 6LR 6LBR 6BBR outer/Serv er er LP Node outer/Serv v er er R R Router/Serv er 153
  • 154. 154
  • 155. 6LR 6LBR LP Node NS (ARO) DAR (ARO) SRC = 6LR DST = 6LBR REG = LPN UID = LPN TID included SRC = LPN_ll DST = 6LR_ll TGT = LPN ** SLLA = LPN UID = LPN TID included Collision of binding state within RPL DODAG Different UID for addr. LPN NA (ARO, s=1) DAC (ARO, s=1) SRC = 6LR DST = 6LBR REG = LPN UID = LPN TID included SRC = 6LR_ll DST = LPN_ll TGT = LPN TLLA = LPN UID = LPN TID included 6LR 6LBR LP Node 1
  • 156. 6LR 6LBR 6BBR LP Node RPL NS (ARO) NS (ARO) DAR (ARO) Ethernet Radio 1 Hop SRC = 6LR DST = 6LBR REG = LPN UID = LPN TID included SRC = LPN_ll DST = 6LR_ll TGT = LPN SLLA = LPN UID = LPN TID included Create binding state Collision of proxy state between 6LBRs attached to a same 6BBR NA (ARO, s=1) NA (ARO, s=1) DAC (ARO, s=1) SRC = 6BBR DST = 6LBR TGT = LPN UID = LPN TID included 6LR 6LBR 6BBR LP Node 1
  • 157. outer/Serv er outer/Serv er R R Router/S 6LR 6LBR 6BBR LP Node RPL Ethernet NS DAD (ARO) NS (ARO) NS (ARO) DAR (ARO) Ethernet Radio 1 Hop SRC = 6LR DST = 6LBR REG = LPN UID = LPN TID included SRC = LPN_ll DST = 6LR_ll TGT = LPN SLLA = LPN UID = LPN TID included SRC = 6LBR DST = 6BBR SLLA = L6BR TGT = LPN UID = LPN TID included Create binding state Create proxy state Collision with legacy device attached to the backbone 6LR 6LBR 6BBR outer/Serv er er er LP Node outer/Serv er v R R Router/Serv er 157
  • 158. Router/Serv er 6LR 6LBR 6BBR LP Node RPL Ethernet Radio 1 Hop NA (ARO, s=1) NA (ARO, s=1) DAC (ARO, s=1) SRC = NODE DST = 6BBR TGT = LPN UID = LPN TID included Collision with legacy device Ethernet NA (O) SRC = 6BBR DST = 6LBR TGT = LPN UID = LPN TID included SRC = 6LR DST = 6LBR REG = LPN UID = LPN TID included SRC = 6LR_ll DST = LPN_ll TGT = LPN UID = LPN TID included 6BBR outer/Serv er R Router/S 6LR 6LBR 6BBR LP Node outer/Serv er er outer/Serv v er er R R Router/Serv er 158
  • 159. RPL Ethernet NS DAD (ARO) NS (ARO) NS (ARO) DAR (ARO) Ethernet Radio 1 Hop SRC = 6LR DST = 6LBR REG = LPN UID = LPN TID included SRC = LPN_ll DST = 6LR_ll TGT = LPN SLLA = LPN UID = LPN TID included SRC = 6LBR DST = 6BBR TGT = LPN SLLA = L6BR UID = LPN TID included Create binding state Create proxy state Collision of proxy state between 6BBRs attached to a same backbone outer/Serv er 6LR 6LBR 6BBR LP Node outer/Serv er R R Router/Serv er 159
  • 160. 6LR 6LBR 6BBR LP Node RPL Ethernet Radio 1 Hop NA (ARO, s=1) NA (ARO, s=1) DAC (ARO, s=1) SRC = 6BBR2 DST = 6BBR TGT = LPN2 UID = LPN2 TID2 included Ethernet Collision of proxy state NA (ARO, s=1) SRC = 6BBR DST = 6LBR TGT = LPN UID = LPN TID included SRC = 6LR DST = 6LBR REG = LPN UID = LPN TID included SRC = 6LR_ll DST = LPN_ll TGT = LPN UID = LPN TID included 6BBR 6BBR 6LR 6LBR 6BBR outer/Serv er 6BBR LP Node outer/Serv er R R Router/Serv er 160
  • 161. 161
  • 162. 6LR 6LBR LP Node NS (ARO) DAR (ARO) SRC = 6LR DST = 6LBR REG = LPN UID = LPN TID included SRC = LPN_ll DST = 6LR_ll TGT = LPN ** SLLA = LPN UID = LPN TID included Matches a binding state within RPL DODAG same UID for addr. LPN NA (ARO, s=0) DAC (ARO, s=0) SRC = 6LR DST = 6LBR REG = LPN UID = LPN TID included SRC = 6LR_ll DST = LPN_ll TGT = LPN TLLA = LPN UID = LPN TID included 6LR 6LBR 6BBR LP Node 1
  • 163. outer/Serv er outer/Serv er R R Router/Serv er 6LR 6LBR 6BBR LP Node RPL NS (ARO) NS (ARO) DAR (ARO) Ethernet Radio 1 Hop SRC = 6LR DST = 6LBR REG = LPN UID = LPN TID included SRC = LPN_ll DST = 6LR_ll TGT = LPN SLLA = LPN UID = LPN TID included Create binding state Matches a proxy state associated to another 6LBR attached to a same 6BBR NA (ARO, s=0) DAC (ARO, s=0) NA (ARO, s=0) Update proxy state SRC = 6LBR DST = 6BBR TGT = LPN SLLA = L6BR UID = LPN TID included 6LR 6LBR 6BBR LP Node 163
  • 164. 6LR 6LBR 6BBR 6BBR LP Node RPL Ethernet NS DAD (ARO) NS (ARO) NS (ARO) DAR (ARO) 6BBR Ethernet Radio 1 Hop SRC = 6LR DST = 6LBR REG = LPN UID = LPN TID included SRC = LPN_ll DST = 6LR_ll TGT = LPN SLLA = LPN UID = LPN TID included SRC = 6LBR DST = 6BBR TGT = LPN SLLA = L6BR UID = LPN TID included Create binding state Create proxy state Matches a proxy state in another 6BBR attached to a same backbone 6LR 6LBR 6BBR outer/Serv er 6BBR LP Node outer/Serv er R R Router/Serv er 164
  • 165. 6LR 6LBR 6BBR LP Node RPL Ethernet Radio 1 Hop NA (ARO, s=0) DAC (ARO, s=0) DST = 6BBR TGT = LPN UID = LPN TID2 included Ethernet SRC = 6BBR DST = 6LBR TGT = LPN UID = LPN TID included SRC = 6LR DST = 6LBR REG = LPN UID = LPN TID included SRC = 6LR_ll DST = LPN_ll TGT = LPN UID = LPN TID included 6BBR 6BBR NA (O) Collision with Older TID Yield silently NA (ARO, s=0) SRC = 6BBR2 6LR 6LBR 6BBR outer/Serv er 6BBR LP Node outer/Serv er R R Router/Serv er 165
  • 166. 6LR 6LBR 6BBR LP Node RPL Ethernet Radio 1 Hop NA (ARO, s=3) NA (ARO, s=3) DAC (ARO, s=3) SRC = 6BBR2 DST = 6BBR TGT = LPN UID = LPN TID2 included Ethernet Collision with Newer TID NA (ARO, s=3) SRC = 6BBR DST = 6LBR TGT = LPN UID = LPN TID included SRC = 6LR DST = 6LBR REG = LPN UID = LPN TID included SRC = 6LR_ll DST = LPN_ll TGT = LPN UID = LPN TID included 6BBR 6BBR 6LR 6LBR 6BBR outer/Serv er 6BBR LP Node outer/Serv er R R Router/Serv er 166
  • 167. 167
  • 168. 6LR 6BBR outer/Serv er LP Node RPL Ethernet outer/Serv er R R Router/S Radio 1 Hop 6LR 6LBR 6BBR outer/Serv er er LP Node outer/Serv v er er R R Router/Serv er NS lookup NA (~O) SRC = 6BBR DST = NS SRC SLLA = 6BBR TGT = LPN Data packet Data packet Data packet Data packet 1
  • 169. 6LR 6BBR outer/Serv er LP Node RPL outer/Serv er R R Router/S Radio 1 Hop 6LR 6LBR 6BBR outer/Serv er er LP Node outer/Serv v er er R R Router/Serv er NS lookup NA (~O) SRC = 6BBR DST = NS SRC SLLA = 6LBR TGT = LPN Data packet Data packet Data packet Ethernet (Switched) 1
  • 170. © 2012 Cisco and/or its affiliates. All rights reserved. IoT6 171 Unclassified “We might be at the eve of pervasive networking, a vision for the Internet where every person and every device is connected to the network in the ultimate realization of Metcalf's Law.”
  • 171. © 2010 Cisco and/or its affiliates. All rights reserved. 172 Unclassified BRKEWN-3012 Questions
  • 172.
  • 174. Embedded Systems : It is a combination of hardware and software used to perform special tasks. It includes microcontroller and microprocessor memory, networking units (Ethernet Wi-Fi adapters), input output units (display keyword etc. ) and storage devices (flash memory). It collects the data and sends it to the internet. Embedded systems used in Digital camera DVD player, music player Industrial robots Wireless Routers etc. 174
  • 175. 1.Daniel Minoli, Building the Internet of Things with IPv6 and MIPv6: The Evolving World of M2M Communications, Wiley Publications, First Edition, 2013. (UNIT I-IV) 2. Arsheep Bahga , Vijay Madisetti , Internet of Things: A Hands-On Approach, Universities Press, First Edition , 2014.(UNIT I & V) References : 06/08/2020 27 Introduction/Data Analytics/Sangeetha K/CSE/SNSCT 175