PRIO(8) Linux PRIO(8) NUME PRIO - prioritate qdisc SINOPSIS tc qdisc ... dev dev ( parent id-clasa | root) [ handle major: ] prio [ bands bands ] [ priomap banda banda banda... ] [ estimator interval timeconstant ] DESCRIERE PRIO qdisc este o disciplina simpla de coada cu clase care conine un numar arbitrar de clase cu prioritai diferite. Clasele sunt scoase din coada in ordine descrescatoare numerica a prioritaii. PRIO este un planificator i nu intarzie niciodata pachetele - este un qdisc care conserva munca, dei qdisc-urile coninute in clase pot sa nu fie. Foarte util pentru reducerea latenei atunci cand nu este necesara incetinirea traficului. ALGORITM La crearea cu ,,tc qdisc add", se creeaza un numar fix de benzi. Fiecare banda este o clasa, dei nu este posibil sa se adauge clase cu ,,tc qdisc add", numarul de benzi care trebuie create trebuie specificat in linia de comanda, ataand PRIO la radacina sa. La scoaterea din coada, se incearca mai intai banda 0 i numai daca aceasta nu a livrat un pachet, PRIO incearca banda 1 i aa mai departe. Prin urmare, pachetele cu fiabilitate maxima ar trebui sa mearga la banda 0, cele cu intarziere minima la banda 1, iar restul la banda 2. Deoarece qdisc-ul PRIO in sine va avea numarul minor 0, banda 0 este de fapt major:1, banda 1 este major:2, etc. Pentru major, inlocuii numarul major atribuit qdisc-ului in ,,tc qdisc add" cu parametrul handle. CLASIFICARE PRIO dispune de trei metode pentru a determina in ce banda va fi pus in coada un pachet. Din spaiul utilizatorului Un proces cu privilegii suficiente poate codifica clasa de destinaie direct cu SO_PRIORITY, a se vedea socket(7). cu un filtru tc Un filtru tc ataat la qdisc-ul radacina poate direciona traficul direct catre o clasa. cu schema prioritailor (priomap) Pe baza prioritaii pachetului, care la randul sau este derivata din tipul de serviciu atribuit pachetului. Numai priomap este specific pentru acest qdisc. PARAMETRI QDISC bands Numarul de benzi. Daca se modifica valoarea implicita de 3, trebuie actualizat i priomap. priomap Priomap atribuie prioritatea unui pachet unei clase. Prioritatea poate fi definita direct din spaiul utilizatorului sau poate fi derivata din tipul de serviciu al pachetului. Determina modul in care prioritaile pachetelor, atribuite de nucleu, sunt atribuite benzilor. Atribuirea se face pe baza octetului TOS al pachetului, care arata astfel: 0 1 2 3 4 5 6 7 +---+---+---+---+---+---+---+---+ | | | | |PRECEDENCE | TOS |MBZ| | | | | +---+---+---+---+---+---+---+---+ Cei patru bii TOS (campul ,,TOS") sunt definii astfel: Binar Zecimal Semnificaie ----------------------------------------- 1000 8 Minimize delay (md) - Minimizeaza intarzierea 0100 4 Maximize throughput (mt) - Maximizeaza randamentul 0010 2 Maximize reliability (mr) - Maximizeaza fiabilitatea 0001 1 Minimize monetary cost (mmc) - Minimizeaza costurile monetare 0000 0 Normal Service - Serviciu normal Deoarece exista 1 bit la dreapta acestor patru bii, valoarea reala a campului TOS este dublul valorii biilor TOS. Tcpdump -v -v va arata valoarea intregului camp TOS, nu doar a celor patru bii. Este valoarea pe care o vedei in prima coloana a acestui tabel: TOS Bii Semnifica Prioritate Linux Banda -------------------------------------------------------------------------------- 0x0 0 Serviciu normal 0 Cel mai bun efort 1 0x2 1 Minimizeaza costurile monetare 0 Cel mai bun efort 1 0x4 2 Maximizeaza fiabilitatea 0 Cel mai bun efort 1 0x6 3 mcm+mf 0 Cel mai bun efort 1 0x8 4 Maximizeaza randamentul 2 Voluminos 2 0xa 5 mcm+mr 2 Voluminos 2 0xc 6 mf+mr 2 Voluminos 2 0xe 7 mcm+mf+rt 2 Voluminos 2 0x10 8 Minimizeaza intarzierea 6 Interactiv 0 0x12 9 mcm+md 6 Interactiv 0 0x14 10 mr+mi 6 Interactiv 0 0x16 11 mcm+mr+mi 6 Interactiv 0 0x18 12 mr+mi 4 Voluminos interactiv 1 0x1a 13 mcm+mr+mi 4 Voluminos interactiv 1 0x1c 14 mf+mr+md 4 Voluminos interactiv 1 0x1e 15 mcm+mf+mr+mi 4 Voluminos interactiv 1 A doua coloana conine valoarea celor patru bii TOS relevani, urmata de semnificaia lor tradusa. De exemplu, 15 reprezinta un pachet care dorete cost monetar minim, fiabilitate maxima, randamenit maxim I intarziere minima. A patra coloana listeaza modul in care nucleul Linux interpreteaza biii TOS, aratand prioritatea la care sunt asociai. Ultima coloana arata rezultatul priomap-ului implicit. In linia de comanda, priomap-ul implicit arata astfel: 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 Aceasta inseamna ca prioritatea 4, de exemplu, este asociata benzii numarul 1. Priomap va permite, de asemenea, sa listai prioritai mai mari (> 7) care nu corespund asocierilor TOS, dar care sunt stabilite prin alte mijloace. Acest tabel din RFC 1349 (citii-l pentru mai multe detalii) explica modul in care aplicaiile ar putea foarte bine sa ii defineasca biii TOS: TELNET 1000 (minimize delay) FTP Control 1000 (minimize delay) Data 0100 (maximize throughput) TFTP 1000 (minimize delay) SMTP Command phase 1000 (minimize delay) DATA phase 0100 (maximize throughput) Domain Name Service UDP Query 1000 (minimize delay) TCP Query 0000 Zone Transfer 0100 (maximize throughput) NNTP 0001 (minimize monetary cost) ICMP Errors 0000 Requests 0000 (cel mai adesea) Responses (cel mai adesea) CLASE Clasele PRIO nu pot fi configurate in continuare - ele sunt create automat atunci cand qdisc PRIO este ataat. Fiecare clasa poate conine insa un qdisc suplimentar. ERORI Traficul intens in benzile inferioare poate cauza saturarea benzilor superioare. Acest lucru poate fi prevenit prin ataarea unui dispozitiv de modelare (de exemplu, tc-tbf(8) la aceste benzi, pentru a se asigura ca acestea nu pot domina legatura. AUTORI Alexey N. Kuznetsov, , J Hadi Salim . 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 16 decembrie 2001 PRIO(8)