nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

tc: qdisc, class und die Hierarchie

Von: Hauke Laging (3q2009@hauke-laging.de) [Profil]
Datum: 16.09.2009 17:00
Message-ID: <h8qunh$7sq$03$1@news.t-online.com>
Followup-to: de.comp.os.unix.networking.misc
Newsgroup: de.comp.os.unix.networking.misc de.comp.os.unix.linux.misc
Moin,

es ist schon eine Weile her, seitdem ich mich das erste Mal mit traffic
shaping befasst habe. Im allgemeinen wird das Verständnis im Laufe der Zeit
besser, aber hier - ich kapier's nicht.

Ich habe jetzt nicht nur das Howto auf der (zumindest zeitlich) völlig
veralteten Webseite lartc.org gelesen, sondern engagiert versucht mit Hilfe
von Google Licht ins Dunkel zu bringen. Aber nicht mal Studienarbeiten
erklären das ausreichend, und widersprüchlich ist das
sowieso alles. Vor
allem habe ich den Eindruck, dass oft von qdisc gesprochen wird, wenn class
gemeint ist.

Klar ist: Alles beginnt mit der root qdisc. Was ich schon nicht mehr
verstehe: Warum muss die Klassen enthalten (wenn es eine classful qdisc
ist)? Können nur Klassen Sprungziel einer Filteranweisung sein
(ergäbe Sinn,
steht auch so im Howto, aber Beispiele springen auch zu qdiscs).

Mal ein ganz einfaches Beispiel. PRIO als root qdisc mit drei sfqs dran.
Warum hängt man die sfqs nicht direkt an die root qdisc? Wie muss man sich
den Sinn einer Klasse vorstellen, die nur zwei qdiscs verbindet?

Aber damit könnte ich mich noch arrangieren. Viel spannender ist die Frage,
was an einer Klasse hängt. Ich klaue mal aus dem Howto:

1:   root qdisc
|
1:1    child class
/  |  \
/   |   \
/    |    \
/    |    \
1:10  1:11  1:12   child classes
|      |     |
|     11:    |    leaf class
|            |
10:         12:   qdisc
/   \       /   \
10:1  10:2   12:1  12:2   leaf classes

So sieht das eigentlich immer aus (oben jedenfalls), wenn CBQ oder HTB die
root qdisc sind. Welchen sittlichen Wert hat es, dass eine Klasse an einer
anderen hängt und nicht an einer qdisc? Warum hängt man
1:10..12 nicht
direkt an die root qdisc? Im Howto steht, dass Filter nur von den qdiscs
aufgerufen würden. Was bringt dann 1:1? Ist der Grund, dass man nur Klassen
konfigurieren kann, nicht aber qdiscs?




Das PRIO-Beispiel erscheint mir sinnvoller:


1:   root qdisc
/ | \
/   |   \
/   |   \
1:1  1:2  1:3    classes
|    |    |
10:  20:  30:    qdiscs    qdiscs
sfq  tbf  sfq

Liegt es in der Natur eines qdisc-Typs, ob er diese "Zwischenebene" braucht?
HTB und CBQ brauchen sie, PRIO nicht?

Wenn man z.B. HTBs verschachteln will, nimmt man dann nur Klassen oder auch
mehrere HTB-qdiscs? Oder ist das vielleicht sogar egal? Kann man eine PRIO-
Klasse an eine HTB-Klasse hängen?

F'up2 dcounm


CU

Hauke
--
http://www.hauke-laging.de/ideen/


[ Auf dieses Posting antworten ]