Hlavní navigace

Kam pakety, kam jdete aneb odposlech sítí

13. 2. 2002
Doba čtení: 5 minut

Sdílet

O odposlechu síťové komunikace se lze často dočíst v kontextu s různými podvratnými aplikacemi, jenž mají za cíl zachycení uživatelských hesel apod. Metoda odposlechu síťové komunikace však slouží především k analýze a optimalizaci síťové infrastruktury a v neposlední řadě jako zdroj kvalitních dat pro clickstream analýzu.

Nejprve si uveďme, co si pod pojmem kvalitních clickstreamových dat můžeme představit. Základní vlastností, kterou požadujeme po clickstreamových datech je jejich přesnost, tj. aby přesně zachycovala uživatelský zážitek z návštěvy webového serveru. Přesnost vstupních dat je pro analýzu zásadní a ovlivňuje přímo úměrně správnost jejích výsledků. Další požadovanou vlastností clickstreamových dat je jejich informační obsah. Opět platí, že čím jsou data bohatší na informace, tím více se dovídáme z výsledných charakteristik clickstream analýzy. Metoda odposlechu síťové komunikace jako zdroj clickstreamových dat je na tom ve srovnání se souborem logů webového serveru mnohem lépe, v obou výše zmíněných vlastnostech. Za použití přesnějšího a informačně obsažnějšího zdroje dat však platíme náročnějším zpracováním v rámci ETL procesů a následné clickstream analýzy.

Principielně je metoda odposlechu síťové komunikace založena na zachytávání paketů síťového protokolu. Zjednodušeně řečeno je komunikace po síti koncipována do několika vrstev, přičemž vrstvou nejvyšší je v našem případě aplikační vrstva protokolu HTTP. Pokud bychom prováděli odposlech na této vrstvě, získali bychom informace pouze z protokolu HTTP a pro potřeby clickstream analýzy bychom setrvali na úrovni souboru logů webového serveru. Abychom získali více informací o vyšší přesnosti, musíme přesunout náš zájem z aplikační vrstvy o úroveň níže, na transportní vrstvu protokolu TCP. Při síťové komunikaci mezi uživatelským prohlížečem a webovým serverem jsou veškerá data na obou stranách HTTP komunikace předána nižší transportní vrstvě protokolu TCP, který je „zabalí“ do TCP paketů a postará se o jejich doručení. Jakmile jsou TCP pakety doručeny příjemci, je jejich obsah „rozbalen“ a předán vyšší aplikační vrstvě protokolu HTTP. Pro úplnost je nutno dodat, že pod transportní vrstvou protokolu TCP jsou ještě vrstvy další, jenž ve skutečnosti zajišťují přenos dat po síti, až po „fyzické“ doručení na konkrétní počítač. Pro naše potřeby však podrobná znalost jejich funkce není potřebná.

Při odposlechu síťové komunikace mezi prohlížečem a webovým serverem se využívá vlastností protokolu TCP. Ten je založen na tom, že každý úspěšně po síti přenesený TCP paket je příjemcem potvrzen a toto potvrzení je opět jako TCP paket doručeno zpět, odesílateli původních dat. Díky této vlastnosti jsme schopni odposlechem komunikace zjistit, jestli byla uživatelem požadovaná HTML stránka úspěšně doručena a zobrazena v jeho prohlížeči, či nikoliv. Tato informace je důležitá proto, že nám umožňuje identifikovat uživatelské připojení postižené chybami síťové komunikace, a tak zabránit např. tomu, aby bylo analyzováno společně s těmi, jenž proběhly bez chyb. Konkrétním příkladem může být situace, kdy provádíme analýzu opuštěných nákupních košíků a snažíme se zjistit důvody, proč nebyla nákupní transakce úspěšně dokončena. Znalost skutečnosti, že uživatel opustil plný nákupní košík z důvodu chyby síťové komunikace, tedy proto, že se mu nezobrazila odpovídající stránka, je pro nás důležitou informací.

Díky odposlechu na úrovni protokolu TCP získáváme celou řadu přesných časových údajů, popisujících komunikaci mezi uživatelským prohlížečem a webovým serverem. Známe přesný čas přenosu požadované stránky (včetně všech jejích objektů) ze serveru do prohlížeče uživatele a rovněž čas přenosu uživatelských požadavků v opačném směru. Díky tomu přesně určíme, kolik času strávil uživatel nad obsahem stránky a kolik čekáním na její zobrazení, a také víme, jakým internetovým připojením co do rychlosti přenosu disponuje. Ze znalosti přesných časových relací komunikace prohlížeč-server dále zjistíme, jak dlouho trvá webovému serveru vyřízení jednotlivých uživatelských požadavků. Tento údaj nám usnadní sledování jeho výkonu a upozorní nás na situaci, kdy průměrný čas vybavování uživatelských požadavků serverem překročí únosnou hranici, což bude zřejmě signál k posílení výkonu serveru, nechceme-li přijít o méně trpělivé návštěvníky.

Novým druhem informací, jenž nejsou dostupné v souboru logů webového serveru jsou uživatelem vyvolaná přerušení komunikace se serverem. Typicky jde o stisknutí tlačítka Stop prohlížeče v průběhu stahování obsahu, stisknutí tlačítka pro obnovu (aktualizaci) obsahu v průběhu stahování obsahu, opuštění webového serveru či přechod na server jiný nebo definitivní uzavření okna uživatelova prohlížeče a ukončení komunikace. Těchto informací je využíváno k přesnému vymezení online návštěvy uživatele, zejména okamžiku jejího ukončení. V případě přerušení downloadu uživatelem máme k dispozici kompletní informaci o tom, po jakém čase uživatel stahování přerušil a jaká část obsahu proto nebyla stažena na jeho počítač. Těchto informací využijeme k optimalizaci internetové prezentace a kupříkladu k rozdělení objemných souborů – určených ke stažení – na několik menších částí. Rovněž nově získáváme možnost shromažďování parametrů odesílaných prohlížečem na webový server metodou POST, jenž nejsou dostupné v logovém souboru.

Technicky je odposlech síťové komunikace řešen tak, že se na straně serveru připojí do stejného segmentu počítačové sítě nezávislé zařízení. Pracuje v pasivním režimu, kdy zachytává všechny pakety procházející daným segmentem a provádí vyčtení clickstreamových informací z jejich záhlaví a datové části. Zařízení označované jako network collector (případně packet sniffer), v pasivním režimu nijak nezatěžuje internetové připojení webového serveru. Je-li v segmentu sítě více serverů, je network collector schopen zachytávat pakety od všech těchto serverů, i když nás to nezbavuje nutnosti provést jejich časovou synchronizaci, mají-li být analyzovány společně. Použijeme-li network collector v takovémto hromadném modu, můžeme si dovolit vypnout logování u jednotlivých serverů a tak jim ulehčit vybavování uživatelských požadavků, zejména v provozních špičkách.

Oproti zpracování souborů s logy, má odposlech síťové komunikace přínos v tom, že probíhá v reálném čase. Náročnější systémy a řešení pro clickstream analýzu, jenž provádějí odposlech síťové komunikace, toho využívají k online sledování různých ukazatelů, pomocí nichž provádějí úpravy internetové prezentace v reálném čase. Například detekují aktuální rychlost internetového připojení uživatele, a dle její hodnoty zvolí variantu prezentace méně náročnou na objem přenášených dat tak, aby doba jejího stahování na uživatelův počítač zůstala v přijatelných mezích. Jiným příkladem může být sledování ukazatelů obchodních transakcí, které umožňují v reálném čase upravovat ceny prodávaných produktů a sledovat tím určitou obchodní strategii.

ebf 24 - tip duben

Dle průzkumu provedeného autorem dnes převládají na trhu produkty a řešení pro clickstream analýzu na bázi analýzy souboru logů webového serveru. Přesto některé z předních společností v oblasti clickstream analýzy již objevily možnosti odposlechu síťové komunikace a předpokládá se, že je to jeden z vývojových trendů v tomto odvětví.

V dalším článku se podíváme na konkrétní možnosti realizace clickstream analýzy a přehled dostupných řešení.

Používáte u svého serveru network collector (resp. packet sniffer)?

Byl pro vás článek přínosný?

Autor článku

Autor je systémovým analytikem pro oblast datových skladů a ETL zpracování dat. Rovněž se zabývá problematikou moderních analytických postupů v BI a CRM systémech.
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).