Heute ein Phänomen aus der Kategorie "strange".
Ich benutze hier privat einen ADSL-Anschluss der Telekom, fälschlicherweise auch als T-DSL bezeichnet und eine Flatrate von KAMP.
Gestern wurde nun mein ADSL-Anschluss von der Telekom von 1000 auf 3000 kbit/s umgestellt - die Flatrate von KAMP ist technisch bedingt bis Ende diesen Monats noch eine 1000er, wird danach aber auf 6000 umgestellt (Bevor jemand fragt: die 6000er kostet bei KAMP genauso viel wie die 3000er).
Als Gateway ins Internet tut hier ein Linksys WRT54GS (V1.1) mit OpenWrt (white russian (rc3)) seinen Dienst. Zwecks Traffic-Shaping kommt bei mir auf dem Router ein angepasstes Wondershaper Script zum Einsatz.
Das seltsame ist nun, daß ohne Traffic-Shaping auf den Downstream die Downloadrate seit der Umstellung maximal zwischen 50 und 70 kByte/s beträgt. Sobald ich die Downstream-Bandbreite mit dem Script (in meinem Fall auf 1200 kbit/s) limitiere, steigt die Downloadrate wieder und strebt gegen etwa 125-127 kByte/s.
Nachvollziehen kann ich dieses Verhalten bisher nicht, denke aber, daß es etwas mit der Queue bei KAMP zu tun hat.
Hat vielleicht jemand von Euch eine plausible Erklärung?
Update: Das geschilderte Problem tritt nur auf, wenn ich mit meinem Desktop (Linux) runterlade. Lade ich auf dem Router direkt was runter, geht das selbst ohne Shaping mit voller Bandbreite.
Update II: Problem gelöst. Nach ein bisschen Fummelei mit den Linux TCP-Parametern funktioniert es nun wieder wie gewohnt.
Update III: Das scheint wohl ein größeres Problem zu sein - siehe Kerneltrap "Linux: Window Scaling on the Internet". So wie es aussieht, sind "kaputte" Router zwischen Client und Server das Problem, ausgelöst durch eine Änderung im Linux-Kernel (siehe Kerneltrap-Artikel).
Wer testen möchte, ob er betroffen ist, kann versuchen auf http://www.everymac.com zuzugreifen. Sollte dies nicht klappen, kann man folgenden Workaround probieren:
# sysctl -w net.ipv4.tcp_window_scaling=0
Sollte der Zugriff auf oben genannte Seite nun möglich sein, so lässt sich der Workaround mit
# echo net.ipv4.tcp_window_scaling=0 >> /etc/sysctl.conf
beim Systemstart ausführen.
Dank gebührt Jörn für diesen Tip.