TC(8) Linux TC(8) NUME tbf - filtru galeata de jetoane (Token Bucket) SINOPSIS tc qdisc ... tbf rate rata burst octei/celula ( latency ms | limit octei ) [ mpu octei [ peakrate rata mtu octei/celula ] ] ,,burst" este cunoscut i sub denumirea de tampon(buffer) i ,,maxburst". mtu este cunoscut i sub denumirea de ,,minburst". DESCRIERE Filtrul Token Bucket este o disciplina de coada clasica disponibila pentru controlul traficului cu comanda tc(8) . TBF este un modelator pur i nu planifica niciodata traficul. Nu conserva activitatea i se poate limita singur, chiar daca pachetele sunt disponibile, pentru a se asigura ca rata configurata nu este depaita. Este capabil sa modeleze pana la 1 Mbit/s de trafic normal cu o intensitate minima ideala, trimiand date exact la ratele configurate. Sunt posibile rate mult mai mari, dar cu preul pierderii ,,burstiness"-ului minim. In acest caz, datele sunt in medie scoase din coada la rata configurata, dar pot fi trimise mult mai repede, la intervale de milisecunde. Datorita cozilor suplimentare existente in adaptoarele de reea, acest lucru nu reprezinta de obicei o problema. ALGORITM Dupa cum sugereaza i numele, traficul este filtrat pe baza consumului de jetoane. Jetoanele corespund aproximativ cu octei, cu constrangerea suplimentara ca fiecare pachet consuma anumite jetoane, indiferent cat de mic este. Acest lucru reflecta faptul ca chiar i un pachet de dimensiune zero ocupa legatura pentru o anumita perioada de timp. La creare, TBF este alimentat cu jetoane care corespund cantitaii de trafic care poate fi transmisa intr-o singura rafala(burst). Jetoanele sosesc la un ritm constant, pana cand galeata(bucket) este plina. Daca nu sunt disponibile jetoane, pachetele sunt puse in coada, pana la o limita configurata. TBF calculeaza acum deficitul de jetoane i limiteaza viteza pana cand primul pachet din coada poate fi trimis. Daca nu este acceptabil sa se transmita pachete la viteza maxima, se poate configura o rata de varf pentru a limita viteza cu care se golete galeata(bucket-ul). Aceasta rata de varf este implementata ca un al doilea TBF cu o galeata foarte mica, astfel incat sa nu se produca o transmitere excesiva. Pentru a atinge perfeciunea, a doua galeata poate conine doar un singur pachet, ceea ce duce la limita de 1 Mbit/s menionata anterior. Aceasta limita este cauzata de faptul ca nucleul poate limita viteza doar pentru minimum 1 ,,jiffy", care depinde de HZ ca 1/HZ. Pentru o modelare perfecta, doar un singur pachet poate fi trimis pe jiffy - pentru HZ=100, aceasta inseamna 100 de pachete de aproximativ 1000 de octei fiecare, ceea ce corespunde aproximativ la 1 mbit/s. PARAMETRI Consultai tc(8) pentru a afla cum se specifica unitaile acestor valori. limit sau latency Limita este numarul de octei care pot fi ateptai in coada pana cand jetoanele devin disponibile. Putei specifica acest lucru i invers, definind parametrul de latena, care specifica durata maxima de timp pe care un pachet o poate sta in TBF. Ultimul calcul ia in considerare dimensiunea galeii(bucket), rata i, eventual, rata de varf (peakrate), daca este definita. Aceti doi parametri se exclud reciproc. burst Cunoscut i sub denumirea de buffer(tampon) sau maxburst. Dimensiunea galeii, in octei. Aceasta este cantitatea maxima de octei care pot fi disponibili instantaneu pentru jetoane. In general, ratele de modelare mai mari necesita un tampon mai mare. Pentru 10 Mbit/s pe Intel, avei nevoie de cel puin 10 kilooctei tampon daca dorii sa atingei rata configurata! Daca tamponul este prea mic, pachetele pot fi pierdute deoarece sosesc mai multe jetoane pe tic de cronometru decat incap in tampon. Dimensiunea minima a tamponului poate fi calculata imparind rata la HZ. Calculele privind utilizarea jetoanelor sunt efectuate utilizand un tabel care, in mod implicit, are o rezoluie de 8 pachete. Aceasta rezoluie poate fi modificata specificand dimensiunea celulei cu burst(rafala). De exemplu, pentru a specifica un tampon de 6000 octei cu o dimensiune a celulei de 16 octei, stabilii un burst de 6000/16. Probabil ca nu va trebui sa definii niciodata aceasta valoare. Trebuie sa fie o putere integrala a lui 2. mpu Un pachet de dimensiune zero nu utilizeaza laime de banda zero. Pentru Ethernet, niciun pachet nu utilizeaza mai puin de 64 de octei. Unitatea minima de pachet determina utilizarea minima a jetonului (specificata in octei) pentru un pachet. Valoarea implicita este zero. rate Regulatorul de viteza. A se vedea observaiile de mai sus privind limitele! Consultai tc(8) pentru unitai. In plus, daca se dorete o rata de varf, sunt disponibili urmatorii parametri: peakrate Rata maxima de golire a galeii. Nu este necesar sa se stabileasca rata maxima, aceasta fiind necesara numai daca se dorete o modelare perfecta a scalei de timp in milisecunde. mtu/minburst Specifica dimensiunea intervalului de viteza maxima. Pentru o precizie perfecta, trebuie stabilita la MTU-ul interfeei. Daca este necesara o viteza maxima, dar este acceptabila o anumita instabilitate, aceasta dimensiune poate fi marita. Un minburst de 3000 octei permite o viteza maxima de aproximativ 3 Mbit/s, avand in vedere pachete de 1000 de octei. La fel ca in cazul dimensiunii normale a rafalei, putei specifica i o dimensiune celula. EXEMPLU I UTILIZARE Pentru a ataa un TBF cu o rata maxima susinuta de 0,5 Mbit/s, o rata de varf de 1,0 Mbit/s, un tampon de 5 kilooctei, cu o limita a dimensiunii cozii pre-bucket calculata astfel incat TBF sa provoace cel mult 70 ms de latena, cu un comportament perfect al ratei de varf, executai: # tc qdisc add dev eth0 handle 10: root tbf rate 0.5mbit \ burst 5kb latency 70ms peakrate 1mbit \ minburst 1540 Pentru a ataa un qdisc intern, de exemplu sfq, executai: # tc qdisc add dev eth0 parent 10:1 handle 100: sfq Fara qdisc intern, coada TBF funcioneaza ca bfifo. Daca qdisc intern este modificat, limita/latena nu mai este eficienta. CONSULTAI I tc(8) AUTOR Alexey N. Kuznetsov, . Aceasta pagina de manual este intreinuta de bert hubert TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . iproute2 13 decembrie 2001 TC(8)