Quality of Service (QoS) v IP sítích
Cíl kapitoly
Definice QoS, QoS parametry, dělení QoS, způsoby zajištění QoS.
Prekrekvizity
Před prostudováním této kapitoly se seznamte s úvodním popisem protokolu IP
(Dostálek, kap. XXX) a s chováním protokolu TCP při zahlcení sítě (algoritmy
congestion avoidance a slow start) (Dostálek, kap. 9).
Kvalita služby
QoS je schopnost sítě podporovat aplikaci bez omezení funkce nebo výkonu aplikace.
ITU-T E.800: "Kvalita služby je souhrnný výsledek výkonnosti služby, který určuje stupeň
spokojenosti uživatele služby."
Kvalita služby ovlivněna všemi komponentami sítě:
- stanicemi (WS, servery)
- směrovači, přepínači
- linkami (mezi routery, LAN)
Parametry tvořící QoS
- šířka pásma (bandwidth)
- zpoždění (delay)
- rozptyl zpoždění (jitter)
- ztrátovost paketů (packet loss)
Komponenty zpoždění a jejich příčiny
- pevná složka: serializační zpoždění, doba šíření
- proměnná složka: buffering (fronty) ve směrovačích a přepínačích
Příčiny rozptylu zpoždění
nejednotné zacházení s jednotlivými pakety téhož toku při bufferingu, z toho plynoucí
proměnné pozdržení ve frontách
Příčiny ztrát paketů
- (fyzické chyby - discard)
- přetížení procesoru přepínacích prvků (input drops)
- přeplnění výstupních front přepínacích prvků (output drops)
Typy QoS
Best Effort
původní služba Internetu, snaha o přenesení paketu, bez priorizace, v případě zahlcení se zahazuje
Integrated Services - Hard QoS
- explicitní rezervace zdrojů sítě (kapacity linek, paměti ve frontách, CPU přepínacích prvků) pro jednotlivé datové toky
- malá škálovatelnost (problém velkého množství toků procházejících páteřními směrovači)
- Resource Reservation Protocol (RSVP)
- základem datový tok, rezervace na celé cestě
- signalizace mezi příjemcem a aktivními prvky (a aktivními prvky navzájem) proti směru toku
- distinct a shared reservation
- nutná podpora na koncových stanicích
- přirozené pro spojově orientované sítě (např. ATM), ne paketově orientované
Differentiated Services - Soft QoS
- Klasifikace provozu do tříd, označování paketů podle třídy
- Definice Per-Hop Behavior (PHB) přepínacích prvků (směrovačů, přepínačů)
pro každou třídu
- Počet tříd omezen - dobrá škálovatelnost
- Pouze upřednostnění některých dat (statistická preference), nikoli garance doručení do předvídatelné doby
Klasifikace provozu
Klasifikace provozu se děje obvykle na hranicích sítě nebo jejich částí.
- 2. vrstva: 802.1pq (3 bity Class of Service (CoS) )
- 3. vrstva: v hlavičce IP paketu 8-bitové pole
- původně Type of Service (ToS), 8 tříd IP Precedence
- později předefinované na DSCP (Differentiated Service Code Point)
- mapování mezi CoS (L2) a ToS/DSCP (L3) na routerech
Třídy zpracování paketů ve směrovačích u DiffServ (Per-Hop Behavior)
- Expedited Forwarding (RFC 2598): "virtuální pevná linka", služba konec-konec
s malými ztrátami, malým, ale proměnným zpožděním a garantovanou šířkou pásma.
- Assured Forwarding (RFC 2597): 4 třídy (označovány Class Selectorem, 1-4), v každé z nich 3 drop preference (low=1,medium=2,high=3).
Označování: AFxy, x-class selector, y-drop preference. x,y zakódováno v DSCP.
- Best Effort
Mechanismy řízení QoS
aplikují se při zahlcení sítě, jinak představují zbytečnou režii
cílem je garantovat minimální šířku pásma, maximální zpoždění a minimální jitter
Vstupní filtrace, klasifikace a značkování
Traffic Policing
- podle dohodnutého CIR (příp. EIR)
- leaky-bucket algoritmus
Klasifikace vstupního provozu
- klasifikace podle informace z L3-L7 (protokolu, IP adres, portů, URL, MIME typu, ...), podle vstupního interface
- klasifikace odesílatelem nebo sítí (NBAR: Network-Based Application Recognition)
- páteřní přepínací prvky klasifikaci provedené na hranici sítě důvěřují
Řešení zahlcení (Congestion Management)
Přiřazení tříd provozů do front (explicitní přířazení + default fronta) a různé režimy obsluhy front
(výběru dalšího paketu pro odesílání na výstupní linku).
Cílem rozbíjení shluků paketů (packet trains).
Základní režimy obsluhy front
- FIFO
- Priority Queuing (PQ) - absolutní priority (výběr z prioritnější fronty, dokud není prázdná)
- Custom Queuing (CQ) - proporcionální cyklické přidělování kapacity každé třídě provozu (round robin)
- Weighted Fair Queuing (WFQ) - automatické třídění do toků a cyklická obsluha každého toku, preference interaktivního provozu, zohlednění IP precedence.
- Class-Based Weighted Fair Queuing (CBWFQ) - rozdělování do uživatelem definovaných tříd, nad nimi pak WFQ
- Low-Latency Queuing (LLQ) - WFQ + fronta s absolutní prioritou, střídání mezi cyklem WFQ a prioritní frontou
Předcházení zahlcení (Congestion Avoidance)
Standardní technika při přeplnění front: tail drop.
Problém globální synchronizace v TCP
RED - Random Early Discard, WRED - Weighted RED
- při zaplnění fronty nad určitou hranici se začnou pakety se vzrůstající pravděpodobností zahazovat
- slow start všech spojení nenastane při tail drop, u některých spojení dříve od RED
- weighted RED - přednostně se zahazují pakety s nižší prioritou (pravděpodobnost zahození (drop)
ovlivňuje nejen míra naplnění fronty, ale i priorita paketu)
- Konfigurace RED: pro každou třídu provozu se definuje:
- minimální délka fronty pro zahájení zahazování
- maximální přípustná délka fronty (nad ní zahazováno vše)
- RED slouží pouze pro TCP (!)
Tvarování provozu (Traffic Shaping)
- ochrana před shluky přesahujícími dohodnutou šířku pásma k poskytovateli (Commited Information Rate-CIR)
- důležité pokud fyzická rychlost rozhraní přesahuje CIR některého virtuálního okruhu
Fragmentace a interleaving
- na pomalých linkách (typ. pod 768 kbps), na nichž je serializační zpoždění významné
- při provozu interaktivních aplikací (aby se jejich pakety dostaly s přijatelným zpožděním a jitterem
mezi velmi dlouhé pakety)
- řeší se fragmentací dlouhých paketů
Nasazování mechanismů QoS
- zjištění provozovaných aplikací a jejich požadavků, monitorování provozu
- aplikace mechanismů QoS
- ověření chování mechanismů QoS
- GOTO 1 ;-)