Implementing the Flow Queue PIE AQM in the Linux Kernel
Unmanaged large buffers in today's networks have given rise to a slew of performance issues. These performance issues can be addressed by
some form of Active Queue Management (AQM) algorithms.
FQ-PIE is one such AQM algorithm which is a hybrid of an existing algorithm PIE and a packet-scheduler algorithm Flow Queue(FQ). The goal is to control queuing delays while sharing bottleneck capacity relatively evenly among competing flows. FQ-PIE aims to isolate packets from multiple flows and reduces the impact of head of line blocking from bursty traffic.
The testbed consisted of three components -
- Source - Flent and iperf are run on the client. Iperf is used to start a UDP transmission whereas Flent is used to create TCP packets. Flent is also used to collect all the statistics required for testing. It is connected to the router through 2 links, 1 is a USB-LAN interface used to retrieve flent statistics from the router and the other is a normal LAN cable.
- Routers - The AQM algorithms were deployed in the routers. An extra link to transfer flent statistics is used.
- Sink - The server plays a non critical role in the testbed and only sends ACKs on receiving data packets.