Zpoždění v síti: Co je latence a jak ji řešit?
Latence sítě představuje časovou prodlevu, která vzniká při přenosu dat nebo požadavků mezi zdrojem a cílem v rámci síťového prostředí. Podívejme se, jak efektivně diagnostikovat a eliminovat problémy spojené se zpožděním v síti.
Každá akce, která vyžaduje síťové připojení, jako je načítání webových stránek, kliknutí na odkazy, spouštění aplikací nebo hraní online her, se považuje za aktivitu. Uživatelská akce generuje požadavek, a doba odezvy webové aplikace odráží čas potřebný k jeho vyřízení.
Tato časová prodleva zahrnuje i čas, který server potřebuje ke zpracování daného požadavku. V podstatě se jedná o celkovou dobu odezvy, tedy dobu, která uplyne od odeslání požadavku, jeho zpracování na serveru, až po obdržení odpovědi uživatelem.
Termín „nízká latence“ označuje minimální zpoždění přenosu dat. Dlouhé prodlevy nebo nadměrná latence jsou nežádoucí, jelikož negativně ovlivňují uživatelský komfort a celkovou kvalitu zážitku.
Jak řešit problémy s latencí sítě?
Na internetu je k dispozici množství nástrojů a aplikací pro monitorování a řešení problémů sítě, některé z nich jsou placené, jiné zdarma. Jedním z nich je i Wireshark, což je open-source aplikace s licencí GPL, která se používá pro zachytávání datových paketů v reálném čase. Wireshark je světově nejpopulárnější a nejčastěji používaný analyzátor síťových protokolů.
Tento nástroj umožňuje zachytit síťové pakety a detailně je analyzovat. Pakety lze využít pro okamžitou nebo offline analýzu. S Wiresharkem můžete detailně zkoumat síťový provoz, filtrovat ho a hledat zdroje problémů, což pomáhá při analýze a zabezpečení sítě.
Co způsobuje zpoždění v síti?
Existuje několik hlavních faktorů, které mohou zpomalovat síťové připojení:
- Vysoká latence
- Závislosti aplikací
- Ztráta paketů
- Síťová zařízení
- Neefektivní velikost okna
V tomto článku se podrobněji podíváme na každý z těchto faktorů a na to, jak je řešit s pomocí Wiresharku.
Analýza s Wiresharkem
Vysoká latence
Vysoká latence značí dlouhou dobu, kterou data potřebují k přenosu z jednoho koncového bodu do druhého. Tento jev má výrazný dopad na síťovou komunikaci. Pro demonstraci se podíváme na dobu odezvy při stahování souboru s vysokou latencí. Často může dosahovat i více než jedné sekundy, což je považováno za nepřijatelné.
Pro zjištění latence v Wiresharku:
- Přejděte do sekce „Statistiky“.
- Vyberte možnost „TCP Stream Graph“.
- Pro vizualizaci doby stahování souboru zvolte „Round Trip Time Graph“.
Wireshark umožňuje vypočítat dobu odezvy na trase a zjistit tak, zda právě ona nezpůsobuje problémy s výkonem komunikační sítě TCP. Protokol TCP se využívá v mnoha aplikacích, včetně prohlížení webu, přenosu dat a FTP. V mnoha případech lze optimalizovat operační systém pro efektivnější práci na linkách s vysokou latencí, zvláště pokud se jedná o systémy jako Windows XP.
Závislosti aplikací
Některé aplikace závisí na jiných aplikacích, procesech nebo komunikaci s hostitelským systémem. Například, databázová aplikace se může spoléhat na připojení k jiným serverům pro načítání datových položek. V takovém případě může zpomalení výkonu na těchto serverech negativně ovlivnit i rychlost načítání v lokální aplikaci.
Podívejme se na příklad procházení webu, kdy cílový server odkazuje na další webové stránky. Při načítání hlavní stránky www.espn.com se v podstatě musíte připojit k 16 hostitelům, kteří poskytují reklamy a obsah pro tuto stránku.
Obrázek výše zobrazuje okno „HTTP Load Distribution“ v aplikaci Wireshark, které obsahuje seznam všech serverů, které se podílí na načtení domovské stránky www.espn.com.
Ztráta paketů
Ztráta paketů je jedním z nejčastějších problémů v sítích. Nastává tehdy, když datové pakety nejsou správně doručeny od odesílatele k příjemci přes internet. Při stahování prvků webové stránky ztracené pakety způsobují opakované přenosy, čímž se prodlužuje doba stahování a zpomaluje celkový proces.
Pokud aplikace používá TCP, má ztráta paketů obzvláště negativní dopad. Když TCP připojení zaznamená ztracený paket, automaticky sníží rychlost přenosu dat, aby kompenzovalo síťové problémy. Rychlost se postupně zvyšuje, dokud nedojde k dalšímu ztracenému paketu, což vede k výraznému snížení datové propustnosti. Velké stahování souborů je ztrátou paketů velmi ovlivněno.
Jak se projevuje ztráta paketů? Pokud program používá TCP, může dojít k dvěma scénářům. V jednom z nich příjemce sleduje pakety podle jejich pořadových čísel a detekuje chybějící paket. Klient provede tři požadavky na chybějící paket (duplicitní potvrzení), což vede k jeho opětovnému odeslání. V druhém scénáři se odesílatel po vypršení časového limitu o chybějícím potvrzení o doručení datového paketu rozhodne pro jeho opakované odeslání.
Wireshark vizuálně označuje přetížení sítě a duplicitní potvrzení, které vedou k opakovanému přenosu provozu. Velký počet duplicitních potvrzení naznačuje ztrátu paketů a významné zpoždění v síti.
Pro zvýšení rychlosti sítě je nutné přesně určit místo ztráty paketů. S pomocí Wiresharku prozkoumáme síťovou cestu, dokud nezjistíme místo, kde již ke ztrátě paketů nedochází. Tím se dostaneme do bodu „před“ místem ztráty a můžeme tak lokalizovat problémové místo.
Síťová zařízení
Síťová zařízení, jako jsou přepínače, směrovače a brány firewall, rozhodují o směrování dat. Při ztrátě paketů je třeba tato zařízení prověřit jako možný důvod.
Tato zařízení mohou také přidávat latenci na síťové trase. Například, pokud je povolena priorizace provozu, může docházet k přidávání latence u streamu s nízkou prioritou.
Neefektivní velikost okna
Kromě operačního systému Microsoft existují v sítích TCP/IP další „okna“:
- Posuvné okno
- Okno příjemce
- Okno přetížení
Tato okna spoluurčují výkon síťové komunikace na bázi protokolu TCP. Nyní si definujeme každé z těchto oken a jejich vliv na propustnost sítě.
Posuvné okno
Posuvné okno se využívá k odesílání dalších TCP segmentů po síti, když jsou data potvrzena. Odesílatel obdrží potvrzení o přenesených fragmentech dat, a posuvné okno se tak rozšíří. Pokud v síti nedochází ke ztrátám, lze přenášet větší objemy dat. Při ztrátě paketů se posuvné okno zmenší, protože síť není schopna zvládnout zvýšené množství dat.
Okno příjemce
Okno příjemce TCP stack je vyrovnávací paměť. Přijatá data se zde ukládají, dokud je aplikace nezpracuje. Pokud aplikace nestíhá zpracovávat data v tempu jejich příjmu, okno příjemce se zaplní a nastane tzv. stav „nulového okna“. V takovém případě musí být veškerý přenos dat k hostiteli pozastaven. Propuštění klesne na nulu. Metoda Window Scaling (RFC 1323) umožňuje hostiteli zvýšit velikost okna příjemce a snížit pravděpodobnost nulového okna.
Obrázek výše ukazuje 32sekundové zpoždění v síťové komunikaci kvůli scénáři nulového okna.
Okno přetížení
Okno přetížení definuje maximální množství dat, které je síť schopna zpracovat. Hodnota se odvíjí od rychlosti odesílání paketů odesílatelem, míry ztrát paketů v síti a velikosti okna příjemce. Okno přetížení se v průběhu zdravé síťové komunikace neustále zvyšuje, dokud není přenos dokončen, nebo dokud nedosáhne limitu stanoveného stavem sítě. Každé nové připojení zahajuje proces vyjednávání velikosti okna.
Tipy pro zdravou síť
- Naučte se používat Wireshark pro rychlou identifikaci zdroje síťových problémů.
- Identifikujte zdroj latence na síťové trase a pokud je to možné, snižte ji na přijatelnou úroveň.
- Hledejte a odstraňte zdroje ztráty paketů.
- Zkontrolujte velikost okna pro přenos dat a zmenšete ji v případě potřeby.
- Analyzujte výkon síťových zařízení, abyste zjistili, zda nepřidávají latenci nebo neztrácejí pakety.
- Optimalizujte aplikace pro doručování většího množství dat a pokud je to možné, získávejte data z okna příjemce.
Závěrem 👨🏫
Prošli jsme hlavní příčiny problémů s výkonem sítě. Důležitým faktorem je také porozumění fungování síťové komunikace. Wireshark poskytuje detailní přehled o síti, podobně jako rentgen nebo CAT sken umožňuje detailní pohled do lidského těla. Tento nástroj je nezbytný pro lokalizaci a diagnostiku síťových problémů.
Díky Wiresharku můžete nyní prozkoumat a vyřešit problémy s výkonem sítě pomocí různých filtrů a nástrojů. 👍