Linux.pl
Opcje wyszukiwania podręcznika man:
Lista stron man zaczynających się od znaku:
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   ALPHA   NUM   OTHER   ALL
TC(8)                                Linux                               TC(8)

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
       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  jed-
              noczesnym  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 nad-
              zorowanie 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ć odrzu-
              cany 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 (fil-
       ters).

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 zaw-
       ierają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 zaw-
       ierającej podklasy pojawia się ruch to ruch  ten  musi  zostać  sklasy-
       fikowany.  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ówny-
       wany), 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 kole-
       jkowania) 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 Fair-
              ness 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.   Zaw-
              iera  ono elementy przycinające ruch, jak i możliwości prioryte-
              tyzacji.  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 defin-
              iowalny 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  przycina-
              nia  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 pod-
       klas w trakcie działania (CBQ, HTB), podczas gdy inne (PRIO)  są  twor-
       zone 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 rozu-
       miemy 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ć sklasy-
       fikowany 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_PRIOR-
              ITY.

       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 przypisy-
              wanie 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)

iproute2                       16 Grudzień 2001                          TC(8)

Time taken: 0.00013 seconds


Created with the man page lookup class by Andrew Collington, php@amnuts.com