[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í.