PV090: QoS v sieti

Martin Ščurok, <xscurok@fi.muni.cz>

Úvod

Počítačové siete sú navrhnuté ako tzv. best-effort služby, teda všetky sieťové toky v TCP/IP sieťach sú obsluhované ekvivalentne, avšak ľubovoľný z nich môže byť ovplyvnený negatívnymi vlastnostiami sietí ako sú napr. straty paketov, oneskorenie, zmena poradia paketov...

Existujú ale prípady, kedy je potrebné niektoré toky uprednostniť pred inými, teda poskytnúť im definovanú kvalitu služby (Quality of Service): real-time prenosy...

Klasifikácia prevádzky na sieti

Proces, pri ktorom sieťové zariadenie rozpoznáva jednotlivé pakety a zaraďuje ich do určitých tried podľa ich vlastností. Umožňuje následnú prioritizáciu, shaping alebo policing. Cieľom klasifikácie je umožniť rozdielne zaobchádzanie s rôznymi typmi dát.

V súčasnosti je klasifikácia stále ťažsia: šifrovanie, tunelovanie cez HTTP, QUIC

Prioritizácia dátových tokov

Prioritizácia určuje, ktoré toky majú prednosť pri preťažení. Kritické toky (napr. VoIP alebo online hry) dostanú vyššiu prioritu než menej dôležité (downloady).

Zabezpečuje sa pomocou klasifikácie, front, shapingu a policingu

QoS v Internetu

Navrhnuté dva spôsoby zaistenia kvality služby:

QoS v IPv4

Používa pole ToS (Type of Service) alebo DS (Differentiated Services) v IPv4 hlavičke:

DSCP štandartné označovanie paketov:

QoS v IPv6

Postavené na rovnakých princípoch ako v IPv4

Používa pole Traffic Class (8 bitov), ktoré obsahuje DSCP a ECN

Mechanizmy QoS (RED, WRED, CBQ, TBF, HTB, SFQ, WFQ, PRIO)

RED a WRED patria do části QoS, ktorá sa nazýva congestion avoidance (prevencia zahltenia).
PRIO, WFQ, SFQ - scheduling (v akom poradí sa obslúžia pakety z jednotlivých front).
TBF - shaping (riadenie množstva a rychlosti odosielaných paketov).
CBQ, HTB - schaping + scheduling

RED (Random Early Detection)

Vlastnosti

Predchádza zahlteniu fronty tým, že náhodne zahadzuje pakety (resp. posiela ECN) ešte pred úplným naplnením.
Pokiaľ zaplnenie fronty presiahne určitú mez, začne router zahadzovať pakety náhodne vybraných tokov. Odosielateľ daného toku ako reakciu na stratený paket zníži rýchlosť odosielania.
Pravdepodobnosť zahodenia paketu sa zvyšuje so zvyšujúcim sa zaplnením fronty.

Parametre konfigurácie

WRED (Weighted RED)

Vlastnosti

Rozširuje RED o rozdielne váhy podľa tried (DSCP). Prioritné toky sú zahadzované menej často ako bežné toky.

Parametre konfigurácie

CBQ (Class-Based Queueing)

Vlastnosti

Parametre konfigurácie (root vs podtriedy)

TBF (Token Bucket Filter)

Vlastnosti

Parametre konfigurácie

HTB (Hierarchical Token Bucket)

Vlastnosti

Parametre konfigurácie (root vs podtriedy)

SFQ (Stochastic Fair Queueing)

Vlastnosti

Parametre konfigurácie

PRIO Queueing

Vlastnosti

Parametre konfigurácie

WFQ (Weighted Fair Queueing)

Vlastnosti

Parametre konfigurácie - neexistuje v tc

Bufferbloat a riešenia

Bufferbloat je jav, pri ktorom sú buffery v sieťových zariadeniach príliš veľké. Buffery pakety držia príliš dlho, čo spôsobuje vysokú latenciu a jitter.

Riešenie - AQM – Adaptive Queue Management - algoritmy, ktoré aktívne riadia plnenie fronty, aby zabránili bufferbloatu. Ich cieľ je informovať TCP, aby spomalilo skôr, než sa buffer zaplní.
Najznámejšie AQM sú:

Obmedzenie šírky pásma na vstupnom rozhraní (ingress shaping)

Shaping na vstupnom rozhraní je problematický, pretože pakety už dorazia do zariadenia a nevieme regulovať akou rýchlosťou. Preto obmedzenie ako také nie je priamo možné.

Riešenie:

Rozdelenie záťaže cez viac rozhraní

Load-balancing umožňuje využívať viac liniek súčasne. Sieťový traffic sa nevedie iba cez jedno rozhranie, ale rozdelí sa na viac liniek.
Cieľom je zvýšiť celkovú priepustnosť, dostupnosť aj spoľahlivosť siete.

Dva hlavné spôsoby rozdelenia:

Modelovanie sieťovej záťaže a monitoring

Na sledovanie aktuálneho prenosu sa používajú monitorovacie nástroje - aktívne (vytvára traffic), pasívne

Modelovanie záťaže - generovanie dátovej prevádzky na testovacie účely:

Monitorovanie sieťovej prevádzky:

Zdroje