RPL Message Flow Workbench
Trace how DIO, DIS, DAO, and DAO-ACK messages build and maintain an RPL routing instance
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.
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.
Solicitation
Sent by a new or recovering node to ask nearby RPL routers for DIOs instead of waiting for the next long Trickle interval.
Downward route advertisement
Sent upward toward the root to advertise targets that should be reachable from above or from other parts of the DODAG.
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 outwardPacket 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.