8. Počítačové sítě, ISO/OSI model, vlastnosti fyzických vrstev, topologie, řízení přístupu k médiu, kódování, spolehlivost datových přenosů, protokoly rodiny TCP/IP

Počítačové sítě

Historie internetu

  • 1969 Arpanet
  • 1982 TCP/IP
  • 1991 WWW

ISO/OSI model (International Organization for Standardization/Open Systems Interconnection model)

ISO OSI model je rozdělený na vrstvy. Teorie je taková, že v každé vrstvě se řeší něco jiného a není potřeba znát fungování jiných vrstev. Třeba emailový klient nepozná, jestli mu data přišla přes wifi nebo kabelem. Data vytvořená v aplikační vrstvě (packet) se obalí hlavičkou nižší vrstvy, postupně se uzavírá do dalších a dalších hlaviček, poslední je hlavička ethernetového rámce. Zařízení se vždy dívají jen na hlavičku z vlastní vrstvy - třeba router posílá packety dál podle IP adresy a je mu jedno, jestli to je TCP nebo UDP.
Vrstva
Vrstva anglicky
Protokoly
Název v TCP/IP
Zařízení
Pomůcka
Aplikační
Application
FTP, HTTP, SSH
Aplikační

All
Prezentační
Presentation
SSL, MIME
Aplikační

People
Relační
Session
SQL, PAP
Aplikační

Sleeping/Resting
Transportní
Transport
TCP, UDP
Trasportní

Through
Síťová
Network
IP
Síťová
Router
Networking
Spojová
Link
MAC, Ethernet
Vrstva síťového rozhraní
Switch
Lectures
Fyzická
Physical

Vrstva síťového rozhraní
Hub
Fail
Table 0.1: Vrstvy ISO/OSI modelu
V praxi to ale tak vždy není. Třeba FTP posílá IP adresy uvnitř svého packetu, takže když prochází FTP packet routerem na hranici sítě (bránou), ve kterém se adresy překládají (NAT níže), je potřeba packet rozbalit a upravit IP adresy i v něm.
TCP/IP je obecnější model, který má vrstvy jen čtyři.

Protokoly

Ethernet
  • Na fyzické úrovni je nutné řešit, aby nevysílalo víc zařízení najednou, jinak se signál zaruší a nelze ho poslouchat (tomu se říká kolize)
  • Kolizím lze předcházet, třeba tím, že každý připojený stroj má přidělený čas k vysílání (tak to řešil protokol token ring)
  • Ethernet kolizím nepředchází, ethernet je detekuje. Každé zařízení během vysílání poslouchá, jestli nevysílá někdo jiný. Pokud ano, obě zařízení přestanou hned vysílat a budou opakovat vysílání po náhodné době.
  • V ethernetu se data ověřují pomocí Cyclic Redundancy Check (CRC)
ARP (Address Resolution Protocol)
  • Převádí IP adresu na MAC adresu
  • Odesílatel pošle požadavek “Who has 192.168.37.178”, aby zjistil, kdo má danou IP. Dostane odpověď a MAC adresu si uloží do tabulky pro příště.
IP
  • Slouží k adresaci strojů v síti
  • IPv4: Čtyři čísla po 8 bitech, celkem 32 bitů, má 4 miliardy adres, ale dnes už nestačí
  • Adresy jsou rozděleny do menších sítí, ty se udávají maskou
  • Maska v IP verzi 4 označuje, kolik bitů na začátku adresy má celá síť stejně, ostatní bity identifikují zařízení uvnitř sítě (např. 192.168.0.0/16)
  • IPv6: Osm čísel po 16 bitech, celkem 128 bitů, tj 3*10^38 adres, to už by stačit mělo
NAT
IP adresy uvnitř sítě (třeba 192.168.*.*) nejsou v celém internetu unikátní, taky se jim říká neveřejné. Routery v internetu packety z neveřejných adres mažou. Aby mohly počítače z vnitřních sítí komunikovat se serverem v internetu, musí jim být přidělena veřejná IP adresa, na kterou jim pak server pošle odpověď. Překlad neveřejných IP adres na veřejné obvykle zajišťuje hraniční router sítě (brána) protokolem Network Address Translation (NAT) s pomocí tabulky. Takový router (většinou patří poskytovateli internetu) má několik veřejných IP adres, a když přijde z vnitřní sítě požadavek něco poslat do internetu, uloží si do tabulky neveřejnou IP počítače a k tomu přidělí veřejnou IP. Jakmile přijde odpověď, podívá se do tabulky, aby zjistil, kterému počítači má packet poslat. Při pozdější komunikaci může být veřejná adresa přidělená počítači jiná. Pokud je adres málo, lze pracovat i s porty.
UDP
User Datagram Protocol slouží k posílání packetů přes síť. UDP neumí garantovat, že všechny packety budou doručeny, a že budou doručeny ve správném pořadí. Občas se prostě stane, že se nějaký packet úplně ztratí. UDP se používá u služeb, kde je prioritou čas, a není důležité mít kompletní informace - třeba u online streamů
TCP
Transmission Control Protocol také řídí posílání dat, ale garantuje, že dorazí v pořádku. Spojení je navázáno “handshakem”, kdy nejprve stroj A vyšle žádost o spojení (SYN), spojení je potvrzeno strojem B (SYN ACK), a stroj A potvrdí, že bylo spojení úspěšně navázáno (ACK). Každý packet má své číslo, a přijemce musí potvrdit, že packet obdržel odesláním zprávy ACK. Pokud přijetí nepotvrdí (nebo se ACK ztratí), tak bude packet odeslán znovu. TCP se používá u služeb, kde chceme zaručeně správné a kompletní informace a nepotřebujeme je okamžitě - třeba email.
ICMP
Internet control message protocol je nástroj, který informuje o stavu sítě. Jeho součástí je třeba ping nebo traceroute. Zprávy “Destination unreachable” nebo “Time limit exceeded” jsou taky z ICMP - odesílá je router, když maže packet, který se pohyboval internetem moc dlouho. Stáří IP packetu (Time To Live - TTL v jeho hlavičce) se počítá podle počtu navštívených routerů, číslo se postupně snižuje, na nule je packet smazán, protože zřejmě zabloudil.
HTTP
HyperText Transfer Protocol funguje na principu klient server. Klient posílá serveru požadavky, třeba GET, POST, PUT, DELETE, PATCH server je vykonává a odpovídá třímístným číselným kódem:
  • 1..: Informativní
  • 2..: Vše proběhlo ok (200 OK)
  • 3..: Přesměrování (301 MOVED PERMANENTLY)