## 4 Congestion Control Based on the RED Algorithm
### Analysis of the Advantages and Disadvantages of RED  
The RED algorithm proves to be highly effective in congestion control, offering significant contributions to this area. Its main contributions can be summarized as follows [33]:  
* The RED algorithm has the capability of congestion identification. It can determine whether congestion occurs by detecting the average queue length and can request the source to reduce the sending rate. * The RED algorithm has the capability of congestion control and can choose how to discard packets based on the discard probability, which is very effective in relieving the current congestion state. * The RED algorithm makes the interval of dropped packets evenly distributed, avoiding the global synchronization problems often caused by traditional congestion control algorithms in TCP. Figure 4: The discarding probability function of the RED algorithm. The RED algorithm has a significant drawback related to its static packet dropping strategy and predetermined parameter settings. This limitation prevents the algorithm from effectively adapting to the dynamic nature of network traffic [34]. In practice, the RED algorithm may perform well when the parameter settings align with the current network load changes. However, it can also result in poor congestion control outcomes, highlighting the algorithm's limited parameter sensitivity and lack of dynamic adaptability [35]. Furthermore, the RED algorithm exhibits linear changes in the packet loss rate regardless of whether the average queue length is near the minimum or maximum threshold. This approach is not practical since the severity of congestion varies at different thresholds. When the average queue length is close to the minimum threshold, congestion levels are typically less severe, suggesting that the packet loss rate should change gradually [36]. Conversely, when the average queue length approaches the maximum threshold, congestion is more critical, warranting a rapid increase in the packet loss rate [37]. To address these issues, an improvement to the RED algorithm can be introduced by adopting the curve RED (CRED) algorithm. CRED addresses the limitations of the original RED algorithm by incorporating non-linear changes into the packet loss rate. This means that the packet loss rate changes at different speeds depending on the proximity to the minimum or maximum threshold. The CRED algorithm aims to provide a more realistic and effective approach to congestion control by adapting the packet loss rate based on the current congestion severity. In summary, the static packet-dropping strategy and predetermined parameter settings of the RED algorithm hinder its adaptability to dynamic network conditions. To overcome these limitations, the CRED algorithm can be implemented, offering non-linear changes in the packet loss rate and improved congestion control based on the current congestion severity. The advantages of combining congestion recognition based on the ACA and congestion control based on the RED algorithm include: (1) Efficient congestion recognition. The ACA accurately identifies congestion in the network. By monitoring indicators such as traffic, latency, and packet loss, it can quickly detect signs of congestion and respond  
Figure 5: Flow chart of the RED algorithm. promptly. (2) Dynamic congestion control. The RED algorithm-based congestion control adjusts the packet drop rate dynamically based on the level of congestion in the network. It uses a lower drop rate to alleviate network load when congestion is mild and gradually increases the drop rate to mitigate congestion as it intensifies. (3) Quick congestion response. With the timely congestion detection provided by the ACA, combining it with the RED-based congestion control enables a fast congestion response. Once congestion is identified, the system can immediately adjust the packet drop rate to prevent further deterioration of congestion and maintain network stability and reliability. (4) Efficient network performance.