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
Személyes eszközök