RPL: IPv6 Routing Protocol for Low power and Lossy Networks

RPL: IPv6 Routing Protocol for Low power and
Lossy Networks
Siarhei Kuryla
Networks and Distributed Systems seminar
March 1, 2010
Low power and Lossy Networks (LLNs)
LLNs are composed of many embedded devices:
I
restricted in processing power, memory and energy (battery);
I
interconnected by a variety of links, such as IEEE 802.15.4 or
Low Power WiFi, characterized by high loss rates, low data
rates and instability;
Routing Over Low power and Lossy networks (ROLL)
IETF working group focused on routing issues for LLNs:
I
routing requirements specification for various application areas
of LLNs;
I
evaluation of existing routing protocols in the scope of LLNs;
I
Routing Protocol for Low power and lossy networks (RPL,
pronounced ripple);
Survey of existing routing protocols
Protocol
OSPF/IS-IS
OLSRv2
TBRPF
RIP
AODV
DYMO
DSR
State
fail
fail
fail
pass
pass
pass
fail
Loss
fail
?
pass
fail
fail
?
pass
Control
fail
?
fail
pass
pass
pass
pass
Link Cost
pass
pass
pass
?
fail
?
fail
Node Cost
fail
pass
?
fail
fail
?
fail
I
Routing State - limited memory resources of low-power nodes.
I
Loss Response - what happens in response to link failures.
I
Control cost - constraints on control traffic.
I
Link&Node cost - link and node properties are considered
when choosing routes.
RPL: IPv6 Routing Protocol for LLNs
Definitions:
I
Directed Acyclic Graph (DAG) - a directed graph with no
cycles exist.
I
Destination Oriented DAG (DODAG) - a DAG rooted at a
single destination.
DAG roots
DAG
DODAG
RPL Node Rank
Defines a node’s relative position within a DODAG with respect to
the DODAG root.
Rank = 0
Rank = 1
Rank = 3
Rank = 1
Rank = 2
Rank = 3
RPL: IPv6 Routing Protocol for LLNs
Assumption: most traffic in LLNs flows through few nodes
I
many-to-one;
I
one-to-many;
Approach: build a topology (Instance) where routes to these nodes
are optimized (DODAG(s) rooted at these nodes)
Instance may include several DODAGs
RPL Instance
I
I
I
Defines Optimization Objective when forming paths towards
roots based on one or more metrics
Metrics may include both Link properties (Reliability, Latency)
and Node properties (Powered on not)
A network may run multiple instances concurrently with
different optimization criteria
Instance may include several DODAGs
RPL Control Messages
RPL defines a new ICMPv6 message with three possible types:
I
DAG Information Object (DIO) - carries information that
allows a node to discover an RPL Instance, learn its
configuration parameters and select DODAG parents
I
DAG Information Solicitation (DIS) - solicit a DODAG
Information Object from a RPL node
I
Destination Advertisement Object (DAO) - used to propagate
destination information upwards along the DODAG.
DODAG Construction
I
Nodes periodically send link-local multicast DIO messages
I
Stability or detection of routing inconsistencies influence the
rate of DIO messages
I
Nodes listen for DIOs and use their information to join a new
DODAG, or to maintain an existing DODAG
I
Nodes may use a DIS message to solicit a DIO
I
Based on information in the DIOs the node chooses parents
that minimize path cost to the DODAG root
Result: Upward routes towards the DODAG root
DODAG Example
I
Each node has a set of parent nodes
I
A node has no knowledge about children → ONLY upward
routes
R=0
R=1
1
1
B
R=3
1
3
R=5
1
1
C
G
I
R=6
D
1
2
2
R=1
1
4
H
2
3
R=2
7
F 1
1
R=4
A
1
K
edge in DODAG
1
unused link
E R=3
R=4
DODAG Repair
Link between G and C fails:
I
Choose another parent with a lower rank
R=0
R=1
1
1
B
R=3
1
3
R=5
1
1
C
G
I
R=6
D
1
2
2
R=1
1
4
H
2
3
R=2
7
F 1
1
R=4
A
1
K
edge in DODAG
1
unused link
E R=3
R=4
DODAG Repair
I
Global repair- makes use of DODAG Sequence Numbers
I
Local repair - poison the sub-DODAG by advertising the rank
of INFINITY
SEQ=N+1
SEQ=N+1
A
1
1
B
3
SEQ=N+1
1
H
SEQ=N
1
1
C
3
I
SEQ=N
D
1
2
2
SEQ=N+1
1
4
7 SEQ=N 1
SEQ=N
F 1
G
2
1
K
1
E
edge in DODAG
unused link
SEQ=N+1
SEQ=N+1
Downward Routes and Destination Advertisement
I
Nodes inform parents of their presence and reachability to
descendants by sending a DAO message
I
Node capable of maintaining routing state → aggregate
routes
I
Node incapable of maintaining routing state → attach a
next-hop address to the reverse route stack contained within
the DAO message
Destination Advertisement - Example
I
I
I
I
H sends a DAO message to F indication the availability of H,
F adds the next-hop and forwards the message to I
G sends a DAO message to F indication the availability of G,
F adds the next-hop and forwards the message to I
F sends a DAO message to I indication the availability of F
I aggregates the routes and sends a DAO advertising (F-I)
A
B
root node
D
C
stateless nodes
stateful nodes
F
H
E
G
I
K
G
RPL Traffic Flows
I
Up towards the DAG root for many-to-one
I
Down away from the DAG root for one-to-many
I
Point-to-point via up*down*
Up
Down
RPL Summary
I
Optimized for many-to-one and one-to-many traffic patterns
I
Routing state is minimized: stateless nodes have to store only
instance(s) configuration parameters and a list of parent
nodes
I
Takes into account both link and node properties when
choosing paths
I
Link failures does not trigger global network re-optimization
References
I
P. Thubert. RPL: IPv6 Routing Protocol for Low power and
Lossy Networks. IETF, Internet-Draft draft-ietf-roll-rpl-05,
December 2009.
I
A. Brandt. RPL Routing Protocol for Low Power and Lossy
Networks. http://cabernet.verkstad.net/agenda/75/
slides/roll-2/roll-2_files/v3_document.htm,
February 2010.
I
J. Hui. RPL: IPv6 Routing Protocol for Low Power and Lossy
Networks. ROLL WG Meeting, 76th IETF Meeting,
Hiroshima, Japan.
Thank you for attention!