RPL is a distance vector routing protocol designed for low power and lossy networks. It forms a Destination Oriented Directed Acyclic Graph (DODAG) topology with the root node at the top. Nodes in the RPL network are assigned a rank based on their position relative to the DODAG root, with downward routes following increasing ranks and upward routes following decreasing ranks. RPL uses DIO, DIS, DAO, DAO-ACK and CC control messages to construct and maintain the DODAG topology as well as advertise routes and ensure consistency.