Traffic Shaping: Downloads bremsen

23/12/2015 - 12:09 von Holger Marzen | Report spam
Die Steam-Server haben Feuer im Arsch, und irgendwie scheint die
Downloadsoftware auf dem PC zum Updaten/Downloaden von Spielen auch
brutalst zuzuschlagen. Einige Internet-Radio-Sender, die vermutlich
knickig mit Bursts zum Auffüllen der Puffer sind, stottern dann auf
unseren Streaming-Boxen.

Da man Downloads bei der Empfàngerseite nicht so gut in den Griff
bekommt (oder doch?), habe ich im OpenWRT-Router auf der Senderseite
angesetzt: Alle TCP-Pakete des fraglichen PCs mit gesetztem ACK werden
von iptables markiert und von tc in eine langsame, absolut
bandbreitenbegrenzte Klasse geschoben. Experimentell habe ich
herausgefunden, dass bei ca. 11.000 kBit/s verfügbarer Downloadrate für
den ganzen Haushalt 30 kBit/s upstream für ACK-Pakete ein ganz
brauchbarer Wert für diesen PC sind.

Die nötige max. Rate der ACK-Pakete hàngt nach meinem Verstàndnis von
der TCP Window Size ab, so dass es vermutlich keine allgemeine Formel
für die Rate der ACK-Pakete gibt, mit der ich z.B. eine max.
Downloadrate von 8.000 kBit/s erzwingen kann, oder doch?
 

Lesen sie die antworten

#1 Peter J. Holzer
23/12/2015 - 16:26 | Warnen spam
On 2015-12-23 11:09, Holger Marzen wrote:
Die Steam-Server haben Feuer im Arsch, und irgendwie scheint die
Downloadsoftware auf dem PC zum Updaten/Downloaden von Spielen auch
brutalst zuzuschlagen. Einige Internet-Radio-Sender, die vermutlich
knickig mit Bursts zum Auffüllen der Puffer sind, stottern dann auf
unseren Streaming-Boxen.

Da man Downloads bei der Empfàngerseite nicht so gut in den Griff
bekommt (oder doch?), habe ich im OpenWRT-Router auf der Senderseite
angesetzt: Alle TCP-Pakete des fraglichen PCs mit gesetztem ACK werden
von iptables markiert und von tc in eine langsame, absolut
bandbreitenbegrenzte Klasse geschoben.



Das müsste auch umgekehrt gehen: Wenn Du alle Pakete, die der
OpenWRT-Router an diesen PC schicken will (oder alternativ: Alle, die
von einem Steam-Server kommen) in eine Klasse packst und die auf 8000
kbit/s beschrànkst, dann bremst Du zwar nicht direkt, was über Deine
Leitung kommt, aber das, was bei Deinem PC ankommt. Da der natürlich nur
ACKen kann, was er bekommt, sollte sich auch der Sender ziemlich rasch
auf diese Geschwindigkeit einpegeln. Gefühlsmàßig (jaja, ich weiß) sogar
rascher und zuverlàssiger, als wenn Du die ACKs begrenzt.


Experimentell habe ich herausgefunden, dass bei ca. 11.000 kBit/s
verfügbarer Downloadrate für den ganzen Haushalt 30 kBit/s upstream
für ACK-Pakete ein ganz brauchbarer Wert für diesen PC sind.

Die nötige max. Rate der ACK-Pakete hàngt nach meinem Verstàndnis von
der TCP Window Size ab, so dass es vermutlich keine allgemeine Formel
für die Rate der ACK-Pakete gibt, mit der ich z.B. eine max.
Downloadrate von 8.000 kBit/s erzwingen kann, oder doch?



Ich fürchte, Du hast recht. Prinzipiell wird für jedes empfangene Paket
ein ACK gesendet. Aber das ergàbe hier ca. (8000 * 40 / 1500) = 213
kbit/s. Daran, dass Du die Rate noch deutlich weiter senken musst,
merkst Du, dass der Ausfall ziemlich vieler ACK-Pakete toleriert werden
kann (im Extremfall aller bis auf eines pro Window-Size). Wobei mich die
Größe der Differenz jetzt doch etwas überrascht.

Auch deshalb halte ich es für sinnvoller, die Bandbreite zum PC hin zu
begrenzen und nicht die des Rückkanals.

hp

_ | Peter J. Holzer | Fluch der elektronischen Textverarbeitung:
|_|_) | | Man feilt solange an seinen Text um, bis
| | | | die Satzbestandteile des Satzes nicht mehr
__/ | http://www.hjp.at/ | zusammenpaßt. -- Ralph Babel

Ähnliche fragen