# A Survey on Congestion Control for RPL-Based Wireless Sensor Networks
## 4 Congestion Control Schemes for RPL
### Schemes Exploiting Path Diversity
#### 4.2.5 Energy-Aware Load Balancing  
**Energy-balancing based on energy bottlenecks. ** [PERSON] et al. propose a multipath RPL scheme to balance energy consumption [37]. This scheme aims at maximizing the lifetime of the most constrained node named bottleneck rather than simply using the nodes with large residual energy to forward traffic. To this end, each node identifies the energy bottleneck nodes along the paths from itself to the root and splits its traffic among all its parents so that the bottlenecks can be equally charged. This scheme uses a metric called ELT (expected life time) which is the time until a node runs out of energy if it keeps on forwarding the same amount of traffic. The ELT of a node N is calculated as follows. \[ELT(N)=\frac{E_{res}(N)}{\sum_{P\in Parent(N)}\frac{\alpha_{P}XT_{int}(N)\times ETX (N,P)}{DATA\_RATE}\times P_{TX}(N)} \tag{20}\]  
where \(\sum\limits_{P\in Parent(N)}\alpha_{P}=1\). \(E_{res}(N)\), \(T_{tot}(N)\), \(P_{TX}(N)\), \(\alpha_{P}\), \(ETX(N\),\(P)\), and \(DATA\_RATE\) are the residual energy, the traffic node \(N\) has to forward, the transmission power of node \(N\), the portion of traffic forwarded to parent \(P\), ETX of the link between \(N\) and \(P\), and the data rate, respectively. \(DATA\_RATE\) is assumed to be the same for all the nodes in the network. \(\frac{P_{TX}(N)}{DATA\_RATE}\) indicates the energy drained per transmitted bit. Since the rank of nodes must monotonically increase downwards in a DODAG,ELT cannot be used to compute the rank. The rank of a node is calculated using its preferred parent's rank and a constant step value. The bottleneck of a path can be defined as a node which has the minimum ELT along the path. Several parents may lead to the same bottleneck. Each node maintains a list of all its bottleneck nodes and estimates the ELT of each bottleneck. To propagate the last updates on bottlenecks in the network, a DIO message contains a list of bottlenecks with the information for each of them: the bottleneck ID, the ratio of the traffic forwarded by this node to the bottleneck, the existing traffic forwarded by the bottleneck to the sink, the residual energy, and the spent energy to transmit one bit at the bottleneck. With this information, a node \(N\) estimates the effect of its traffic on the lifetime of bottleneck \(B\) by adding the ratio of its own traffic to the traffic of \(B\). To select a preferred parent, each node calculates the lifetime of the bottlenecks assuming that it sends all its traffic to one parent, and selects a node that maximizes the lifetime of the bottleneck. After choosing a preferred parent, the node removes from the parent set all the nodes that have larger rank than its rank. Each node splits traffic among all its parents in proportion to ELT of the corresponding bottleneck node. For performance evaluation, they simulated RPL using WSNet. At the MAC layer, the IEEE 802.15.4 with the beacon-enabled mode was used. The authors compared their multipath RPL scheme with single-path RPL versions which use different routing metrics. Simulation results show that their multipath scheme achieved a better network lifetime than the other (single-path) RPL schemes and better stability than the standard RPL in that their scheme changed the parent less frequently. However, since estimation of bottlenecks' ELT requires that each node obtain the information on its bottlenecks and calculate the ratio of traffic forwarded to the bottleneck recursively, the scalability problem due to computation and communication overhead needs to be investigated. [PERSON] et al. point out the increased risk of L2 fragmentation [42]. Since the sizes of DIO messages increase to carry the information about bottlenecks, DIO messages may be fragmented into multiple fragments each of which may take a different path and be lost. **Cross-layer approach. ** [PERSON] et al. adopt a cross-layer approach to energy-aware load-balanced routing [38].