## 2 RPL Overview  
IoT networks are characterized by the interconnectivity of a high number of resource-constrained embedded devices over LLNs. These devices are of small capacity and restricted in terms of computation, storage, and energy resources. Scarce LLN links are typically utilized to establish network connectivity among these devices without any guarantee of high network performance and communication reliability. However, wireless data communications are guaranteed without adding much complexity and incurring high cost and energy consumption. Therefore, the link layer communication technology commonly adopted for LLNs is IEEE 802.15.4. On top of that, header compression and fragmentation are incorporated in LLN architecture as an additional IP adaptation layer for effective integration with IPv6 networks. The IETF in RFC 4944 [20] and RFC 6282 [21] specifies that such functionality is provided by the IPv6 over Low-Power Wireless Personal Area Networks (6 LowPANs). It enables LLNs to efficiently address end-to-end IP networking. For effective LLN routing on top of the 6 LowPAN layer, the IETF ROLL working group specified RPL in RFC 6550 [10] to provide a customized networking solution for maintaining the IPv6 routing functionality at the network layer. It enables effective loop-free routing of IoT data traffic over constrained LLN links. RPL is developed as a distance-vector routing protocol that works in a proactive mode of operation. It supports different communication schemes: point-to-point, point-to-multipoint, and multipoint-to-point. RPL is designed with a routing framework adhering to the distinct characteristics of LLNs while providing the flexibility to implement objective-oriented routing optimization. It facilitates the implementation of different routing optimization objectives using one or multiple routing metrics. Therefore, RPL provides the support to meet the varying requirements of a broad range of IoT applications. A single LLN is structured by RPL as one or a set of distinct RPL instances with each one constructed as a Directed Acyclic Graph (DAG). An RPL instance consists of single or multiple Destination-Oriented DAGs (DODAGs). A DODAG is established as a multihop network topology of a designated root (RPL sink node) and multiple normal RPL nodes. Figure 1 presents an example RPL network of two RPL instances. Instance 1 contains two different DODAGs and Instance 2 has a single DODAG. Internet connectivity for these DODAGs is maintained through their corresponding sink nodes (SN1-3). RPL operation is based on four main ICMPv6 messages to enable the construction of a DODAG topology in a multihop fashion. This is achieved in two main stages: upward and downward network path establishment. The first stage starts with the sink node initiating periodic dissemination of DODAG Information Object (DIO) messages. Upon the reception of the message, each recipient node processes and then forwards it to its neighbor nodes. Having this process repeated by each node joining the DODAG enables full network convergence and the successful establishment of upward paths across the network. That is, the DIO messages carry the necessary information to the nodes for successful DODAG discovery and maintenance. The disseminated information in the DIO message includes the Instance ID and DODAG ID which are utilized to identify a DODAG. In addition, each DIO message contains the Version Number (VN) which indicates the current update to the topology of the DODAG. Other indicators including the rank value and IPv6 address of the parent node are also disseminated to enable nodes to successfully join the network. The DIO messages also contain other important information indicating the Objective Function (OF) being applied in the current RPL instance. DODAG topology formation is dictated by the OF to meet specific routing optimization goals and achieve certain application-specific network requirements.