- trixie-backports 4.29.1-1~bpo13+1
- testing 4.29.1-1
- unstable 4.29.1-1
| HTB(8) | Linux | HTB(8) |
NUME¶
HTB -ierarhia găleților de jetoane (Hierarchy Token Bucket)
SINOPSIS¶
tc qdisc ... dev dispozitiv ( parent classid | root) [ handle major: ] htb [ default minor-id ] [ r2q divizor ] [ offload ]
tc class ... dev dispozitiv parent major:[minor] [ classid major:minor ] htb rate rata [ ceil rata ] burst octeți [ cburst octeți ] [ prio prioritate ] [ quantum octeți ]
DESCRIERE¶
HTB permite controlul lățimii de bandă de ieșire pe o anumită legătură. Permite simularea mai multor legături mai lente și trimiterea diferitelor tipuri de trafic pe diferite legături simulate. În ambele cazuri, trebuie să specificați modul în care se împarte legătura fizică în legături simulate și modul în care se decide ce legătură simulată se utilizează pentru un anumit pachet care urmează să fie trimis.
HTB modelează traficul pe baza algoritmului Token Bucket Filter, care nu depinde de caracteristicile interfeței și, prin urmare, nu este necesar să cunoască lățimea de bandă subiacentă a interfeței de ieșire.
ALGORITM DE MODELARE¶
Modelarea funcționează conform documentației din tc-tbf (8).
CLASIFICARE¶
În cadrul unei singure instanțe HTB pot exista mai multe clase. Fiecare dintre aceste clase conține un alt qdisc, implicit tc-pfifo(8).
Când se pune un pachet în coadă, HTB începe de la rădăcină și utilizează diverse metode pentru a determina ce clasă ar trebui să primească datele.
În absența unor opțiuni de configurare neobișnuite, procesul este destul de simplu. La fiecare nod căutăm o instrucțiune, apoi mergem la clasa la care ne trimite instrucțiunea. Dacă clasa găsită este un nod frunză sterp (fără copii), punem pachetul în coadă acolo. Dacă nu este încă un nod frunză, repetăm întregul proces începând de la acel nod.
Următoarele acțiuni sunt efectuate, în ordine, la fiecare nod pe care îl vizităm, până când unul ne trimite la un alt nod sau termină procesul.
- (i)
- Consultă filtrele atașate clasei. Dacă sunt trimise la un nod final, am terminat. În caz contrar, reîncepe.
- (ii)
- Dacă niciuna dintre cele de mai sus nu a returnat o instrucțiune, pune în coadă la acest nod.
Acest algoritm se asigură că un pachet ajunge întotdeauna undeva, chiar și în timp ce sunteți ocupat cu configurarea.
ALGORITM DE PARTAJARE A LEGĂTURILOR¶
FIXME
QDISC¶
Rădăcina unui arbore de clase HTB qdisc are următorii parametri:
- parent major:minor | root
- Acest parametru obligatoriu determină locul instanței HTB, fie la rădăcina root unei interfețe, fie în cadrul unei clase existente.
- handle major:
- Ca toate celelalte qdisc-uri, HTB poate primi un identificator. Acesta trebuie să consiste doar dintr-un număr major, urmat de două puncte. Opțional, dar foarte util dacă se vor genera clase în cadrul acestui qdisc.
- default minor-id
- Traficul neclasificat este trimis către clasa cu acest minor-id.
- r2q divisor
- Divizor utilizat pentru calcularea valorilor quantum pentru clase. Clasele împart rata rate la acest număr. Valoarea implicită este 10.
- offload
- Descarcă algoritmul HTB pe hardware (necesită suport pentru controlor și dispozitiv).
CLASE¶
Clasele au o serie de parametri pentru configurarea funcționării lor.
- parent major:minor
- Locul acestei clase în ierarhie. Dacă este atașată direct la un qdisc și nu la o altă clasă, minor poate fi omis. Obligatoriu.
- classid major:minor
- La fel ca qdisc-urile, clasele pot fi denumite. Numărul principal trebuie să fie egal cu numărul principal al qdisc-ului căruia îi aparține. Opțional, dar necesar dacă această clasă va avea copii.
- prio prioritate
- În procesul circular (round-robin), clasele cu câmpul de prioritate cel mai scăzut sunt încercate mai întâi pentru pachete.
- rate rata
- Rata maximă pentru această clasă și toate subclasele sale este garantată. Obligatoriu.
- ceil rata
- Viteza maximă la care o clasă poate trimite, dacă părintele său are lățime de bandă disponibilă. Implicit, viteza configurată, ceea ce înseamnă că nu se împrumută nimic.
- burst octeți
- Numărul de octeți care pot fi transmiși în rafale (creșteri bruște) la viteza ceil, depășind viteza configurată rate. Ar trebui să fie cel puțin la fel de mare ca cea mai mare rafală(creștere bruscă) dintre toate cele ale copiilor.
- cburst octeți
- Numărul de octeți care pot fi transmisi la viteză „infinită”, cu alte cuvinte, la viteza maximă la care interfața îi poate transmite. Pentru o uniformizare perfectă, ar trebui să fie egal cu cel mult un pachet mediu. Ar trebui să fie cel puțin la fel de mare ca cel mai mare cburst dintre toate cele ale copiilor.
- quantum octeți
- Numărul de octeți care trebuie serviți din această clasă înainte ca planificatorul să treacă la clasa următoare. Valoarea implicită este rate împărțită la parametrul qdisc r2q. Dacă este specificat, r2q este ignorat.
NOTE¶
Datorită constrângerilor de sincronizare Unix, rata maximă ceil nu este infinită și poate fi, de fapt, destul de scăzută. Pe Intel, există 100 de evenimente de temporizare pe secundă, rata maximă fiind rata la care sunt trimiși octeții „burst” la fiecare tic de temporizare. Din aceasta, se poate calcula dimensiunea minimă a burst-ului pentru o rată specificată. Pentru i386, o rată de 10 mbit necesită un burst de 12 kiloocteți, deoarece 100*12kb*8 este egal cu 10 mbit.
CONSULTAȚI ȘI¶
Pagina principală a HTB: http://luxik.cdi.cz/~devik/qos/htb/
AUTOR¶
Martin Devera <devik@cdi.cz>. Această pagină de manual este întreținută de bert hubert <ahu@ds9a.nl>
TRADUCERE¶
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
| 10 ianuarie 2002 | iproute2 |