# Traffic-Shaping

Traffic-Shaping (auch Verkehrsformung) bezeichnet eine Art der Warteschlangenverwaltung bei paketvermittelten Datennetzen, bei der Datenpakete nach bestimmten Kriterien verzögert oder verworfen werden, um bestimmten Anforderungsprofilen zu genügen. Durchgeführt wird diese Funktion von einem Netzwerk-Scheduler und ist grundsätzlich eine Form der Datenratenbegrenzung. Traffic-Shaping ist unidirektional, das heißt, es arbeitet im Gegensatz zur Datenflusssteuerung ohne Steuerinformationen der Gegenseite.
Mit Traffic-Shaping wird der Netzwerkverkehr in verschiedene Bereiche eingeteilt. Diese Einteilungen sind beispielsweise Applikationen und Protokolle, Übertragungsrichtungen zwischen Client und Host, Zeit und Art der Verbindung.

## Anwendungsbeispiel

Beim Transmission Control Protocol (TCP) muss der Empfang einer bestimmten Menge an Daten von der Gegenseite bestätigt werden, bevor der Sender neue Daten versenden darf. Kommen diese Empfangsbestätigungen nicht schnell genug, muss der Sender warten und es kommt zu Verzögerungen und Einbrüchen der Transferrate. Gerade bei ADSL kann es passieren, dass man einen Download ausbremst, indem man den Rückkanal (der ohnehin die kleinere Bandbreite hat) mit einem Upload überlastet, so dass nicht mehr genügend Übertragungskapazität für den sofortigen Versand der Empfangsbestätigungen des Downloads zur Verfügung steht. Die Bestätigungspakete werden (innerhalb des Rechners und außerdem innerhalb des DSL-Modems) gepuffert und müssen, obwohl sie sehr klein sind, schlimmstenfalls warten, bis alle vor ihnen erzeugten Pakete verschickt wurden. Je größer die Puffer, desto größer ist die durch sie entstehende Verzögerung. Bei andauernder Überlastung der Leistungskapazität kommt es außerdem dazu, dass Pakete verworfen werden, was die Verzögerung nochmals erhöht.
Um diesen Effekt zu kompensieren, erhöhen einige DSL-Treiber bzw. Tuning-Programme die TCP-Window-Size, so dass der Sender mehr Daten verschicken darf, bevor er auf eine Empfangsbestätigung warten muss. Dieser Vorteil wird aber durch eine deutliche Erhöhung der Latenz (Ping-Zeiten) erkauft, so dass das Surfen während eines Datentransfers ungewöhnlich langsam ist. (Wird der TCP-Window-Size Wert auf über 65.535 Bytes eingestellt, muss gleichzeitig TCP-Window-Scaling aktiviert werden, da ansonsten kein entsprechend der TCP-Window-Size erhöhter Durchsatz erreicht werden kann. Ohne TCP-Window-Scaling liegt der maximale Durchsatz bei etwa 5 Mbit/s mit 100 ms Paketumlaufzeit.)
Das Traffic-Shaping analysiert nun den anfallenden Datenverkehr in beide Richtungen (mit stärkerem Effekt bei Uploads) und sortiert die wartenden Datenpakete so um, dass der Datentransfer in der Gegenrichtung weniger behindert wird. Wenn unter den zu verschickenden Paketen solche sind, die nur den Empfang von Daten bestätigen sollen, dann werden diese vorgezogen, also als erste verschickt. Dadurch werden die Phasen verkürzt, in denen die Gegenstelle keine Daten schickt, die Übertragungsrate steigt. Als Nebeneffekt wird dadurch weitgehend verhindert, dass ausgerechnet diese Pakete wegen Überlastung verworfen werden. Um diesen Effekt zu maximieren, wird außerdem der gesamte Datenstrom gebremst, so dass der Rechner seine Daten etwas langsamer schickt, als das DSL-Modem sie übertragen kann. Das führt dazu, dass die Puffer im DSL-Modem immer leer sind und Daten, die der Rechner ans Modem schickt, sofort übertragen werden. Es treten also keine Verzögerungen durch die Puffer im Modem auf. Dies bringt folgende Vorteile:
* Höhere Download-Rate trotz Uploads
* Höhere Download-Rate bei mehreren Downloads und Uploads
* Kürzere Reaktionszeiten beim zum Beispiel Surfen (bessere Ping-Zeiten, wichtig beispielsweise bei Onlinegames)

## Algorithmen

Die verbreitetsten Algorithmen zur Warteschlangenverwaltung sind der Leaky-Bucket-Algorithmus und der Token-Bucket-Algorithmus.

## Verwendete Hardware/Anbieter

Die angebotene Router-Firmware kann auf Linux, BSD oder VxWorks basieren. Für den Netzwerk-Scheduler werden allgemein erhältliche Algorithmen mit eigenen Einstellungen oder selbst entwickelte Algorithmen verwendet. Mit Hilfe der Linux-Distribution OpenWrt lassen sich die neuesten Techniken selbst auf kostengünstigen Routern zum Einsatz bringen, etwa Datenpaket-Sniffer.
Die Firmware der Fritz!Box der Firma AVM setzen zwar auf Linux auf, das Herzstück, der dsld, ist allerdings eine proprietäre Eigenentwicklung.
Von der cFos Software GmbH gibt es mit dem Produkt cFosSpeed einen Software-Traffic-Shaper für Microsoft Windows, welches kooperativ auf allen Windows-Clients eines homogenen lokalen Windows-Netzwerks installiert werden kann.