Lekce 12 - Sítě - Internet a směrování dat
V minulé lekci, Sítě - Address Resolution Protocol, jsme si řekli co je to IP adresa a jaký je její vztah s MAC adresou. Následně jsme si ukázali jak za pomoci ARP protokolu zjistit z IP adresy danou MAC adresu.
Tato lekce obsahuje obecné informace o tom, co je vlastně Internet, jaká je jeho struktura, jak pracují routery apod. Žádné konkrétní detaily zde nenajdete, a není problém článek přeskočit a vrátit se k němu až po přečtení dalších dílů – ty budou již zaměřené na technické detaily.
LAN -> MAN -> WAN -> Internet
Nejzákladnějším stavebním blokem Internetu jsou LAN (local area network). Jako LAN se označuje počítačová síť, která pokrývá malé území. Nejmenší LAN jsou ty v domácnostech (2 – 5 zařízení), ty největší spojují třeba několik firemních budov (tisíce zařízení). Také můžeme říct, že je to síť, která má jednoho majitele (domácí síť - rodina, firemní síť - společnost). Na mapě by mohly vypadat takhle:

Domácnosti, firmy a další instituce si zařizují (a platí) připojení k Internetu u poskytovatelů Internetového připojení – tzv. ISP (Internet service provider). ISP může být v jednom městě i více, pro jednoduchost budu předpokládat jednoho. Všechny LAN ve městě tím pádem vedou k tomuto ISP, jsou navzájem propojené, a dohromady tvoří síť označovanou jako MAN (metropolitan area network). Tyto počítačové sítě tedy obvykle pokrývají území jednoho města/obce, případně zahrnují i přilehlé oblasti:

Pokud propojíme více MAN, dostaneme WAN (wide area network). Tady se neomezujeme na nějaké konkrétní území – WAN = spojení dvou či více MAN. Můžeme mít tedy WAN Zlín + Otrokovice, WAN Morava, WAN Česká republika, WAN Evropa…
A největší existující WAN – mezikontinentální propojení většiny měst a států - právě to je Internet. Je to síť domácností, firem, ISP, rozvodových center, atd. To vše je pospojované jak měděnými dráty, tak optickými vlákny. Internet umožňuje velmi rychlý přenos informací (doba putování signálu na konec světa a zpět může být ve stovkách milisekund). A také je díky své architektuře odolný vůči výpadkům nebo poškození (což byl původní primární účel při jeho návrhu). Je to zajištěno tím, že na většinu míst vede více spojů (cest), výpadek elektřiny nebo katastrofa v jedné oblasti nemusí tedy nutně odstavit přístup k Internetu oblastem jiným – komunikace bude probíhat jinudy. Největší škoda může být způsobena narušením významného páteřního spojení - např. podmořských kabelů v Atlantiku.
Poskytovatelé Internetového připojení
Už jsem zmínil, že domácnosti, firmy a další platí poplatky ISP za poskytování připojení k Internetu. Otázka zní, komu platí tito ISP za přístup k internetu? A komu platí tito za přístup k Internetu?
ISP se člení na tři úrovně (tiery): Tier 1, 2, 3.
Tier 1 ISP
Je jich celkem 15 (z toho 9 má HQ v USA). Jsou to společnosti, které mají ve správě hlavní síťové rozvodny Internetu a propojení mezi nimi. Jádrové rozvodny jsou propojené jak v rámci jedné společnosti, tak s rozvodnami několika ostatních Tier 1 ISP. Přesnou světovou mapu jsem nenašel, ale takhle by mohlo vypadat rozložení hlavních rozvodů v Evropě:

Je vidět, jak se kabely sbíhají ve velkých městech, kde jsou rozvodny. Od Británie poté vede pás optických podmořských kabelů středem Atlantiku k pobřeží USA.
Těchto 15 Tier 1 ISP tvoří tzv. páteř internetu (Internet Backbone). Tier 1 ISP neplatí nikomu poplatky, naopak – každý, kdo potřebuje přístup do globálního Internetu, musí platit poplatky Tier 1 ISP. Na tuto páteřní síť se napojují buď Tier 2 ISP, nebo centra největších světových společností.
Tier 2 ISP
Neboli národní/regionální ISP – poskytují připojení v rámci svého státu (nebo jeho oblasti), a platí za připojení k páteřní Tier 1 síti. I Tier 2 poskytovatelé mohou být navzájem propojeni – všechna data tak nemusí putovat přes páteřní síť, a tím se zamezí jejímu přetížení.
Velké korporace si opět mohou v rámci zvýšení spolehlivosti či rychlosti zařídit připojení přímo s Tier 2 rozvodnami, ale jejich hlavní účel je poskytnout přístup Tier 3 ISP:
Tier 3 ISP
Alias lokální poskytovatel připojení – obvykle pokrývají oblast jednoho města + jeho okolí. Za přístup k Internetu samozřejmě platí poskytovatelům druhé úrovně.
Od těchto ISP si domácnosti a běžné instituce pořizují přístup k Internetu.
Architektura (struktura) Internetu
Internet se v podstatě skládá jen ze dvou hlavních komponent: Routerů a spojení (kabelů). Úkolem routerů je dopravit data, která obdrží, na správné cílové zařízení (PC, server, jiný router). Schematický obrázek Internetu může vypadat třeba takhle (ty modré věci, to je obecná značka routeru):

Modré routery znázorňují ty routery, které nejsou spojeny s koncovými zařízeními – pouze mezi sebou. Takové se nacházejí v budovách lokálních ISP a v centrálách Tier 2 a Tier 3 ISP. Jejich úkolem je přenést data přes Internet do cílové LAN, aby LAN router mohl přeposlat data cílovému zařízení.
Internet cloud

Pokud řešíme komunikaci mezi dvěma zařízeními (zde PC -> server) na úrovni protokolů (zpracování, sestavení paketů a rámců), tak nás nezajímá, kolik se mezi nimi nachází routerů, přes jaké kabely komunikace prochází, apod. - prostě předpokládáme, že si data přes Internet cestu samy "najdou". Proto se síť routerů znázorňuje tímto způsobem – jako „Internetový obláček“ (nepleťte si to s cloudovým úložištěm!).
IP adresy a routování
Možná jste si 2 odstavce zpátky položili otázku: „Jak můžou routery přesměrovat data na správné místo? Jak můžou vědět, kde se jaký stroj nachází?“ Začneme od začátku:
Už v minulém díle jsem se zmínil o IP adresách. Je to 32-bitová adresa, kterou můžeme přidělit zařízení (resp. jeho NIC). Na Internetu má (musí mít) každé koncové zařízení jedinečnou IP adresu (ano, toto byl původní záměr, ale vyskytl se drobný problém – o tom se dočtete v příštím díle), a routery mají minimálně 2 IP adresy, protože mají minimálně 2 NIC.
Zjednodušeně: Routery vytvářejí ve své paměti mapu, kde se nacházejí jaké zařízení (IP adresy) – tento proces se nazývá Routing. A pomocí těchto map – routovacích tabulek – přeposílají data na cílová zařízení – tento proces se označuje jako forwarding.
Routování
Routování je poměrně složitý proces. Existuje několik routovacích protokolů s netriviálními algoritmy. Jeho základní princip je však vcelku jednoduchý:
Pokud jsou k routeru (A) připojené koncové zařízení přímo, může si router (A) do své routovací tabulky uložit jejich adresy. Tuto tabulku poté přepošle svému „sousednímu“ routeru (B). Ten si záznamy přidá do své routovací tabulky – pokud obdrží data pro nějaký PC, co se nachází za prvním routerem (A), podle své routovací tabulky rozhodne, že je data třeba odeslat právě na první router (A). Router (B) poté sdílí tuto tabulku se svými dalšími sousedy, ti zase se svými, až se informace postupně rozšíří do všech routerů. Tak každý router ví, kde se jaké zařízení nachází, a na jaké routery případně forwardovat data.
Tabulky se odesílají periodicky v určitých intervalech (např. 30 sekund) – když se připojí nové zařízení, za několik minut o něm může vědět celý Internet.
Zní to docela jednoduše, a to proto, že to tak bohužel reálně nefunguje. Na světě je prý 3x více zařízení než lidí, a kdyby měl každý router mít v tabulce každé konkrétní zařízení, a tuto tabulku navíc periodicky posílat sousedům… Prakticky nerealizovatelné. Naštěstí mají routery usnadněnou práci, protože IP adresy nejsou přiřazovány jen tak „random“, ale systematicky:
Přidělování IP adres
Všechny IP adresy „vlastní“ organizace Internet assigned numbers authority (IANA), a ta je přiděluje celkem pěti světovým regionům. Zde se můžete dozvědět detaily: http://www.iana.org/numbers. Každý region dostává určité rozsahy IP adres (takže můžeme rozhodnout, která IP adresa je „africká“ a která je ze Severní Ameriky), a region z tohoto rozsahu přiděluje další díly jednotlivým zemím, jednotlivé země zase jednotlivým Tier 2 ISP. Tier 2 ISP pak přidělují adresy lokálním ISP, a až tito Tier 3 ISP přidělují adresy nám – uživatelům.
Routování je tímto velmi usnadněno – pokud „americký“ router dostane paket s cílovou IP adresou z Evropy (ČR), stačí to poslat na sousední router, který je „blíže“ Evropě. Tak se paket dostane k „evropským“ routerům, kterým zase stačí vědět, že je to paket pro ČR. Další router už bude vědět, že jej má odeslat do Olomouckého kraje. Tam se dostane k lokálnímu ISP, a jejich router paket přepošle na správnou LAN.
Routovací tabulky tedy nemusí obsahovat konkrétní IP, ale pouze rozsahy. Vlastně vůbec neobsahují (výjimka se ale asi najde) konkrétní IP adresy, ale tzv. podsítě – o nich se dočtete v dalších dílech.
Default route
Kromě toho má (nebo by alespoň měl) každý router nakonfigurovanou tzv. default gateway/route (jeden ze sousedních routerů je zvolen jako "výchozí") - na něj pošle každý paket, jehož cílovou adresu nemá router ve své tabulce. Toto dovoluje, aby některé (spíše jen ty menší, okrajové Tier 3 ISP) routery měly konkrétní záznamy jen o svém blízkém okolí, a s čím si neví rady, to pošlou přes default route. Takto se třeba zvýší pravděpodobnost doručení paketů na "čerstvě" přidělené IP adresy, o nichž ještě nemají "povědomí" všechny routery (ačkoliv to je otázka několika minut).
To by bylo k obecnostem vše.