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
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 ]
