Zrození internetu 1: Jak začalo budování sítě sítí

Na začátku bylo jen pár počítačů a myšlenka, že by možná bylo dobré je propojit. Ale jak? Prvopočátky počítačových sítí znamenaly řešení mnoha úskalí.
Kapitoly článku

Aby se počítače nepřekřikovaly

Překřikování počítačů? Asi vám tento naprosto netechnický termín přijde přitažený za vlasy, ale ve skutečnosti je velmi důležitý. Odborně se nazývá „datová kolize“, nicméně mnou použitá netechnická varianta každému jasně napoví, o co vlastně jde. Počítačová síť, to je ve skutečnosti jeden velký a dlouhý drát. Ano, jasně, dnes to může být i optické vlákno, případně rádiové vlny, ale to na věci nic nemění. V tomto drátu (vlákně) může v danou chvíli „hovořit“ pouze jeden počítač. Kdyby to zkusilo počítačů více, překřikovaly by se a data by byla zkreslená, nepoužitelná. Je to jako kdyby více lidí naráz hovořilo do telefonu.

Dokud se používala ta nejstarší, hvězdicová, topologie, tento problém neexistoval. Každý počítač byl k tomu centrálnímu připojen speciální síťovou kartou, takže buď hovořil jen ten centrální, nebo onen připojený. Ani na Arpanetu nešlo o potíž, protože propojeny byly vždy jen dva počítače a to duplexní (obousměrnou) linkou. Ve chvíli, když přišel Ethernet se svou sběrnicovou topologií, kde je navěšeno na jeden drát mnohem více počítačů, nastala potíž. Jak zajistit, aby v danou chvíli „hovořil“ vždy jen jeden počítač? Jak se to tedy v Ethernetu řeší?

Před tím, než by chtěl váš malý milý a nejdokonalejší počítač poslat data do Ethernetové sítě, nejprve se pozorně zaposlouchá, jestli tam už někdo jiný nehovoří. Pokud je na drátě ticho, vyšle nejprve testovací signál a zároveň pozorně naslouchá. Pokud jsou vysílaná data stejná s těmi, která přijímá, znamená to, že vysílá pouze on sám jediný. Skvělé, v takovém případě se nezdržuje formalitami a ihned začne s vysíláním vlastních dat.

Pokud mu ale z přijímaných testovacích dat vyplyne, že stejná myšlenka s pokusem o hovor napadla ve stejném čase jiný počítač na síti, odmlčí se. Na jak dlouho? No, to je právě ten chyták – na náhodně dlouhou dobu. Kdyby se totiž všechny počítače odmlčely na stejnou dobu a potom opět zkusily komunikovat, předchozí situace by se opakovala stále dokola. Proto si počítač zvolí náhodný časový interval a pokus o komunikaci opakuje. Tím je zajištěno, že komunikovat bude vždy jen jeden. Naslouchají ale všichni. Každý má svou vlastní adresu, no a pokud data patří jemu, zpracuje je (a potvrdí příjem). Jinak se o ně nezajímá.

Vše to, co jsem zde popsal, neřeší ve skutečnosti váš počítač, ale pouze jeho síťová karta, nicméně na podstatě věci to nic nemění…

Ve výše zmíněné IBM TokenRing, kde jsou počítače zapojeny do kruhu, se onen problém s překřikováním řeší pomocí předávání tak zvaného tokenu, neboli „pešku“. Zkrátka, hovoří vždy jen jeden počítač, který má „pešek“. Pokud chce nějaká data vyslat, k přesně danému formátu dat tokenu je připojí s tím, že pomocí adresy specifikuje, komu že se data mají poslat. Pak jej pošle dál po kruhu. Pokud token doputuje k počítači, který není příjemcem, prostě jej netknutý předá dál. Příjemce z tokenu odstraní data, přidá potvrzení o správném přijetí a pošle token dál. A tak pořád, stále dokola pro větší slávu Big Blue.

Data rozsekána na balíčky

Úplně na začátku zrodu Internetu stála teorie odborně nazývaná „paket switching“. O co vlastně jde? Souvisí to s vlastní digitální přirozeností počítačových sítí. Zatímco v klasickém telefonu se data přenáší kontinuálně, ať už do sluchátka mluvíte či ne (když ne, tak se prostě přenáší mlčení), u digitálního přenosu informací má pochopitelně smysl přenášet pouze data a ticho vynechat. Jinými slovy, přenáší se pouze to, co má význam, a pouze tehdy, když je to zapotřebí. Znamená to tedy vyřešit problém přenášení dat různými rychlostmi, se zajištěním jejich maximální bezpečnosti a jistoty doručení.

Prvotní koncept byl vymyšlen Paulem Baranem na počátku šedesátých let. Spočívá v tom, že jakákoliv data, proudící počítačovou sítí, jsou rozsekána na balíky (packets), které mají přesně stanovenou strukturu, nehledě na to, že jsou označeny adresou odesilatele a příjemce. Tyto pakety proudí sítí a nemusí být posílány přesně za sebou. Mohou dokonce proudit i jinými cestami, přičemž síť je natolik inteligentním organismem, že si je schopna pohlídat jejich trasy a v případě výpadku některého uzlu provoz automaticky přesměrovat.

PaulBaran.jpg
Paul Baran – otec myšlenky přepojování paketů

Pokud se tedy rozhodnete ze serveru X stáhnout nějaký hezký hambatý film, server jej před odesláním rozseká na pakety. Každý označí adresou příjemce a pořadovým číslem. Následně jsou pakety poslány. Vzhledem k tomu, že server X je někde na druhém konci světa, k vašemu počítači pakety nedoputují ve správném pořadí, ale dejme tomu, že nejprve dorazí paket 1536, posléze 2048, následuje 768… To ale nevadí. Váš počítač s tím počítá (má to v názvu, že…) a pakety si díky jejich očíslování správně seřadí. V případě, že mu nějaký paket chybí, vyžádá si jeho opětovné poslání.

Na samém konci tohoto komplikovaného procesu je vaše nadšení ze skvělého hereckého výkonu v dotyčném „uměleckém díle“…

Toto vyprávění je postaveno na informacích z mnoha internetových zdrojů a především z knih „A history of the Internet and the digital future“ a skvělé „Where wizards stay up late - the origins of the Internet“. Díky nim můžeme nahlédnout hluboko do šedesátých let, kdy se rodila světová počítačová.

Jak přesně pracuje síťová komunikace? Jak získá váš milovaný počítač tu správnou síťovou adresu a co se skrývá pod tajuplnými zkratkami DNS či WWW? A co se vlastně stane, když zmáčkneme to modré éčko? O tom všem si budeme povídat příště…

Článek je součástí seriálu o zrození internetu, všechny díly najdete zde

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,