[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