Routing Protocols for Mobile Internet of Things (IoT): A Survey on Challenges and Solutions

: The Internet of Things (IoT) is aimed to provide efﬁcient and seamless connectivity to a large number of low-power and low-cost embedded devices, consequently, the routing protocols play a fundamental role in achieving these goals. The IETF has recently standardized the IPv6 Routing Protocol for Low Power and Lossy Networks (RPL) for LLNs (i.e., Low-power and Lossy Networks) and is well-accepted among the Internet community. However, RPL was proposed for static IoT devices and suffers from many issues when IoT devices are mobile. In this paper, we ﬁrst present various issues that are faced by the RPL when IoT devices are mobile. We then carry out a detailed survey of various solutions that are proposed in the current literature to mitigate the issues faced by RPL. We classify various solutions into ﬁve categories i.e., ‘Trickle-timer based solutions’, ‘ETX based solutions’, ‘RSSI based solutions’, ‘Position-based solutions’, and ‘Miscellaneous solutions’. For each category of these solutions, we illustrate their working principles, issues addressed and make a thorough assessment of their strengths and weaknesses. In addition, we found several ﬂaws in the performance analysis done by the authors of each of the solutions, e.g., nodes mobility, time intervals, etc., and suggest further investigations for the performance evaluations of these solutions in order to assess their applicability in real-world environments. Moreover, we provide future research directions for RPL supporting various real-time applications, mobility support, energy-aware, and privacy-aware routing.


Introduction
IoT is the connection of devices to the Internet where devices are able to communicate with each other and their users, such as cameras, medical sensors, light-bulbs, and smoke alarms [1]. IoT allows devices to assist daily routines, such as cars can be synced with calendars for appointment or meeting tracking to plan the best routes. According to the research done by IDC, there are already 13 billion connected devices in use worldwide in 2017 and the number could reach over 40 billion by 2025 [2]. Data among the network devices can be sent and received by the process called routing. In this process data packets are moved from one host to another across a network.
RPL is a Routing Protocol for Low Power and Lossy Networks (LLNs). LLN are devices with low power, low memory, and reduced processing resources and have a wide nodes, node mobility, intervals, simulation duration and area, and simulation environment, in addition to, energy consumption, packet loss, packet delivery ratio, and latency.
Following are the key contributions of this survey: • To analyze the issues faced by RPL when IoT devices are non-stationary; • To critically evaluate the solutions that are proposed in the current literature to mitigate the issues faced by RPL during mobility of IoT devices; • To categorize various solutions into different types and illustrate the working principle, strengths, and weaknesses of each solution; and • To propose future research directions that can be explored to propose better solutions to the issues faced by RPL during the mobility of IoT devices.
This survey paper is organized as follows: Section 2 presents the background knowledge and literature review. In Section 3, we describe the issues faced RPL during mobility. Section 4 provides the available solutions to those issues. In Section 5, we propose future research directions. Finally, we conclude our discussion in Section 6.

Background and Literature Review
In this section, we present an introduction to routing, RPL protocol and its working principle. Following, we present literature review of the articles that address mobility in RPL and describe the importance of the current research work.

Background
The WSN is a specific kind of Low-power Wireless Personal Area Network (LoW-PAN) composed of several nodes that are equipped with sensors of various types e.g., temperature, humidity, etc. However, we note that due to the absence of IP communication infrastructure, the interoperability between the WSN and the Internet was limited, hence, several works were dedicated to proposing a structure that could provide the use of IP over LoWPAN [31,32]. Hence, the IETF proposed a working group called 6LoWPAN (IPv6 over Low-power Wireless Personal Area Networks) to propose the use of IPv6 over IEEE 802.15.4 networks, which suggested the use of an adaption layer in IP stack (i.e., it provides the fragmentation and defragmentation of IPv6 packets in IEEE 802.15.4 frames). Following, through the work of the 6LoWPAN working group, a new working group (i.e., Routing over Low-power and Lossy networks (RoLL)) was created to study solutions for the emerging LLNs [33]. This working group defined the routing requirements for urban LLNs [34], industrial LLNs [35], home automation LLNs [36], and building automation LLNs [37].
LLN network consists of embedded devices with limited power, memory, and processing resources interconnected by links such as IEEE 802.15.4 or low-power Wi-Fi [38]. Figure 1 depicts an example scenario of the Low Power and Lossy IoT networks. Routing is the process of selecting a route for traffic in a network or across multiple networks whereas the forwarding of packets is done based on routing tables which maintain the route record to various destinations. Protocols are defined by the set of rules used so that network devices can communicate with each other.
RPL is a distance-vector IPv6 routing protocol for low power and lossy networks that utilizes an optimized route to transmit traffic from a sink node. RPL provides a routing solution to low power and lossy networks and is highly adaptive in providing alternative routes during the inaccessibility of default routes. RPL organizes topology formation by making Destination-Oriented Directed Acyclic Graphs (DODAGs). DODAG has a DAG rooted at a single destination and has a DODAG root with no outing edges. DODAG root is responsible for several parameters' configuration such as Trickle timer options, Path Control Size, Min Hop Rank Increase, and DODAG preference field. Identification of DODAG can be done by RPL Instance ID and a DODAG ID. RPL instance can be defined when one or more than one DODAGs share the same RPL instance ID. Each RPL Instance is implemented by a different Objective Function (https://tools.ietf.org/id/draft-ietf-roll-of0-14.html accessed on 1 September 2021) (OF) and a single RPL instance can have multiple DODAGs. The rank of the nodes is defined by the individual position of nodes with respect to other nodes. Rank decreases in the up direction and increases in the down direction. Computation of rank is done by the OF. OF defines how nodes are selected and how routes are optimized in the RPL instance. OF can be identified by a parameter defined under the DIO message option known as Objective Code Point (OCP). OF performs several purposes along with a set of metrics. Furthermore, the selection of DODAG to be joined by a node is done by OF. An ordered list of parent's computations and the number of peers as a parent in that DODAG is performed by OF [38]. There are mainly two types of OF. First is Objective Function Zero (OF0) which takes into account hop count as a routing metric. Second is the Minimum Rank with Hysteresis Objective Function (https://tools.ietf.org/id/draft-ietf-roll-minrank-hysteresis-of-08.html accessed on 1 September 2021) (MRHOF) [39] which works with ETX that is additive along a route. ETX is the average number of data frame transmission and necessary ACK frames for successful packet broadcasts.
RPL uses four main control messages to transfer information: First is the DODAG Information Object (https://datatracker.ietf.org/doc/html/rfc6550#section-6.3 accessed on 1 September 2021) (DIO) which permits the nodes to find RPL instances and select a DODAG parent set. Second, is DODAG Information Solicitation (https://datatracker.ietf. org/doc/html/rfc6550#section-6.2 accessed on 1 September 2021) (DIS) used to solicit the DIO message from RPL nodes [40]. The third is Destination Advertisement Object (https://datatracker.ietf.org/doc/html/rfc6550#section-6.4 accessed on 1 September 2021) (DAO) used to send destination information upwards to choose the parent in a storing mode and to the DODAG root in non-storing mode. In non-storing mode, data is sent by a node all the way up to the DODAG root by passing messages recursively to DIO parents. In storing mode, packets are passed to DIO parents by a node until it reaches an ancestor through which destination prefix is accessible. Fourth is DAO Acknowledgement (DAO-ACK) sent by a DAO parent in response to the DAO unicast message.
To reduce control messages overhead, RPL uses a Trickle timer by transmitting updates only when inconsistencies in the network are detected. A redundancy counter is incremented if the node hears DIO updates from a neighbor in a consistent state. The number of consistent updates exceeding the redundancy constant in a particular time interval, no transmission of updates are made by the node, and doubling of the listen period is done. However, upon hearing an inconsistent update, the timer gets reset and starts sending DIO messages more frequently so that propagation of updates is done through the rest of the network. During the stable network, fewer control messages are transmitted by the Trickle timer to save energy [40]. Trickle timer has three configuration parameters: The I min or the minimum interval size, I max or the maximum interval size, and a redundancy constant (k). I or the current interval size, time within the current interval t, and a counter (c) are other variables used in the Trickle timer. Each node has an individual interval. Interval starts at I min and finishes at I max . A major interval is divided into sub-intervals.
In Figure 2, root launches the creation of a DODAG by transferring a DIO message to its neighboring nodes that are governed by the Trickle algorithm to minimize the traffic overheads. The node receiving the DIO message computes its rank and advertises the graph using further DIO's. If Node 3 (as mentioned in the figure) does not want to wait for the DIO message, it can send a DIS message triggering DIO transmission and resets the Trickle timer. The node transmits DAO for advertising its address to establishes a downward route. Two modes i.e., storing and non-storing modes are used for managing downward routing. Downward routing tables are stored by nodes in a storing mode. In non-storing mode, regular messages are sent because of the limited lifetime of advertised addresses [40]. RPL builds a logical topology by using three control messages and bi-directional paths are established between nodes and sinks with minimal overheads.

Literature Review
We note that RPL was designed for static networks, so the introduction of mobility in the network has caused many issues in the functioning of RPL. Authors [28] have surveyed LLN under mobility. Authors have discussed various RPL mobility extensions such as DAG-based Multipath Routing (DMR) [41], Mobility Enhanced RPL (ME-RPL) [42], Co-RPL [43], Mobility Enhanced RPL [44], Modified RPL [45] for Vehicular ad hoc Networks (VANETS), and mRPL [46]. All these protocols supporting mobility properties are discussed such as their directions, metrics, constraints, and messages used for transmission. Furthermore, the discovery of the route, its maintenance and repair mechanism in terms of traffic types, messages trigger, and dissemination of all the protocols are discussed in detail. On the other hand, a survey on RPL enhancement focusing on topology, mobility, and security is done by authors [30]. Discussions are made on dealing with traffic patterns and improving the link quality estimation, in addition, the authors discuss single metric and composite metric OF is discussed.
Following, the security threats in RPL such as black and grey hole attacks, sinkhole attacks, Identity-based attacks, wormhole attacks, version number attacks are discussed along with their mitigation. Similarly, various mobility detection methods such as ETX probing, corona mechanism, Kalman filter of Mobility Enhanced RPL [44] are described and results are mentioned in terms of responsiveness and energy consumption. Another survey on attacks in RPL was performed by authors [47]. Various RPL attacks such as selective forwarding attack, Sybil attack, Clone ID attack, black hole attack, Wormhole attack, Denial of Service attack, alteration, sinkhole attack, and spoofing attack are discussed and their effects on network parameters are discussed. Methods to counter these attacks were mentioned, such as IDS solution, heartbeat protocol, the global and local repair mechanism of RPL. One more survey was done by authors [48] on security attacks and secure routing protocols in RPL. Classification of attacks was done namely attacks against resources including direct attacks namely flooding attacks, routing table overhead attacks, and indirect attacks comprising an increase in rank attacks, DAG inconsistency attacks, and attacks on the version number. Another classification was made on attacks in topology and attacks on traffic. Various attacks description was given and protocols which can address these attacks were mentioned, such as TRAIL, Markel tree authentication.
Another survey performed on RPL is by authors [49]. Different communication paradigms in RPL such as Multi-Point-to-Point, Point-To-Multi-Point, Point-To-Point were discussed. Following, the focus was made on several mechanisms for network management such as fault tolerance, QoS-aware routing, and security in RPL are described. Later RPL performance evaluation with respect to power consumption, packet delay, and packet loss was done by performing simulations. Authors [50] have surveyed various RPL protocols supported by the Contiki operating system. Protocols such as Contiki RPL, GT-RPL, SSCF, Tiny RPL, and DT-RPL are analyzed by performance metrics followed by these protocols; future research directions were also proposed. In addition, routing attacks were studied and security mechanisms proposed to be used in the Contiki network layer are discussed.
We note that most of the researchers have done a survey on security attacks on RPL and few of them have performed a survey on evaluating RPL performance under mobility of IoT devices. The authors [28,30] have proposed solutions for supporting node mobility in RPL but authors failed to classify the solutions into different categories. In addition, the authors have not discussed the strengths, weaknesses, and working principles of each solution. In this research, several issues faced by RPL under mobility are presented and various solutions to those issues are discussed. We categorize those solutions into various categories, discuss their strengths and weaknesses, and further provide detailed discussions over future research directions.

Issues Faced by RPL during Mobility
Following, we discuss the issues faced by the RPL when the devices are non-stationary.

Lack of Identification of Mobile IoT Nodes
In IoT, a node can either be stationary or mobile, so it is pertinent to identify both of these types. Mobile nodes result in a time-varying network topology that is most likely to cause invalid routes and link breakage in DAGs. However, traditional RPL has no mechanism to differentiate between stationary and non-stationary nodes [51]. This differentiation is important as it enables RPL to optimize routing in the existence of mobile nodes [24,38,52].

Issues with Trickle Algorithm
RPL uses a Trickle timer to control the overhead caused by the DIO messages. The value of this timer is increased if no topological changes are noticed in the network i.e, the network is in a stable state. This makes RPL an energy-efficient algorithm. However, a mobile node may move out of range of the existing parent and leave the DODAG which results in link breakage and packet loss. This issue is only noticed by RPL in the next Trickle period (i.e., 2.3 h [53]) which delays the route repair process. Note that a node has the choice to send a DIS message that enforces other neighboring nodes (already attached to the graph) to send DIO, however, the RPL specifications do not state how and when DIS should be sent [40]. Another issue is that the DIO period of all nodes is exponentially decreased after detecting any inconsistency in the network, which results in a large network overhead.

Loops in the Network
In RPL, the current rank of the mobile node is set to infinity when it disconnects from its parent. This allows the mobile nodes to attach with neighboring nodes even with those that have lower ranks (any rank is less than infinity). This mechanism of RPL results in a closed-loop if the detached mobile node selects the new parent that was previously its child [46].

Delay Caused by ETX Probing
In RPL, when a node discovers a new neighbor it schedules PING request messages to get the neighbor's ETX value. The node then decides whether to change its parent by taking into account the ETX values of both the new neighbor and current parent [45]. This scheduling of ETX probing delays the selection of preferred parents and causes issues in highly mobile environments (e.g., VANETS) where nodes frequently change their ranks.

Lack of Positioning Information
To make the best routing decision for mobile nodes, the routing protocols should consider the position of nodes. We note that RPL does not take into account the positioning information of mobile nodes during routing decisions [54].

Increase in Hand-off Delays
Performing seamless hand-off is a major challenge in mobile IoT since performing a detailed analysis of whether a link will break or not or to select the best possible link will require many resources (e.g., bandwidth, energy) on resource-constrained mobile devices. RPL performs poorly during hand-off and results in larger hand-off delays [55].

Issues with the Rank of Detached Mobile Nodes
A mobile node that is disconnected from the graph can only change its current parent when it receives DIO that has a better rank than itself. A node can send DIS messages to receive new DIO messages, however, it stays disconnected if the rank in those DIO messages is worse than its own rank. This increases the time taken by the nodes to re-attach with the graph [41]. RPL does not specify how the inaccessible parent can be removed from the parent set. We note that RPL suggests some solutions for unreachability detection e.g., neighbor discovery, bidirectional forwarding detection, however, they are too complicated to use in practical environments.

Lack of Sink-to-Sink Cooperation
Multiple DODAGs in the network are maintained by each single sink node. Nodes at the end of sub DODAG are called border nodes. These nodes receive DIO messages from their own DODAG and neighboring DODAG. In RPL, because of the neighboring sink high rank or larger distance, these DIO messages from neighboring DODAG are not forwarded by the border nodes in their own DODAG [56]. This creates a lack of coordination among sinks.

Solutions to the Issues Faced by RPL during Mobility
In this section, we classify the current solutions into five different categories, as shown in Figure 3.

Trickle Timer-Based Solutions
A Trickle timer is used to exchange connectivity information with local nodes by broadcasting control messages. Messages transmission interval is constrained and it increases with the network stability. When the stability is compromised by a mobile node, the interval is reset to a minimum value. Proposed solutions use a lower Trickle timer to solve the issue of Trickle timer and lack of identification of mobile nodes.

Co-RPL
Authors [43] carry out several simulations with static nodes in an RPL-based network. Due to loss of connectivity, a high packet loss ratio of more than 20% was observed in the network. This number got worse in a Mobile Wireless Sensor Network (MWSN) when there is a continuous change in topology. Hence, the authors proposed a Co-RPL that addresses the Quality of Service (QoS) requirements of MWSNs. Co-RPL [43] works on the Corona mechanism which reduces frequent node failures by improving the localization of mobile nodes. Corona architecture divides the network area into Coronas. A Corona is made up of a central region centered with a DAG root in a certain radius which is equal to the maximum transmission range of a sensor node. The author considered mobile routers as nodes running with RPL protocol and there are four DAGs with each DAG associated with a Corona.
In RPL, DIO messages are sent by the Trickle timer mechanism for exchanging information with local nodes. Here transmission interval is bounded and is increased with the network stability. Hence, to be aware of the position of the nodes in real-time, the author proposed this mechanism where the DAG root sends DIO messages periodically. The interval between two DIO messages is based on the node's speed. Furthermore, without waiting for the periodic timer expiration, neighboring nodes start sending DIO messages. DIS and DIO messages have been modified as control messages used in Co-RPL by adding flags that distinguishes standard control messages used in RPL: Bit F is used in DIS messages, if F = 0, it is a standard RPL control message, when if F = 1, it is from the Co-RPL node. Each Corona is assigned a corona ID (CID), which helps in detecting the mobility of a node and triggering neighbor discovery. DAG root as well as other nodes maintain a list of the Node ID, DAG ID, Corona ID, and the link quality by tracking its neighbors. Simulation results show a lower packet loss of 20% in Co-RPL as compared to 45% in standard RPL due to the Co-RPL forwarding strategy that uses Corona to detect mobile nodes and find alternative parents. The authors noticed that the energy consumption in Co-RPL was 50% less compared to the standard RPL, owing to the reason of high packet loss. In addition, it results in an average delay 2.5 s lower than standard RPL due to the forwarding mechanism in Co-RPL.

Enhanced Trickle Algorithm
According to the author [57], when the network is consistent, the DIO messages flow slower according to the Trickle timer algorithm. If a mobile node is moving to an alternative location it will not able to enter a network due to slow DIO messages transmission. Instead, this node will send a DIS message to its neighboring nodes from a new location to request a DIO message. Therefore, the node must wait until the DIO message is received from the neighboring router nodes or artificially re-configuring the Trickle timer. Hence, the authors [57] proposed an enhanced version of the Trickle algorithm to solve the increased latency problem occurring from a 'listen-only' period in the Trickle timer algorithm. The proposed algorithm supports node mobility by adjusting DIS message transmission period dynamically based on Doppler frequency which is used to measure mobile node moving speed and signal strength which is calculated to measure the distance between router node and the mobile node. When a mobile node wants to enter a network to find its parent node, it sends a DIS message to neighboring router nodes.
After receiving the DIS message from the mobile node, the neighboring router nodes transmit a DIO message to the mobile node. Upon receiving DIO, the mobile node stores an OF value and selected node ID for choosing the parent node from the parent list table. In addition, the mobile nodes save the information of neighboring routers as Preferable Parents (PPs) in the parent list table. When the mobile node moves from one location to another and its interval for selecting a new parent node expires, it selects a router node with the highest OF value as a new parent among the PPs, and parent entry is updated in the parent table list. Following, the mobile node evaluates the value of Doppler frequency and signal strength from the DIO message to determine the time interval dynamically. Subsequently, the mobile node sends a DAO message to a selected router node which becomes a new parent node once the selected time interval is initialized. The simulation results show 40.1% and 52.7% lower DIS message transmission count as compared to the original Trickle timer algorithm. In addition, the average packet loss rate for mobile node speed of 1.25 m/s in the proposed algorithm evaluates to 0.3% as compared to 19.4% of the original algorithm, in addition, 0% of E-Trickle algorithm [58], and 11.3% of ME-RPL algorithm [42]. The energy consumption of a mobile node evaluates to 72.5 mJ for the proposed algorithm compared to 78.9 mJ for the original algorithm, 79.2 mJ for the E-Trickle algorithm, and 77.5 mJ for the ME-RPL algorithm.

Mobility Enhanced RPL
Recall, that RPL faces many mobility issues such as lack of identification of mobile nodes, packet loss due to the selection of mobile node as a preferred parent, and mobile node getting detached from the DODAG due to Trickle timer interval issue. To cope with this, the authors [44] proposed Mobility Enhanced RPL to resolve the above-mentioned issues. For identifying mobile IoT nodes in the network, a node configured as mobile adds its mobility information in the DIO base object, e.g., the field mobility status is set to 1 in the DIO message if the node is configured as mobile otherwise it is set to 0. The second issue is resolved by not selecting the mobile nodes as Preferred Parents (PP) causing packet losses by checking the node mobility information in the DIO messages. Fixed nodes having lower ranks are considered as Preferred Parents. The authors consider the PP change as an inconsistency parameter for detecting the mobility of the nodes. In the proposed approach, the DIS messages are not only used to allow nodes to join the DODAG but also to update the routing information of a node experiencing more inconsistencies.
Subsequently, the Inter-DIS interval is computed based on the number of PP changes in the previous inter-DIS time period. If the number of PP changes are high, then it means that the nodes are in an unstable environment and likely to remain the same in the next time period. The next inter-DIS period is decremented so that nodes can refresh their routing information by sending it in a DIO message. On the other hand, if the PP remains unchanged for several inter-DIS periods, then the next inter-DIS period is incremented. The simulation results show the packet loss rate of ME-RPL is lower as compared to standard RPL. Route stability is defined as a valid routes percentage for effectively routing data information in the network, furthermore, ME-RPL shows higher stable routes as compared to basic RPL.

Elastic Trickle Timer Algorithm
The major issue found in the standard Trickle algorithm is the long 'listen-only' period where nodes only listen and receive messages instead of broadcasting the messages. Authors [59] propose an Elastic Trickle algorithm allowing dynamic selection of 'listen-only' period depending on the number of surrounding nodes. The number of neighboring nodes determination begins with I min during the start of the first sub-interval where the node sends a message to join a DODAG.
In the following sub-interval, the authors have proposed the number of neighbors as n1 and the 'listen-only' period as p1. For neighbors n2, the 'listen-only' period is p2 given that p1 < p2 < p3 and n1 < n2 < n3 i.e., the 'listen-only' period is shorter for a smaller number of neighbors helping in avoiding collisions. At the start of the main interval, the counter is set to zero. Listen time is utilized by the nodes to check their state. If the message is received by an unknown ID and the same message is swapped by the neighboring nodes, then the node is said to be consistent, otherwise, it is considered inconsistent if it receives a message from an ID less than the one exchanged by neighboring nodes. Node makes a comparison of counter value with k, if the value of the counter is less than k, the message is transmitted by the node, otherwise, the node goes into the waiting state until the end of the current sub-interval and doubling of the new sub-interval. Simulations results show, compared to basic RPL, that this algorithm converges in 76% less time for a network of 80 nodes. The average Packet Delivery Ratio (PDR) of 87% is obtained in a random topology and 85% for grid topology with 80 nodes. Table 1 summarizes the working principle, issues addressed, strengths, and weaknesses of solutions under the 'Trickle Timer-based Solutions'.

Category Working Principle Issues Addressed Advantages Disadvantages
Co-RPL [43] Reduces frequent node failures by improving localization of mobile nodes.
Issues with the Trickle timer.
Compared to basic RPL, Co-RPL has a lower loss rate of 20%, 50% less energy consumption, and 2.5 sec avg delay.
The effect of sink mobility on network performance is not discussed for Co-RPL.

Enhanced
Trickle Algorithm [57] Supports nodes mobility by dynamically adjusting DIS message broadcasts based on Doppler frequency.
Issues with the Trickle timer.
Helps in lowering DIS message count to 52.7%, packet loss rate of 0.3%, and energy consumption of 72.5 mJ.
Solutions to high PLR due to mobile nodes not matching time intervals for selecting parent nodes are not discussed. The effects of diverse I min and I max intervals over its performance evaluation have not been discussed.

ETX-Based Solutions
ETX indicates the quality of the node-link and it is one of the prominent routing metrics in LLNs. Following solutions take ETX as a metric for measuring the quality of the link and for solving the issue of delay caused by ETX probing and increase in hand-off delay.

Fuzzy Logic Based Energy-Aware Routing Protocol (FLEA-RPL)
Authors [60] proposed Fuzzy Logic Based Energy Aware Routing Protocol (FLEA-RPL) whose routing metrics are based on load, Residual Energy (RER), and Expected Transmission count (ETX). The load is the amount of data traveling across the network for a specific instant of time. Residual energy represents the variation of initial and current energy in the node. ETX is a measure of the quality of a path between two nodes in a wireless packet data network. The input fuzzy set is a combination of different metric Loads, ETX, and RER. Terminologies used in fuzzy logic are the linguistic variable and membership function. A linguistic variable is a structure of language and belongs to a set of values between true and false. The linguistic variable is evaluated by the membership function to provide accurate input and output variables.
As an example, if the load is less than or equal to 3, the fuzzy subset of a node is Light and the membership value is 1. If the load is between 3 to 6, the membership value decreases to 0, and the linguistic variable as Heavy . Similarly, when RER is less than or equal to 75, the membership value is 1 and the fuzzy subset is Low and when RER is in the range of 25 to 75, the membership function is 0 and the linguistic variable is Average. For ETX values less than or equal to 10, membership is 1 and the fuzzy subset is Short.
For selecting a quality neighbor node or preferred parent node linguistic variable contains seven sets namely awful, low bad, bad, good, very good, and excellent. By seeing a fuzzy set of Load, RER, and ETX, the quality of the linguistic variable is selected, which helps in selecting the preferred parent node. Simulation results show the number of parent changes per hour is 0.2 in basic RPL, 0.25 in MRHOF-RPL [39], 0.27 in FL-RPL, and 0.26 in FLEA-RPL [60] . The average end-to-end delay of a packet in RPL shows low latency in FLEA-RPL as compared to other protocols. FLEA-RPL with 6 packets per minute throughput shows the result of no packet loss up to a network size of 20.

Multi-Fuzzy Model (MI-FL)
Author [61] proposed a Multi-fuzzy model which overcomes the limitation of the fuzzy logic system in which individual metrics combination illustrates objective function to select the best parent. The multi-fuzzy model supports three metrics, i.e., node metrics, link-oriented metrics, and channel-oriented metrics. Node metrics include node energy, the number of neighbors connected, and ETX. Link-oriented metrics include link stability, mobility, and hop counts, whereas, the channel-oriented metric includes channel capacity.
Author [61] has enhanced BMRF (Bi-directional Multicast RPL Forwarding) [62], and the proposed algorithm used is (EBMRF) Enhanced BMRF in which duplicated packets are suppressed. The occurrence of duplicate packets is mainly because of packet forwarding to multiple nodes by the parent node. Parent node multicasts packets to the child nodes whereas packets from downward nodes are considered to be unicast. In this EBMRF, a unique ID is included in each multicast packet which will suppress duplicate packets by identifying the packet ID. In addition, the delay problem in which collisions were caused by the use of the same channel for sequential communication is solved by selecting the idle channel which is free for transmitting data.

A Congestion Avoidance Multipath Routing Protocol (CA-RPL)
Recall that RPL is a single path routing protocol where packets are transmitted by a node to a preferred parent and upon the failure of the existing path, the network selects new links to make a new topology, which creates unnecessary cost. RPL works on a single routing decision metric, hence, during network overload, large data traffic causes significant packet loss and latency due to network congestion. Therefore, the authors [63] proposed a Congestion Avoidance multipath routing protocol (CA-RPL) which minimizes the average delay towards DAG root. Each path weight is computed by metrics rank, ETX, the number of received packets, link reliability, the time factor, and load balance. Based on Contiki MAC radio duty and cycling protocol, the authors proposed a minimized delay metric where the node learns the wake-up phase of its parents and packets are sent to the first awaken parent. Therefore, it minimizes the time delay between DOAG root and DODAG nodes as it reduces the time the node takes to wait until the receiver wakes up. During network building, the number of packets received in a period of time is recorded by each node.
Subsequently, the node broadcasts its DIO message where fields like REC, RANK value, ETX, cycle time (CT), DELAY R OOT values, and wake-up phase are included. Upon receiving the DIO message by the child node from the parent node, it extracts REC value, RANK value, ETX, and then calculates the DELAY R OOT the minimized delay metric. Following, the child node computes the path weight from the parent node to the root node. The distinction of DIO messages from different parents is done by the child node by computing each path weight, ranks the parent nodes according to their weights, and a link table is formed in which the best two parent nodes are selected. As a result, the child node sends a DAO message to its selected parents by forming a link to the DAG root. The authors carry out a series of simulations: run-time 6 min, Interpacket interval is kept to 4 s. During the short inter-packet interval, the Packet Reception Ratio (PRN) in CA-RPL increases by 50% as compared to basic RPL, on the other hand, during network congestion when the network size is big, the PRN of CA-RPL increases by 20% compared to basic RPL. The packet loss rate reduces to 25% in CA-RPL as compared to basic RPL. Similarly, latency is less in CA-RPL as compared to RPL since, in CA-RPL, nodes avoid congestion links while sending packets and consider time factors for choosing the first-awake parent to receive packets.

Modified RPL
A vehicular ad hoc network (VANET) refers to ad hoc wireless networking between vehicles. It is seen that RPL has a slow response to topology changes due to delays in ETX probing, unreachable destinations, and loops in the network. Authors [45] have proposed a modified RPL VANET where ETX probing is performed immediately upon new neighbor discovery rather than following a periodic strategy so that new neighbors can be immediately considered as preferred parents. Loops in the network can result if the node selects a neighbor whose parent is the node itself as the rank of the neighboring node is less than the current node's rank which is set to infinity. To avoid looping, a parent ID is sent in the DIO message so that if the parent ID matches the node ID, the node can discard the DIO messages, preventing loop formation. In addition, DIO and DAO messages are sent immediately to notify the new rank and parent routes to children ignoring Trickle timer delays. Simulation results show that, upon modifications, the modified RPL shows a better PDR of 90% for 10 nodes as compared to 80% shown by RPL. Similarly, they observe a throughput of 19 kbps for both basic and Modified RPLs, furthermore, an overall delay of 1.3 ms is observed in the modified RPL, compared to a 1.2 ms delay for RPL.

Multiple Sinks
A network consisting of a single sink causes scalability and energy efficiency issues. Author [55] proposed a solution by deploying multiple sinks in the network via virtual root with minimum complexity. In a single sink node, the average number of hop counts increases between sensor nodes and a sink node as the network size increases. This leads to more packet loss, consumption of high energy, and a decrease in sensor nodes' lifetime. Therefore, deployment of multiple sinks provides a solution to all problems as the sensor nodes communicate to the nearest sink, reducing the average number of hops causing increased performance, and consume less power. Furthermore, the concept of virtual sink is proposed in which actual sinks behave as a child of common sink nodes in a wired network. A combination of two techniques is carried out: first in which packets are forwarded to the correct sinks having entries of a sensor node. Second, packet forwarding to all sink nodes in which packets are forwarded to all sinks and to the destination sensor nodes. A combination of both techniques is applied where the sink node sends a packet to the correct destination node having an entry in its routing table. Simulations results show that when nodes are positioned within the 20 m range, 32% packet loss is observed and when the number of hops increases to 3, 50% packet loss is observed.
Comparison of average ETX to a Preferred Parent of a node is done with the number of hops to the sink. With multiple sinks, the average number of hops gets reduced to more than 50%. Furthermore, packet loss is reduced due to the addition of more sinks, data started flowing in different directions resulting in fewer packet collisions. Similarly, the energy consumption is reduced due to decreases in the average number of hops to transmit a packet. Table 2 summarizes the working principle, issues addressed, strengths, and weaknesses of solutions under the category 'ETX-based Solutions'.

Category
Working Principle Issues Addressed Advantages Disadvantages

FLEA-RPL [60]
Applies fuzzy logic over metrics such as ETX and RER to select the best route for data transmission.
Delay caused by ETX probing.
Shows maximum delay of 2.9 s for 10 hops as compared to RPL, which has 3.8 s.
To perform efficient unicast routing, fuzzy logic is not suitable as it considers only a few metrics.

MI-FL [61]
Used for unicast transmission from a child node to root node in order to minimize delay and suppresses duplicate packets.
Delay caused by ETX probing.
It consumes 8% less power and provides a 90% packet delivery ratio with a packet loss rate of 4%.
Simulations are done just for the static nodes (mobility of nodes is not introduced).

CA-RPL [63]
Dynamically adjusts the path selection scheme and balances the network load.
Increase in hand-off delay.
Minimizes the average delay towards DAG root and the packet loss rate reduces to 25% as compared to RPL.
As the devices are battery-operated, network lifetime measurements are not evaluated. It causes longer delays as compared to RPL, solutions to overcome these longer delays are not discussed.

Multiple
Sinks [55] Packets are delivered by the sensor node to the nearest sink reducing average hop count.
Increase in hand-off delay.
Less packet loss, reduced energy consumption, and increased packet reception ratio.
Simulations are done in a wired network, so it is difficult to examine how multiple sinks would work in a wireless network.

RSSI Based Solutions
The estimation of the expected connection quality is provided by the Received Signal Strength Indicator (RSSI) of the received packets. The following solutions measure the average RSSI value for selecting a preferred parent. The use of RSSI in the following proposed solutions helps in resolving multiple mobility issues faced by RPL, which are discussed further.

Mobility and Energy-Aware Routing Protocol (ME-RPL)
Authors [42] proposed Mobility and Energy-Aware RPL (ME-RPL), which considers ETX, Battery Depletion Index (BDI), and routing metrics RSSI. For the route selection, the participant nodes choose the parent from the DODAG only when it is within the RSSI range. Calculation from link metric (ETX) and node metric (BDI) selects Preferred Parent based on the rank. ME-RPL follows the additive property and considers the minimal value of root cost, adapts the ContikiMAC/6LowPAN MAC protocol; simulations are done in Contiki-207. Node CC2420 is considered and the RSSI value range is from −50 dBm (100% quality) to −100 dBm (0% quality). Simulation duration is 24 h, radio environment is UDGM while the data packet timer is set to 60 s. It is observed that the composite routing metric used in ME-RPL proposed protocol improves the packet delivery ratio to 92% and energy consumption to 1.2 MJ/min as compared to basic RPL with a packet delivery ratio of 42% and energy consumption of 2.8 MJ/min for health care applications. For animal tracking applications ME-RPL provided a packet delivery ratio of 80% as compared to 35% provided by RPL. In addition, the authors observe that the energy consumption in ME-RPL is reduced to 1.1 MJ/min as compared to basic RPL, consuming more energy of 2.8 MJ/min for animal tracking applications.

Game-Theoretic Optimization of RPL (GTM-RPL)
The authors [38] proposed a game theoretic based mobile RPL (GTM-RPL) using a transmission rate as a variable to achieve a higher packet delivery ratio (PDR). In a GTM game formulation, a network is assumed to consist of a static sink node, static nodes for providing better coverage, and mobile sensor nodes. While playing mobile management games, players representing sensor nodes in a network within the same collision space compete to send data packets to sink nodes in a selfish manner. The utility function of other players is affected by the action of a player in which actions include changes in data rate, Trickle timer settings, transmission power, and parent node. To send data at high transmission rates, a lower cost for energy consumption is assumed in nodes having higher priorities. The mobile intensity in an application is reflected by nodes sharing applications with specific mobility metrics. In addition, to compute the link quality, nodes measure the RSSI of each message at the MAC layer.
The cost of a node to send data to the sink node in a mobile environment at a specific rate is defined as the Payoff function. Strategies are defined as possible actions performed by each node. Measurement of cost in mobility presence is defined by mobility function. Similarly, the optimal strategy is chosen according to the game designed to maximize the Payoff function to find an optimal solution of a game. The outcome is the optimum transmission rate, which is the Nash Equilibrium for a node; this means that a player reaches an optimal strategy with no incentive to changes in its strategy while other players maintaining their current strategy. Optimum transmission rate changes with the changes in node movement, which means that the RSSI is affected or when the transmission rate of any other node changes affecting Link Quality Indicator (LQI). Changes in the value of RSSI are used as a mobility detection parameter. Simulation results show that GTM-RPL achieves a PDR of 88% for mobile nodes as compared to RPL with 44% PDR and 78% for mobile RPL (mRPL) [46]. Similarly, an improvement of 16% energy consumption is shown by GTM-RPL as compared to mRPL, furthermore, GTM-RPL takes a 15% lower average delay compared to mRPL.

MoMoRo
The authors [64] proposed a mobility support layer MoMoRo enabling mobility support and is applicable to existing data collection protocols. MoMoRo supports two operations: first is reconstructing the default root and notifying the unavailability of root to non-root destination. Second, gathering neighborhood information while reconstructing default routes and passing this information to fuzzy estimator for identification of links good for route selection by the routing layer. The link quality estimations are done by collecting information on the number of transmission attempts. MoMoRo is notified during the failure of packet transmission to a node and sends a unicast packet to reach the node by suppressing additional overheads.
We note that MoMoRo does not take any action if the acknowledgment is received. However, if in a specific time period, the acknowledgment is not received then MoMoRo checks if the node is in the default route and if it is, reconstruction of default route starts, otherwise, the route is broken to the missing destination node, following, the packet's final destination search is made. Node identifies a lost default route and repair of data collection tree is needed. A quick broadcast message is sent by MoMoRo to its neighborhood and a unicast reply is sent by nodes who heard the broadcast. Computation of link ETX, average Received Signal Strength (RSS) on the link, and Symbol Error Rate (SER) variation is done by using the received replies. The simulation results show PRR for downward traffic to and from mobile nodes by MoMoRO is 90% whereas it significantly degrades in the case of RPL. MoMoRO provides large overheads per node by taking aggressive actions and reacting back to link disconnections caused by mobile nodes as compared to RPL showing a minor increase in packet overheads.

Enhanced Hand-Off Mechanism
Authors [65] proposed an Enhanced Hand-off based stable route selection. DIS and DIO messages in RPL are used as a beacon message. In this mechanism, the mobile IoT node transmits the frame width, a variable is used for measuring the link quality from the number of packets needed in a defined time period, a DIO message is received as a unicast acknowledgment packet encompassing average received signal strength (ARSSI) level which helps in filtering asymmetric links. Mobile nodes continue with data transmission by detecting the justifiable quality. Neighbourhood Discovery (ND) is initiated if the ARSSI link is degraded and data transmissions are resumed once the ARSSI level is suitable. For examining the best parent node, mobile nodes do a comparison of ARSSI present in the DIO messages of individual nodes with the predefined threshold level. In case ARSSI is less than the threshold, the mobile nodes continue broadcasting DIS messages at defined intervals. Alternatively, if ARSSI is above the threshold, the process of network discovery stops and mobile nodes connect to the best route with an updated parent node for performing data communications. The simulation results show that with an increase in traffic burst interval of 2 s, 85% PDR is achieved by this mechanism. Furthermore, the increase in traffic impacts the parent node discovery so for data traffic interval of 2 s, the hand-off and route formation delay rise to 60 ms. Similarly, the traffic overhead is estimated by the control messages sent for selecting the best path; for traffic intervals of 2 s, an overhead of 18% is obtained.

mRPL
Recall that RPL faces issues related to the disconnection of mobile nodes and making closed loops as the mobile nodes may select the neighbor as a new parent, which previously was the child of the current mobile node. Hence, the authors [46] proposed a Smart-Hop algorithm, which has two main phases i.e., the data transmission phase and the discovery phase. In the first phase, a reliable link is assumed between Mobile Node (MN) and an Access Point (AP). Upon receiving reply packets from AP, MN monitors the link quality. AP replies back with the average RSSI value of the packets received in a given window. AP takes no action if no data packets are received, which can lead to disconnection. In mRPL approach, reply packets in unicast DIO message is received immediately after transmission of predefined data packets. Filtering of asymmetric links is done by the DIO message containing the average RSSI level.
The data transmission phase is processed by the MN upon detecting the good quality of the link. The Discovery phase is initiated upon detection of the ARSSI degradation. After finding the better AP, connections with the serving AP are resumed. A burst of DIS messages are broadcasted to assess the potential parents. The average RSSI value embedded in the DIO message is compared with the threshold level by the MN. If the ARSSI value is below the threshold, MN continues broadcasting DIS burst and if the ARSSI value is above the threshold, the discovery phase stops and data communication with the new Preferred Parent starts. Loops are avoided in the network after getting all replies from all neighboring APs and ignoring messages from previous child nodes. Therefore, child nodes are excluded from the set after creating alternative parents sets. The simulation results show that mRPL guarantees connectivity by providing a reliable hand-off process. Within 80-xxx83 ms mRPL detects and performed the hand-off which is much faster than RPL. Similarly, 100% PDR is provided by mRPL because of the fast hand-off process; high data rates of 30 pkts/s mRPL show higher overheads as compared to RPL.

Energy and Mobility Aware Routing (EMA-RPL)
We note that RPL does not provide suitable performances for time-constrained realtime healthcare applications where data is captured by attaching sensor nodes to a mobile patient and faces issues of data loss and disconnections of mobile nodes. The authors [66] proposed EMA-RPL consisting of three phases i.e., the 'mobility detection phase', the 'reaction and prediction phase', and finally the 'notification phase'. In the detection phase, an Associated Mode (AN) that is a static node computes the average RSSI value from the data information obtained from Mobile Node (MN). MN is assumed to be away from the coverage area by AN if the RSSI value is less than the predefined threshold, hence, the mobility is detected. In the handover process, the AN keeps probing MN to send data packets till RSSI reaches a predetermined threshold value. Following, in the second phase, a new AN prediction is done based on the RSSI parameter. This phase is performed by the current AN before the MN disconnects to provide continuous MN connectivity.
In the final 'notification phase', path routes update is done. Current AN informs the new node that it is a predicted AN, following, the predicted AN sends a unicast DIO message to MN to make an attachment. Parameters such as PP, rank, and default route are updated by the MN and two DAO messages are sent to the current and predicted AN for backward path route updates. Therefore, MN establishes a new attachment to the predicted AN before disconnecting from its previous AN avoiding data losses and disconnections in the network.
EMA-RPL has shown a handover delay of 156.25 ms as compared to 1639.06 ms by mRPL and 45,737 s by basic RPL. A PDR of approximately 100% is achieved by EMA-RPL as compared to 27% by basic RPL and 70% by mRPL.

DAG-Based Multipath Routing (DMR)
We note that the RPL faces many open issues based on DODAG construction, DODAG maintenance, and its repair both locally and globally, and computation of rank. To address these problems, the authors [41] proposed DAG-based Multipath Routing Protocol (DMR), which uses rank information and Link Quality Indication (LQI) for constructing DODAG. This approach is adaptable to frequent mobile sensor network topology changes. DIS message is broadcasted by a source node to the sink node to construct a DODAG. After receiving the DIS message, DODAGID is increased by one by the sink node and rank value is initialized to zero. Following, the sink node broadcasts the DIO message for the formation of a new DODAG. After the node receives the DIO message, the node compares its DODAGID with the sender DODAGID. DIO message is regarded for new DODAG construction only if sender DODAGID is greater than receiver DODAGID. To assign the sender as the parent node, the node increases its rank by sender's rank+1 and replaces its DODAGID with sender DODAGID.
In addition, the LQI information is computed based on the RSSI value received from the DIO message for the determination of priority among the same rank nodes. The DODAGID, rank, senders ID, and LQI information are saved in the Parent Sibling list (PS-list). Then DIO message is broadcasted which includes rank and DODAGID information. Loop creation is avoided if the senders rank is greater than node rank and senders DODAGID is lesser than node receiver DODAGID. After a predetermined period, the constructed DODAG expires. In a DODAG repair process, PS-list is checked by the node to determine the next node to which data packet should be forwarded. A node with a lower rank and high LQI is chosen as the next node. DODAG node consists of information of the parent node as well as the sibling nodes in the routing table. Following, if the parent node becomes invalid of an intermediate node then reliable data delivery can be maintained by forwarding data packets to sibling nodes. However, when both parent and sibling nodes are not available in the PS-list, the DODAG can be reconstructed by broadcasting a DIS message, hence, broken routes can be repaired both locally and globally. The simulation results show that routing load in DMR is reduced to 65% and data delivery ratio to 97%. The DMR per node reduces average energy consumption by 25% and is the most energy-efficient routing scheme. Table 3 shows the working principles, issues addressed, strengths, and weaknesses of solutions under the category 'RSSI-based Solutions'.

Position-Based Solutions
Sensors are attached to workers, goods, and equipment that require robust communication with the base station. Hence, during these scenarios, the position of nodes must be considered by routing protocols as the best routing decision based on their particular locations. The following proposed solutions consider the position information of mobile nodes for reliable routing and help in resolving the issue of lack of positioning information.

Kalman Positioning RPL (KP-RPL)
The RPL provides energy-efficient routing strategies having a slow response to topology changes making it inefficient in keeping up-to-date routes in presence of mobile nodes due to high signaling cost. Hence, the authors [54] proposed Kalman Positioning RPL (KP-RPL) considering position inaccuracies and disconnections among static and mobile nodes by providing reliable routing. The proposed Kalman filter takes into account the velocity estimates by enhancing mobile node position accuracies resulting in better routing decisions. A position-based approach is followed for the routing of static and mobile nodes. A confidence region is generated by a mobile node using RSSI measurements from static nodes. Then mobile nodes define their most likely position by considering the location with the highest probability in the confidence region. Further, the position is refined using Kalman filtering by combining velocity estimates. Before making a routing decision, a blacklist is generated by mobile nodes to discard unreachable nodes due to positioning errors.
Similarly, blacklisting provides robustness to inevitable mobile node positioning errors due to RSSI measurement and velocity estimates inaccuracies. It helps in avoiding disconnection because of positioning errors. Finally, the best routing paths are selected by nodes in each transmission slot using end-to-end ETX estimates. Simulation results show KP-RPL is robust to channel conditions and provides reliable routing. The average ETX of KP-RPL with Kalman filtering increases the reliability of the network to 25% as compared to KP-RPL without Kalman filtering. The large density of static nodes increases network reliability and enhances the positioning accuracy of mobile nodes but also increases infrastructure costs. So, KP-RPL helps in reducing the number of static nodes, thus lowering infrastructure costs. KP-RPL helps in enhancing the energy consumption of the overall network because of its high reliability. Hence increasing the lifetime of both static and mobile nodes.
Lack of identification of mobile nodes.
GTM-RPL achieves better QoS compared to mRPL.
Only few protocol comparison is done.
MoMoRo [64] Detects and notifies route disconnectivity for the reconstruction process.
Increase in hand-off delay.
PRR for downward traffic to and from mobile nodes by MoMoRo is 90%.
An adequate information on achieving low PRR is not discussed given.

Enhanced
Hand-off Mechanism [65] Average RSSI level of each neighboring node is used for selecting the best route.
Increase in hand-off delay, Loop in the network.
Achieves better performance when traffic burst interval is increased.
Solution to overhead by control messages during DODAG formation is not discussed.
mRPL [46] Uses RSSI; neighboring nodes within the child set are ignored to avoid loops.
Increase in hand-off delay, Loop in the network.
100% PDR is provided by mRPL because of the fast hand-off process.
Solution to the overhead caused due to high traffic is not discussed.

EMA-RPL [66]
RSSI of a mobile node is used for connectivity of a mobile node in a network.
Issue with the rank of detached mobile nodes.
EMA-RPL reduces signaling cost, energy, and handover delay compared to RPL.
None of the scenarios are discussed in which mobile node can be chosen as preferred parent.
Loops in-network, issue with the rank of detached mobile nodes.
DMR reduces average per node energy consumption by 25%.
To reconstruct a DODAG using DMR broadcasts is not thoroughly discussed.

Mobility Prediction Based RPL (MP-RPL)
RPL poorly adapts to mobility scenarios as the routes are not updated as fast as they are updated in the case of static sensor nodes. Authors [67] have proposed a mobility prediction model known as sensor node speed classifier (SNSC) which classifies sensor nodes in different speed or velocity classes using the Maximum Likelihood Estimation (MLE) classification technique. Average Encounter Rate (AER) is computed by each node in SNSC in a time period T with a given velocity value. To predict the one-hop neighborhood, Hellos beacons short frames are broadcasted periodically for correctly estimating AER. Validation of the SNSC model is implemented in the Cooja simulator. 50 nodes are simulated and have a velocity value between 1 to 10 m/s. The result shows that the error prediction rate of SNSC is 4% sustaining the proposed speed classification technique accuracy.

Category
Working Principle Issues Addressed Advantages Disadvantages

KP-RPL [54]
Kalman filter takes into account the velocity estimates by enhancing mobile node position accuracies resulting in better routing decisions.
Lack of positioning information.
Robust to channel conditions, and reliable routing, which increases the network reliability by 25% as compared to KP-RPL without Kalman filtering.
Routing among the mobile nodes alone and how it will affect the positioning information is not discussed.

MP-RPL [67]
MP-RPL uses the SNSC model to detect node movements and constructs DODAG by selecting the least mobile nodes as Preferred Parents to ensure route stability.
Lack of positioning information.
This approach provides scalability as the gap between MP-RPL and RPL PDD remains unchanged even if the node number increases.
The effect of parameters such as energy consumption, throughput, and PDR are not discussed.

Miscellaneous Solutions
Following, we discuss two solutions, which we classify as Miscellaneous solutions, that discuss the issues of lack of sink-to-sink coordination and the rank of detached mobile nodes.

Sink-to-Sink Coordination Framework (SSCF)
The authors [56] proposed a Sink-to-Sink Coordination Framework (SSCF) in which multiple sinks are considered in the network. Therefore, a single DAG consists of multiple DODAG and each DODAG has a different sink ID that is included in the control messages. A node receiving DIO messages from sub-DODAG is said to be border node.
In this framework, border nodes receive and process the Network Optimization Metric (NOM) values used for coordination among sink nodes in the DIO message. Network Coordination Interval (NCI) is included in this framework in which every border node updates its sink node about the NOM value of its neighboring sub-DODAG. NOMs information is saved in the parent table of the border nodes. Sub-DODAG ID and NOM values are sent in DAO messages by the border node to its respective sink node. The sink node checks the version number to detect the latest DAO sent by the border node. In case, border router does not receive any DIO message from its neighboring sub-DODAG in three consecutive DIO intervals, the sub-DODAG is removed from its parent table and informs the sink node about the unavailability of sub-DODAG. Sink nodes are required to save NOM values of neighboring DODAGs and this information is saved in Network Optimization Metric Table  (NOMT). Similarly, the 'Stale' timer is used i.e., defining maximum time after which the entry is considered as out of date and is equal to three DIO intervals.
The simulation results show that data in RPL is sent by event reporting nodes to their nearest sink nodes, packet drop is seen as the paths getting congested as traffic converges at nodes near the sink. However, the event traffic is distributed among both sinks in SCCF by forming different paths with lesser congestion and lower traffic loads. Hence, throughput observed at SCCF is higher than the basic RPL by approximately 2.0 Kbps for packet intervals of 0.5 s, 1 s, 2 s, 4 s, 6 s, and 8 s. The packet drop ratio of RPL is observed as more than SSCF since the congestion is more severe in basic RPL resulting in high packet drops. The latency of both the protocols are high as nodes spent most of the time in sleep mode as compared to active mode. Energy consumption is slightly higher in SCCF as, we note that, RPL does not drop many packets if the packet interval is high and the data rate is low, therefore, energy consumption per bit is low in lower packet generation intervals.

Downward Path Construction Mechanism
Author [68] has described issues with downward route cancellation in which nodes send No-path DAO messages, which means that DAO message with lifetime zero to parents to cancel the path to a specific node. The packet from the no-path message is delivered to all parents informing them about the cancellation of the downward route to the original node. Issues such as the old downward path still exist until the expiry of the route lifetime due to no-path DAO message is not reached because of packet loss or when the mobile node is not reachable to the old parent, causing inconsistent routing states. Another problem is node deleting the old parent but it is out of reach of the new parent selected from the neighbor list resulting in loss of connectivity.
The authors proposed a modification in the cancellation mechanism for downward routes in which a common ancestor of old and new routes send a no-path DAO message instead of a mobile node upon receiving an updated DAO message. This no-path message is forwarded to the old parent downward. Therefore, packets stored between the mobile node and common ancestor can be used by the mobile node as the old downward path still exists until the installation of the new downward route. In addition, lost no-path DAO packets will not result in the state of inconsistency as the route is removed in the sub-DODAG of the old parent path to the mobile node in the proposed mechanism. Table 5 illustrates the working principles, issues addressed, strengths, and weaknesses of the solutions under the category 'Miscellaneous Solutions'. Sink coordination is used to exchange network-defined parameters such as network size and sink mobility.
Lack of sink-to-sink coordination.
Achieved higher PDR of 22% and 26% in random and grid topologies.
Latency of RPL and SSCF is high. Downward path construction mechanism [68] The downward routes allow ancestors of old and new routes to send no-path DAO messages upon receiving updated DAO messages.
Issues with a rank of detached mobile nodes.
Improves PDR from 20-80%, and also reduces overall overhead without using location information.
Packet losses may occur if the mobile node is no longer reachable to the old parent; we note that the cancellation of the old route is still not done by the new DAO.

Future Work
This section suggests some research directions for the performance enhancement of RPL by addressing various issues and further (along with further research directions) presents flaws within the performance evaluations of various RPL extensions presented and evaluated in the literature (discussed above); some of the main future research areas are summarized as follows.

Efficient Routing Protocol Supporting Various Traffic Patterns
We note that the LLNs applications require a stable routing support for various traffic patterns e.g., point-to-multipoint (MP2P), node-to-node (P2P), and P2MP (i.e., root to many nodes) with heterogeneous node capabilities [69]. It is also mentioned [29] that RPL optimizes the support for MP2P traffic patterns by efficiently constructing the DODAGs, however, other traffic patterns, such as P2P and P2MP, need to route the pre-established DAG. Hence, the RPL does not provide efficient routing support, in addition to, efficient data delivery from long delays and lossy links while attributing various traffic patterns.
To provide an efficient routing support in RPL, it is vital to address coordination among various nodes in order to support various kinds of traffic pattern in a single network. Note that the asymmetric nature of wireless links and traffic patterns have a significant impact on the performance of routing protocols; the real-world deployment fails [70] if the routing protocols do not consider the asymmetric traffic patterns.
A major issue with the standard Trickle algorithm is the long 'listen-only' period where nodes only listen and receive messages instead of broadcasting the messages. Vital support for routing protocols is to address various issues, highlighted in Tables 1-5, under a single framework that has been addressed by various extensions of basic RPL. For example, the FLEA-RPL [60], CA-RPL [63], MI-FL [61], Modified RPL [45], Multiple-sinks [55], MoMoRo [64], Enhanced hand-off mechanism [65], and mRPL [46] address the issue with longer delay, either cause by ETX probing or hand-off delays, however, they fail to address the basic issue with Trickle timer algorithm.

Mobility Support
We note that RPL has been designed for static nodes within the networks while the majority of the LLN applications require mobility support within the routing protocols in order to improve the performance of RPL for nodes mobility [71][72][73]. A particular scenario is the unavailability of a node's preferred parent node that drastically decreases the transmission loss and delay due to switching and resuming communication with the preferred parent. As highlighted in Table 3, the ME-RPL [44] and GTM-RPL [38] address the lack of identification of mobile nodes, however as addressed by the KP-RPL [54] and MP-RPL [67] proposals, these protocols do not address the issue of lack of positioning information of mobile nodes. Therefore it is important to efficiently address the mobile node's positioning information in coordination with identifying the mobile nodes. In addition, as highlighted in Tables 2 and 3, there are certain RPL extensions, e.g., Enhanced hand-off mechanism [65], that incorporate the nodes' mobility and deals with reduced handoff delays. Hence, it is important to propose a comprehensive framework that would use such RPL extensions in combination in order to collect positioning information while identifying the parent mobile nodes, which reduces the hand-off delays and enhance throughput during nodes mobility. Following, the basic RPL with these enhancements could be applied to support a wide range of real-time and non-real-time (e.g., simple data/file transfer) applications with necessary modifications and enhancements.

Energy-Efficient Routing
As noticed, the primary goal of any routing protocol for LLNs is to conserve power and a reliable data delivery [74][75][76]. As highlighted in Table 2, the energy-aware routing, FLEA-RPL [60] is based on load, residual energy, and ETX. However, we note that in a lossy environment, lack of sink-to-sink coordination [56] and detached mobile nodes [68] lead to duplicate transmission and hence, unnecessarily high energy consumption. Hence, it is important to address issues with 'node coordination' and 'detached mobile nodes' in a comprehensive framework. We note that Opportunistic Routing (OR) [77] improves the network reliability with reduced retransmission, furthermore, the network coding [78,79] has been proved to be efficient for data collection applications in dynamic and lossy networks [80]. Therefore, these techniques can be used for RPL to propose energy-efficient routing due to sink-to-sink coordination and detached mobile nodes.

Privacy-Aware Routing
Researchers have addressed the information security issues in a number of works that address false data injection, authentication failure, and other security attacks over data confidentiality and integrity [30,48,[81][82][83][84][85][86]. However, there is very negligible work available for privacy-aware routing. We note that the that the RPL nodes exchange, besides the data transmission, metadata to establish routing paths and communicate data e.g., communication endpoints, message timing, parent node's location/ID, load information, rate of energy usage, etc. Furthermore, it is noted that this information can be extracted from the content of the network traffic [87], which demands additional efforts to protect the privacy of individual nodes within the network. Table 6 presents various sets of possible parameters for the performance evaluation of, in addition to future research over the applicability of RPL frameworks in real-time evaluation, various RPL extensions both for simulations and experimentations in a mobile environment; the 'X' means that the authors did not mention about these parameters. For example, as shown in Table 6, we note that Co-RPL [43] used Tmote Sky (Tmote Sky is an ultra-low-power IEEE 802.15.4 compliant wireless sensor module. https://insense.cs. st-andrews.ac.uk/files/2013/04/tmote-sky-datasheet.pdf accessed on 1 September 2021) sensor, which is the most commonly used sensor in IoT networks, in addition to other parameters, such as, 10-100 nodes, 1-3 ms node speed, 2.5 s latency, simulation duration of 3600 s, Contiki OS, and a transmission range 50 m; whereas this evaluation does not mention the 'Minimum DIO Interval', 'DIO Interval Doubling', 'Power Consumption', 'Packet Delivery Ratio', and 'Simulation area'. Hence, in order to closely observe the performance of Co-RPL [43], other sensor nodes that support mobility with a variable set of capabilities and an extensive set of parameters for simulation or experimentations could be considered for future evaluation.

MP-RPL [67]
Cooja Moreover, we note that the majority of the RPL extensions were evaluated in smaller transmission ranges, ranging from 10 m to 50 m; e.g., mRPL [46] considers only 10 m of transmission range in order to achieve better network performance. However, it is important to consider bigger transmission ranges, which will have an impact on transmission and communication range specifically during communication broadcast. In addition, it will have an impact on the selection of parent nodes, path construction, detached nodes, handoff delay, loop within the network, and the mobility of the nodes themselves. In combination with the transmission ranges, it is also important to consider wider simulation areas so as to simulate a real environment.
Likewise, an important parameter is the speed of sensor nodes, as indicated in Table 6, we note that the majority of the RPL extensions did not mention the 'node speed' parameter, such as Mobility Enhanced RPL [44], Elastic Trickle Timer [59], FLEA-RPL [60], MI-FL [61], Multiple Sinks [55], GTM-RPL [38], MoMoRo [64], Enhanced Hand-Off Mechanism [65], and SSCF [56]. The other extensions, except Modified RPL [45] that takes 25, 45, and 65 mph, consider very low node speed. Hence, it is vital to evaluate the performance of these protocol extensions in a mobile environment with various node speeds (e.g., from nomadic (e.g., a patient move with the hospital premises) to high speed (e.g., an ambulance moving in a metropolitan area)) before it is used in an actual environment.
In addition to the above important parameters, it also requires to take into consideration other parameters, such as 'Minimum DIO Interval', 'DIO Interval Doubling', 'Power Consumption', 'Packet Loss Rate', 'Packet Delivery Ratio', and 'Latency'. Furthermore, a comparative analysis over these sets of variables can be carried out to present a complete picture of the performance evaluation of the RPL extension.

Conclusions
RPL suffers from many issues when IoT devices are mobile e.g., lack of sink-to-sink cooperation, issues with the rank of detached mobile nodes, increase in hand-off delays, lack of positioning information, delay caused by ETX probing, loops in the network, in addition to, issues with Trickle algorithm such as link breakage and packet loss due to nodes movement. Moreover, we present various solutions proposed in the existing literature that address these mobility issues faced by RPL. We classify these solutions into five categories i.e., Trickle timer-based solutions, ETX-based solutions, RSSI-based solutions, Positionbased solutions, and Miscellaneous solutions. All these solutions are critically evaluated in terms of their strengths and weaknesses along with their working principles and issues addressed. Various research directions are also proposed in this survey that will enable future researchers to propose better solutions to mitigate the mobility issues in RPL.
Author Contributions: All authors equally contribute to draft this survey paper. All authors have read and agreed to the published version of the manuscript.
Funding: There are no internal or external funds available for this research work. We further declare that the corresponding author will fully pay the APC charges.