Quality of Service
QoS (Quality of Service) je v informatice termín používaný pro rezervaci a řízení datových toků v telekomunikačních a počítačových sítích s přepínáním paketů. Protokoly pro QoS se snaží zajistit vyhrazení a dělení dostupné přenosové kapacity, aby nedocházelo při zahlcení sítě ke snížení kvality síťových služeb.
Pomocí QoS se může např. nastavit maximální nebo minimální přenosové pásmo pro určitá data, prohlásit provoz za prioritní před ostatními nebo rozdělit provoz do kategorií podle nastavených parametrů. QoS se tedy snaží poskytovat uživatelům služby s předem garantovanou kvalitou, aby nedocházelo ke zpoždění, ztrátovosti nebo plýtvání šířkou pásma.
Protože v lokálních sítích je provoz víceméně bezproblémový, zde data dokážeme rychleji zpracovat než přijímat. K řešení rozdělení kvality služeb přistupujeme především až na „hranici“ sítě (routery, switche), protože je zde přijímáno v jednom okamžiku více dat než může uzel zpracovat.
Obsah |
[editovat] Problémy
Bez QoS dochází v okamžiku konkurentních požadavků k prodlužování doby odezvy sítě (latence), kolísání (Jitter), výpadkům a zpomalení přenosu. Např. jeden z více počítačů v domácnosti se sdíleným internetem svým zatížením sítě, stahováním velkého objemu dat, může přerušit komfortní práci ostatním uživatelům sítě, zejména pokud používají aplikace citlivé na horší kvalitu sítě. Mezi ně patří zejména multimediální online služby, jako je přenos hlasu (VoIP), videa (např. IPTV) a síťové počítačové hry.
Pokud není sdílena celá konektivita, např. je použito jednoduché omezováním rychlosti koncových zařízení, nebo pokud je kapacita sítě dostatečně dimenzována i pro provoz ve špičkách, není třeba QoS uvažovat. Praxe ukazuje, že pro běžné IP sítě pracující na principu Best-effort services je složitější zavést QoS než zajistit dostatečnou konektvitu.
[editovat] Metody QoS
V sítích se v dnešní době používají především tři typy mechanismů QoS:
- „Best-effort services“, což je tzv. metoda největší snahy, která má QoS nastaven na nulu a snaží se každý paket co nejrychleji a nejefektněji přenést k cíli.
- „Differentiated services“ (DiffServ), kde se pakety rozdělují do kategorií, to se zaznamená do hlavičky paketu a zachází se s nimi podle předdefinovaných parametrů.
- „Integrated services“ (IntServ)
| Bity | 0–5 | 6–7 | |||||
|---|---|---|---|---|---|---|---|
| 0 | DSCP | ECN | |||||
U metody DiffServ se při použití IP protokolu zaznamená nastavení do pole 8 bitů označované DS (differentiated services) na obrázku. Pro Differentiated Services Codepoint (DSCP) je zde vyhrazeno 6 bitů. Uvnitř něj je tzv. IP precendce (IPP) o velikosti 3 bity. Dříve se používala pouze hodnota IPP, později se pole pro metodu DiffServ rozšířilo na DSCP, které je zpětně kompatibilní s IPP, což je naznačeno v tabulce hodnot IPP a DSCP. Pole DSCP nabývá honoty 0 až 63 a to podle typu aplikace služby. Zbývající 2 bity jsou využity pro Explicit Congestion Notification (ECN), což je volitelná hodnota, používá se pouze tehdy pokud je oba koncové uzly chtějí využít a umožňuje oznámení o přetížení sítě bez ztráty paketů.
| IPP | DSCP | typická aplikace |
|---|---|---|
| 7 | rezervováno | |
| 6 | 48 | routing |
| 5 | 46 | hlas |
| 5 | 34 | video konference |
| 4 | 32 | streamované video |
| 3 | 26 | mission critical data |
| 3 | 24 | call signaling |
| 2 | 18 | transaction data |
| 2 | 16 | network managment |
| 1 | 10 | bulk data |
| 1 | 8 | scavenger |
| 0 | 0 | Best-effort data |
[editovat] Omezování přenosové kapacity na Linuxu
Na Linuxu se používají nejčastěji HTB či ESFQ, nastavují se pomocí iproute2 balíku, viz např. následující dokumentace:
- Petr Simandl - QoS a Linux
- A Practical Guide to Linux Traffic Control (Anglicky)
- Linux Advanced Routing and Traffic Control HOWTO (Anglicky)