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., 20: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