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, které používají přepojování paketů. Protokoly pro QoS se snaží zajistit vyhrazení a dělení dostupné přenosové kapacity, aby nedocházelo zahlcením sítě ke snížení kvality síťových služeb.

Charakteristika

Pomocí QoS se může např. nastavit maximální nebo minimální přenosové pásmo pro určitá data, prohlásit některý provoz za prioritní 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í s dostupnou šířkou pásma.

V lokálních sítích je provoz víceméně bezproblémový, protože disponují dostatečnou kapacitou, která je typicky vyšší, než schopnost počítačů generovat nebo zpracovávat přicházející síťový provoz (viz gigabitový Ethernet vs. rychlost zpracování dat u pevného disku). Nasazení QoS pro zajištění kvality služeb proto nastupuje typicky až za hranicí lokální sítě LAN, kde spojení pokračuje do Internetu typicky linkou s nižší datovou propustností.

Důvod nasazení QoS

V běžných počítačových sítích se používá konkurenční přístup k přenosovému médiu (např. sítě Ethernet, ale i bezdrátové sítě Wi-Fi) a v nich tzv. best-effort services (viz dále), kdy se zkrátka přenášejí data tak, jak přicházejí, což typicky funguje dobře, protože požadavky na přenos jsou nižší, než dostupná kapacita. Dojde-li však k zaplnění přenosové kapacity, začnou se plnit vyrovnávací paměti (buffery), čímž se aktivní prvky v počítačové síti snaží překlenout chvilkové zahlcení přenosového média. Tím dochází ke zvětšování latence (zpoždění), protože jednotlivé datagramy ve frontách čekají na vyřízení. K vyčerpání přenosové kapacity může například snadno dojít, když uživatel začne stahovat z Internetu větší objemy dat, které na delší dobu plně využijí kapacitu jeho linky k providerovi (poskytovateli připojení k Internetu).

Některé síťové služby, které pracují s daty v reálném čase (např. VoIP nebo přenos multimediálních dat jako je IPTV, ale i počítačové hry) fungují při vyšší latenci špatně. Dochází ke zpoždění, výpadkům, kolísání přenosové rychlosti (jitter) a celkově ke zhoršení kvality poskytované služby. V tuto chvíli nastává okamžik, kdy je možné situaci řešit nasazením QoS. Pomocí QoS může správce sítě pro některý síťový provoz nastavit vyšší prioritu, takže je přenášen i v případě zahlcení přenosového média prioritně, beze ztrát a bez zvýšení latence.

QoS typicky používá i provider, který typicky používá tzv. agregaci, což znamená, že svým zákazníkům „naslibuje“ vyšší přenosové kapacity, než má reálně k dispozici. Za běžných okolností to nemusí vadit, protože ne všichni jeho zákazníci využívají svoje připojení k Internetu naplno a ve stejný čas. Proto dochází k zahlcení konektivity providera typicky pouze ve špičkách, například před obědem nebo spíše před večerními zprávami.[1] Provider může pomocí differentiated services (viz dále) zajistit, že zákazníci sice zaregistrují jisté zpomalení, ale nedojde ke stavu, kdy by bylo téměř nemožné jeho služby využívat.

Činnost QoS

Pokud je použito QoS, je nutné provoz některých počítačů (uživatel, služeb) omezit ve prospěch jiných. Omezování se typicky provádí zahazováním paketů (anglicky packet droping), protože na něj mají povinnost síťové aplikace reagovat na zahlcení sítě okamžitým snížením rychlosti přenosu (anglicky congestion control). Například pro protokol TCP obsahuje tuto regulaci povinně přímo v sobě a v běžných počítačích je proto realizována jako součást TCP/IP stacku (součást jádra operačního systému). QoS je proto typicky realizována k uzlech sítě (routery) metodou zahazování datagramů, které přesahují nastavené parametry datových toků.

Metody QoS

DS (typ služby) pole v IP hlavičce
Bity0–56–7
0DSCPECN

V sítích se v dnešní době používají především tři typy mechanismů QoS:

  • Best-effort services – služby, které nezaručují žádné parametry přenosu, mají QoS nastaveno na nulu a snaží se každý paket co nejrychleji a nejefektivněji (ale bez záruky) přenést k cíli
  • Differentiated services (DiffServ) – pakety se rozdělují do kategorií, což se může zaznamenat do hlavičky paketu, a zachází se s nimi podle předdefinovaných parametrů
  • Integrated services (IntServ)
hodnoty IPP a DSCP a k nim přiřazené typy aplikace
IPPDSCPtypická aplikace
7rezervováno
648routing
546hlas
534video konference
432streamované video
326mission critical data
324call signaling
218transaction data
216network managment
110bulk data
18scavenger
00Best-effort data

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á hodnoty 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ů.

QoS v Linuxu

V operačním systému Linux jsou nejčastěji používány HTB či ESFQ, které se nastavují pomocí iproute2 balíku, viz např. následující dokumentace:

Reference

  1. http://nix.cz/cz/summary_graph Archivováno 16. 1. 2013 na Wayback Machine. – Statistika datového toku přes NIX.CZ

Externí odkazy