[Paper] RPL: IPv6 Routing Protocol for Low Power and Lossy Networks - goofcode/UR GitHub Wiki
Design Overview
- RPL is a distance vector routing protocol for LLNs that makes use of IPv6
- Destination Oriented Directed Acyclic Graph (DODAG)
- The graph is constructed by the use of an Objective Function (OF)
- defines how the routing metric is computed.
- specifies how routing constraints and other functions are taken into account during topology construction
- Rank: tries to avoid routing loops by computing a node’s position relative to other nodes with respect to the DODAG root
- may be equal to a simple hop-count distance
- may be calculated as a function of the routing metric
- may be calculated with respect to other constraints
- 4 types of control messages - ICMPv6 information messages with a requested type of 155
- DIO: DODAG Information Object - main source of routing control information
- may store current rank of a node
- current RPL instance
- IPv6 address of the root
- DAO: Destination Advertisement Object
- enables down traffic
- used to propagate destination information upwards along the DODAG
- DIS: DODAG Information Solicitation
- makes it possible for a node to require DIO messages from a reachable neighbor
- DAO-ACK: ack for DAO
Upward Routing
- standard procedure which enables network devices to send data to a common data sink