Tukkertje-RaH schreef op maandag 12 augustus 2019 @ 11:02:
...
Maar als ik het idee van bloatbuffers een beetje begrijp, dan zou bij een download het bufferprobleem toch aan de ISP kant moeten zitten? Daar lopen de buffers vol - niet aan de klantenkant in de woning. Het lijkt me raar dat jouw modem en/of router-combi zoveel data binnenkrijgt van Ziggo en die niet in je thuisnetwerk kwijt kan dat er op het apparaat zelf gebufferd moet worden. Het zal eerder zo zijn dat bij Ziggo buffers vollopen die vervolgens voor latency zorgen.
En als dat zo is, dan lijkt het me lastig dit probleem te fixen? Of maak ik een denkfout?
Klopt, de te grote buffers zitten ofwel aan de Ziggo kant, of in het modem waar je geen controle over hebt. Dit veroorzaakt bufferbloat bij een volle verbinding.
Je kunt echter wel proberen te voorkomen dat die te grote buffers vollopen. In de upload richting is dat eenvoudig, je stelt je uploadsnelheid in en laat je router voorkomen dat er te snel geupload wordt. Verkeer dat over de grens gaat drop je lokaal en komt zo nooit in de apparatuur met de te grote buffers.
In de downloadrichting is het iets moeilijker, maar werkt het in principe hetzelfde. Je gaat voor verkeer dat over de grens dreigt langzaamaan packets droppen. Voor TCP verkeer betekent dat automatisch dat de zender (bijv een website, netflix of youtube) zijn snelheid zal verlagen en zo binnen de ingestelde maximale downloadsnelheid blijft.
Doordat je verbinding net onder z'n maximumsnelheid blijft zullen de te grote buffers bij Ziggo of in je modem niet vollopen en krijg je geen last van bufferbloat.
Mijn theorie van bufferbloat: de buffers in de routers zijn zo groot dat pakketjes zo lang bewaard/gebufferd kunnen worden dat de transmissie protocollen in de bovenliggende OSI-netwerk laag er van in de war raken. Normaal zou een pakket gedropped worden en TCP daardoor de send-queue aanpassen. Omdat de pakketjes nu gebufferd worden blijft TCP gewoon sturen, want er komt geen "packet dropped" terug en hou je dus een probleem. Door de buffer kleiner te maken drop je packets, waardoor TCP de transmit rate terugschroeft en alles weer soepeler zou moeten lopen.
De buffers bij de bottleneck voor je thuisverbinding zijn te groot, en dit zorgt er voor dat TCP te laat reageert op volle verbindingen. Nieuwe pakketjes komen achterin de rij en moeten soms wel een seconde wachten voor ze door de bottleneck geperst kunnen worden. Dit is de lag die je in games ervaart als iemand je verbinding voltrekt.
Helaas heb je vaak geen controle over de buffers in de last mile bottlenecks naar je thuisnetwerk, daarom moet je voorkomen dat deze buffers uberhaupt vollopen door middel van SQM/QoS.
[
Voor 24% gewijzigd door
Kanarie op 12-08-2019 11:20
]
We're trapped in the belly of this horrible machine. And the machine is bleeding to death.