Technologie internetu (1.): Jak funguje dnešní internet

26. 7. 2007

Sdílet

Internet se do české kotliny dostal až po sametové revoluci, oficiálně 13. února 1992. Tehdy byl ovšem dostupný jen pro hrstku lidí, zatímco dnes se větší nebo menší měrou dotýká valné části národa. Internetová konektivita se zvolna dostává na úroveň „automatických“ komunálních komodit typu elektřiny, plynu či televizního signálu, o které se zajímáme jen v případě výpadku.

Internet se do české kotliny dostal až po sametové revoluci, oficiálně 13. února 1992. Tehdy byl ovšem dostupný jen pro hrstku lidí, zatímco dnes se větší nebo menší měrou dotýká valné části národa. Internetová konektivita se zvolna dostává na úroveň „automatických“ komunálních komodit typu elektřiny, plynu či televizního signálu, o které se zajímáme jen v případě výpadku.

Pronikneme-li však trochu hlouběji pod povrch toho, co poskytovatelé nabízejí jako balíček připojení k internetu, brzy nahlédneme, že tato služba je organizována velmi decentralizovaně, bez přísného až vojenského řízení celé soustavy, které je obvyklé u klasických energetických nebo telekomunikačních společností. V tomto seriálu se budeme zabývat hlavními principy, na nichž je internet postaven.

Za zmínku v této souvislosti stojí ještě jedna zvláštnost: V minulosti jsme byli svědky řady pokusů komerčních firem o vytvoření vlastních proprietárních internetů. Neúspěšných. A pak přišla parta hipíků převlečených za inženýry (nebo to bylo obráceně?) a v relativně krátké době vytvořila otevřenou, neutrální a vpravdě celosvětovou síť, která obstála v soutěži se všemi výše zmíněnými konkurenty a aspiruje na pozici jednoho z největších vynálezů v dějinách lidstva. Jak se to mohlo stát?

Princip periferní inteligence

Funkce síťové infrastruktury internetu se mohou v porovnání s jinými komunikačními technologiemi jevit jako omezené, ba triviální. Skutečně, od takového běžného směrovače (routeru) nikdo nečeká nic jiného, než že bude co nejrychleji přehazovat IP pakety z jednoho rozhraní na jiné. Ani to není samozřejmě tak snadné, ale přiznejme si, že internet je relativně hloupá síť. Není to však způsobeno nedostatkem vzdělání u jeho návrhářů, ale záměrnou aplikací principu periferní inteligence, který říká, že většinu komunikačních funkcí lze lépe a efektivněji implementovat na samotných koncích spojení než v rámci komunikační infrastruktury.

Ukažme si na příkladu obyčejného telefonního hovoru, co to znamená: Síť, která hovor přenáší, se jistě musí snažit o zamezení výpadkům a potlačení šumu na lince. Stoprocentní odolnost proti těmto závadám ale není nutná, protože s jejich občasným výskytem si účastník hovoru snadno poradí tím, že řekne "Prosím?" a nechá si předchozí větu zopakovat. Tento opravný mechanismus má navíc tu výhodu, že funguje i v případě, když někdo v sousedství zapne cirkulárku - a na to je sebedokonalejší síť krátká.

Zrovna tak třeba aplikace pro přenos souborů musí sama kontrolovat integritu dat, i kdyby byla síť zaručeně bezchybná, protože data se mohou poškodit také chybným čtením z disku, chybou v aplikaci a podobně. Souhrnně řečeno: Síť musí zajistit solidní přenos, zdaleka ale nemusí být stoprocentní, protože s ojedinělými chybami si koncová aplikace poradí a navíc se proti nim musí bránit tak jako tak.

Takový přístup je ovšem klasickému inženýru proti srsti. Technická tradice sahající až do dob průmyslové revoluce si totiž zakládá na jiném imperativu – principu modularity. Podle něho by se měla síť chovat jako perfektní černá skříňka, která svůj úkol - přenést neporušená data z bodu A do bodu B - plní co nejlépe. Není proto divu, že klasická telefonie a řada jiných komunikačních technologií o navázaná spojení ve srovnání s internetem daleko více pečují.
Internet Engineering Task Force

V rámci standardizační instituce IETF vystupují výhradně jednotlivci, nikoli firmy nebo organizace. Činnost je organizována v rámci pracovních skupin, kterých je momentálně 125 a jsou rozděleny do 8 oblastí: Aplikace, Bezpečnost, Internet, Obecné, Provoz a správa, Real-time aplikace a infrastruktura, Směrování a Transport. Každá oblast má jednoho nebo dva ředitele, kteří dohromady tvoří Internet Engineering Steering Group (IESG). Úkolem této skupiny je především schvalování standardů IETF. Dalším orgánem je pak dvanáctičlenný Internet Architecture Board (IAB), jehož úkolem je dohlížet na celkovou architekturu internetu, kterou zezdola vytvářejí pracovní skupiny, a podle toho upravovat zaměření IESG, navrhovat vytvoření nových pracovních skupin apod.

Standardy IETF jsou dokumenty známé jako RFC. Původně šlo o zkratku anglického Request for Comments (žádost o připomínky), což však dnes už neodpovídá jejich obsahu a úloze – jsou to prostě „erefcéčka“. Domácí stránku IETF najdete na www.ietf.org.

Chytré sítě v sobě ale skrývají ještě jeden, daleko závažnější problém: jsou méně pružné i robustní a dostávají se do potíží, chceme-li je používat velmi různorodým způsobem. Jak už to bývá, sofistikované věci jsou více specializované a nesnášejí hrubé zacházení. Funkce, které jsou užitečné pro jednu třídu aplikací, mohou být pro jinou třídu nejen zbytečné, ale dokonce kontraproduktivní. Autoři aplikací pro přenos velkých datových souborů zajisté nebudou protestovat, pokud jim síť sama zajistí, že se po cestě žádná data neztratí, pro přenos hlasu je ale taková vymoženost k ničemu a navíc může zvýšit přenosové zpoždění a zhoršit tak kvalitu hovoru.

Internet se proto k různorodým požadavkům aplikací staví pragmaticky - nechává (téměř) vše na nich. Pro autory aplikací to sice může znamenat nějakou práci navíc, ale zase se nemusí vtěsnávat do kazajky, která je ušita na někoho jiného. Díky tomu se pod křídly internetu dobře daří tak ohromnému množství všemožných aplikací. Poopravme tedy předchozí provokativní výrok: Internet jako celek je ve skutečnosti velmi chytrá síť, ale většina její inteligence je soustředěna do koncových počítačů a aplikací.

Spravedlivě je ale třeba přiznat, že v současném internetu není princip periferní inteligence dodržován zcela důsledně a absolutně. Z různých více či méně bohulibých důvodů – o nichž si něco řekneme i v dalších pokračováních seriálu – je v některých směrovačích jejich základní funkce předávání paketů doplňována o další věci. Také je třeba říci, že v určitých případech musí síťová infrastruktura spolupracovat s aplikacemi. Chceme-li třeba pro telefonní hovory přes IP zajistit přijatelné zpoždění, nesmějí tyto pakety v žádném ze směrovačů na trase čekat příliš dlouho ve frontě.

Otevřené standardy

Nemůže být pochyb o tom, že na úspěchu internetu se kromě samotných technologií významně podílí i způsob jejich vývoje. V tomto ohledu hrála od samých začátků nejvýznamnější roli IETF. To je svým způsobem fascinující organizace, která vlastně ani organizací není, protože nemá žádný právní statut. Na rozdíl od jiných standardizačních institucí, jako je ISO či IEEE, jsou standardy IETF – dokumenty RFC – bezplatně dostupné komukoli. A nejen to: IETF zcela a do všech mučivých detailů odkrývá proces vzniku těchto standardů. Mítinků IETF, které se konají třikrát do roka, se může zúčastnit každý – pokud tedy sežene 500 dolarů na vložné. Stejně tak se kdokoli může zúčastnit diskuse v poštovních konferencích, čímž se vlastně stává členem IETF, protože žádné formalizované členství neexistuje.

Mimořádně zajímavý je i způsob přijímání standardů. Známé motto IETF pocházející od Davida Clarka zní: „We reject kings, presidents and voting. We believe in rough consensus and running code.“ (Odmítáme krále, prezidenty a hlasování. Věříme v hrubý konsenzus a fungující programy.) Standardy a vlastně veškerá činnost pracovních skupin vzniká zezdola, iniciativou dobrovolníků, kteří navrhovaný standard připraví, sepíší a dále o něj pečují. Žádná rozhodnutí nejsou vázána na jednomyslný souhlas. Na mítincích se sice občas hlasuje, ale nikdy se hlasy nesčítají – jde právě jen o ověření onoho hrubého konsenzu. Podstatné je ale to, že navrhovaný standard může postoupit do další fáze schvalování (formálně do stavu Draft Standard, tedy standardu nanečisto) jen tehdy, jsou-li hotové a ozkoušené minimálně dvě nezávislé implementace, které musejí pokrývat vše, co je ve standardu napsáno.