Lekce 1.1

Jak funguje internet: TCP/IP, adresy a protokoly

Co se s daty děje na cestě sítí, jak se čtou IP adresy, co drží pohromadě lokální síť a čím se od sebe liší protokoly, které používáme každý den.

Lokální síť

Doma, ve škole ani ve firmě nevisí každý počítač na internetu sám za sebe. Je v lokální síti a ven se dostává přes jedno jediné zařízení – router. Důvody jsou dva a oba stojí za vysvětlení.

První je nedostatek adres. Veřejných IPv4 adres jsou čtyři miliardy a zařízení mnohonásobně víc, takže by se nedostalo ani zdaleka na všechna. Celá domácnost proto vystačí s jedinou veřejnou adresou, kterou má router, a uvnitř si rozdá adresy z privátního rozsahu. Ty se na internetu neobjeví, takže si je může přidělovat každý sám a nikomu se nesrazí – adresu 192.168.0.1 má v tuhle chvíli router v milionech domácností najednou.

Druhý důvod je pořádek a bezpečí. Uvnitř sítě na sebe zařízení vidí přímo: notebook najde tiskárnu, mobil najde chytrou televizi. Zvenčí na ně ale nevidí nikdo, protože jejich adresy z internetu nedávají smysl. Lokální síť tak mimoděk funguje jako plot.

Maska podsítě

Aby počítač poznal, kde jeho síť končí, nestačí mu vlastní adresa. Potřebuje k ní ještě masku podsítě. Ta rozdělí adresu na dvě části: přední kus je číslo sítě a mají ho všechna zařízení v ní stejné, zadní kus je číslo konkrétního zařízení.

U masky 255.255.255.0 jsou pevná první tři čísla adresy a na zařízení zbývá poslední. Vedle masky se používá i kratší zápis s lomítkem, kde číslo říká, kolik bitů zleva je pevných – tři čísla po osmi bitech dají /24:

Maska Zkráceně Pevná část adresy Zařízení v síti
255.255.0.0 /16 první dvě čísla 65 534
255.255.255.0 /24 první tři čísla 254
255.255.255.128 /25 první tři čísla a jeden bit navíc 126

Počet zařízení není 256, ale o dvě míň. Nejnižší adresa rozsahu (192.168.1.0) označuje síť jako celek a nejvyšší (192.168.1.255) je všesměrová – co se pošle na ni, dostanou všichni. Na zařízení tak zbývají adresy 192.168.1.1 až 192.168.1.254.

K čemu je to celé dobré? Podle masky se počítač u každého odesílaného paketu rozhoduje, co s ním. Když cílová adresa padne do jeho sítě, pošle paket rovnou příjemci. Když padne mimo, sám si s ním neporadí a předá ho bráně.

Výchozí brána

Výchozí brána (default gateway) je právě to zařízení, kterému počítač odevzdá všechno, co není určené do jeho vlastní sítě. V domácnosti i ve škole je to router a adresu má obvykle na začátku rozsahu, typicky 192.168.1.1.

Brána funguje jako vrátnice. Zásilku pro někoho ve stejné budově odnese člověk sám, cokoli mimo budovu odevzdá na vrátnici a dál to neřeší. Router se pak rozhoduje úplně stejně: co zná, pošle dál, a co nezná, odevzdá své vlastní bráně u poskytovatele připojení. Takhle paket doputuje přes několik routerů až k cíli.

DNS server

Třetí údaj, který k adrese a bráně patří, je adresa DNS serveru. Do prohlížeče píšeme seznam.cz, ale síť umí pracovat jen s čísly, takže někdo musí jméno na IP adresu přeložit. Tím někým je DNS server a počítač se ho ptá pokaždé, když narazí na jméno, které ještě nezná.

Doma bývá v kolonce DNS serveru tatáž adresa jako u brány, a není to náhoda: router obojí zvládne sám. Dotaz na jméno přijme, přepošle ho DNS serveru poskytovatele připojení a odpověď vrátí zpátky. Jak celý překlad probíhá, si podrobně ukážeme v příští lekci.

Vlastní adresa, maska a brána

Všechny tři údaje si počítač pamatuje a na požádání je vypíše. Stačí otevřít terminál:

Windows
ipconfig
Linux
ip addr; ip route
Mac
ifconfig; netstat -nr

Windows vypíšou všechno naráz, na Linuxu a Macu se ptáme dvakrát: první příkaz ukáže adresu s maskou, druhý bránu. Na Windows vypadá výpis jednoho rozhraní takhle:

Adaptér bezdrátové sítě LAN Wi-Fi:

   IPv4 adresa . . . . . . . . . . . : 192.168.1.37
   Maska podsítě . . . . . . . . . . : 255.255.255.0
   Výchozí brána . . . . . . . . . . : 192.168.1.1

Na Linuxu a Macu je zápis hutnější a údaje se hledají po řádcích:

inet 192.168.1.37/24 brd 192.168.1.255 scope global wlan0
default via 192.168.1.1 dev wlan0

Adresa stojí na řádku začínajícím inet. Na Linuxu je za ní rovnou maska jako /24, na Macu se vypíše zvlášť za slovem netmask a šestnáctkově – 0xffffff00 je totéž co 255.255.255.0. Bránu nese řádek začínající slovem default.

Rozhraní bývá ve výpisu několik: kabel, Wi-Fi a k tomu virtuální adaptéry od VPN nebo virtualizace. Zajímá nás to, přes které jsme opravdu připojení – ostatní bývají odpojená nebo úplně bez adresy.

Veřejná adresa

Adresa z výpisu je lokální, tu veřejnou počítač nezná. Má ji router a sám by nám ji řekl leda přes svoje nastavení. Rychlejší je zeptat se někoho zvenčí: stránka whatismyip.com prostě ukáže adresu, ze které jsme k ní přišli, a to je právě veřejná adresa naší sítě.

Vyzkoušejte si to na dvou zařízeních připojených ke stejné Wi-Fi. Lokální adresa se u nich bude lišit, veřejná bude stejná.

Zbývá poslední otázka: jak se vlastně dotaz z lokální sítě dostane ven a jak se odpověď trefí zpátky. To si vezmeme na další stránce.