Vyšlo v týdeníku CHIPweek č. 13/95, 12. července 1995
Vytištěno z adresy: http://www.earchiv.cz/a95/a513k130.php3

Mirror, cache, proxy server

Jakákoli přenosová kapacita je vždy příliš malá - tak by asi mohla znít moderní parafráze jedné velmi známé pravdy, aplikovaná na prostředí počítačových sítí a komunikací. Skutečností je, že soudobé síťové aplikace mají obrovský apetit, a přenosovou kapacitu konzumují doslova ve velkém. Svou troškou, mnohdy dosti velkou, přitom může přispět i nevhodná konfigurace různých síťových prvků, která ve svém důsledku způsobuje zcela zbytečný přenos čistě režijních dat. Ovšem zdaleka největší „nadměrnou konzumaci" dostupné přenosové kapacity může mít na svědomí nevhodné chování uživatelů - mnohdy ne ani tak jejich snaha přenášet relativně velké objemy dat, jako spíše způsob, jakým tak činí.

V čem ale takovéto nevhodné chování může spočívat? Představte si například skupinu uživatelů, kteří se nějakým způsobem dozví o existenci zajímavého souboru, umístěného na veřejně přístupném archivu (anonymním FTP serveru) někde v Internetu - nejlépe až za mořem, například v USA. Pokud si každý z těchto uživatelů pro zmíněný soubor „dojde" až do USA (tj. nahraje si jej k sobě až z archivu v USA), bude to znamenat, že celý soubor se bude n-krát přenášet přes oceán, resp. bude přenášen mezikontinentálním spojem, a bude vesele konzumovat jeho vzácnou a drahou přenosovou kapacitu. Stejná úvaha ovšem platí i pro všechny ostatní spoje, které jsou sdíleny více uživateli - například i pro spoje, kterými je naše republika připojena k okolnímu světu. Kdokoli si bude „od nás" stahovat něco z okolního světa, bude spotřebovávat omezenou přenosovou kapacitu těchto spojů, a může nemalou měrou přispět k jejich zahlcování. Jak ale z této situace ven? Existuje nějaké rozumné a prakticky realizovatelné řešení? Naštěstí ano.

Možné, a v praxi skutečně používané řešení, spočívá v replikování nejvíce navštěvovaných zdrojů - například obsah oblíbeného anonymního FTP archivu, nacházejícího se za mořem, se přenese na vhodný (hlavně dostatečně velký) server někde v Evropě, či na několik takovýchto serverů na různých místech po celé zeměkouli. Uživatelům se pak dá na vědomí, že všechno to, co je k dispozici na původním „mateřském" serveru, najdou i na jeho replikovaných kopiích - kterým se pak říká mirrors (doslova: zrcadla).

Celá věc ovšem má dva háčky - uživatelé se musí o existenci zrcadel (mirrors) dozvědět, a dále musí existovat vhodný mechanismus, který bude průběžně zajišťovat aktuálnost všech replik (mirror-ů). Pokud jde o informovanost uživatelů, zde může napomoci osvěta. Ještě více však může pomoci samotný „mateřský" server tím, že svým uživatelům sám oznámí, kde se nachází jeho repliky (mirrors). No a pokud se k tomu ještě přidá obvyklé přetížení dálkových spojů, uživatel brzy sám pozná, kam je pro něj výhodnější se obracet.

Pokud jde o průběžné udržování aktuálnosti replik (zrcadel, mirror-ů), ani toto nemusí být velkým problémem - zejména jde-li o pouhé archivy souborů, ze kterých dochází pouze k jednosměrné distribuci. Zde skutečně není žádný velký problém pravidelně (například jednou za den či týden) distribuovat z mateřského serveru na jeho repliky všechny přírůstky za dobu od poslední aktualizace.

Vytváření zrcadlových replik (mirror-ů) je oblíbeným a častým řešením v případě velkých anonymních FTP serverů. Kdyby všichni naši uživatelé Internetu věděli, že většina nejznámějších světových FTP archivů má svá zrcadla i u nás (někdy i několik), nemuseli by si stahovat tolik souborů soubory ze zahraničí, a našim mezinárodním spojům by se hodně ulevilo.

Poněkud jiné řešení se ale používá u jiných síťových služeb, než jakými jsou anonymní FTP archivy se svou jednosměrnou distribucí celých souborů. Služby jako Gopher či WWW (World Wide Web) mají přeci jen interaktivnější povahu, a ke změnám na nich dochází mnohem častěji. Proto by u nich nebylo tak snadné zajistit potřebnou aktuálnost případných replik. Přesto je ale i u těchto služeb velmi žádoucí minimalizovat objem dat, které se po dostupných přenosových cestách skutečně přenáší.

Svým významným dílem může přispět i samotná aplikace, která tyto služby zpřístupňuje. Například u klientů (klientských programů) služby WWW je běžné, že si po určitou dobu pamatují obsah těch stránek, které jejich uživatel navštívil, a které si tudíž „stáhnul" z příslušného WWW serveru. Pokud se pak později uživatel rozhodne znovu navštívit tutéž stránku, klientský program to pozná, a použije ten obsah stránky, který si uchoval ve své speciální vyrovnávací paměti - označované jako paměť cache. Aby ovšem vše rozumně fungovalo, a uživateli se promítly i případné změny na původním WWW serveru, nesmí jednou navštívené stránky v cache paměti jeho klientského počítače setrvávat příliš dlouho - po nějakém čase (obvykle volitelném) musí „vyčichnout".

Ještě další možné řešení se používá tam, kde je k Internetu připojena celá lokální počítačová síť, a její provozovatelé se pojistili proti neoprávněnému přístupu z vnějšího světa - svou síť oddělili od divokého Internetu tím, co se dnes běžně označuje jako tzv. firewall. Cílem přitom bývá propouštět veškerý provoz jen takovými místy, která jsou k tomu určena, a která umožňují zabránit jakémukoli nežádoucímu provozu. V případě služby WWW se tohoto cíle dosahuje tak, že mezi „lokální" uživatele a jejich klientské programy na jedné straně a WWW servery v Internetu na straně druhé se postaví přechodový bod, fungující jako tzv. proxy server. Místní uživatelé se pak se svými žádostmi o přístup k vnějším WWW serverům obrací ve skutečnosti na tento proxy server, který si pak sám „dojde" ke vzdálenému WWW serveru, získá od něj požadovaná data, a ta pak předá svému místnímu uživateli. Přitom si ale tato data také sám zapamatuje v paměti, kterou má k dispozici a která funguje jako jeho vyrovnávací (cache) paměť - takže když se na něj někdy později obrátí ten samý či jiný uživatel, resp. klient z místní lokální sítě, dokáže mu požadovaná data poskytnout přímo ze své cache paměti.