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í
×
    dnes 21:44 | Komunita

    Ubuntu 24.10 bude Oracular Oriole (věštecká žluva).

    Ladislav Hagara | Komentářů: 0
    dnes 20:22 | Nová verze

    Byla vydána nová verze 2.45.0 distribuovaného systému správy verzí Git. Přispělo 96 vývojářů, z toho 38 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Vypíchnout lze počáteční podporu repozitářů, ve kterých lze používat SHA-1 i SHA-256.

    Ladislav Hagara | Komentářů: 0
    dnes 13:33 | IT novinky

    Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".

    Ladislav Hagara | Komentářů: 0
    dnes 01:00 | Nová verze

    Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 03:22 | Zajímavý článek

    V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …

    Ladislav Hagara | Komentářů: 0
    včera 00:11 | Nová verze

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 7
    27.4. 17:44 | Nová verze

    Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.4. 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 12
    26.4. 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 9
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 882 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Jaderné noviny – 15. 9. 2011: Návrhy na vylepšení TCP

    26. 9. 2011 | Luboš Doležel | Jaderné noviny | 3983×

    Aktuální verze jádra: 3.1-rc6. Citáty týdne: Luis Rodriguez, Alan Cox. Vývoj jádra bez kernel.org. LPC: zrychlujeme síť: Proporcionální omezení rychlosti; Rychlé otevření TCP spojení; Stručně: síťové fronty v uživatelském prostoru.

    Obsah

    Aktuální verze jádra: 3.1-rc6

    link

    Aktuální vývojová verze jádra je 3.1-rc6 vydaná 14. září. Věci jdou kvůli nefunkčnosti kernel.org nadále pomalu, takže nedochází k mnoha změnám. Nic, co by vystupovalo z řady. Pusťte se do toho a dejte nám vědět, jestli narazíte na nějaké zbývající regrese. Repozitář je samozřejmě nadále umístěn na Githubu.

    Stabilní vydání: během uplynulého týdne nebyly vydány žádné stabilní aktualizace.

    Citáty týdne: Luis Rodriguez, Alan Cox

    link

    Ve zkratce – soubory spatch mohou být použity na cílovém adresáři pro generování patchů. spdiff umí přečíst patch a podle něj vygenerovat spatch. Toto pro svět backportování znamená to, že pokud backportujete jednu evoluční změnu v linuxovém jádře na jednom ovladači, tak můžete backportovat tu samou změnu u *všech* ovladačů. Toto je ohromný krok kupředu, co se práce potřebné pro backportování týče.

    -- Luis Rodriguez zjednodušuje backportování

    Nejsem si jist, že právo kolem odvozených děl je tak jednoznačné, ale zase 'poskytněte krátkou stručnou definici odvozených děl' se zdá být právní obdobou Goldbachovy hypotézy.

    -- Alan Cox

    Vývoj jádra bez kernel.org

    link

    Bezpečnostní problémy na kernel.org vyvolaly obavy o zdrojový kód jádra a další software, který je tam hostován. Zatím nebylo prokázáno, že by kernel.org bylo použito k šíření závadného softwaru. Ale celý průlom má i druhou stránku: kernel.org je „mimo provoz z důvodů údržby“ a není známo, kdy se vrátí. Takže i když nebyl šířen žádný škodlivý software, následkem je to, že průlom kernel.org představuje DoS útok značného rozsahu.

    Linus vydal dvě 3.1-rc verze z dočasného umístění na Githubu, nicméně tam není k nalezení mnoho práce. Mimo jiné ztráta repozitářů hostovaných na kernel.org znamená to, že relativně není mnoho věcí, které by mohl přetahovat. Stephen Rothwell mezitím pokračuje v přetahování stromů, ke kterým se dostane, aby vytvořil linux-next. Je schopen hlásit problémy s integrací a sestavováním, ale nemůže dát strom tam, odkud by jej mohli přetahovat ostatní. Navíc si teď užívám klidu. Od té doby, co je kernel.org mimo provoz, nevyšly žádné stabilní aktualizace stromu.

    Prozatím se objevují alternativní stromy, jak vývojáři nacházejí jiná místa, kde hostovat svou práci. Pokud bude ještě nějakou dobu výpadek kernel.org pokračovat, můžeme očekávat, že se takových stromů vynoří ještě mnohem víc – ačkoliv někteří vývojáři vytváření alternativních repozitářů odmítají. Většina náhradních stromů je označena jako dočasné, bude ale zajímavé, kolik z nich se přesune zpět na kernel.org, jakmile tato epizoda dospěje ke konci. Někteří vývojáři se mohou rozhodnout, že jim více vyhovuje, když je strom jinde. Takže možná máme distribuovaný systém pro správu zdrojového kódu, ale ukázalo se, že jaderná komunita pracuje s centralizovaným hostingem a distribuovanou infrastrukturou.

    Ztráta kernel.org zpomalila věci dostatečně na to, aby bylo jasné, že celý proces má v sobě jedno kritické místo, které nesmí selhat. Jestli stojí za námahu toto napravovat, není úplně jasné, nedošlo k žádné ztrátě kódu a kdyby kernel.org mělo odejít navždy, celý proces by se mohl rychle vrátit do normálu na jiných systémech. Nicméně zatím byly věci narušeny do takové míry, jak se to málo jiným událostem povedlo. Stojí za to zamyslet se, co by se stalo, kdyby k narušení došlo v průběhu začleňovacího okna.

    LPC: zrychlujeme síť

    link

    Téměř všechny služby nabízené Googlem jsou poskytovány přes Internet, takže je logické, že tato společnost má zájem na zlepšování fungování sítě. Síťařská část Linux Plumbers Conference 2011 obsahovala přednášky od tří vývojářů Google, přičemž každý z nich měl návrh na zásadní změnu implementace. Suma sumárum se zdá, že v tom, jak funguje síťování, je hodně prostoru pro vylepšení.

    Proporcionální omezení rychlosti

    link

    Okénko [congestion window] je u odesilatele v TCP jeho představou o tom, kolik dat může být na cestě k příjemci, než se začne linka přetěžovat. Zahozené pakety jsou často známkou toho, že je okénko příliš velké, takže implementace TCP obvykle okénko značně zmenší, jakmile ke ztrátě dojde. Jenže zmenšení okénka zase omezí výkon; pokud byla ztráta paketu jen náhoda, celé zpomalení je pak naprosto zbytečné. RFC 3517 popisuje algoritmus, pomocí kterého je rychlost spojení po ztrátě paketu rychle obnovena, ale Nandita Dukkipati říká, že by to šlo udělat lépe.

    Podle Nandity u velké části síťových spojení se servery Googlu dojde k nějaké ztrátě; dokončení těchto spojení pak trvá 7-10krát déle. RFC 3517 je součástí tohoto problému. Algoritmus reaguje na ztrátu paketu okamžitým zmenšením okénka na polovinu, což znamená, že odesílající strana musí, pokud bylo v době ztráty okénko plné, počkat na ACK u poloviny paketů, které byly právě přenášeny, než začne odesílat další data. To způsobí, že se odesílající strana na delší dobu odmlčí. V jednoduchých případech to funguje dostatečně dobře (ztráta jednoho paketu v dlouhotrvajícím přenosu), ale když jde o krátké přenosy nebo rozsáhlejší ztráty paketů, je tu tendence, že se to ucpe.

    Linux aktuálně nedodržuje RFC 3517 striktně; namísto toho používá vylepšení nazvané „půlení rychlosti“ [rate halving]. S tímto algoritmem není okénko zmenšeno na polovinu okamžitě. Jakmile se spojení dostane do fáze obnovy po ztrátě, každý přijatý ACK (který typicky potvrdí přijetí dvou paketů na druhé straně) způsobí zmenšení okénka o jediný paket. V průběhu jedné sady paketů, které zrovna byly přenášeny, bude okénko zmenšeno na polovinu, ale odesílající strana bude v průběhu tohoto omezování odesílat dále (pomaleji). Výsledkem je plynulejší běh a snížená latence.

    Ale půlení rychlosti lze dále zlepšovat. ACKy, na kterých závisí, jsou samy o sobě možným předmětem ztráty; rozsáhlejší ztráta může způsobit významné omezení velikosti okénka a pomalou obnovu. Tento algoritmus ani nezahajuje proces zvětšování na nejvyšší funkční hodnotu, dokud není proces obnovy dokončen. Takže může chvíli trvat, než se rychlost obnoví.

    Algoritmus proporcionálního omezení rychlosti má odlišný přístup. Prvním krokem je odhadnout, kolik dat ještě teče po drátech, což je následováno výpočtem toho, kolik by podle aktuálně používaného algoritmu měla být velikost okénka. Pokud je objem dat na cestě menší než cílová velikost okénka, systém rovnou zahájí algoritmus pomalého startu TCP [TCP slow start], aby uvedl velikost okénka do původního stavu. Takže pokud během spojení dojde k nárazovým ztrátám, systém začne pracovat na obnově velikosti okénka okamžitě namísto toho, aby se plazil s malým okénkem delší dobu.

    Pokud je objem dat na cestě alespoň tak velký jako nové okénko, je použit algoritmus podobný půlení rychlosti. Skutečné omezení rychlosti je spočítáno relativně vůči novému okénku namísto toho, aby šlo o přímočaré půlení. U velkých i malých ztrát má důraz na používání odhadů dat v trubkách namísto počítání ACK prý za následek plynulejší obnovu a systém se tak vyhne zbytečným omezením velikosti okénka.

    O kolik je to lepší? Nandita říká, že Google na některých ze svých systémů provedl experimenty; výsledkem bylo snížení průměrné latence o 3 – 10 %. Vypršení časového limitu při obnově poklesla o 5 %. Tento kód je nyní nasazován na více serverech Googlu; taktéž byl přijat k zařazení v průběhu vývojového cyklu verze 3.2. Více informací můžete najít v tomto návrhu RFC.

    Rychlé otevření TCP spojení

    link

    Otevření TCP spojení vyžaduje třípaketový handshake; SYN paket odeslaný klientem, SYN-ACK odpověď od serveru a konečné ACK od klienta. Než je handshake dokončen, není možné přenášet žádná data, takže handshake nevyhnutelně vede k latenci při vytváření každého spojení. Yuchung Cheng se ale ptá, co by se stalo, kdybychom data odesílali přímo v paketech handshaku? Pro jednoduché operace – kupříkladu požadavek HTTP GET následovaný obsahem stránky – by odeslání relevantních dat spolu s handshakem omezilo latenci. Výsledkem tohoto je návrh „rychlého otevírání TCP spojení“ [TCP fast open].

    RFC 793 popisující TCP umožňuje, aby v handshake paketech byla odesílána data, a to s podmínkou, že data nebudou předána aplikaci, dokud nebude handshake dokončen. Mohli bychom zvažovat vynechání této podmínky, abychom urychlili proces přenosu dat přes TCP spojení, ale jsou tu jistá rizika, se kterými je nutné se vypořádat. Zjevným problémem je usnadnění SYN flood útoků, které jsou špatné samy o sobě, i když se dotknou jen jádra; pokud by každý přijatý SYN paket měl zabrat i prostředky aplikace, možnosti DoSu by byly značně horší.

    Yuchung popsal přístup k rychlému otevření, který by většinu problémů obešel. Prvním krokem je vytvoření tajné hodnoty pro každý server, která je hashována spolu s informacemi od každého klienta s cílem vytvoření cookie specifické pro daného klienta. Tato cookie je odeslána klientovi jako speciální atribut k obvyklému paketu SYN-ACK; klient si to může ponechat pro rychlá otevření spojení v budoucnu. Požadavek získat nejprve cookie je překážkou za účelem zamezit útokům SYN flood, ale trochu věci komplikuje. Tajná hodnota serveru je navíc docela často měněna a pokud server zjistí příliš mnoho nových spojení, rychlé otevírání bude znemožněno, dokud se věci neuklidní.

    Je tu jeden problém, a to, že kolem 5 % systémů zahodí SYN pakety obsahující neznámé atributy nebo data. S tímto se nedá moc udělat; rychlé otevření TCP spojení prostě nebude fungovat. Klient si proto musí pamatovat případy, kde SYN pakety pro rychlé otevření neprošly a v budoucnu použít obyčejný postup.

    K rychlému otevření by nedocházelo ve výchozím stavu; aplikace na obou stranách by o to musely explicitně požádat. Na klientské straně je pro rychlé otevření použito systémové volání sendto() s novým příznakem MSG_FAST_OPEN, funguje to jako kombinace connect() a sendmsg(). Na serverové straně umožní rychlé otevírání volání setsockopt() s volbou TCP_FAST_OPEN. Tak či tak se aplikace nemusejí cookies pro rychlé otevření a podobnými věcmi zabývat.

    Při testech Googlu rychlé otevírání TCP spojení zlepšilo časy načítání stránek o 4 až 40 %. Tato technika funguje nejlépe v situacích, kdy je latence mezi stranami spojení vysoká, samozřejmě čím je vyšší, tím účinnější je ji odstranit. Patch implementující tuto funkčnost bude brzy zaslán k zařazení.

    Stručně: síťové fronty v uživatelském prostoru

    link

    Zatímco předchozí dvě přednášky se týkaly zvyšování účinnosti přenosu dat přes síť, Willem de Bruijn se zabývá zpracováním síťových operací na lokálním systému. Především pracuje s high-end hardwarem: vysokorychlostní linky, spousty procesorů a především malé síťové adaptéry, které jsou schopné rozpoznat určité přenosy a nasměrovat pakety do front specifických pro jednotlivá spojení. Než se jádro vůbec dostane k nějakým rozvahám nad daným paketem, už je zařazen na správné místo, čekaje na aplikaci, než si požádá o data.

    Samotné zpracování paketů se odehraje v kontextu přijímajícího procesu dle potřeby. Takže se vše odehraje ve správném kontextu na správném CPU; mezizpracování na úrovni softwarového IRQ je vynecháno. Willem popsal nové rozhraní, pomocí kterého by aplikace přijímala pakety přímo od jádra přes sdílený paměťový segment.

    Jinými slovy, přednáška popisovala variantu konceptu síťových kanálů, kde je zpracovávání paketů přesunuto co nejblíže aplikaci. Je zde řada detailů, se kterými je nutné se vyrovnat, včetně obvyklých překážek celé myšlenky kanálů: zpracovávání firewallem atp. Navrhované používání souboru v sysfs pro přenos paketů do uživatelského rozhraní také pravděpodobně neprojde revizí. Ale tato práce se může nakonec dostat do stavu, kdy je obecně užitečná; ti, které to zajímá, mohou najít patche na stránce unetq.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Vložit další komentář

    26.9.2011 12:27 Ivan
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 9. 2011: Návrhy na vylepšení TCP
    Pokud jde o to vylepseni TCP, tak to nikdy nebude fungovat pokud budou existovat veci jako MS ISA server. Ta vec obsahuje "akcelerator internetu", tzn. SYN, ACK, FIN packety ktere dostavate vytvari transparentni TCP proxy a neobsahuji udaje, ktere vam poslal server. Konkretne pri ukoncovani TCP spojeni klient prijme FIN+ACK drive nez ho odesle server.

    Na druhou stranu MS kasle na SYN/ACK uplne. IE posila na IIS jako prvni packet primo data s HTTP GET requestem.

    26.9.2011 15:53 Jiří J. | skóre: 34 | blog: Poutník | Brno
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 9. 2011: Návrhy na vylepšení TCP

    Windows má obecně docela dost zajímavostí v oblasti síťování, pro které jsem nenašel žádný procfs option v linuxu - třeba "delayed ACK" (RFC1122, section 4.2.3.2, resp. implementace microsoftem) by mohl představovat zajímavé možnosti lazení pro specifické účely.

    28.9.2011 00:22 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 9. 2011: Návrhy na vylepšení TCP
    Nechci být hnidopich, ovšem považuji se poměrně sečtělého a se slůvkem "lazení" jsem se dosud nesetkal. Nemá to být spíše "ladění"? A nebo nevypadlo z toho nějaké písmeno a mělo by to být spíše "plazení", nebo "chlazení"? To už pak ovšem vůbec smysl nedává.
    28.9.2011 13:29 s0 | skóre: 32 | blog: nejchytřejší kecy | prágl
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 9. 2011: Návrhy na vylepšení TCP
    v jakýchsi prehistorických hudebních análech jsem kdysi viděl použití "lazení" jako proces, kterým dosáhneš nějakého "ladění" (stavu).
    Kuolema Kaikille (Paitsi Meille).
    Voty avatar 29.9.2011 15:26 Voty | skóre: 12 | blog: gemini
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 9. 2011: Návrhy na vylepšení TCP
    Mno, má oblíbená příručka Ústavu pro jazyk český termín "lazení" nezná a je pravda, že je mi trochu zatěžko představit si infinitiv tohoto slova :)
    Jednu rozbil a tu druhou ztratil.
    pavlix avatar 29.9.2011 19:24 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 9. 2011: Návrhy na vylepšení TCP
    Jaké je podstatné jméno od slovesa „sladit“ (ve smyslu přidávat například cukr)? Nebo adjektivum? Tam to najednou zatěžko není, že :).

    Jasně, říká se „ladění“, ale viděl bych to jen jako zvyk, protože pro obě varianty by se našla zavedená analogie.

    Na analogii „sladit“ je nejhezčí to, že je to homonymum, které podle významu funguje jako analogie pro oba případy.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Voty avatar 30.9.2011 11:17 Voty | skóre: 12 | blog: gemini
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 9. 2011: Návrhy na vylepšení TCP
    Máš pravdu, tuto možnost jsem v úvahu nevzal :)
    Jednu rozbil a tu druhou ztratil.
    pavlix avatar 30.9.2011 12:35 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 9. 2011: Návrhy na vylepšení TCP
    Jak sladké je vítězství. Dělám si legraci :).
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    26.9.2011 16:04 ewew | skóre: 40 | blog: ewewov_blog
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 9. 2011: Návrhy na vylepšení TCP
    Pomohlo by keby aspoň sprístupnili dokumentáciu.
    Root v linuxe : "Root povedal, linux vykona."

    Založit nové vláknoNahoru

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