Ale houby, tak složité to není, klidně vysvětlím i laikovi. Normálně bez QoS to funguje tak, že procházející pakety jsou zpracovávány v pořadí, ve kterém přišly (first come first served). Pokud síťová vrstva nestíhá a má v danou chvíli odeslat víc paketů, než se do linky vejde, vytvoří se před úzkým hrdlem fronta paketů, pokud odesílání stíhá, jsou jednotlivé pakety posílány okamžitě a fronta je v podstatě pořád prázdná. Pokud by paketů přišlo úplně moc, došlo by na jejich zahazování, ale to se v praxi moc neděje - odesílající strana ví, že pokud linku přehltí, budou některé pakety zahozeny, bude je muset odesílat znovu a celé to bude mnohem víc na prd, než když se přizpůsobí rychlosti, jakou druhá strana přijímá.Teď přichází QoS. Pokud přijde paket například od VoIPu nebo ssh nebo něčeho, kde záleží na latenci, bylo by asi dobré, kdyby se ve frontě "předběhl" a byl odeslán mimo naši starou dobrou politiku first come first served. Jenomže pokud přijde tady těch paketů víc, který z nich odeslat první? Musíme si pro tyto předbíhače udělat taky frontu, ve které budeme pracovat taky stylem first come first served, ale každý paket tady z této fronty má přednost před pakety z "normální" fronty, to znamená, že, dokud existují pakety v této předbíhací frontě, nebudou odeslány žádné pakety z "normální" fronty. Klidně to tak může někdy být, ale je trochu lepší, když přece jenom občas pustím aspoň nějaký paket z "normální" fronty - aby služby fungovaly, nicméně jak to namixuju už je plně na mě.Pak přijdou stahovači. Pro ně vytvořím speciální frontu "sosačů", ze které budu pakety odesílat prostě až budou fronty prioritních paketů a normálních paketů úplně prázdné. Možná - pokud budu hodný - jim zase z pásma nějakou šířku nechám i v případě, že v těch ostatních frontách nějaké pakety budou, ale namixuju to třeba tak, že na 10 "normálních" paketů pošlu jeden "sosací", dokud v "normální" frontě něco bude.Jak to bude v praxi fungovat? Celkem bájo. Prioritní fronta funguje už dnes, služby v ní - např. VoLTE - mají zpravidla nějaký stálý datový tok, takže přestože sousedka vykecává přes VoLTE, já při stahování z uložto o ničem moc nevím a jí se to "neseká". Stejně tak bude fungovat normální uživatel vs. sosač - na jednu stranu uživatelé v podstatě nebudou vědět, že síť je plně vytížená, na druhou stranu dám sosačům vlastně k dispozici úplně celé zbývající pásmo, aniž bych je musel řezat na nějaké jednotky megabitů.(Samozřejmě je to celé mírně složitější, fronty tvoří stromovou strukturu, většinou měříme spíš datový tok - součet velikosti paketů - atd., ale v principu to sedí.)Zůstává jenom otázka klasifikace - do které fronty příchozí paket zařadit? Služby jako VoLTE, videokonference, ssh apod. mají většinou požadavek na prioritu už v hlavičce, router se jí může řídit, ale zpravidla to bude ještě kontrolovat, aby někdo nezneužíval nastavení vyšší priority pro - co já vím - stahování z FTP. Sosací pakety můžu klasifikovat podle hodně kritérií a bude to fungovat dobře - například podle množství dat stažených uživatelem od začátku měsíce (to je v podstatě FUP ve svém původním smyslu), nebo taky mnohem chytřeji - podle množství dat za poslední klouzavé období - například hodinu, minutu, podle cílového serveru, ideálně podle víc kritérií.Můžu to hodně tunit - například by bylo dobré, kdyby Youtube nebo ČT nemělo výpadky a běželo víceméně konstatním tokem a latencemi, kdežto stahování aktualizací ať klidně kolísá. A tak dále. Co by pro nás naši operátoři neudělali.