Home / LinuxUser / 2009 / 11 / Ressourcenwächter

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

„Klickbunt auf dem Server? Warum nicht, wenn's hilft!"
(220 Punkte bei 8 Stimmen)
KDE 4.10.2, Gnome 3.6 und mehr
(121 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

AA_PO-3802.jpg

© Zastavkin, Fotolia

Ressourcenwächter

Bandbreitenkontrolle mit Wondershaper

29.09.2009 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
$ route -n
Kernel-IP-Routentabelle
Ziel         Router   Genmask         Flags […] Iface
88.66.0.1    0.0.0.0  255.255.255.255 UH    […] ppp0
192.168.0.0  0.0.0.0  255.255.255.0   U     […] eth0
169.254.0.0  0.0.0.0  255.255.0.0     U     […] eth0
0.0.0.0      0.0.0.0  0.0.0.0         U     […] ppp0
$ ping 88.66.0.1
PING 88.66.0.1 (88.66.0.1) 56(84) bytes of data.
64 bytes from 88.66.0.1: icmp_seq=1 ttl=255 time=594 ms
[…]

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 Download-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
$ sudo wondershaper ppp0 15000 900
$ ping 88.66.0.1
PING 88.66.0.1 (88.66.0.1) 56(84) bytes of data.
64 bytes from 88.66.0.1: icmp_seq=2 ttl=255 time=520 ms
[…]
$ sudo wondershaper ppp0 15000 600
$ ping 88.66.0.1
PING 88.66.0.1 (88.66.0.1) 56(84) bytes of data.
64 bytes from 88.66.0.1: icmp_seq=1 ttl=255 time=7.25 ms
[…]
Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

3284 Hits
Wertung: 183 Punkte (13 Stimmen)

Schlecht Gut

Infos zum Autor

Christoph Langner

Ich bin Blogger und freier Autor für die Linux User bzw. Ubuntu User. Ihr könnt mein Blog unter http://linuxundich.de besuchen oder mir über @ChrisZwitschert auf Twitter bzw. @Chrissss auf identi.ca folgen.


Infos zur Publikation

Infos zur Publikation

title_2013_06

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Emacs als Psychologe
Emacs als Psychologe
Tim Schürmann, 21.05.2013 11:49, 0 Kommentare

Wer beim Schreiben in Emacs nicht mehr weiter weiß oder schier an einer Programmieraufgabe verzweifelt, der kann den eingebauten Psychologen um Rat fragen.

1966 entwickelte der Infor...

Aktuelle Fragen

Kontakt via QR code hinzufügen
Herman Sproesser, 17.05.2013 17:46, 3 Antworten
Hi hab in der aktuellen ausgabe 06.2013 den artikel über QR Codes gelesen. Ich hab nartürlich...
Dateimanager Dolphin, wo legt er die Datei Kommentare ab?
Uwe Heine, 16.05.2013 15:19, 1 Antworten
Suse Linux 12.1 - KDE 4.7.2 / Dolphin 1.7. Ich habe bei vielen Dateien über Dolphin Kommentare...
wie baut man Kernel Module so, dass sie mit jedem Kernel laden?
GoaSkin , 22.04.2013 10:22, 1 Antworten
Hallo, baut man anhand eines Kernel-Sources Module, nutzt Linux im Normalfall eine strikte V...
Problem beim Installieren von SuSe 12.3
Georg Prokert, 14.04.2013 00:04, 16 Antworten
Hallo, auf meinem neuem Laptop (Acer Aspire V3-771, Intel Core i5-3230 M, Intel HD Graphics 4...
lvm wieder loswerden
Peter Dibbern, 11.04.2013 16:28, 4 Antworten
Ich habe sämtliche alten Kisten ausgeschlachtet und aus der Teilen einen Rechner zusammengeschrau...