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.

IP adresy

Aby paket našel cíl, potřebuje adresu. IPv4 adresa je čtveřice čísel oddělených tečkami, každé od 0 do 255:

195.39.44.178

Každé z těch čísel je jeden bajt, dohromady 32 bitů. To dává přesně 4 294 967 296 adres – něco přes čtyři miliardy, což znělo v osmdesátých letech jako nevyčerpatelné číslo.

Adresa 195.39.44.178 rozložená do čtyř rámečků po jednom čísle, pod každým popisek „8 bitů“ a vpravo „= 32 bitů“. Dole pruh rámečků s rozsahy 10.x, 172.16–31.x, 192.168.x a 127.x označenými jako lokální.

Co adresa být nemůže

Když je kterékoli z těch čísel větší než 255, o IP adresu nejde – 10.129.280.1 je nesmysl, protože 280 se do jednoho bajtu nevejde. Stejně tak adresa nesmí mít víc ani míň než čtyři části.

Veřejné a lokální

Část rozsahu je vyhrazená pro sítě, které nejsou přímo na internetu – domácí, školní, firemní. Takovým adresám se říká privátní (nebo lokální) a na internetu se neobjeví:

Rozsah Kde se s ním potkáte
10.0.0.0 – 10.255.255.255 velké firemní sítě
172.16.0.0 – 172.31.255.255 střední sítě, Docker
192.168.0.0 – 192.168.255.255 domácí Wi-Fi routery
127.0.0.0 – 127.255.255.255 smyčka na vlastní počítač (localhost)

Adresa 192.168.0.2 je tedy lokální, 195.39.44.178 veřejná a 127.0.0.1 je zvláštní případ – ukazuje zpátky na tentýž počítač, ze kterého se ptáme.

Proč IPv6

Volné adresy IPv4 došly. IPv6 to řeší délkou: místo 32 bitů jich má 128, zapisuje se šestnáctkově po čtveřicích a odděluje dvojtečkou:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

Sto dvacet osm bitů dává tenhle počet adres:

340 282 366 920 938 463 463 374 607 431 768 211 456

Vyslovit se to skoro nedá – je to 340 sextilionů, tedy zhruba 3,4 × 10³⁸. Zrnek písku je na celé Zemi odhadem 7,5 × 10¹⁸, takže na každé jedno zrnko by zbylo ještě přes 45 trilionů adres. S přidělováním si dlouho nikdo hlavu lámat nebude. Přechod ale trvá roky a obě verze zatím běží vedle sebe.

Zkracování zápisu

Plný zápis IPv6 je nepříjemně dlouhý, a tak se zkracuje ve dvou krocích. Nejdřív se v každé čtveřici zahodí nuly zleva, pak se jedna souvislá řada čtveřic tvořených samými nulami nahradí dvěma dvojtečkami.

Plný zápis:

2001:0db8:0000:0000:0000:ff00:0042:8329

Bez nul zleva:

2001:db8:0:0:0:ff00:42:8329

Zkráceně:

2001:db8::ff00:42:8329

Dvě dvojtečky tedy neznamenají „jedna nula“, ale „tady chybí tolik čtveřic nul, aby jich dohromady bylo osm“. V ukázce zastupují tři čtveřice, protože zbylých pět je vidět. Adresa ::1 je ten samý trik dotažený do extrému – je to 0000:0000:0000:0000:0000:0000:0000:0001, tedy sedm čtveřic nul a na konci jednička.

A právě proto smí být :: v jedné adrese jen jednou. Kdyby šlo napsat 2001::1::1, nedalo by se poznat, jestli je první řada nul dlouhá jednu čtveřici a druhá čtyři, nebo naopak – obojí by dávalo osm.

Samotná adresa ale k připojení nestačí. Co k ní ještě patří a jak se počítač rozhodne, kam paket vlastně poslat, si ukážeme na další stránce.

Bonus

Adresa ::1 je v IPv6 totéž co 127.0.0.1 – smyčka na vlastní počítač. Zkuste si dohledat, co znamenají adresy začínající fe80:: a proč je na svém počítači uvidíte, i když se o IPv6 nikde nestaráte.