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.
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.
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.