QoS - Quality of Service

Jiří Šádek sadekj1(at)feld(dot)cvut(dot)cz

1. Úvod

Rozlišení paketů v síti je zpravidla dáno toky, které tyto pakety vytváří. Best-effort službou sítě je zajištěna základní konektivita avšak bez jakýchkoliv garancí. Chceme-li však provozovat v síti služby multimediálního charakteru - voice, telephony, video streaming - či obecně aplikace s různými specifickými požadavky na službu od sítě, musíme mít v síti mechanismy, které je zaručí. To si davá za cíl právě Quality of Service.

1.1 Co je tedy "QoS"

Jedná se o soubor technik, které řídí zpoždění (delay), fázové chvění (jitter), ztrátovost paketů (packet loss) a šířku pásma (bandwidth) pro toky v síti.

1.2 Úrovně QoS

1.2.1 Qos na linkové vrstvě

Některé z technologií 2. vrstvy je podpora QoS přímo dostupná. Jedná se především o ATM technologii, která je zde nejsilnější avšak její nevýhodou je, že pokud je použita jedná se především o páteřní sítě a nikdy nedosáhne ke koncovým uživatelům. Zde je nejrozšířenější technologií ethernet, který ve své nedávné specifikaci 802.1p také přidal možnosti použití QoS. Dále můžeme zmínit Frame Relay (minCIR) a Token Ring.

Všechny výše zmíněné technologie mají však své uplatnění zhlediska QoS v sítích rozsahu LAN či WAN. Nejedná se však o řešení postačující pro celý Internet.

1.2.2 QoS z hlediska End-to-End konektivity

V síti Internet je použito velké množství heterogeních technologií linkové vrstvy a proto End-to-End konektivita začíná na 3. (síťové) vstvě. Pro Internet založený na TCP/IP je QoS založen na IP tak, že mapuje své funkce QoS do mechanismů linkové vrstvy.

2. IP QoS

2.1 Historie

Myšlenku o rozlišování typů paketů a nasledné možnosti jeho zpracování v rámci QoS, byla již v počáteční době specifikaci IP (RFC791) a jedná se o pole ToS (Type of Service, 1 Byte) v hlavičce IP paketu. V raných dobách internetu nebyla podpora ToS důležitá a proto ji většina IP implementací ignorovala.

Počátkem 90. let 20. století se začaly uplatňovat mechanismy pro plánování front paketů na routerech - WFQ, WRED - pro eliminaci stavů jejich zahlcení. Dále rozšířením aplikací mající striktní požadavky na šíři pásma byl zaveden model integrated services (RFC1633) pro garance predikovatelného chování sítě těmto aplikacím (protokoly RSVP, COPS). Zatímco u integrated services signalizují požadavky na specifický QoS aplikace, u následného modelu differentiated services (RFC2430) síť rozpoznává jednotlivé třídy, které vyžadují specifický QoS.

2.2 Modely pro IP QoS

2.2.1 Integrated services - IntServ model
Obr: Stavební bloky IntServObr: Stavební bloky IntServ

Resource reservation se používá k identifikaci toku (daného aplikací) a signalizaci zda je pro ni dostatek zdrojů. Admission control určuje zda může aplikace dostat požadované zdroje.

RSVP - Resource reservation protocol (RFC2205) byl vyvinut právě pro vyjednávání potřeb aplikací na síťové zdroje mezi síťovými zařízeními. Je typicky používán aplikacemi přenášejícími voice či video přes IP sítě. Dále RSVP s rozšířením je také používáno MPLS traffic engineeringem pro sestavení MPLS/TE tunelů.

Obr: Možnosti implementace - explicitní RSVP na každém uzluObr: Možnosti implementace - explicitní RSVP na každém uzlu
Obr: Možnosti implementace - RSVP pass-through - integrace IntServ DiffServObr: Možnosti implementace - RSVP pass-through - integrace IntServ DiffServ

Mezi výhody použití IntServ modelu a tedy protokolu RSVP patří zmíněný resource admission control, který podporuje end-to-end řešení. Nevýhodou je nepřetžité signalizování a špatná škálovatelnost.

2.2.2 Differentiated services - DiffServ model

Tento model popisuje služby asociované s třídami provozu. Za účelem lepší škálovatelnosti se veškerá klasifikace a úprava daného provozu přesunula pouze na hranici sítě - v každém paketu hodnota DSCP (differentiated services code point) slouží k výběru per-hop behavior (PHB). Ve vlastní síti se vykonávají pouze pravě PHB, implemetované použitím určirého QoS mechanismu. Provisioning prvek DiffServ modelu alokuje zdroje pro třídy provozu. Dalším požadavky pro DiffServ model bylo zrušení vazby mezi službou a aplikací, potlačení hop-by-hop signalizování a slučitenost s uzly sítě neiterpretující DS pole korektně.

2.2.2.1 DS pole, DSCP kódování

DSCP je 6 bitová hodnota části DS pole což je dnešní název pro bývalý ToS Byte a využívá se pro určení PHB - metody pro forwarding a fronty. DS pole je oktet v IP hlavičce třídy provozu pokud je interpretován podle definice RFC2427. Při použití horních 3 bitů DSCP zpětně kompatibilní s IP precedence. Zbývající bity nejsou v současné době využity.

DSCP kódování má tři rozsahy:

Defaultně je DSCP - 000000 a PHB - FIFO, tail-drop

Výběr per-hop behavior:

Obr: DiffServ schémaObr: DiffServ schéma
Tab: Funkční bloky DiffServ
Funkční blok Umístění Funkce Akce
Traffic conditioners vstupní interface na hraničním routeru diffserv domény klasifikace paketů, shaping, policing pro přicházející provoz nastavuje DSCP pole podle profilu provozu
PHB všechny routery v diffserv doméně alokace zdrojů, politika zahazování paketů PHB aplikované na pakety založené na charakteristice služby definované DSCP
Obr: Obecný model QoSObr: Obecný model QoS
2.2.2.2 Traffic conditioners (kondicionéři provozu)

Uplatňují se na hranicích sítě a jsou proto velice důležitou součástí pro zajištění diferencovaných služeb uvnitř síťové domény. Poskytuje:

Klasifikace paketů

Je prostředkem pro identifikaci paketu určité třídy podle jednoho či více polí v hlavičce paketu. Těmi mohou být:

Označování paketů

Klasifikovaný paket lze označit pro indikaci jeho třídy provozu. Na routeru máme k dispozici možnost označit (někdy termín obarvit) paket podle jeho IP precedence nebo DSCP polem v IP hlavičce, nebo QoS group polem paketu v interní datové struktuře routeru.

IP precendence

Indikuje v IP hlavičce relativní prioritu pro zacházení s paketem pomocí 3 bitů z pole ToS. K obarvení může dojít v libovolném uzlu sítě nebo přímo aplikací generující provoz. Celkem má 8 tříd:

Hodnota IP precedence Bity IP precedence Název IP precedence
0 000 Routine
1 001 Priority
2 010 Immediate
3 011 Flash
4 100 Flash Override
5 101 Critical
6 110 Internetwork control
7 111 Network control
DSCP

Viz. výše. 64 (0 - 63) tříd.

QoS group

Jedná se o pole v datové struktuře paketu interně v routeru, je tedy pouze značkou pro router a není součástí IP hlavičky. 100 (0 - 99) tříd.

Traffic rate manager

Na hranici domény QoS sítě je vstupující zátěž hlídána routery, zaručující, že rychlost zůstane v limitu pro danou službu. V případě, že vstupní zátěž vzroste nad možnosti páteřní sítě, vede degradovaný výkon k znemožnění poskytovaní QoS pro celý síťový provoz. Z toho důvodu jsou implementovány policing a shaping funkce.

Policing funkce odesílá pakety až do rychlosti linky a dovoluje shluky, nevyhlazuje ani nebufferuje provoz a může zahazovat pakety až když je překročena dovolná hranice.

Shaping funkce uhlazuje provoz a odesíla pakety konstantní rychlostí, používá bufferování požadavků a metody front (hlavně FIFO a WFQ) pro pakety překračující danou rychlost.

2.2.2.2 Per-Hop Behavior, alokace zdrojů

Jedná se především o mechanismy plánování front paketů pro podporu QoS na síťových prvcích uvnitř DiffServ domény.

FIFO queuing
Obr: FIFO queuing
Obr: FIFO queuing

First in, First out je nejednodušší queuing metodou, používající pouze jednu výstupní frontu na portu, obsluhující pakety ve stejném pořadí jako přicházejí. Fronta má omezenou délku a pokud je zaplněna dojde k zahazování dalších příchozích paketů (tail drop). Klasifikovaný provoz nepodporuje, pakety s větší prioritou mohou být zpožděny nebo zahazovány zatímco jsou obsluhovány pakety s nižší prioritou.

Multi-priority Queuing
Obr: Multi-priority Queuing
Obr: Multi-priority Queuing

Je formou násobnou formou FIFO front pro různé typy provozu. Provoz je klasifikován a rozdělen do správných front, každá fronta nese pakety stené priority. Pokud je výstup paketů s vyšší prioritou velký dochází ke zpoždění či zahazování paketů s nízkou prioritou. Problémem Multi-priority queuingu je fakt, že pokud bude provoz s vyšší prioritou velký tak veškerý traffic s nízkou prioritou bude zpožděn. Také je možné, že nejvyšší priorita dostává lepší než požadovaný QoS, zatímco pro nejnižší není splněn jeho minimální limit.

Fair Queuing
Obr: Fair Queuing
Obr: Fair Queuing

Řešením problémů u multi-priority queuingu je fair queuing, kde každé třídě přiřadí fixní váha pro alokování zdrojů routeru. Ještě lepším řešením je však Weighted Fair Queing.

Weighted Fair Queuing
Obr: Weighted Fair Queuing
Obr: Weighted Fair Queuing

Každé frontě je přiřazen její váhový faktor. Podle počtu obsazených front se zdroje alokují podle poměru daným váhovým faktorem.

2.2.2.3 Per-Hop Behavior, politika zahazovaní paketů