Chapter 9. Warteschlangenlehre für Bandbreitenmanagement

Jetzt, als ich dieses entdeckte, hat es mich wirklich umgehauen. Linux 2.2 / 2.4 bringt alles mit, um die Bandbreite zu verwalten, vergleichbar mit dedizierten High-End Bandbreiten-Management-Systemen.

Linux geht sogar weiter als das, was Frames und ATM bereit stellen.

Nur um Verwechslungen zu vermeiden, tc verwendet die folgenden Regeln für die Spezifikation der Bandbreite:

mbps = 1024 kbps = 1024 * 1024 bps => byte/s
mbit = 1024 kbit => kilo bit/s.
mb = 1024 kb = 1024 * 1024 b => byte
mbit = 1024 kbit => kilo bit.
Intern wird die Zahl in bps und b gespeichert.

Aber wenn tc die Rate ausgibt, benutzt er folgendes:

1Mbit = 1024 Kbit = 1024 * 1024 bps => byte/s

9.1. Schlangen- (Queues) und Warteschlangenlehre erklärt

Mit Schlangen (Queues) bestimmen wir die Art, in der Daten gesendet (SENT) werden. Es ist wichtig zu erkennen, dass wir nur Daten beeinflussen, die wir übermitteln.

So wie das Internet funktioniert, haben wir keine direkte Kontrolle darüber, was die Menschen uns senden. Es ist ein bisschen wie dein (physikalisches!) Postfach zu Hause. Es gibt keine Möglichkeit die Welt zu beeinflussen, um die Anzahl der dir zugeschickten Briefe nach jeder Kontaktaufnahme zu ändern.

Allerdings basiert das Internet meist auf TCP/IP, es hat ein paar helfende Features. TCP/IP kennt keine Möglichkeit, zu wissen wie die Netzwerkkapazität zwischen zwei Hosts ist. So wird vom Start das Senden von Daten schneller und schneller ('Slow-Start') und erst wenn Pakete anfangen sich zu verirren, weil kein Platz zum senden bereit steht, wird die Sendegeschwindigkeit abgesenkt. In Wirklichkeit ist es ein bisschen schlauer, aber dazu später mehr.

Es ist das Äquivalent vom die Hälfte deiner Post nicht lesen, in der Hoffnung, dass die Menschen aufhören dir etwas zu schicken. Mit dem Unterschied, dass es im Internet funktioniert :-)

Du hast einen Router und möchtest verhindern, dass bestimmte Hosts in deinem Netzwerk zu schnell herunterladen, dazu musst du das Shaping an der *inneren* Schnittstelle deines Routers, welche die Daten zum eigenen Computer sendet, anwenden.

Stelle sicher, dass du den Flaschenhals der Verbindung steuern kannst. Wenn du eine 100Mbit Netzwerkkarte und einen Router mit einer 256kbit-Leitung hast, musst du sicherstellen, dass du nicht mehr Daten sendest, als dein Router verarbeiten kann. Weiterhin wird der Router die Verbindung steuern und die verfügbaren Bandbreite gestalten (shaping). Wir sind sozusagen die 'Besitzer der Warteschlange (Queue)' und das langsamste Glied in der Kette. Glücklicherweise ist dies problemlos möglich.