Forward Queuing for Time-Sensitive Streams (FQTSS)

Milan AVB nutzt FQTSS für das Traffic Shaping. “Forward Queuing” lässt sich auf Deutsch mit “Warteschlangenspeicher” übersetzen.

Die Switch-Ports werden je nach Richtung des aktuellen Datenverkehrs beschrieben.

  • Ein Ingress port beschreibt den Datenverkehr, der in einen Switch hineinfließt. Auf Deutsch: Eingangsport
  • Ein Egress port beschreibt den Datenverkehr, der aus einem Switch herausfließt. Auf Deutsch: Ausgangsport
Info

Die folgenden Beispiele beziehen sich auf folgendes Szenario: Alle drei Streams gelangen über drei unterschiedliche Eingangsports in den Switch und werden auf denselben Ausgangsport weitergeleitet. Der Aufbau wird in Abb. 1 gezeigt.

Routing von 3 Streams Routing von 3 Streams
Abb. 1: Routing von 3 Streams

Strict Priority Paket-Weiterleitung

Die Grafik in Abb. 2 zeigt, wie alle drei Streams von ihren jeweiligen Eingangsports zum Ausgangsport weitergeleitet werden. Dabei erfolgt die Weiterleitung nach dem Strict-Priority-Scheduling-Prinzip, also sofort entsprechend der Priorität der Pakete:

  • AV Pakete: haben hohe Priorität
  • Best-Effort (BE) Pakete: haben niedrige Priorität

Beim Strict-Priority-Forwarding werden Pakete, die zeitkritisch sind, immer zuerst weitergeleitet, sobald eine Entscheidung zwischen zeitkritisch und Best-Effort erforderlich ist.

Dadurch kommt es bei niedrig priorisierten Paketen zu Verzögerungen, solange höher priorisierte Pakete bevorzugt weitergeleitet werden.

Ohne Traffic Shaping werden Pakete am Eingangsport nahezu sofort weitergeleitet. Dadurch entsteht am Ausgangsport ein schwankender Datenstrom.

Strict priority Paket-Weiterleitung Strict priority Paket-Weiterleitung
Abb. 2: Strict Priority Paket-Weiterleitung

Credit-based Paket-Weiterleitung

Durch den Einsatz eines Shapers (Deutsch: formt den Datenverkehr), der kreditbasiert ist, kann sich zusammen mit der Strict-Priority-Weiterleitung, wie in Abb. 3 gezeigt, ein Vorteil ergeben: Die Pakete am Ausgangsport werden gleichmäßiger verteilt, und die Fairness gegenüber niedrig priorisierten Paketen wird erhöht.

Die grundlegende Idee des kreditbasierten Shapers ist einfach:

Jeder Prioritätsklasse wird ein Kreditzähler zugewiesen.

  • Der Kreditzähler verringert sich, während Pakete übertragen werden.
  • Der Kreditzähler steigt an, solange Pakete auf die Übertragung warten.

Sobald der Kreditzähler größer als Null ist und der Ausgangsport frei ist, können Pakete dieser Prioritätsklasse übertragen werden.

Dieser Ansatz verteilt die Pakete gleichmäßiger über die Zeit und reduziert Spitzen im Datenverkehr. Gleichzeitig können Pakete niedrigerer Priorität in den Lücken weitergeleitet werden, wenn der Kreditzähler der höher priorisierten Klasse unter Null liegt. In der Praxis werden die Raten, mit denen der Kreditzähler abnimmt (sendSlope) bzw. zunimmt (idleSlope), anhand der reservierten Bandbreite berechnet.

Credit-based Paket-Weiterleitung Credit-based Paket-Weiterleitung
Abb. 3: Credit-Based Paket-Weiterleitung