## 4 A Routing Protocol for LLNs (RPL)
### RPL Objective Functions for Non-Malicious LLNs
#### 4.2.2 Combined Metrics Method  
The second group of objective functions uses combined routing metrics with a combined metrics method to select the best path. The combined routing metrics in this group can belong to either (i) the same metric category or (ii) different metric categories. This group consists of weighted random forward RPL (WRF-RPL) [98], congestion-aware objective function (CA-OF) [99], queue-utilisation-based RPL (QU-RPL) [100], congestion-aware Q-learning (CAQL) [101], PER-HOP ETX [54], expected lifetime (ELT) [102], lifetime and latency aggregatable metric (I2 AM) [103], improved RPL (I-RPL) [104], and coordinator-based RPL (CB-RPL) [105]. [PERSON] et al. [98] proposed WRF-RPL, an objective function designed for sensor networks with high traffic loads. WRF-RPL leverages remaining energy and the number of candidate parents as routing metrics to optimise load balancing. Simulation results demonstrate that WRF-RPL surpasses MRHOF [85] in terms of prolonging network lifetime and reducing control overheads. However, it is worth noting that WRF-RPL primarily focuses on remaining energy. It does not address reliability issues caused by link quality. [PERSON] et al. [99] proposed the CA-OF, which uses buffer occupancy (BO) to avoid congestion in RPL. CA-OF concludes that, in high network traffic, most packets lost are caused by the buffer overflow. Therefore, CA-OF takes into account BO to reduce the number of lost packets in the buffer when congestion occurs. The proposed CA-OF combines two routing metrics: (i) BO for packet loss owing to buffer overflow and (ii) ETX for packet loss due to Lossy channels. Each metric has a weight of \(w\) corresponding to the buffer-free space and buffer occupancy as w1 and w2, respectively. The weight w1 is associated with ETX, whereas w2 is associated with BO. With low traffic and an empty buffer, w1 becomes 100%; thus, CA-OF selects paths mainly based on ETX. In contrast, with high traffic and a full buffer, w2 becomes 100%; hence, CA-OF selects paths mainly based on BO. As a result, the proposed CA-OF is aware of channel congestion and can forward packets through the least congested links. The simulation results show that CA-OF improves RPL performance in terms of throughput and PDR. A similar idea as in [99] is proposed by [PERSON] et al. [100] to minimise congestion under high traffic in RPL. The author investigates RPL in high-traffic networks and finds that most packet loss is caused by congestion. Hence, the author proposed QU-RPL to overcome the congestion problem and balance the load between nodes. QU-RPL take into consideration three routing metrics: (i) queue utilisation (QU), (ii) hop count, and (iii) ETX to select the best available path. The QU can be calculated as the number of packets in the queue divided by the total queue size. The experiment results show that QU-RPL balances the load effectively over the nodes and reduces the queue losses, thus increasing PDR. [PERSON] et al. [101] introduced CAQL, which incorporates congestion levels and ETX as routing metrics. CAQL employs a queue learning model based on reinforcement learning to mitigate network congestion and achieve load balancing. Simulation outcomes demonstrate CAQL's positive impact on PDR, delay reduction, and energy consumption compared to related work. The objective functions [99, 100, 101] combine different link metrics to overcome the packet loss limitation caused by congestion. Even though these objective functions improve (i) the routing reliability of packet delivery and (ii) balance the load between nodes, they have a common drawback: they only combine link metrics and do not consider any node metrics that may also affect routing reliability, such as node energy. [PERSON] et al. [54] proposed PER-HOP ETX to overcome the long single-hop problem in RPL main objective functions [81, 85]. PER-HOP ETX takes into consideration ETX and hop counts to calculate the average ETX value. Hence, the ETX value of each node in the path is distributed by dividing the sum of ETX by the hop count.