abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:11 | Nová verze

    Vývojáři postmarketOS vydali verzi 24.06 tohoto před sedmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell, Phosh, KDE Plasma a Sxmo. Aktuálně podporovaných zařízení je 50.

    Ladislav Hagara | Komentářů: 0
    včera 21:55 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.

    Ladislav Hagara | Komentářů: 0
    14.6. 12:11 | IT novinky

    Google Blog ČR informuje, že mobilní aplikaci Gemini a NotebookLM lze používat už také v Česku.

    Ladislav Hagara | Komentářů: 18
    14.6. 11:33 | Nová verze

    Byla vydána nová major verze 8 duálně licencovaného open source frameworku JUCE (Wikipedie, GitHub) pro vývoj multiplatformních audio aplikací.

    Ladislav Hagara | Komentářů: 0
    14.6. 11:11 | IT novinky

    Od 18. června bude možné předobjednat notebook DC-ROMA RISC-V LAPTOP II od společnosti DeepComputing s osmijádrovým 64-bit RISC-V AI CPU a s předinstalovaným Ubuntu.

    Ladislav Hagara | Komentářů: 2
    13.6. 23:55 | Nová verze

    Byla vydána verze 1.79.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    13.6. 14:33 | Zajímavý článek

    Byly zveřejněny výsledky průzkumu (infografika) mezi uživateli FreeBSD.

    Ladislav Hagara | Komentářů: 0
    13.6. 13:22 | IT novinky

    Na konferenci DevConf.CZ 2024 je na stánku Furi Labs prezentován linuxový telefon FuriPhone FLX1. Jeho cena 499 dolarů.

    Ladislav Hagara | Komentářů: 17
    13.6. 00:11 | Nová verze

    Bylo vydáno Eclipse IDE 2024-06 aneb Eclipse 4.32. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 1
    12.6. 22:00 | Nová verze

    Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-2 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Jak na sdílení pásma aka (traffic) shaping

    Sdílením pásma (dale jen shaping) se rozumí přidělení určité maximální rychlosti některým datovým tokům tekoucím přes router. Sepsal bych několik heslovitých poznámek, ostatní se dá dobře najít v dokumentaci (především v LARTC):

    * Vlastní shaping se provádí pomocí tzv. Queueing Discipline, zkráceně qdisc. Tyto se definují pomocí příkazu tc (zkratka od traffic control). Tyto qdiscy se nastavují pro každou síťovou kartu zvlášť, na každé síťové kartě jich může být hodně a různě uspořádaných.

    * Příkaz tc má poměrně složitou syntaxi a pro začátečníka není moc vhodný (nekamenovat, můj názor). Proto je dobré používát různé skripty, které shaping nastaví podle zadaného konfig. souboru (např. cbq.init, htb.init)

    * Pozornosti doporučuju qdisc HTB (Hierarchical Token Bucket) a SFQ (Stochastic Fair Queuing). Zatímco první slouží k (hierarchickému) rozdělení pásma mezi datové taky, druhý slouží k rovnoměrnému a spravedlivému rozdělení toku mezi několik spojení. Např: pomocí HTB se rozdělí pásmo mezi uživatele A,B a C a pomocí SFQ se každému uživateli zajistí spravedlivé rozdělení jeho pásma mezi všechny jeho spojení

    * HTB uspořádává třídy do stromu, v kořeni je celé síťové rozhraní, dál je to na vás. Jednotlivé sourozenecké uzly si navíc mezi sebou mohou půjčovat nevyužité pásmo. Na každém listu je pak potřeba pověsit nějaký qdisc, který zajistí rozdělení pásma přiděleného od HTB dané třídě mezi spojení, které ve třídě jsou. Většinou to bývá SFQ, případně FIFO.

    * Všechno popsané v minulém odkazu za vás nastaví htb.init, stačí mu jen předhodit několik konfiguračních souborů.

    * Pokud se na daném rozhraní provádí i NAT, je potřeba si uvědomit, že packety prochází shapingem až po provedení NATu, takže přicházíme o interni zdrojovou adresu u odeslaných packetů a nemůžeme tedy podle ní přímo rozlišovat provoz. Provoz je dobré rozlišovat pomocí FWMARK, které si ve firewallu pomocí iptables -j MARK můžeme nastavit jak chceme (a případně je můžeme využít i třeba pro statistiky přenosu)

    * Shaping se z principu dá provádět pouze na odchozím interface (na příchozím rozhraní se musí data přijímat takovou rychlostí, jakou je vysílající strana posílá). Toto je poměrně často nemožné (provider vám většinou provoz shapeovat nebude a i kdyby chtěl, tak pokud používáte NAT, tak z principu provider nemůže mít k dispozici dostatek informací). Většina používaných protokolů má naštěstí nějakou detekci rychlosti, takže je možné pomocí shapeování na odchozím interface do LOKÁLNÍ sítě nepřímo rychlost posílání omezovat. Při dodržení některých pravidel to funguje i docela spolehlivě. Především není možné moc dobře používat půjčování nevyužitého pásma, protože může dojít k situaci, kdy u providera packety z jedné třídy hlavičkami umlátí packety z druhé třídy. Příklad: Máme dvě lokální třídy A (max 1Mbit/s) a B (max 1Mbit/s). Celkem máme linku 1,5Mbit/s. Obě třídy chtějí využít maximální rychlosti, takže u providera "čeká" na doručení 2Mbit/s packetů. Protože linka má jen 1,5Mbit/s musí se proto router u providera rozhodovat, které packety pošle. Pokud není poměr packetů z obou tříd vyrovananý (jedna má např. hodně malých packetů a druhá málo velkých), tak na náš router přijde například 0,9MBit/s z jedné třídy a 0,6Mbit/s z druhé třídy. Router si ověšem myslí, že druhá třída nevyužívá plně svoje pásmo a proto "volné" pásmo přidělí první třídě. Takže místo aby se obě třídy spravedlivě rozdělily 0,7 vs 0,7, tak budou hodnoty různě oscilovat. Dále samozřejmě není možné shapeovat provoz určený pro router.

    * Je dobré udělat speciální třídu pro malé packety (iptables -m length), cca do 80-100B a ty pouštět prioritně. Zrychlí se tak odezva SSH, pošty a spol. Je to velice vhodné i pro síťové hry. Také se tak upřednostní potvrzovací packety, takže se vyřeší známý problém DC++, kdy velké packety odchozích spojení (cca 1500B) vůbec nepustily k lince malé potvrzující packety pro příchozí data a download tak klesl třeba na 20%.

    * Není jednoduché shapeovat služby jako DC++ a spol., protože používají různá čísla portů. Nejúčinější řešení je použít moduly pro iptables, které tyto spojení poznají (většinou ale jen úvodní packet) a rozšíření Connection Marking (řeší problém poznávání, které packety patří do spojení, které jsme podle úvodního packetu označili jako např. DC).

    * Do modemu se většinou doporučuje posílát o pár procent menší datový tok, než kolik máme od providera. Efektivně se tak z činnosti vyřadí buffer modemu, který je poměrně hloupý, a náš router získá lepší kontrolu nad řízením toku linky.

    * Papír a tužka nejsou nepřátelé a pěkný diagrámek často pomůže rozmyslet situaci a/nebo vyřešit problém.

    Související dokumenty

    HTB Home (externí dokument)
    htb.init (externí dokument)
    LARTC - Linux Advanced Routing and Traffic Control Howto (externí dokument)
    IPP2P - poznávání peer-to-peer spojení (externí dokument)

    Dokument vytvořil: Radek Hladik, 9.12.2005 23:23 | Poslední úprava: Käyttäjä 11133, 24.4.2007 21:23 | Historie změn | Zobrazeno: 2264×

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.