## 2 RPL Overview
RPL provides a customizable OF that can be implemented for objective-oriented routing toward effective optimization of DODAG construction. Certain optimization objectives can be defined to meet different requirements including network reliability, energy efficiency, and data security. These can then be utilized for the establishment of low-cost upward routing paths. Each RPL node uses the advertised OF in DIO messages for node ranking and parent selection. The rank calculation is performed by the node to specify its virtual distance to the sink node and inhibits any routing loop. This process ensures that rank increases as the node's position goes deeper in the DODAG. A preferred parent (next hop) is then selected among those of lower-ranked nodes in its neighbor list which consists of all the sources of received DIO messages. Optimal parent selection can then guarantee minimum-cost loop-free routing over lowest-ranked parents. Different routing metrics and constraints can be utilized for implementing an OF that fulfills specific application requirements. A routing metric is a quantitative value that represents a specific characteristic of the network based on the calculation of certain network parameters. This value indicates the cost of selecting a certain path according to an optimization objective. OFs can be implemented using single or composite routing metrics based on either static or dynamic values. Examples of potential routing metrics and constraints can be found in RFC 6551 [22] which classifies them into node and link routing metrics and constraints. There are two standardized OFs for RPL: Objective Function Zero (OF0) and Minimum Rank with Hysteresis Objective Function (MRHOF). RFC 6552 [23] specifies OF0 which is based on the hop count as a routing metric. MRHOF has been  
Figure 1: An Example RPL Network. developed to address network reliability as specified in RFC 6719 [24]. It uses the Estimated Transmission Count (ETX) as a routing metric which is based on the calculation of the necessary transmissions/retransmission for successful packet delivery. The following stage to upward routing is downward network path establishment. It is initiated in response to the process of topology construction. Each node propagates its routing information upward upon the reception of a DIO message via a parent node. This is performed by sending a Destination Advertisement Object (DAO) message over the upward paths already established to the sink node. The message contains routing information such as the node's IPv6 address. Two modes of downward routing are supported: storing and non-storing modes. The former is fully stateful as the routing information being disseminated in DAO messages is stored by each node. Internal routing across the DODAG network is effectively maintained based on the stored routing information. This enables data packets to be routed from any RPL source to an RPL destination via a common ancestor node. The non-storing mode is based on source routing that allows routing data traffic through the root only. Accordingly, only the sink node has complete access to the network destinations in a DODAG whereas no routing table is maintained by the other nodes. In either of these modes, RPL nodes acknowledge the reception of DAO messages by replying with DAO-ACK messages. During topology construction and maintenance, RPL utilizes the Trickle algorithm [25] to manage network overhead and maintain control packets at a minimum level. It provides the ability to control DIO transmissions based on how stable the network is currently. It starts with a small time interval and then applies an exponential increase as long as the DODAG topology stays stable without any inconsistency detected in the network. Otherwise, the algorithm resets the time interval, causing the process to start over. Examples of the events that cause such a reset are VN updates, preferred parent changes, and the reception of any DIS message triggering DIO broadcasting.