[odpočítávání písničky: 7, 6, 5, 4, 3, 2, 1] Internet: pakety, směrování (routing) a spolehlivost
Ahoj. Jmenuji se Lynn. Jsem konstruktérka software tady u Spotify a nedělá mi problém přiznat, že
často beru spolehlivost internetu jako samozřejmost. Už jen to obrovské množství informací, které po
Internetu kolují, je ohromující. ale jak je možné, aby k Vám byl každý kousek dat dodán tak spolehlivě?
Řekněme, že si třeba chcete přehrát nějakou písničku ze Spotify. Zdá se, že Váš počítač
se připojuje přímo k serverům Spotify, a Spotify Vám posílá písničku po přímé
lince. Ale ve skutečnosti takto Internet nefunguje. Kdyby byl
Internet sestaven z přímých účelových spojů, bylo by nemožné udržet vše v chodu, když by se
připojovaly miliony uživatelů. Zejména proto, že není žádná záruka, že všechny počítače a
všechny dráty budou pracovat současně. Namísto toho jsou data po Internetu přepravována
mnohem méně přímo. Před mnoha lety, začátkem 70. let 20. století jsme můj partner Bob Kahn a já
začali pracovat na návrhu toho, co se dnes nazývá Internet. Bob a já jsme měli povinnost a příležitost
navrhnout protokoly a architekturu Internetu. Takže jsme vytrvali a celou
tu dobu až do teď jsme se účastnili růstu a vývoje internetu. Způsob,
jakým jsou informace předávány z jednoho počítače do druhého, je celkem zajímavý.
Musí probíhat po pevně stanovené cestě. Kromě toho se ta cesta může uprostřed konverzace
jednoho počítače s druhým změnit. Informace na Internetu přecházejí z jednoho počítače do
druhého způsobem, kterému říkáme informační pakety, a paket cestuje po internetu z jednoho
místa na druhé značně obdobně tomu, jako my cestujeme autem. Podle toho, nakolik je silnice
ucpaná nebo jinak ovlivněná podmínkami, byste se mohli rozhodnout, nebo muset, zvolit pokaždé
jinou cestu k tomu, abyste se dostali do toho stejného místa, kam obyčejně cestujete. A.
stejně jako v autě můžete přepravovat velmi mnoho různých druhů věcí, tak také lze mnoho
druhů digitálních informací přepravovat pomocí paketů IP, ale jsou tu určitá omezení. Co když například
potřebujete přemístit raketoplán z místa, kde byl postaven, na místo, odkud bude vypuštěn. Raketoplán
se nevejde na jeden nákladní vůz, takže je potřeba jej rozložit na kusy a přepravovat pomocí vozového parku
nákladních vozů. Ty by mohly jet různými cestami a mohly by se dostat do stejného místa v různých
časových okamžicích. Avšak když už budou všechny součásti na místě, můžete z nich složit
celý raketoplán, a ten bude připraven k vypuštění. Na Internetu fungují věci obdobně. Jestliže máte
velký obrázek, který chcete poslat příteli nebo jej nahrát na nějakou webovou stránku, mohlo by se
jednat o obrázek složený z desítek milionů bitů z jedniček a nul, příliš mnoho k zaslání v jednom
paketu. Protože data obrázku jsou na počítači, počítač, který obrázek odesílá, jej může rychle
rozložit na stovky nebo i tisíce menších částí zvaných pakety. Na rozdíl od osobních a nákladních
aut tyto pakety nemají řidiče a nemusí se rozhodovat, kudy pojedou. Každý paket má
internetovou adresu místa, odkud pochází a místa, na které cestuje. Speciální počítače
na internetu, zvané routery (směrovače) fungují jako vedoucí přepravy tak, že pakety hladce
navádějí skrze sítě. Je-li některý směrovač přecpán, mohou různé jednotlivé pakety cestovat různými
cestami po internetu a do místa mohou dorazit v mírně různou dobu nebo i nedorazit.
Promluvme si nyní o tom, jak to funguje. V rámci internetového protokolu sleduje
každý směrovač více cest, po kterých jsou pakety zasílány, a pro každý kousek dat
volí nejlevnější dostupnou cestu podle adresy IP cíle pro daný paket.
Pojem „nejlevnější“ v tomto případě nehovoří o financích, ale o čase a o netechnických faktorech,
jako je například politika a vztahy mezi různými společnostmi. Často tomu bývá tak, že nejlepší
dráha pro data není nezbytně ta nejpřímější. Mít různé možnosti cesty dělá síť tolerantní vůči chybám.
To znamená, že síť může pokračovat v odesílání paketů, i kdyby se něco opravdu, ale opravdu vážného pokazilo.
To je základem klíčového principu Internetu: spolehlivosti. Takže, chcete si vyžádat nějaká
data a ne vše je dodáváno? Řekněme, že si chcete třeba poslechnout písničku.
Jak si můžete být na 100% jisti, že všechna data budou dodána tak, aby byla písnička bez chyby přehrána?
Představujeme Vám Vašeho nejlepšího přítele, TCP (Transmission Control Protocol). TCP se daří zasílat a
přijímat všechna Vaše data jako pakety. Představte si to jako takovou poštu se zárukou.
Když si na svém zařízení vyžádáte nějakou písničku, Spotify Vám písničku pošle rozdělenou na mnoho
paketů. Když pakety dorazí, TCP udělá kompletní inventář a pošle zpět potvrzení přijetí každého
paketu. Jestliže jsou všechny pakety na místě, TCP odepíše Vaši dodávku a máte to hotovo.
(písnička je přehrávána) Jestliže TCP shledá, že nějaké pakety chybí, neodepíše to, protože by Vaše
písnička nezněla tak dobře, nebo by jí kus chyběl. Každý chybějící nebo neúplný paket
pošle Spotify znovu. Až TCP ověří dodání mnoha paketů pro onen konkrétní daný požadavek
na píseň, Vaše píseň začne být přehrávána. Vynikající na systémech TCP a směrovačů je, že
jsou škálovatelné. Mohou pracovat s osmi zařízeními nebo s osmi miliardami zařízení.
Ve skutečnosti díky principům tolerance vůči chybám a redundance, čím více routerů přidáváme,
tím spolehlivějším se Internet stává. Vynikající je také to, že Internet můžeme nechat rozrůstat
a měnit jeho velikost, aniž bychom museli přerušit služby někomu z těch, kdo jej používají.
Internet je tvořen stovkami tisíců sítí a miliardami počítačů a zařízení propojených fyzicky. Tyto
různé systémy tvořící Internet se navzájem spojují, komunikují navzájem jeden s druhým
a spolupracují, a to díky dohodnutým normám řídícím způsob zasílání dat na internetu.
Výpočetní zařízení nebo routery na internetu umožňují všem paketům dojít na místo, kde
budou opět poskládány do stejného pořadí, bude-li třeba To se odehrává mnoho miliardkrát
denně, ať už právě Vy nebo Vaši přátelé posíláte e-mail, navštěvujete webovou stránku, děláte
video chat, používáte mobilní aplikaci, nebo když senzory nebo zařízení na internetu
navzájem komunikují.