Tc
A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
| 4. sor: | 4. sor: | ||
=== A traffic control architektúrája === |
=== A traffic control architektúrája === |
||
| − | ==== Terminaológia ==== |
+ | ==== Terminológia ==== |
Queueing Discipline (qdisc) |
Queueing Discipline (qdisc) |
||
* Egy eszköz feldolgozási sorának algoritmusa |
* Egy eszköz feldolgozási sorának algoritmusa |
||
| 15. sor: | 15. sor: | ||
Classful qdisc |
Classful qdisc |
||
| − | * Az ilyen qdisc-eknek már sok (rengeteg) paramétert lehet beállítani. |
+ | * Osztályokra bontható qdisc. Az osztályokból egy fa struktúra építhető fel. Az ilyen qdisc-eknek már sok (rengeteg) paraméterét lehet beállítani. |
** pfifo_fast |
** pfifo_fast |
||
** Token Bucket Filter (TBF) |
** Token Bucket Filter (TBF) |
||
| 22. sor: | 22. sor: | ||
** Class Based Queueing (CBQ) |
** Class Based Queueing (CBQ) |
||
** Hierarchical Token Bucket (HTB) |
** Hierarchical Token Bucket (HTB) |
||
| + | |||
| + | Class (osztály) |
||
| + | * Egy qdisc-nek több osztálya is lehet, egy osztálynak lehet több gyermek osztálya. Minden osztályhoz tartozik egy qdisc. |
||
| + | |||
| + | Classifier (osztályozó) |
||
| + | * Ez dönti el, hogy melyik csomag melyik osztályba kerül tovább. |
||
| + | |||
| + | Filter (szűrő) |
||
| + | * Az osztályozás a szűrőkkel pontosítható, ha egy csomag paraméterei megfelel egy kondíciónak, akkor az osztályozó aképp fog eljárni vele. |
||
| + | |||
| + | Scheduling (ütemezés) |
||
| + | * A csomagok ütemezését szolgálja a qdisc-eken keresztül az osztályozó segítségével. |
||
| + | |||
| + | Shaping (formázás) |
||
| + | * Az határozza meg, hogy egy csomag mikor kerülhet ki a médiumra, hogy az adott paramétereket (sávszélesség, burstösség) teljesítse a csomagfolyam. |
||
| + | |||
| + | Policing (rendelkezés) |
||
| + | * Meghatárzza, hogy mi történjen a csomaggal. Késleltetést szenvedjen, eldobásra kerüljön (a Linux csak eldobni tudja, mivel nincs bemeneti sor). |
||
| + | |||
| + | Work-Conserving |
||
| + | * Ez olyan qdisc, ha van kiköldendő csomag, akkor azt kiküldi. |
||
| + | |||
| + | non-Work-Conserving |
||
| + | * Ez olyan qdisc, hogy ha van kiküldendü csomag, akkor azt csak akkor küldi ki, ha belefér a paraméterek álatal meghatározott forgalmi mintába (pl. nem lesz túl burstös) |
||
| + | |||
| + | A tc hierarchiája a kernelben: |
||
| + | |||
| + | Userspace programs |
||
| + | ^ |
||
| + | | |
||
| + | +---------------+-----------------------------------------+ |
||
| + | | Y | |
||
| + | | -------> IP Stack | |
||
| + | | | | | |
||
| + | | | Y | |
||
| + | | | Y | |
||
| + | | ^ | | |
||
| + | | | / ----------> Forwarding -> | |
||
| + | | ^ / | | |
||
| + | | |/ Y | |
||
| + | | | | | |
||
| + | | ^ Y /-qdisc1-\ | |
||
| + | | | Egress /--qdisc2--\ | |
||
| + | --->->Ingress Classifier ---qdisc3---- | -> |
||
| + | | Qdisc \__qdisc4__/ | |
||
| + | | \-qdiscN_/ | |
||
| + | | | |
||
| + | +---------------------------------------------------------+ |
||
| + | |||
| + | * Az egész nagy doboz a kernel |
||
| + | * Elvileg nincs bemeneti queue (azért meg lehet oldani) |
||
| + | * Ha a gépnek szól egy csomag akkor az felfele megy, ha nem akkor jobbra |
||
A lap 2006. november 24., 19:08-kori változata
1 tc
A hálózatunkba beérkező forgalmat nem tudjuk sajnos igazán jól formázni, mert nincs hatásunk rá. Kb. olyan mit a papíralapú levelezés, a postásnak nem mondhatjuk meg, hogy naponta csak 5 levelet tegyen a levélszekrényünkbe, mert különben gond lesz. Viszont az olyan forgalmat, aminek forrása az általunk felügyelt hálózatban van, azt már könnyen szabályozhatjuk. Erre jó a tc.
1.1 A traffic control architektúrája
1.1.1 Terminológia
Queueing Discipline (qdisc)
- Egy eszköz feldolgozási sorának algoritmusa
root qdisc
- Ez a qdisc kapcsolódik az eszközhöz, az a fa struktúra gyökere.
Classless qdisc
- Osztályozás mentes viselkedés, a queue-ba kerüls csomagokat nem szórja szét osztályokba, csak újraütemezi, várakoztatja vagy eldobja. Semmit nem lehet rajta konfigurálni, egyszerüen csak van és lehet használni.
Classful qdisc
- Osztályokra bontható qdisc. Az osztályokból egy fa struktúra építhető fel. Az ilyen qdisc-eknek már sok (rengeteg) paraméterét lehet beállítani.
- pfifo_fast
- Token Bucket Filter (TBF)
- Stochastic Fairness Queueing (SFQ)
- PRIO
- Class Based Queueing (CBQ)
- Hierarchical Token Bucket (HTB)
Class (osztály)
- Egy qdisc-nek több osztálya is lehet, egy osztálynak lehet több gyermek osztálya. Minden osztályhoz tartozik egy qdisc.
Classifier (osztályozó)
- Ez dönti el, hogy melyik csomag melyik osztályba kerül tovább.
Filter (szűrő)
- Az osztályozás a szűrőkkel pontosítható, ha egy csomag paraméterei megfelel egy kondíciónak, akkor az osztályozó aképp fog eljárni vele.
Scheduling (ütemezés)
- A csomagok ütemezését szolgálja a qdisc-eken keresztül az osztályozó segítségével.
Shaping (formázás)
- Az határozza meg, hogy egy csomag mikor kerülhet ki a médiumra, hogy az adott paramétereket (sávszélesség, burstösség) teljesítse a csomagfolyam.
Policing (rendelkezés)
- Meghatárzza, hogy mi történjen a csomaggal. Késleltetést szenvedjen, eldobásra kerüljön (a Linux csak eldobni tudja, mivel nincs bemeneti sor).
Work-Conserving
- Ez olyan qdisc, ha van kiköldendő csomag, akkor azt kiküldi.
non-Work-Conserving
- Ez olyan qdisc, hogy ha van kiküldendü csomag, akkor azt csak akkor küldi ki, ha belefér a paraméterek álatal meghatározott forgalmi mintába (pl. nem lesz túl burstös)
A tc hierarchiája a kernelben:
Userspace programs
^
|
+---------------+-----------------------------------------+
| Y |
| -------> IP Stack |
| | | |
| | Y |
| | Y |
| ^ | |
| | / ----------> Forwarding -> |
| ^ / | |
| |/ Y |
| | | |
| ^ Y /-qdisc1-\ |
| | Egress /--qdisc2--\ |
--->->Ingress Classifier ---qdisc3---- | ->
| Qdisc \__qdisc4__/ |
| \-qdiscN_/ |
| |
+---------------------------------------------------------+
- Az egész nagy doboz a kernel
- Elvileg nincs bemeneti queue (azért meg lehet oldani)
- Ha a gépnek szól egy csomag akkor az felfele megy, ha nem akkor jobbra