FQ-CoDel (Flow Queue CoDel, RFC 8290) kombiniert zwei Verfahren: Fair Queueing, das Pakete nach Datenströmen (Flows) sortiert und jedem Flow eine eigene Warteschlange gibt, und CoDel, das die Verweildauer in jeder dieser Queues überwacht. Seit Linux 3.5 (2012) ist fq_codel die Standard-Queueing-Disziplin (qdisc) von Linux und wird auch von OpenWrt und vielen Router-Firmwares standardmäßig eingesetzt – ein zentrales Werkzeug gegen Bufferbloat.
So funktioniert FQ-CoDel
Ankommende Pakete werden anhand ihrer Fluss-Kennung (Quell- und Zieladresse, Ports, Protokoll) per Hash auf viele einzelne Queues verteilt. Eine faire Scheduling-Logik bedient die Queues im Round-Robin und verhindert, dass ein einziger aggressiver Datenstrom (etwa ein großer Download) alle anderen verdrängt. Innerhalb jeder Queue greift der CoDel-Mechanismus: Überschreitet die Verweildauer dauerhaft das Ziel (target 5 ms), werden Pakete dieser Queue mit der typischen quadratwurzel-basierten Kadenz verworfen.
Vorteile
- Fairness: Jeder Flow erhält seinen Anteil an der Bandbreite; ein Download bremst VoIP oder Spiele nicht mehr aus.
- Niedrige Latenz: CoDel hält die Wartezeit pro Queue nahe am Zielwert.
- Keine Konfiguration nötig: FQ-CoDel arbeitet mit Standardwerten und kommt ohne Schwellen-Einstellung aus.
Einordnung
Einzelnes RED kennt keine Flow-Trennung und reagiert empfindlich auf Parameter; reines CoDel behandelt alle Pakete gleich. FQ-CoDel vereint die Stärken beider: Fairness durch Flow-Queueing, Latenzkontrolle durch CoDel. Für das Zusammenspiel mit TCP hilft zusätzlich ECN, das Verwerfen durch Markieren ersetzt.
Verwandte Grundlagen
Verwandte Grundlagen: Quality of Service und Traffic Shaping.