RPL Message Flow Workbench

Trace how DIO, DIS, DAO, and DAO-ACK messages build and maintain an RPL routing instance

animation
rpl
routing
protocols
6lowpan
message-flow
intermediate
A guided RPL message-flow workbench for independent learners comparing DIO discovery, DIS solicitation, DAO downward-route advertisement, DAO-ACK confirmation, Trickle timing, and storing versus non-storing mode behavior.
RPL control plane DIO / DIS / DAO Downward routes

RPL message flow workbench

Trace DIO, DIS, DAO, and DAO-ACK through one DODAG. Watch which message discovers parents, asks for faster DIO, advertises downward targets, or confirms DAO status.

DIOactive message
Trickle timertrigger
root outwardlogical direction
upward readyroute effect
DIO

DODAG advertisement

Sent by the root and joined routers, usually multicast and paced by Trickle, so neighbors can learn rank, DODAG version, mode of operation, and configuration.

DIS

Solicitation

Sent by a new or recovering node to ask nearby RPL routers for DIOs instead of waiting for the next long Trickle interval.

DAO

Downward route advertisement

Sent upward toward the root to advertise targets that should be reachable from above or from other parts of the DODAG.

DAO-ACK

Optional confirmation

Sent back for a DAO when the acknowledgement behavior is requested or used. It confirms DAO reception and reports success or status.

Message Path

DIO outward
RPL DODAG message flow A DODAG root, two routers, and three constrained nodes showing DIO, DIS, DAO, DAO-ACK, and downward data paths with current route-state highlights.
DIO DIS DAO DAO-ACK data route

Packet Inspector

Route State

Step Transcript

Quick Reference

DIO

ICMPv6 RPL control code 0x01. Carries RPL Instance, DODAG Version, Rank, Mode of Operation, DTSN, DODAG ID, and options in the simplified view.

DIS

ICMPv6 RPL control code 0x00. Solicits DIOs. It can be multicast or unicast; a receiver may reset Trickle to send DIO sooner.

DAO / DAO-ACK

DAO is code 0x02 and advertises targets upward. DAO-ACK is code 0x03 and reports DAO status when acknowledgement is requested or used.

Guided Practice

1. Fast join

Choose "DIS fast join", step twice, and watch how the joining node uses DIS to cause a faster DIO response.

2. Downward route

Choose a DAO scenario, switch between storing and non-storing mode, and compare which routers hold downward state.

3. Ack risk

Set DAO acknowledgement to "DAO-ACK lost" and notice that retransmission uncertainty is not the same as a new route target.

Technical Accuracy Notes

Direction is logical

DIO is often described as downward because lower-rank routers advertise to higher-rank candidates, but it is normally multicast by any joined RPL router, not only by the root.

DAO is not upward routing

A node's upward route usually follows its preferred parent after DIO-based parent selection. DAO is needed to make that node reachable from above or from peers through downward routing.

Mode changes state placement

In storing mode, intermediate routers keep routing state for targets below them. In non-storing mode, the root keeps source-route knowledge and carries it in packets sent downward.

Primary references: RFC 6550 RPL, RFC 6206 Trickle, RFC 6553 RPL Option, and RFC 6554 Source Route Header.

Related RPL Pages