Provided by: manpages-pl_0.7-1_all bug

NAZWA

       tc - pokaż / manipuluj ustawieniami sterowania przepływem

SKŁADNIA

       tc qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [
       specyficzne parametry ]

       tc class [ add | change | replace ] dev DEV parent qdisc-id [ classid  class-id  ]  qdisc  [  specyficzne
       parametry ]

       tc  filter  [ add | change | replace ] dev DEV [ parent qdisc-id | root ] protocol protocol prio priority
       filtertype [ specyficzne parametry ] flowid flow-id

       tc [-s | -d ] qdisc show [ dev DEV ]

       tc [-s | -d ] class show dev DEV

       tc filter show dev DEV

OPIS

        Uwaga! To tłumaczenie może być nieaktualne!

       Tc używane jest do konfigurowania Sterowania Przepływem w jądrze Linux. Sterowanie Przepływem składa  się
       z:

       CIĘCIA (SHAPING)
              Gdy ruch jest przycinany to pod kontrolą jest częstość jego transmisji. Przycinanie może być czymś
              więcej niż tylko zmniejszaniem dostępnego pasma - bywa także używane w  celu  wygładzenia  nagłych
              przyrostów  ruchu, aby sieć jako całość działała lepiej.  Cięcia pasma następuje zawsze na wyjściu
              interfejsu sieciowego.

       SZEREGOWANIA (SCHEDULING)
              Poprzez szeregowanie transmisji pakietów możliwym staje  się  zwiększenie  interaktywności  ruchu,
              który   tego   wymaga,  przy  jednoczesnym  gwarantowaniu  pasma  dla  dużych  transferów.   Takie
              porządkowanie kolejności bywa również nazywane priorytetyzacją i następuje tylko  i  wyłącznie  na
              wyjściu.

       NADZOROWANIA (POLICING)
              Tak  jak  cięcie  pasma  dotyczy transmitowania ruchu tak nadzorowanie i preselekcja odnosi się do
              ruchu, który przychodzi. Selekcjonowanie zachodzi na wejściu.

       ODRZUCANIA (DROPPING)
              Ruch o natężeniu przekraczającym ustalone pasmo może być odrzucany zarówno na  wejściu  jak  i  na
              wyjściu.

       Przetwarzanie  ruchu  jest  kontrolowane  przez  trzy rodzaje obiektów: dyscypliny kolejkowania (qdiscs),
       klasy (classes), oraz filtry (filters).

QDISCS

       qdisc jest skrótem od 'queueing discipline' (dyscyplina  kolejkowania)  i  jest  pojęciem  podstawowym  w
       rozumieniu  sterowania  przepływem. Jeśli kiedykolwiek jądro chce wysyłać pakiet do interfejsu sieciowego
       to pakiet ten jest  kolejkowany  przy  pomocy  odpowiedniego  obiektu  qdisc  skonfigurowanego  dla  tego
       interfejsu.   Zaraz  potem  jądro  próbuje pobrać możliwie największą ilość pakietów z obiektu qdisc (z -
       nazwijmy umownie - wyjścia z kolejki), aby przekazać je sterownikowi karty sieciowej.

       Prostym QDISC jest kolejka 'pfifo', która wcale nie dokonuje przetwarzania napływająch  pakietów  i  jest
       tylko   czystą  kolejką  FIFO  (pierwszy  na  wejściu,  pierwszy  na  wyjściu).  Jej  jedyne  zadanie  to
       przetrzymywanie pakietów w krótkich chwilach, gdy interfejs sieciowy nie może ich obsłużyć.

KLASY

       Niektóre obiekty dyscypliny kolejkowania (qdisc) nie są takie proste jak opisany powyżej i mogą  zawierać
       w  sobie tak zwane klasy. Klasy te są z kolei swoistymi kontenerami dla innych obiektów qdisc - ruch może
       być więc kolejkowany w każdym innym obiekcie qdisc, który należy do tych  zdefiniowanych  wewnątrz  klas.
       Gdy  jądro  próbuje  zdjąć  pakiet z takiego klasyfikującego qdisc to może on pochodzić z którejkolwiek z
       należących do qdisc klas. Dla przykładu qdisc może priorytetyzować pewną część ruchu  poprzez  usiłowanie
       zdjęcia pakietów z jednych ze swych kolejek wcześniej niż z innych.

QDISC A KLASY

       Chociaż istnieją obiekty qdisc (dyscypliny kolejkowania), które mogą w sobie zawierać klasy to nie należy
       utożsamiać pojęcia qdisc z pojęciem klasy. Klasa jest swoistym slotem, w  którym  można  osadzić  potomne
       qdisc. Klasa sama w sobie nie jest obiektem kolejkującym.

ALGORYTMY KOLEJKOWANIA

       Niektóre  opracowania i tłumaczenia posługują się terminem Algorytmy Kolejkowania.  Algorytm kolejkowania
       to innymi słowy logika działania danego typu qdisc, czyli w praktyce użytej kolejki  pakietów.   Algorytm
       kolejkowania  może być elementarny lub złożony. Elementarne (podstawowe) algorytmy kolejkowania obecne są
       w kolejkach, które wyspecjalizowane są w sterowaniu przepływającym przez daną  kolejkę  ruchem  pakietów.
       Nie  mamy  w  takich  kolejkach  do  czynienia z niczym ponad stosowanie pewnego algorytmu do zarządzania
       przepływnością tego co do kolejki przychodzi. Algorytmy  złożone  to  jak  sugeruje  nazwa  takie,  które
       stanowią  logikę obiektów qdisc zawierających w sobie więcej niż jeden obiekt, a dokładnie wiele obiektów
       opartych na elementarnych algorytmach. Przykładem implementacji złożonego algorytmu może być obiekt qdisc
       zawierający klasy, a opisany wcześniej.

FILTRY

       Filtr  jest  używany przez kolejki klasyfikujące by określić do jakiej konkretnie kolejki pakiet powinien
       trafić. Gdy na  wejściu  kolejki  zawierającej  podklasy  pojawia  się  ruch  to  ruch  ten  musi  zostać
       sklasyfikowany.  Aby  to osiągnąć możemy zastosować wiele różnych metod. Jedną z tych metod przydzielania
       ruchu  spełniającego  jakieś  kryteria  do  konkretnych  podklas  jest  właśnie  użycie  filtrów.  Filtry
       przydzielamy  do  obiektów  qdisc.   Wszystkie  podłączone  filtry  są  uruchamiane  (tzn.  każdy  pakiet
       podlegający danej dyscyplinie kolejkowania jest z nimi porównywany), aż do momentu aż będzie  pasował  do
       jakiegoś filtra i powróci z werdyktem. Jeśli żaden filtr nie "złapał" pakietu to mogą być brane pod uwagę
       jeszcze inne kryteria. Zależy to od typu qdisc.

       Jest bardzo istotnym by zauważyć, że filtry są obecne wewnątrz obiektów  qdisc  -  one  bezpośrednio  nie
       decydują o tym co się stanie.

BEZKLASOWE QDISC

       Bezklasowe obiekty qdisc (bazujące na elementarnych algorytmach kolejkowania) są to:

       [p|b]fifo
              Najprostszy  możliwy  do zastosowania obiekt qdisc, czyste zachowanie FIFO - pierwszy na wejściu -
              pierwszy na wyjściu. Możliwy limit to pakiety lub bajty.

       pfifo_fast
              Standardowy obiekt qdisc jeśli jądro skompilowano z opcją 'Advanced Router'.  Zawiera trójwstęgową
              kolejkę, która honoruje flagi Typu Usługi (TOS), tak jak i priorytet, który może zostać przypisany
              do pakietu.

       red    Losowa Wczesna Detekcja (ang. Random Early Detection - w skr. RED) symuluje fizyczne  przeciążenia
              losowo porzucając pakiety, gdy natężenie ruchu zbliża się do ustalonego limitu. Dobrze radzi sobie
              ze sterowaniem ruchem masowym, czyli zawierającym duże transfery w dużej ilości.

       sfq    Stochastyczne Sprawiedliwe Kolejkowanie (ang. Stochastic Fairness  Queueing  -  w  skr.  SFQ)  tak
              szereguje kolejkowany ruch, żeby każda 'sesja' miała taką samą zdolność transmisji.

       tbf    Filtr  Kubełka  Żetonów  (ang.  The  Token  Bucket  Filter  -  w  skr.  TBF)  jest przewidziany do
              spowalniania ruchu do precyzyjnie określonej częstości.  Świetnie się skaluje do dużych szerokości
              pasm.

KONFIGUROWANIE BEZKLASOWYCH QDISC

       Jeśli  nie  jest obecny klasyfikujący obiekt qdisc, wtedy bezklasowe obiekty qdisc mogą zostać skojarzone
       tylko z interfejsem sieciowym. Tylko jednen  taki  bezklasowy  qdisc  może  być  przyłączony  do  jednego
       urządzenia sieciowego bezpośrednio.  Pełna składnia:

       tc qdisc add dev DEV root QDISC PARAMETRY-QDISC

       By usunąć wprowadź

       tc qdisc del dev DEV root

       Obiekt  qdisc  typu  pfifo_fast  jest  ustawiany automatycznie jako domyślny qdisc dla każdego interfejsu
       sieciowego, jeśli nic jeszcze nie zostało odpowiednio skonfigurowane.

KLASYFIKUJĄCE QDISC

       Klasyfikujące obiekty qdisc to:

       CBQ    Kolejkowanie Bazujące na Klasach (ang. Class Based Queueing) implementuje bogatą  hierarchię  klas
              dla  dzielenia  pasma.   Zawiera ono elementy przycinające ruch, jak i możliwości priorytetyzacji.
              Przycinanie jest przeprowadzane przy  pomocy  wyliczania  czasu  bezczynności  łącza.   Obliczenia
              bazują  na  średniej wielkości pakietu i szerokości dostępnego pasma na najniższej warstwie łącza.
              Ten ostatni parametr może być trudno definiowalny dla niektórych typów interfejsów sieciowych.

       HTB    Hierarchiczny Kubełek Żetonów (ang. The Hierarchy Token  Bucket)  implementuje  bogatą  hierarchię
              klas,  kładąc szczególny nacisk na zgodność z istniejącymi praktykami. Udogodnienia HTB gwarantują
              pasmo dla klas i jednocześnie pozwalają specyfikować wysokie limity dzielenia między klasami.  HTB
              zawiera elementy przycinania pasma bazujące na TBF i może priorytetyzować podczepione klasy.

       PRIO   Obiekty  qdisc  typu  PRIO  są  nieprzycinającymi  kontenerami dla konfigurowalnej liczby podklas,
              których kolejki są opróżniane w kolejności. Pozwala to prostym  sposobem  włączyć  priorytetyzację
              ruchu, gdzie klasy o niższym priorytecie mogą tylko wysyłać, jeśli klasy o priorytecie wyższym nie
              mają już pakietów do wysłania. By ułatwić konfigurację, domyślnym kryterium są  bity  Typu  Usługi
              (TOS) z pakietów.

SPOSÓB DZIAŁANIA

       Klasy  tworzą  drzewo,  gdzie  każda  klasa ma jednego rodzica.  Klasa może mieć wiele potomków. Niektóre
       obiekty qdisc pozwalają na dodawanie podklas w trakcie działania (CBQ, HTB), podczas gdy inne  (PRIO)  są
       tworzone ze statyczną liczbą potomków.

       Obiekty  qdisc pozwalające na dynamiczne dodawanie podklas mogą mieć ich zero lub więcej. Do tych podklas
       kierowany będzie potem ruch.

       Ponadto, każda klasa zawiera tak zwaną kartę qdisc która  domyślnie  zachowuje  się  jak  pfifo  a  każdy
       dodawany  do  klasy obiekt qdisc aplikowany jest przed kartą.  Qdisc może znów zawierać klasy, lecz każda
       klasa może mieć tylko jedną taką kartę.  Pod pojęciem karty  rozumiemy  tu  domyślnie  aktywowany  sposób
       kolejkowania, który jest potem zastępowany przez ten już skonfigurowany.

       Gdy  pakiet  wchodzi  do  klasyfikującego  obiektu  qdisc to może być sklasyfikowany i trafić do jednej z
       zawartych podklas. Są tu dostępne trzy kryteria, chociaż nie wszystkie obiekty qdisc  używają  wszystkich
       trzech:

       tc filtry
              Jeśli  do klasy przyłączone są filtry tc to są one rozpatrywane w pierwszej kolejności. Filtr może
              być uczulony na dowolne pola nagłówka pakietu, jak i na znacznik zapory ogniowej  (fwmark)  dodany
              przez mechanizmy ipchains lub iptables działające w jądrze. Zobacz także tc-filters(8).

       Typ Usługi (TOS)
              Niektóre obiekty qdisc mają wbudowane reguły do klasyfikowania pakietów bazując na polu TOS.

       skb->priority
              Programy  działające  w  przestrzeni  użytkownika  mogą zakodować identyfikator danej klasy, która
              powinna być użyta w odniesieniu do wysyłanych przez program  pakietów.  Znacznik  ten  nazywa  się
              'skb->priority' i można go ustawić przy pomocy opcji SO_PRIORITY.

       Każdy  węzeł  wewnątrz  drzewa może posiadać swoje własne filtry, lecz filtry wyższego poziomu mogą także
       wskazywać bezpośrednio na niższe klasy.

       Jeśli klasyfikacja nie powiedzie się to pakiety są kolejkowane do karty qdisc podłączonej do danej klasy.
       Przeczytaj jednak specyficzne podręczniki, aby uzyskać więcej szczegółów.

NAZEWNICTWO

       Wszystkie  obiekty qdisc, klasy i filtry mają IDentyfikatory, które mogą być albo wyspecyfikowane jawnie,
       albo też przydzielone automatycznie.

       IDentyfikatory skłądają się z dwóch numerów: głównego i dodatkowego.  Numery  te  są  oddzielone  znakiem
       dwukropka. Numer główny specyfikuje obiekt nadrzędny qdisc, zaś numer dodatkowy obiekt będący potomkiem.

       QDISCS Obiekt  qdisc,  który  potencjalnie  może posiadać klasy zajmuje przypisany mu numer główny, zwany
              uchwytem (handle), zostawiając przestrzeń nazw numeru dodatkowego dla swych podklas.  Uchwyt  jest
              wyrażany  np.  jako  '10:'.  Jest w zwyczaju dokładne przypisywanie uchwytu do qdisc, który będzie
              miał pod sobą potomków.

       KLASY  Klasy rezydujące pod qdisc dzielą z obiektem macierzystym numer główny, lecz każda z klas  posiada
              oddzielny  numer  dodatkowy  nazywany  identyfikatorem klasy (classid). Identyfikator klasy nie ma
              związku z klasą macierzystą, tylko i wyłącznie z macierzystym obiektem qdisc.  Stosuje  się  takie
              samo nazewnictwo jak przy qdisc.

       FILTRY Filtry mają trzyczęściowe IDentyfikatory, które są potrzebne tylko wówczas, gdy używamy hierarchii
              filtrów opartej na tablicy haszującej Więcej o tym możesz przeczytać w tc-filters(8).

JEDNOSTKI

       Wszystkie parametry akceptują zapis zmiennoprzecinkowy, z możliwością zakończenia go jednostką.

       Pasma lub częstości mogą zostać podane w:

       kbps   Kilobajtach na sekundę

       mbps   Megabajtach na sekundę

       kbit   Kilobitach na sekundę

       mbit   Megabitach na sekundę

       bps lub czysta liczba
              Bitach na sekundę.

       Ilość danych może być podana w:

       kb or k
              Kilobajtach

       mb or m
              Megabajtach

       mbit   Megabitach

       kbit   Kilobitach

       b lub czysta liczba
              Bajtach.

       Długości czasu mogą być wyspecyfikowane w:

       s, sec or secs
              całkowitej liczbie sekund

       ms, msec or msecs
              Milisekundach

       us, usec, usecs lub czysta liczba
              Mikrosekundach.

POLECENIA TC

       Poniższe polecenia są dostępne dla obiektów qdisc, klas i filtrów:

       add    Dodaje qdisc, klasę lub filtr do węzła. Dla wszystkich encji musi być podany rodzic (parent)  albo
              przez  przekazanie  jego IDentyfikatora, albo przez dołączenie bezpośrednio do bazowego urządzenia
              sieciowego.

              Podczas tworzenia qdisc lub filtra możemy nadać nazwę używając  jako  parametru  uchwytu  (handle)
              Klasy zaś mogą być nazywane przy użyciu parametru zwanego identyfikatorem (classid)

       remove Obiekt  qdisc  może  być  usunięty  przez  podanie  jego  uchwytu, którym może być również 'root'.
              Wszystkie podklasy i ich karty qdisc są automatycznie usuwane, podobnie jak przypisane filtry.

       change Niektóre encje mogą zostać zmodyfikowane 'na miejscu'. Składnia taka jak w przypadku 'add', z  tym
              wyjątkiem,  że  nie można zmieniać uchwytu, podobnie zresztą jak rodzica. Innymi słowy, change nie
              może służyć do usuwania węzła.

       replace
              Dokonuje niemal atomowej operacji remove/add na istniejącym węźle o podanym identyfikatorze. Jeśli
              węzeł nie istnieje jeszcze to jest tworzony.

       link   Dostępne tylko dla qdisc. Dokonuje zastąpienia (replace) na już istniejącym węźle.

HISTORIA

       tc zostało napisane przez Alexeja N. Kuznetsova i dodane w jądrach Linux 2.2.

ZOBACZ TAKŻE

       tc-cbq(8),  tc-htb(8),  tc-sfq(8),  tc-red(8),  tc-tbf(8),  tc-pfifo(8),  tc-bfifo(8),  tc-pfifo_fast(8),
       tc-filters(8)

AUTHOR

       Stronę podręcznika utrzymuje bert hubert (ahu@ds9a.nl) Niewielkie rozszerzenia  i  tłumaczenie  na  język
       polski napisał paweł wilk (siefca@gnu.org)

INFORMACJE O TŁUMACZENIU

       Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne.
       W razie zauważenia różnic między powyższym opisem a rzeczywistym  zachowaniem  opisywanego  programu  lub
       funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:

              man --locale=C 8 tc

       Prosimy   o   pomoc   w   aktualizacji   stron   man  -  więcej  informacji  można  znaleźć  pod  adresem
       http://sourceforge.net/projects/manpages-pl/.