Scroll to navigation

PRIO(8) Linux PRIO(8)

NUME

PRIO - prioritate qdisc

SINOPSIS

tc qdisc ... dev dev ( parent id-clasă | root) [ handle major: ] prio [ bands bands ] [ priomap banda banda banda... ] [ estimator interval timeconstant ]

DESCRIERE

PRIO qdisc este o disciplină simplă de coadă cu clase care conține un număr arbitrar de clase cu priorități diferite. Clasele sunt scoase din coadă în ordine descrescătoare numerică a priorității. PRIO este un planificator și nu întârzie niciodată pachetele - este un qdisc care conservă munca, deși qdisc-urile conținute în clase pot să nu fie.

Foarte util pentru reducerea latenței atunci când nu este necesară încetinirea traficului.

ALGORITM

La crearea cu „tc qdisc add”, se creează un număr fix de benzi. Fiecare bandă este o clasă, deși nu este posibil să se adauge clase cu „tc qdisc add”, numărul de benzi care trebuie create trebuie specificat în linia de comandă, atașând PRIO la rădăcina sa.

La scoaterea din coadă, se încearcă mai întâi banda 0 și numai dacă aceasta nu a livrat un pachet, PRIO încearcă banda 1 și așa mai departe. Prin urmare, pachetele cu fiabilitate maximă ar trebui să meargă la banda 0, cele cu întârziere minimă la banda 1, iar restul la banda 2.

Deoarece qdisc-ul PRIO în sine va avea numărul minor 0, banda 0 este de fapt major:1, banda 1 este major:2, etc. Pentru major, înlocuiți numărul major atribuit qdisc-ului în „tc qdisc add” cu parametrul handle.

CLASIFICARE

PRIO dispune de trei metode pentru a determina în ce bandă va fi pus în coadă un pachet.

Un proces cu privilegii suficiente poate codifica clasa de destinație direct cu SO_PRIORITY, a se vedea socket(7).
Un filtru tc atașat la qdisc-ul rădăcină poate direcționa traficul direct către o clasă.
Pe baza priorității pachetului, care la rândul său este derivată din tipul de serviciu atribuit pachetului.

Numai priomap este specific pentru acest qdisc.

PARAMETRI QDISC

Numărul de benzi. Dacă se modifică valoarea implicită de 3, trebuie actualizat și priomap.
Priomap atribuie prioritatea unui pachet unei clase. Prioritatea poate fi definită direct din spațiul utilizatorului sau poate fi derivată din tipul de serviciu al pachetului.

Determină modul în care prioritățile pachetelor, atribuite de nucleu, sunt atribuite benzilor. Atribuirea se face pe baza octetului TOS al pachetului, care arată astfel:

0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
|           |               |   |
|PRECEDENCE |      TOS      |MBZ|
|           |               |   |
+---+---+---+---+---+---+---+---+

Cei patru biți TOS (câmpul „TOS”) sunt definiți astfel:

Binar  Zecimal  Semnificație
-----------------------------------------
1000   8         Minimize delay (md) - Minimizează întârzierea
0100   4         Maximize throughput (mt) - Maximizează randamentul
0010   2         Maximize reliability (mr) - Maximizează fiabilitatea
0001   1         Minimize monetary cost (mmc) - Minimizează costurile monetare
0000   0         Normal Service - Serviciu normal

Deoarece există 1 bit la dreapta acestor patru biți, valoarea reală a câmpului TOS este dublul valorii biților TOS. Tcpdump -v -v vă arată valoarea întregului câmp TOS, nu doar a celor patru biți. Este valoarea pe care o vedeți în prima coloană a acestui tabel:

TOS     Biți  Semnifică                        Prioritate Linux           Bandă
--------------------------------------------------------------------------------
0x0     0     Serviciu normal                  0 Cel mai bun efort        1
0x2     1     Minimizează costurile monetare   0 Cel mai bun efort        1
0x4     2     Maximizează fiabilitatea         0 Cel mai bun efort        1
0x6     3     mcm+mf                           0 Cel mai bun efort        1
0x8     4     Maximizează 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     Minimizează întârzierea          6 Interactiv               0
0x12    9     mcm+md                           6 Interactiv               0
0x14    10    mr+mî                            6 Interactiv               0
0x16    11    mcm+mr+mî                        6 Interactiv               0
0x18    12    mr+mî                            4 Voluminos interactiv     1
0x1a    13    mcm+mr+mî                        4 Voluminos interactiv     1
0x1c    14    mf+mr+md                         4 Voluminos interactiv     1
0x1e    15    mcm+mf+mr+mî                     4 Voluminos interactiv     1

A doua coloană conține valoarea celor patru biți TOS relevanți, urmată de semnificația lor tradusă. De exemplu, 15 reprezintă un pachet care dorește cost monetar minim, fiabilitate maximă, randamenit maxim ȘI întârziere minimă.

A patra coloană listează modul în care nucleul Linux interpretează biții TOS, arătând prioritatea la care sunt asociați.

Ultima coloană arată rezultatul priomap-ului implicit. În linia de comandă, priomap-ul implicit arată astfel:


1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

Aceasta înseamnă că prioritatea 4, de exemplu, este asociată benzii numărul 1. Priomap vă permite, de asemenea, să listați priorități mai mari (> 7) care nu corespund asocierilor TOS, dar care sunt stabilite prin alte mijloace.

Acest tabel din RFC 1349 (citiți-l pentru mai multe detalii) explică modul în care aplicațiile ar putea foarte bine să își definească biții 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 <la fel ca request> (cel mai adesea)

CLASE

Clasele PRIO nu pot fi configurate în continuare - ele sunt create automat atunci când qdisc PRIO este atașat. Fiecare clasă poate conține însă un qdisc suplimentar.

ERORI

Traficul intens în benzile inferioare poate cauza saturarea benzilor superioare. Acest lucru poate fi prevenit prin atașarea unui dispozitiv de modelare (de exemplu, tc-tbf(8) la aceste benzi, pentru a se asigura că acestea nu pot domina legătura.

AUTORI

Alexey N. Kuznetsov, <kuznet@ms2.inr.ac.ru>, J Hadi Salim <hadi@cyberus.ca>. 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.

16 decembrie 2001 iproute2