Weighted Fair Queuing (WFQ) ist ein Scheduling-Verfahren für Router-Schnittstellen, das Datenflüsse automatisch erkennt und die Bandbreite nach Gewichten verteilt, sodass interaktiver Verkehr nicht von Massendownloads verdrängt wird. Es ist die paketbasierte Näherung an das theoretische Idealmodell Generalized Processor Sharing (GPS), bei dem jeder Fluss rechnerisch eine eigene Leitung mit seinem Gewichtsanteil erhielte.
Automatische Fluss-Klassifizierung
Anders als klassische Verfahren muss WFQ nicht konfiguriert werden, welche Verkehrsart welche Priorität bekommt: Der Scheduler ordnet jedes Paket anhand des 5-Tupels (Quell-IP, Ziel-IP, Quell-Port, Ziel-Port, Protokoll) einem Flow zu und legt für jeden Flow eine eigene Warteschlange an. Bei Cisco-Routern ist Flow-basiertes WFQ auf seriellen Schnittstellen unter 2,048 Mbit/s (E1) standardmäßig aktiv.
Gewichtung über IP-Precedence
Jeder Flow erhält ein Gewicht, das aus dem ToS-Feld (Type of Service) mit der IP-Precedence abgeleitet wird. In der verbreiteten IOS-Formel gilt: Gewicht = 32768 / (IP-Precedence + 1). Ein Flow mit Precedence 5 erhält dadurch ein sechsmal so hohes Gewicht wie ein Flow mit Precedence 0 — er wird also entsprechend häufiger bedient. Da kleine Flows wie Telnet oder interaktive Abfragen ohnehin wenig Volumen erzeugen, laufen sie praktisch immer sofort durch, während große Flows (FTP, Backups) sich den verbleibenden Anteil teilen.
Vorteile und Grenzen
- Kein Klassendesign nötig: WFQ klassifiziert automatisch nach Flows und reagiert fair auf Mischverkehr.
- Latenzschutz: kurze interaktive Nachrichten werden nicht hinter langen Übertragungen eingereiht, sondern zwischengeschoben.
- Grenze: flow-basiertes WFQ skaliert nur bis wenige Mbit/s; für hohe Bandbreiten und definierte Klassen nutzt man Class-Based WFQ mit gewichteten Klassen beziehungsweise Klassen-basiertes Weighted Round Robin.
- Queue-Überlauf: überschreitet der Puffer den Schwellwert (Congestion Discard Threshold), werden weitere Pakete des aggressivsten Flows verworfen.
Wer echte Mindestbandbreiten pro Verkehrsklasse garantieren will, kombiniert die WFQ-Mechanik mit Klassen (CBWFQ); wer strikte Priorität für Sprache braucht, ergänzt eine Priority-Queue (LLQ). Die Formung des Verkehrs vor der Queue übernimmt Traffic Shaping mit Token Bucket.
Verwandte Grundlagen: QoS: Quality of Service, Rate Limiting, Bandbreite.