# Active queue management

In routers and switches, active queue management (AQM) is the policy of dropping packets inside a buffer associated with a network interface controller (NIC) before that buffer becomes full, often with the goal of reducing network congestion or improving end-to-end latency. This task is performed by the network scheduler, which for this purpose uses various algorithms such as random early detection (RED), Explicit Congestion Notification (ECN), or controlled delay (CoDel). RFC 7567 recommends active queue management as a best practice.

## Overview

An Internet router typically maintains a set of queues, one or more per interface, that hold packets scheduled to go out on that interface. Historically, such queues use a drop-tail discipline: a packet is put onto the queue if the queue is shorter than its maximum size (measured in packets or in bytes), and dropped otherwise.
Active queue disciplines drop or mark packets before the queue is full. Typically, they operate by maintaining one or more drop/mark probabilities, and occasionally dropping or marking packets according to the probabilities before the queue is full.

### Benefits

Drop-tail queues have a tendency to penalise bursty flows, and to cause global synchronization between flows. By dropping packets probabilistically, AQM disciplines typically avoid both of these issues.
By providing endpoints with congestion indication before the queue is full, AQM disciplines are able to maintain a shorter queue length than drop-tail queues, which combats bufferbloat and reduces network latency.

### Drawbacks

Early AQM disciplines (notably RED and SRED) require careful tuning of their parameters in order to provide good performance. These systems are not optimally behaved from a control theory perspective. Modern AQM disciplines (ARED, Blue, PI, CoDel, CAKE) are self-tuning, and can be run with their default parameters in most circumstances.
Network engineers have historically been trained to avoid packet loss, and have therefore sometimes been critical of AQM systems that drop packets: "Why should I drop perfectly good packets when I still have free buffer space?"

## Simulation

An active queue management and denial-of-Service (AQM&DoS) simulation platform is established based on the NS-2 simulation code of the RRED algorithm. The AQM&DoS simulation platform can simulate a variety of DoS attacks (Distributed DoS, Spoofing DoS, Low-rate DoS, etc.) and AQM algorithms (RED, RRED, SFB, etc.). It automatically calculates and records the average throughput of normal TCP flows before and after DoS attacks to facilitate the analysis of the impact of DoS attacks on normal TCP flows and AQM algorithms.

## Active queue management algorithms

* Blue and Stochastic Fair Blue (SFB)
* Common Applications Kept Enhanced (CAKE)
* Controlled Delay (CoDel)
* FQ-CoDel
* Modified-REM (M-REM)
* PI controller
* Random early detection (RED)
* Random Exponential Marking (REM)
* RED with Preferential Dropping (RED-PD)
* Robust random early detection (RRED)
* RSFB: a Resilient Stochastic Fair Blue algorithm against spoofing DDoS attacks
* Smart Queue Management (SQM) - combining AQM with QOS and other techniques