Bandbreitenkontrolle mit Wondershaper

© Zastavkin, Fotolia

Ressourcenwächter

Bandbreitenregulierung hilft, Flaschenhälse im Netz zu umgehen. Wondershaper erschließt die sehr komplizierte Technik dahinter auch dem Normalanwender.

Verwenden mehrere Nutzer einen Internetanschluss gemeinsam, dann passiert es schnell, dass große Uploads die Geschwindigkeit der Downloads anderer Teilnehmer massiv beeinträchtigen. Lädt beispielsweise ein Kollege die komplette Sammlung seiner letzten Urlaubsbilder hoch oder betreibt einen Peer-to-Peer-Client wie Edonkey oder Bittorrent, wird das Surfen für die restlichen Nutzer des Zugangs schnell zur Qual. Mit dem Wondershaper formen Sie den Netzwerkverkehr so, dass stets genügend Bandbreite für alle übrig bleibt.

Hinter den Kulissen

Hierzulande verwenden die meisten Nutzer ADSL, dessen Upload-Datenrate im Schnitt um das zehn- bis zwanzigfache unter jener der Downloads liegt. Im Normalfall stellt das kein Problem dar, denn die meisten Anwender laden deutlich größere Datenmengen herunter als hoch. Ist der Upload jedoch einmal für längere Zeit vollständig ausgelastet, bricht auch der Download ein.

Der Grund dafür liegt in der Arbeitsweise des Transmission Control Protocols (TCP). Es verlangt vom Empfänger eines Datenpaketes den Versand einer Bestätigung über das intakte Eintreffen. Erst danach schickt der Versender das nächste Datenpaket los. Ist nun der eigene Upload ausgelastet, stellt sich dieses so genannte SYN/ACK-Paket hinten in der Warteschlange der zum Versand anstehenden Datenpakete an. Dadurch unterbleiben weitere Transfers von Datenpaketen vom Sender so lange, bis das SYN/ACK-Paket verschickt und vom Sender empfangen wurde.

Traffic Shaping [1] erlaubt das Eingreifen in die Reihenfolge der zu versendenden Datenpakete. Die meisten Linux-Distributionen bringen die Voraussetzungen dafür mit dem Userspace-Programm namens »tc« (kurz für "Traffic Control") von Haus aus mit. Die Komplexität von Tc erfordert es aber, ein komplettes Skript schreiben, das den Netzwerkverkehr in Klassen einteilt und diese individuell priorisiert. Hier kommt Wondershaper [2] ins Spiel, das den Aufwand dabei deutlich reduziert.

Das Skript teilt den ausgehenden Netzwerkverkehr in Klassen ein und bevorzugt Datenpakete von interaktiven Anwendungen, wie VoIP oder Internet-TV. Das vermeidet Verzögerungen in der Übertragung, die der Benutzer durch Sprachaussetzer oder Bildstörungen bemerken würde. Andere Pakete, deren Zustellung warten kann – etwa Datentransfers via FTP – stellt Wondershaper bei ausgelasteter Datenleitung hinten an. Diese Technik nennt sich im Jargon der Netzwerktechniker "Quality of Service" oder kurz QoS.

Traffic Shaping

Traffic-Shaping eignet sich vornehmlich für den Einsatz auf Routern, da nur diese in der Lage sind, die Upload-Bandbreite zu regeln. Entweder Sie verwenden einen Router Marke Eigenbau – beispielsweise einen alten Rechner mit IPCop [3] – oder ein Gerät wie den Linksys WRT54GL [4] mit den alternativen Firmware-Systemen OpenWrt [5] oder DD-WRT [6]. Um Wondershaper zu nutzen, laden Sie das Paket von der Heft-DVD oder der Projektseite herunter und entpacken es. Da es sich lediglich um ein Skript handelt, ist eine Installation nicht notwendig.

Bevor Sie damit beginnen, das eigene Netzwerk in Form zu bringen, ermitteln Sie zunächst die Ping-Reaktionszeiten, um zu prüfen, ob die Einstellungen von Wondershaper greifen. Da der Test nur unter Vollast des Uploads brauchbare Informationen liefert, laden Sie beispielsweise eine große Datei auf einen eigenen Webspace hoch oder versenden eine Mail mit großem Anhang. Senden Sie währenddessen einen Ping zu Ihrem Gateway und sehen Sie sich die Reaktionszeiten an (Listing 1, unten). Die IP-Adresse des Gateways sowie die verwendete Netzwerkschnittstelle ins Internet ermittelt Sie das Kommando »route -n« (Listing 1, oben).

Listing 1

Routing-Tabelle und Test

 

Während bei freier Leitung Reaktionszeiten von 10 Millisekunden üblich sind, steigen sie bei ausgelastetem Upload im Beispiel auf über 500. Webseiten laden entsprechend langsamer, Internet-Telefonie ist nicht mehr möglich. Aktivieren Sie danach Wondershaper, beachten Sie dabei aber, das richtige Netzwerkgerät (»ppp0« , »eth0« ,…) zu verwenden. In diesem Fall wäre es »ppp0« . Generell starten Sie das Skript mit dem Aufruf

$ sudo wondershaper Interface Do↩
wnload-Rate Upload-Rate

Die Transferraten geben Sie in kbit/s an, also beispielsweise »wondershaper ppp0 15000 900« für eine 16-Mbit/s-Anbindung. Verfügen Sie über eine 2-Mbit/s-Anbindung, geben Sie für den Download »2000« an. Sie sollten immer ein paar Prozent vom theoretisch maximalen Wert abziehen – das selbe gilt für die Upload-Bandbreite. Anschließend schicken Sie weitere Pings ab. Verbessern sich die Ping-Zeiten nicht, dann senken Sie den Upload-Wert langsam weiter ab, bis Sie akzeptable Reaktionszeiten erhalten. Im Testaufbau griffen die Einstellungen bei »15000« kbit/s Download- und 600 kbit/s Upload-Bandbreite (Listing 2). Mit diesen Einstellungen war dann auch Surfen trotz Auslastung des Uploads problemlos möglich.

Listing 2

Wondershaper-Test

 

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Loadtests ohne Server

Für Loadtests der eigenen Server bietet sich die Cloud an, denn kurz getaktet lassen sich dort viele Rechnerinstanzen starten, die das eigene Budget nur wenig belasten. Noch flexibler, günstiger und besser skalierbar sind Tests mit einer Serverless-Infrastruktur wie AWS Lambda. Wir führen vor, wie Sie dort mit Serverless Artillery eigene Loadtests starten. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018