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