6. díl - Sítě - Internet Protocol - Differentiated Services

Sítě Sítě - Internet Protocol - Differentiated Services

Přes Internet souběžně proudí různé druhy dat – soubory, webové stránky, video, zvuk, telefonní hovory, živé videokonference, atd. Pokud je na síti velká zátěž (congestion) – tzn. že routery nestíhají odesílat přijaté pakety dostatečně rychle a musí si je držet v paměti (bufferu). V této chvíli je důležité různé typy komunikace odlišit – zatímco takové stahování filmu může „počkat“ klidně i několik minut, tak 3 vteřiny zpoždění ve videokonferenci nebo v hovoru jsou dosti nepříjemné. Při zátěži tedy tyto delay-sensitive (citlivé na zpoždění) pakety dostanou přednost před jinými. Toto 8 bitové pole v IP hlavičce je rozděleno na 2 části: Prvních 6 bitů je pro Differetiated services code point – právě tento kód určuje prioritu paketu. Poslední 2 bity jsou pro Explicit congestion notification – ta davá routerům prostor k informování zařízení, že je na síti přetížení. Principy jsou navrženy takto:

diffServ

DSCP – differentiated services code point

Tato šestibitová sekvence odlišuje jednotlivé typy služeb. Lépe řečeno, říká routerům, jak mají s paketem zacházet – jakou má mít prioritu. Router si svou mezipaměť (buffer) dělí na logické fronty, a do každé „řadí“ příchozí pakety podle jejich priorit. Můžeme to zakreslit takhle:

router-buffering

Odesílání probíhá (zjednodušeně) tak, že se (např.) na každé 3 pakety z fronty nejvyšší priorita odešle jeden z fronty Vysoká priorita. A na každé 4 pakety s vysokou prioritou se odešle 1 s nízkou prioritou, atd. Pokud je na Internetu přiměřená zátěž, a routery stíhají ihned zpracovávat a odesílat pakety, rozdíl mezi přenosy s nejvyšší a s nejnižší prioritou není postřehnutelný – co router příjme, téměř ihned zase odešle.

Při „zácpě“, kdy si routery musí držet příchozí data v bufferu delší dobu bude přenos s nejvyšší prioritou probíhat skoro tak plynule, jako obvykle. Ovšem čím nižší priorita paketů, tím déle si počkáte:

trafficUnderLoad

Se stejnou prioritou, s jakou jsou pakety odesílány, jsou taky zahazovány. To nastane v případě, že je buffer zcela plný. První se začíná „čistit“ fronta s nejnižší prioritou, zatímco pakety s nejvyšší prioritou by, je-li to možné, neměly být zahazovány vůbec.

Konkrétní implementace tohoto „frontového“ mechanismu, rozřazování a zahazování záleží na výrobci – samozřejmě by se měl (alespoň z části) řídit standardy IETF, aby byl router použitelný.

Priority obecně

DSCP nejvyšší priority dostávají pakety nesoucí routovací informace (routovací tabulky) a telefonní hovory (zajímavé je, že „vytáčení“ dostává prioritu pouze průměrnou, až skutečný přenos hlasu má nejvyšší prioritu) nebo livestreaming videa.

Vysokou, střední či nízkou prioritu dostávají různé ostatní služby – může to být videostreaming (YouTube), již zmíněné vytáčení u tel. hovorů, multiplayerové hry, apod.

Nejnižší priorita náleží přenosům, kterým nevadí ani velké zpoždění – což je např. stahování webových stránek nebo stahování/sdílení souborů. Tento DSCP dostanou také přenosy, které se nepodařilo zařadit do žádné z kategorií.

Hodnoty DSCP

Nejpoužívanější hodnota je právě hodnota výchozí (default) – hodnota 000 000. Takové pakety mají nulovou prioritu, a při zatížení je router zahodí jako první.

Nejvyšší priorita se jmenuje Expedited forwarding (EF) – hodnota 101 110. Pakety označené jako EF mají naopak prioritu absolutní, a router je drží v bufferu, dokud to lze. Proto musí být jeho používání přísně kontrolováno ISP. Navíc, pokud překročí počet paketů s EF určitý limit (limit by neměl překročit 30 % veškerého datového toku), tak routery takovým paketům násilně sníží prioritu (a to i když je oprávněná).

Pro označení ostatních paketů se prosadilo Assured forwarding (AF). Standard obsahuje 4 třídy, každou rozdělenou do 3 podtříd – celkem tedy 12 hodnot DSCP:

Přednost Třída I Třída II Třída III Třída IV
Low drop 001 010 010 010 011 010 100 010
Medium drop 001 100 010 100 011 100 100 100
High drop 001 110 010 110 011 110 100 110

První 3 bity DSCP určují třídu, poslední 3 pravděpodobnost zahození. Čím vyšší třída a pravděpodobnost zahození, tím hůře s paketem router „zachází“. Paket třídy 1 s low-drop pravděpodobností má přednost nejvyšší, paket třídy 4 high-drop pravděpodobností přednost nejnižší.

Jak se DSCP přiděluje a kontroluje

DSCP přiděluje odchozím paketům buď přímo aplikace, nebo operační systém – ti nejlépe vědí, co za data posílají, a klasifikace je tedy nejsnadnější právě tady. Přidělování DSCP je konfigurovatelné, takže jej můžete přímo ovlivnit – pokud by neexistovala žádná kontrola, pak by si samozřejmě všichni nastavili nejvyšší prioritu pro všechny typy služeb a podle toho by to pak vypadalo.

Kontrolu provádí lokální ISP – jejich routery mají právo přepsat DSCP, pokud priorita neodpovídá typu dat (router tedy prozkoumá paket a pokusí se odhadnout, co za data nese). Pokud ISP nabízí různě rychlé (nebo spíše různě garantované) připojení (vyšší garance za vyšší cenu), tak si může nakonfigurovat limity priorit podle zdrojové IP adresy klienta. Nabízí se použítí Assured forwarding – podle sumy, kterou zaplatíte, dostanete maximální AF třídu, a podle typu dat se ještě kontroluje pravděpodobnost zahození (poslední 3 bity DSCP). Pokud klient překročí hodnotu, kterou mu je ISP ochoten poskytnout, router hodnotu sníží .

Ačkoli ISP musí dodržovat nějaká pravidla (obzvláště ohledně Expedited forwarding), je víceméně na něm, jaké nabídky poskytne, a hlavně jak je bude řešit ve svých routerech. Druhý problém je podpora DSCP u routerů – pokud jediný router po cestě postrádá podporu DSCP (tzn. že hodnotu v poli ignoruje), je v době zatížení pole víceméně zbytečné.

Explicit congestion notification (ECN)

Neboli explicitní upozornění na přetížení. Toto pole neslouží k odlišení jednotlivých typů dat, ale dává routerům (které ECN podporují) možnost, jak upozornit koncové zařízení, že to momentálně „nezvládají“. Je tak šance, že PC omezí posílání dat nebo chvíli počká, ale jde pouze o upozornění. Jak na něj to či ono zařízení bude konkrétně reagovat, záleží na jeho konfiguraci administrátorem (ECN podporují snad všechny současné operační systémy, takže zde problém není).

Hodnoty

Pokud zařízení přijímá ECN, nastaví hodnotu ECN v každém IP paketu na 10. Router (podporující ECN) hodnotu pole změní na 11, pokud je přetížený. – První bit ECN tedy značí podporu, druhý přetížení. Pokud zařízení neumí s ECN pracovat (nebo spíše je nastavené, aby jej nepoužívalo), tak ECN bity v každém odchozím paketu budou 00. Router takový paket normálně při přetížení zahazuje, hodnotu v poli nemění. Zároveň je to signál pro cílové zařízení, že druhá strana ECN ignoruje – je tedy zbytečné nastavovat ECN v odeslaných paketech na 10, ponechá se hodnota výchozí – 00.

Podpora

Podle průzkumu v USA (2011) je webových serverů, které pracují s ECN něco málo přes 10 % - což je dost tragické. Co se týče routerů tak některé údajně přepisovaly ECN vždy na 00, čili opět žádná sláva. Jaká je situace u nás opravdu nevím, ale při analýze sítě můj PC vždy první paket odeslal s ECN 10, ale vrátil se mi pokaždé paket s ECN 00. Dočetl jsem se, že Apple oznámil (2015), že ECN ve výchozím nastavení zapne u všech svých produktů. Nezbývá než doufat v co nejrychlejší rozšíření tohoto standardu.

K ECN se detailněji vrátím v článku o Transmission Control Protocol (TCP) – jeho hlavička je hned za IP hlavičkou, a informace v ní slouží právě ke kontrole komunikace. Tedy kolik dat může zařízení odeslat, jaká data má přeposlat atd. Reagovat na ECN hodnotu 11 (přetížení) znamená změnit určité hodnoty v TCP hlavičce a odeslat druhé straně paket s informací, že má očekávat méně dat.

To by bylo k hlavičce IP vše, příště se již budeme věnovat podsíťím (subnets).


 

  Aktivity (3)

Článek pro vás napsal Lukas C#
Avatar
Věnuji se IT spíše co se týče SW, baví mě programování v C#. Nejvíc mě však těší, když můžu pomáhat a učit ostatní :-)

Jak se ti líbí článek?
Celkem (5 hlasů) :
55555


 


Miniatura
Všechny články v sekci
Síťové technologie

 

 

Komentáře

Avatar
itnavi
Redaktor
Avatar
itnavi:

V souvislosti se seriálem o sítích bych chtěl upozornit na knižní publikaci „Počítačové sítě“ autorů James F. Kurose, Keith W. Ross vydanou v roce 2014 nakladatelstvím Albatros Media a.s.

Protože jsem z větší části prováděl odbornou korekturu textu a celou knihu jsem tedy přečetl, můžu ji vřele doporučit ke studiu všem, kdo se chtějí vážně zabývat touto problematikou ať už jako servisní technici nebo vývojáři síťových protokolů. Protože oba autoři jsou známými universitními profesory, je celá kniha koncipována jako učebnice moderních počítačových sítí – tedy současných protokolů a technologií. Každá kapitola je doplněna nejen základním shrnutím klíčových poznatků, ale i kontrolními otázkami, řešení problémů a programovacími úlohami. Pro studium je vyžadována základní znalost jazyka C, C++. Doprovodný web v anglickém jazyce obsahuje interaktivní učební materiál, další technický materiál, programovací úlohy a cvičné prostředí Wireshark. Publikace je vhodná také pro pedagogickou lektorskou činnost pro její komplexnost a použití analogií z reálného světa.

Odpovědět  +3 18.12.2015 12:34
Pořád něco nového
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.