ISO/OSI model, enkapsulace, IP adresace, linková vrstva, LLC, MAC, přepínání, VLAN, síťová vrstva, směrování, IPv4, IPv6
Referenční model OSI, enkapsulace/dekapsulace PDU, principy IP adresace, linková vrstva a její podvrstvy, Ethernet, síťová zařízení, přepínání, VLAN, síťová vrstva, směrovače, statické a dynamické směrování, protokoly IPv4 a IPv6.
📚 ISO/OSI model – 7 vrstev
Idea pochází z poloviny 80. let. Cílem bylo standardizovat komunikaci tak, aby zařízení různých výrobců mohla spolupracovat. Model definuje 7 hierarchicky uspořádaných, funkčně disjunktních vrstev.
| # | Vrstva | PDU | Příklady protokolů | Síťové zařízení |
|---|---|---|---|---|
| 7 | Aplikační | Data | HTTP, FTP, DNS, SMTP | — |
| 6 | Prezentační | Data | TLS, XML, RPC | — |
| 5 | Relační | Data | NFS, NetBIOS | — |
| 4 | Transportní | Segment | TCP, UDP | — |
| 3 | Síťová | Paket / Datagram | IP, ICMP, ARP | Router (směrovač) |
| 2 | Linková | Rámec (Frame) | Ethernet, WiFi, PPP | Switch (přepínač), Bridge (most) |
| 1 | Fyzická | Bity | — | Hub, Repeater (opakovač) |
TCP/IP model je zjednodušení OSI (4 vrstvy): Aplikační (OSI 5–7) + Transportní (OSI 4) + Internetová/IP (OSI 3) + Přístup k síti (OSI 1–2).
📦 Enkapsulace a dekapsulace
Enkapsulace = přidávání hlaviček při sestupu vrstvami na straně odesílatele:
- PDU7 = ALH + DATA
- PDU6 = PLH + PDU7
- PDU5 = SLH + PDU6
- PDU4 = TLH + PDU5 → segment
- PDU3 = NLH + PDU4 → paket / datagram
- PDU2 = DLH + PDU3 + trailer → rámec
- PDU1 = bity (fyzická reprezentace rámce na médiu)
Dekapsulace = odstraňování hlaviček při výstupu vrstvami na straně příjemce (opačný postup).
🏷️ Princip IP adresace – motivace a IPv4
- IPv4 = 32 bitů → max. 232 ≈ 4 miliardy adres (vyčerpány ~2011)
- IPv6 = 128 bitů → 2128 ≈ 3×1038 adres
- IPv4 adresa se zapisuje tečkově: 4 oktety × 0–255, např.
192.168.1.100
Prefixová notace (CIDR): Tvar IP/prefix, kde prefix = počet bitů společných pro všechny stanice v síti.
- Maska sítě = prefix bitů 1 zleva, zbytek 0. Př: /24 →
255.255.255.0 - Adresa sítě = IP AND maska → nejnižší adresa rozsahu (nelze přiřadit stanici)
- Broadcast = nejvyšší adresa rozsahu (nelze přiřadit stanici)
- Brána (Gateway) = směrovač sítě, typicky 2. nejnižší nebo 2. nejvyšší adresa
- Počet využitelných adres pro stanice: 232−N − 2 (odečítáme síť + broadcast)
Prefix /30 → 2 bity pro stanice → 4 adresy celkem:
123.122.120.120→ adresa sítě (bity 00)123.122.120.121→ stanice (bity 01)123.122.120.122→ brána (bity 10)123.122.120.123→ broadcast (bity 11)
Jak zjistit adresu sítě? IP AND Maska po bitech. Jak zjistit, zda dvě IP jsou ve stejné síti? ANDovat obě s maskou – výsledky musí být stejné.
Speciální adresní rozsahy IPv4:
| Rozsah | Typ | Použití |
|---|---|---|
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | Privátní | Lokální sítě – nesměrovatelné v Internetu |
169.254.0.0/16 | Link-local (APIPA) | Automatická konfigurace bez DHCP |
127.0.0.0/8 | Loopback | Testování síťové vrstvy (sám sobě), typicky 127.0.0.1 |
224.0.0.0/4 | Multicast | Skupinové doručení dat |
0.0.0.0 | Nedefinovaná | Klient neznající svou IP (DHCP) |
255.255.255.255 | Broadcast | Obecná broadcastová adresa |
Adresace dle třídy (classfull – historická, ale stále relevantní): Třídy A (/8), B (/16), C (/24), D (multicast), E (rezerva). Pokud v Linuxu nezadáte masku, systém zvolí masku dle třídy.
🔗 Linková vrstva – podvrstvy MAC a LLC
| Podvrstva | Plný název | Funkce | Charakter |
|---|---|---|---|
| MAC | Medium Access Control | Přístup k médiu, multiplex, MAC adresy, přepínání rámců, VLAN, QoS, filtrování adres, řízení front | Hardwarově závislá |
| LLC | Logical Link Control | Kódování, řízení toku, detekce chyb (CRC), framing (dělení na rámce, určení konce rámce) | Hardwarově nezávislá (IEEE 802.2) |
Multiplex = technika umožňující sdílení přenosového média více účastníky. Bez multiplexu by docházelo ke kolizím = simultánní a neoddělitelné použití média dvěma+ stanicemi.
| Typ | Zkratka | Princip | Příklad |
|---|---|---|---|
| Časový | TDMA | Každý účastník má svůj časový slot | GSM, starý Ethernet |
| Frekvenční | FDMA | Každý účastník komunikuje na jiné frekvenci | Rádio, WDM v optice |
| Kódový | CDMA | Sdílejí medium, rozlišení kódem | 3G mobilní sítě |
| Prostorový | SDMA | Různé prostory/směry se neovlivňují | Wi-Fi MIMO, buňkové sítě |
WDM (Wavelength Division Multiplex) = speciální FDMA v optice: více různobarevných zdrojů světla do jednoho vlákna, každá barva nese vlastní data. MUX skládá, DEMUX rozděluje.
CSMA – metody přístupu k médiu (Carrier Sense Multiple Access = příposlechové metody):
- Prostá CSMA – naslouchá, pokud volné → vysílá. Při kolizi ji nedetekuje → musí ji řešit vyšší vrstva.
- CSMA/CD (Collision Detection) – při detekci kolize ihned odešle JAM signál (informuje všechny), čeká náhodnou dobu, zkusí znovu. Kolizní okénko (KO) = doba od začátku vysílání, za kterou se signál rozšíří po médiu. Drátový Ethernet.
- CSMA/CA (Collision Avoidance) – vyhýbá se kolizím před vysíláním (rezervace kanálu). Wi-Fi (IEEE 802.11).
CRC (Cyclic Redundancy Check) = kontrolní součet pro detekci chyb při přenosu (LLC vrstva). Funguje na principu binárních polynomů:
- Kodér z dat vypočítá CRC (dělení generujícím polynomem G(x)) a připojí za data: B(x) = A(x)·G(x)
- Dekodér přijatá data podělí G(x): zbytek = 0 → bezchybný přenos; zbytek ≠ 0 → chyba
- CRC dokáže detekovat celé shluky chyb
- Příklady: CRC-8 (ATM), CRC-16 (Bisync), CCITT-32 = Ethernet, SATA
Potvrzovací schémata LLC (řízení toku):
- Stop & Wait – čeká na ACK po každém rámci; jednoduché, neefektivní
- Selective Repeat – posílají se jen chybné rámce znovu
- Go-Back-N – při chybě se opakují všechny rámce od chybného
- Klouzavé okno – viz transportní vrstva
🔌 MAC adresy, Ethernet, síťová zařízení a přepínání
- První 3 byty = OUI (Organizationally Unique Identifier) – přidělen výrobci
- Poslední 3 byty = sériové číslo rozhraní
- Broadcast MAC = FF:FF:FF:FF:FF:FF
- MAC adresy jsou ploché (nehierarchické) → nelze dle nich efektivně směrovat
- Standardizováno jako IEEE 802.3 (Ethernet)
Formát rámce Ethernetu: Preambule + SOF | Cílová MAC (6 B) | Zdrojová MAC (6 B) | EtherType (2 B) | Data (46–1500 B) | FCS/CRC-32 (4 B)
- MTU (Maximum Transfer Unit) = max. velikost dat v rámci (Ethernet = 1500 B). Nastavuje se na rozhraní, není součástí rámce!
- Autonegociace = dohodnutí parametrů přenosu (rychlost, duplexita) mezi stranami – umožňuje zpětnou kompatibilitu
| Zařízení | Vrstva OSI | Pracuje s | Princip / Vlastnost |
|---|---|---|---|
| Hub / Repeater | 1. Fyzická | Bity | Zesiluje/opakuje signál, rozesílá na všechny porty. Sdílená kolizní doména. |
| Bridge (most) | 2. Linková | Rámce (MAC) | Propojuje části sítě, málo portů (2–4), bez bufferů. Hardwarové i softwarové. |
| Switch (přepínač) | 2. Linková | Rámce (MAC) | Přepíná dle MAC tabulky, hodně portů, buffery, HW akcelerace u dražších. |
| Router (směrovač) | 3. Síťová | Pakety (IP) | Směruje pakety mezi různými sítěmi. Odděluje broadcastové domény. |
Přepínací tabulka se naplňuje učením (learning):
- Při příchodu rámce si switch zapamatuje: zdrojová MAC → port
- Pokud cílová MAC není v tabulce → rámec se pošle na všechny porty krom zdrojového (flooding)
- Z odpovědi se naučí port cílové stanice
Režimy přepínání:
- Store-and-Forward (SF) – přijme celý rámec, zkontroluje CRC, pak odešle. Filtruje chybné rámce, větší latence. Předpokládaný v BI-PSI.
- Cut-Through (CT) – přečte jen cílovou MAC (6 B), ihned začne přeposílat. Nižší latence, bez kontroly CRC.
- Fragment-Free (FF) – přečte celou hlavičku (64 B), pak přeposílá. Kompromis CT/SF.
Kolizní doména = množina stanic sdílejících médium. Switch ji odděluje (každý port = vlastní kolizní doména).
Broadcastová doména = množina stanic, které přijmou broadcast rámec. Switch ji NEodděluje – to dělá až router (3. vrstva).
Spanning Tree Protocol (STP) – eliminuje smyčky v topologii přepínačů:
- Smyčky způsobí nekonečné obíhání rámců (broadcast storm) a zahltí síť
- STP vytvoří z topologie kostru grafu (spanning tree) bez smyček, zachová všechny uzly
- Princip: zaplavování (flooding) se zprávy s unikátním ID. Duplicitní zpráva = detekovaná smyčka → port se zablokuje
- Výsledek: jen linky, přes které nebyla doručena duplicitní zpráva
ARP (Address Resolution Protocol) = mapování IP → MAC v lokální síti:
- Stanice A nezná MAC stanice B → odešle ARP-REQUEST broadcastem (FF:FF:FF:FF:FF:FF)
- Stanice B odpovídá ARP-REPLY unicastem se svou MAC
- A si MAC B uloží do ARP tabulky (cache)
DHCP = Dynamic Host Configuration Protocol. Automatické přidělení IP adresy. Protokol aplikační vrstvy (porty 67/68). Průběh – DORA:
- Discover – klient broadcastem hledá DHCP server (zdrojová IP: 0.0.0.0)
- Offer – server nabídne volnou IP
- Request – klient broadcastem potvrzuje zájem o nabídnutou IP
- ACK – server potvrdí přidělení
ICMP = Internet Control Message Protocol. Ověření dostupnosti (ping = ICMP REQUEST/REPLY), diagnostika cesty (traceroute = ICMP s inkrementálním TTL).
🌐 Virtuální sítě (VLAN)
Důvody pro VLAN: přehlednost (jen co k sobě patří), bezpečnost (provoz jde jen kam má), efektivita (broadcast se šíří jen v dané VLAN), jednoduchost správy (jeden velký switch místo více malých).
Typy VLAN:
- Dle portů – VLAN určena tím, ke kterému portu je stanice připojena
- Dle MAC adres – přiřazení dle zdrojové MAC
- Dle protokolu – dle protokolu vyšší vrstvy (hlas, data)
- Dle značky (tagged – IEEE 802.1Q) – dnes nejběžnější
- Q-in-Q – VLAN uvnitř VLAN (vícenásobné tagování)
Obsah tagu: TPID (0x8100, 16 b) | PCP (priorita, 3 b) | CFI (formát endian, 1 b) | VID (VLAN ID, 12 b → max. 4096 VLAN)
- Trunk port = port přenášející provoz více VLAN najednou (tagged rámce). Propojuje přepínače.
- Access port = port ke koncové stanici (untagged). Switch přidá/odebere tag interně dle konfigurace portu.
Přepnutí tagovaného rámce: dle VID se identifikuje VLAN → dle přepínací tabulky se zvolí port → rámec odejde tagged nebo untagged dle nastavení portu.
🗺️ Síťová vrstva – směrovače a princip směrování
Klíčové protokoly: IP (Internet Protocol), ICMP.
Struktura IPv4 paketu – klíčová pole:
| Pole | Velikost | Popis |
|---|---|---|
| Verze | 4 b | 0x4 pro IPv4 |
| IHL | 4 b | Délka hlavičky v 32-bitových slovech (min. 5 = 20 B) |
| TOS/DSCP | 8 b | Typ služby – priorita pro QoS |
| Celková délka | 16 b | Délka paketu v bajtech (max. 65535) |
| Identifikace | 16 b | Identifikátor pro skládání fragmentů (stejné ID = patří k sobě) |
| Příznaky | 3 b | DF (Don't Fragment), MF (More Fragments) |
| Offset fragmentu | 13 b | Pozice fragmentu v původním paketu |
| TTL | 8 b | Time To Live – každý router sníží o 1. TTL=0 → zahod a pošli ICMP chybu. Chrání před zacyklením. |
| Protokol | 8 b | Protokol vyšší vrstvy: 6=TCP, 17=UDP, 1=ICMP |
| Kontrolní součet hdr. | 16 b | Integrita hlavičky. Nesouhlasí → zahod paket. |
| Zdrojová IP | 32 b | IP adresa odesílatele |
| Cílová IP | 32 b | IP adresa příjemce |
Princip směrování: Router přijme paket → dle cílové IP a směrovací tabulky vybere odchozí rozhraní → linková vrstva doručí paketu sousednímu routeru/cíli → TTL sníží o 1.
Směrovací tabulka obsahuje záznamy: Cíl | Brána | Maska | Metrika | Rozhraní. Brána 0.0.0.0 = lokální síť, doručovat přímo linkovou vrstvou.
Fragmentace IPv4: Pokud je paket větší než MTU linky → router jej rozdělí na fragmenty. Fragmenty se identifikují polem Identifikace + Offset. Složení probíhá až na cílové stanici! Příznak DF=1 zakazuje fragmentaci (paket se zahodí + ICMP error). Fragmentaci je lepší se vyhýbat (overhead, problémy při ztrátě fragmentu).
📊 Statické a dynamické směrování
| Vlastnost | Statické směrování | Dynamické směrování |
|---|---|---|
| Konfigurace | Manuálně administrátorem | Automaticky směrovacím protokolem |
| Reakce na změny | Žádná – nereaguje | Rychlá (sekundy–desítky sekund) |
| Škálování | Vhodné pro malé sítě | Vhodné pro velké sítě |
| Spuštění | Okamžitě po zapnutí | Potřebuje čas na konvergenci |
| Kombinace | Lze kombinovat – statické trasy mají typicky vyšší prioritu | |
Příkazy pro statické záznamy: route (Unix/Windows), ip route (Linux, Cisco, MikroTik).
3 typy dynamických směrovacích algoritmů:
1. Distance Vector (DVA) – protokol RIP:
- Směrovače si vyměňují celé směrovací tabulky (vektory vzdáleností) periodicky (RIP: každých 30 s)
- Optimalizace pomocí Bellman-Fordova algoritmu
- Relaxační krok: pokud vzdálenost(X,Zj) > vzdálenost(X,Yi) + vzdálenost(Yi,Zj) → aktualizuj bránu pro Zj
- RIP: metrika = počet hopů, max. 15 (16 = nedostupné)
- Nevýhoda: pomalá konvergence, count-to-infinity problém
2. Link-State (LSA) – protokol OSPF:
- Každý router zná celou topologii sítě (graf) – dostane info o stavech všech linek
- Hledá nejkratší cesty pomocí Dijkstrova algoritmu
- Kratší zprávy než DVA (jen stavy linek, ne celé tabulky) → méně zatěžuje linku
- Ale náročnější na CPU (každá změna = spuštění Dijkstry)
- Rychlejší konvergence než DVA
- Používá se pro vnitřní (interior) směrování v rámci jednoho AS
3. Path Vector (PVA) – protokol BGP:
- Směrovače si vyměňují kompletní cesty (posloupnosti ID autonomních systémů)
- AS (Autonomní systém) = skupina IP adresních rozsahů jednoho ISP s unikátním 16-bitovým ID
- BGP = protokol pro směrování mezi AS (Internet = množina propojených AS)
- Hraniční směrovače (border routers) propojují AS; vnitřní směrování v AS zajišťují IGP (RIP, OSPF)
- Detekce smyček: cesta obsahuje ID vlastního AS → zahod
- Metrika = vektor hodnot (VH), konkrétní výpočet závisí na výrobci
Proaktivní vs. reaktivní směrování:
- Proaktivní = cesta je předpočítána ve směrovacích tabulkách (RIP, OSPF, BGP) – nejběžnější
- Reaktivní = cesta se hledá až když je potřeba (zaplavovací směrování) – mobilní/ad-hoc sítě se měnící topologií
🚀 Protokol IPv6
Proč IPv6? Veřejné IPv4 adresy vyčerpány v roce 2011. IPv6 = 128-bitové adresy (2128 ≈ 3×1038). Navíc: nativní automatická konfigurace, NAT není povinný, mobilní adresy, zpětná kompatibilita s IPv4.
V IPv6 neexistuje broadcast – nahrazen specifickými multicastovými adresami.
Formát adresy: 128 bitů = 8 skupin × 16 bitů hex oddělené ':'
- Vynechání nul zleva:
1234:0217:...→1234:217:... - Nahrazení po sobě jdoucích nulových skupin :: (použít max. jednou):
2001:db8::1 - Loopback:
::1, celé nuly:::
Typy adres IPv6:
| Typ | Prefix | Popis |
|---|---|---|
| Lokální linkové (LL) | fe80::/10 | Automaticky z MAC (EUI-64), jen lokální síť |
| Unikátní lokální (UL) | fc00::/7 | Analogie privátních IPv4, nutná konfigurace |
| Individuální globální (IGA) | 2000::/3 | Směrovatelné v Internetu (analogie veřejné IPv4) |
| Skupinové (multicast) | ff00::/8 | Náhrada broadcast |
| Anycast | — | Doručení nejbližšímu uzlu ze skupiny |
| Loopback | ::1/128 | Analogie 127.0.0.1 |
| Přechodové | 64:ff9b::/96 | Pro přístup do IPv4 sítí (NAT64) |
Struktura paketu IPv6: základní hlavička (vždy, 40 B) + (rozšiřující hlavičky)* + data.
Základní hlavička: Verze | Třída provozu (QoS) | Značka toku | Délka dat | Další hlavička | Max. skoků (≈TTL) | Zdrojová adresa (128 b) | Cílová adresa (128 b)
Zřetězení hlaviček – výhoda: přenáší se jen hlavičky skutečně potřebné, základní hlavička je jednoduchá. Kódy: 43=směrování, 44=fragmentace, 50=ESP (šifrování), 51=AH (autentizace), 6=TCP, 17=UDP.
IPv4: fragmentaci může provádět každý router na trase.
IPv6: fragmentaci provádí jen zdrojová stanice, router paket nefragmentuje (zahodí + ICMPv6 chyba).
ICMPv6 a Neighbor Discovery (ND) – ICMPv6 nahrazuje v IPv6 celou sadu protokolů: ICMP + ARP + části DHCP.
Funkce ND: zjišťování MAC adres (náhrada ARP), automatická konfigurace, hledání směrovačů, detekce duplicitních adres, detekce nedosažitelných sousedů.
Zjišťování MAC adresy v IPv6 (náhrada ARP):
- Zdrojová stanice sestaví skupinovou adresu cíle: prefix
FF02::1:FF00::/104+ posledních 24 bitů cílové IPv6 - Odešle zprávu NS (Neighbor Solicitation) na tuto skupinovou adresu
- Cílová stanice odpoví NA (Neighbor Advertisement) unicastem se svou MAC
- Zdrojová stanice uloží do tabulky sousedů (obdoba ARP cache, ale se stavy platnosti)
Bezstavová automatická konfigurace (SLAAC):
- Stanice odešle RS (Router Solicitation) skupinově na FF02::2 (všechny routery)
- Router odpoví RA (Router Advertisement) na FF02::1 s 64-bitovým prefixem + DNS + parametry
- Stanice kombinuje prefix z RA s EUI-64 svého rozhraní → vznikne IGA adresa
EUI-64 z 48-bitové MAC: vložit FF:FE mezi 3. a 4. bajt + invertovat 7. bit zleva.
DHCPv6 = stavová alternativa k SLAAC. Analogie DHCP pro IPv4, ale přiděluje jen adresu (ostatní zařídí ND). Prefix nemusí být /64 (u SLAAC je /64 povinný).
Přechodové mechanismy:
- NAT64 – z IPv6 do IPv4: IPv4 adresu namapuj na
64:FF9B::/96 + 32 bitů IPv4 - TEREDO – z IPv4 sítě do IPv6: tunel přes TEREDO server a TEREDO Relay
- Mobilita – stanice (mobil) ohlásí svou aktuální adresu v cizí síti domácímu směrovači (RD), který přeposílá příchozí pakety na aktuální adresu
📋 Shrnutí okruhu 1 a kontrolní otázky
- OSI = 7 vrstev, každá má PDU (data → segment → paket → rámec → bity). Enkapsulace = přidávání hlaviček dolů, dekapsulace = odstraňování nahoru.
- IPv4 = 32 bitů, tečkový zápis. Adresa sítě = IP AND maska. Broadcast = nejvyšší adresa. Použitelné stanice = 2N−2.
- MAC = přístup k médiu (CSMA/CD, CSMA/CA, multiplexing). LLC = CRC, řízení toku, framing.
- Switch přepíná dle MAC tabulky (učení). STP eliminuje smyčky. Router odděluje broadcastové domény.
- VLAN = logické oddělení na 2. vrstvě. 802.1Q tag = VID (12 b, 4096 VLAN). Trunk port = multi-VLAN. Mezi VLAN = router.
- IPv6 = 128 bitů, hex, ::, bez broadcast. ICMPv6/ND nahrazuje ARP+ICMP+DHCP. SLAAC = prefix z RA + EUI-64.
- RIP = DVA (Bellman-Ford, vektory vzdáleností). OSPF = LSA (Dijkstra, celá topologie). BGP = PVA (cesty AS, mezi AS).
- Co je PDU a jaké má název na vrstvách 4, 3, 2?
PDU = datová jednotka vrstvy. Vrstva 4 = segment, vrstva 3 = paket/datagram, vrstva 2 = rámec. - Jak se vypočítá adresa sítě a broadcast?
Adresa sítě = IP AND maska (bitový AND). Broadcast = IP OR NOT(maska) = nejvyšší adresa rozsahu. - Jaký je rozdíl mezi kolizní a broadcastovou doménou?
Kolizní = stanice sdílejí médium (switch odděluje, každý port = vlastní). Broadcastová = stanice přijmou broadcast (odděluje až router). - Proč VLAN nemůže přeposílat provoz mezi různými VLAN?
Switch pracuje jen na vrstvě 2 a nerozumí IP adresám. VLAN jsou navzájem izolované sítě – to je jejich smysl. Mezi VLAN musí jít provoz přes router (vrstva 3). - Jak IPv6 zjišťuje MAC adresy namísto ARP?
ICMPv6 zprávy NS (Neighbor Solicitation) a NA (Neighbor Advertisement). NS se posílá skupinově na specifickou multicastovou adresu odvozenou z cílové IPv6. - Jaký je rozdíl mezi DVA (RIP) a LSA (OSPF)?
DVA: routery vyměňují tabulky vzdáleností, lokální pohled. LSA: každý router zná celou topologii a sám počítá nejkratší cesty Dijkstrou. LSA konverguje rychleji, je náročnější na CPU. - Co je TTL a proč je potřeba?
Time To Live – každý router sníží o 1. Při 0 paket zahodí + pošle ICMP chybu. Chrání síť před nekonečně obíhajícími pakety způsobenými chybami ve směrování.
Transportní vrstva, TCP, spolehlivost doručení, zahlcení, UDP, NAT, DNS
Protokol TCP – 3-way handshake, klouzavé okno, řízení zahlcení (Tahoe, Reno). Srovnání s UDP. Překlad síťových adres NAT/NAPT na síťové a transportní vrstvě. Systém doménových jmen DNS – struktura, záznamy, překlad, bezpečnost.
🚪 Transportní vrstva – úkol, porty, parametry
- Porty 0–1023 = privilegované (well-known) – rezervovány pro systémové služby (HTTP=80, HTTPS=443, SSH=22, DNS=53, FTP=21)
- Porty 1024–65535 = neprivilegované – OS je dynamicky přiděluje zdrojovým aplikacím
Parametry kvality přenosu:
| Parametr | Jednotka | Popis |
|---|---|---|
| Ztrátovost (packet loss) | % | Podíl ztracených paketů. Řeší se retransmisí. |
| Zpoždění (delay) | ms | Průměrná doba doručení paketu od zdroje k cíli. |
| RTT (Round Trip Time) | ms | Obousměrné zpoždění (tam + zpět), typicky 2× delay. |
| Jitter | ms | Nestabilita = kolísání zpoždění. Pakety přicházejí s proměnlivými rozestupy. |
Protokoly transportní vrstvy: TCP (spolehlivý, spojový) a UDP (nespolehlivý, nespojový).
🔌 Protokol TCP – přehled a životní cyklus
Vlastnosti TCP: řízení toku (klouzavé okno), eliminace zahlcení (CWL), detekce chyb, garantování pořadí, detekce duplikátů, duplexní (obě strany jsou odesílatel i přijímač), není šifrovaný.
Přenáší se v datové části IP paketu (protokol = 6).
Příznaky (flags) v hlavičce TCP: U=Urgent | A=ACK (potvrzení) | P=Push | R=Reset (reset spojení) | S=SYN (zahájení) | F=FIN (ukončení)
1. Sestavení spojení – 3-way handshake:
- A → B: SYN (seq=x) – A chce otevřít spojení, navrhuje počáteční sekvenční číslo x
- B → A: SYN+ACK (seq=y, ACK=x+1) – B potvrzuje SYN od A a zároveň otevírá spojení ze své strany (seq=y)
- A → B: ACK (ACK=y+1) – A potvrzuje SYN od B
2. Přenos dat: DATA (s seq číslem) od vysílače, ACK (číslo dalšího očekávaného bajtu) od přijímače.
Sekvenční číslo (seq) = pořadové číslo paketu v rámci spojení. Počáteční hodnota se domlouvá při handshake (náhodně), pak se inkrementálně zvyšuje.
3. Ukončení spojení (4-way):
- A → B: FIN – A uzavírá svou stranu
- B → A: ACK – B potvrzuje
- B → A: FIN – B uzavírá svou stranu
- A → B: ACK – A potvrzuje. Spojení ukončeno.
🪟 Spolehlivost doručení – klouzavé okno a retransmise
Metody pro spolehlivé doručování dat:
- Stop & Wait – po každém paketu čeká na ACK. Jednoduché, ale velmi neefektivní (linka je většinu času nevyužita).
- Stop & Go – přijímač posílá STOP/GO. Řídí tok, ale neřeší ztráty paketů.
- Klouzavé okno (Sliding Window) – nejefektivnější. Odesílá více paketů najednou bez čekání na ACK každého z nich.
Klouzavé okno se posunuje doprava při každém přijatém ACK. Implementace: Selective Repeat (opakují se jen chybné pakety) nebo Go-Back-N (opakují se od chybného).
Fast Retransmit: vysílač si pamatuje čas od odeslání paketu. Po vypršení timeoutu bez ACK znovu odešle jen ten konkrétní nepotvrzený paket (bez opakování všeho ostatního). Zvyšuje efektivitu.
Obecné problémy při doručování paketů:
- Ztráta paketu → timeout → retransmise
- Ztráta potvrzení (ACK) → timeout → duplicitní retransmise paketu → přijímač detekuje duplikát dle seq čísla
- Opožděné potvrzení → může způsobit zbytečnou retransmisi → duplicitní paket
🚦 Zahlcení (Congestion Control) – CWL, Tahoe, Reno
Dvě různé situace, dva různé mechanismy:
- Zahlcení přijímače (flow control) – přijímač nestíhá. Řeší přijímač nastavením délky okna DO.
- Zahlcení linky (congestion control) – kapacita linky na trase je přetížena. Řeší vysílač pomocí CWL.
Skutečné množství odeslaných paketů = min(DO, CWL)
TCP Tahoe – algoritmus nastavení CWL:
- Slow Start: CWL=1, zdvojuje se při každém úspěšném ACK (exponenciální růst)
- Po dosažení ssthresh (slow-start threshold, výchozí 32 KB): přechod na lineární růst (Congestion Avoidance)
- Při Timeout (ztráta ACK): ssthresh = CWL/2, CWL = 1 → restart od Slow Start
TCP Reno – optimistická varianta:
- Při ztrátě ACK: CWL = CWL/2 (ne na 1), ssthresh sníží o 25%
- Při krátkodobé poruše linky Reno obnoví původní vysílání výrazně rychleji než Tahoe
Další varianty (FYI): TCP Vegas, TCP New Reno, TCP CUBIC – algoritmy se stále vyvíjejí, neexistuje jedno nejlepší řešení.
📨 Protokol UDP a srovnání s TCP
Hlavička UDP (8 B): zdrojový port (2 B) | cílový port (2 B) | délka zprávy (2 B) | kontrolní součet (2 B)
| Vlastnost | TCP | UDP |
|---|---|---|
| Spolehlivost doručení | ✅ Garantováno (retransmise) | ❌ Bez záruky |
| Pořadí paketů | ✅ Garantováno (seq čísla) | ❌ Může být jiné |
| Typ spojení | Spojový (handshake, stav) | Nespojový (connectionless) |
| Řízení toku | ✅ Klouzavé okno | ❌ Žádné |
| Řízení zahlcení | ✅ CWL (Tahoe, Reno...) | ❌ Žádné |
| Overhead hlavičky | 20–60 B | 8 B (minimální) |
| Propustnost | Nižší (režie potvrzování) | Vyšší v ideálních podmínkách |
| Typické použití | HTTP(S), FTP, SSH, email (SMTP, IMAP) | DNS, VoIP, video streaming, online hry, DHCP |
🔄 Překlad síťových adres – NAT na síťové vrstvě
Proč NAT? Veřejných IPv4 adres je méně než připojených zařízení. Celá lokální síť (s privátními adresami) sdílí jednu veřejnou IP adresu routeru.
Princip NAT (síťová vrstva – překlad pouze IP adres):
- Stanice (10.0.0.5) odešle paket na Internet
- Router zaznamená mapování: {10.0.0.5} → {203.0.113.1} (veřejná)
- V hlavičce odchozího paketu nahradí zdrojovou IP svojí veřejnou adresou
- Při příchodu odpovědi provede zpětný překlad dle NAT tabulky
🔌 NAT na transportní vrstvě – NAPT/PAT
Každé spojení je identifikováno čtveřicí: {vnitřní IP : vnitřní port} ↔ {vnější IP : vnější port}
Algoritmus NAPT:
- Stanice A (10.0.0.5:12345) otevře spojení se serverem B (93.184.216.34:80)
- Router vytvoří záznam: {10.0.0.5:12345} → {203.0.113.1:54321} v NAT tabulce
- Paket odchází s vnějšími hodnotami {203.0.113.1:54321} → {93.184.216.34:80}
- Odpověď přijde na {203.0.113.1:54321} → router přeloží zpět na {10.0.0.5:12345}
Zdrojový port se mění jen v případě konfliktu (dvě stanice si náhodou zvolily stejný port).
GRE protokol a NAT: GRE nemá porty (je to VPN protokol transportní vrstvy). Překlad adres pro GRE je proto složitější a u některých routerů problematický.
🌍 Systém doménových jmen – DNS
Proč DNS? IP adresy jsou pro lidi špatně zapamatovatelné. Doménové jméno (fit.cvut.cz) je intuitivní.
Architektura DNS:
- DNS Resolver = klientský program v OS, který provádí překlad jmen komunikací s Name Serverem
- Name Server (NS) = server starající se o překlad doménových jmen pro konkrétní domény/zóny
- Autoritativní DNS server = NS, který přímo spravuje záznamy pro danou zónu a vrací závazné odpovědi
DNS je nezabezpečený (odpovědi lze podvrhnout) → rozšíření DNSSEC. DNS se využívá i pro email (MX záznamy), VoIP (SRV záznamy), load balancing.
Původně soubor hosts.txt spravovaný centrálně. Dnes stále existuje /etc/hosts (prohledáván OS jako první, pak teprve DNS).
🌲 Hierarchie DNS – domény, TLD, kořenové servery
Doménová jména tvoří stromovou strukturu:
- Kořen (.) = úroveň 0 – kořenové DNS servery
- TLD (Top-Level Domain) = 1. úroveň:
cz,com,org,gov - 2. úroveň:
cvut.cz,google.com - 3. úroveň:
fit.cvut.cz
FQDN (Fully Qualified Domain Name) = řetězec od listu ke kořenu oddělený tečkami. Max. 255 znaků celkem, každá část max. 63 znaků. Case-insensitive.
Typy TLD domén:
- gTLD = 3-znakové kódy funkce: gov, mil, edu, org, com, net
- ccTLD = 2-znakové kódy státu: cz, de, us, jp
- ngTLD (od 2013) = libovolný řetězec: .paris, .london, .google (Google má 101 ngTLD)
- in-addr.arpa = speciální doména pro reverzní záznamy (IP → jméno)
Kořenové DNS servery = 13 skupin (A–M) fyzicky tvořených stovkami serverů po celém světě. Obsahují informace o NS serverech pro TLD. Dotazy doručovány anycastem (IPv6 nativně, IPv4 přes BGP).
Zóna = konkrétní podmnožina doménových jmen domény, spravovaná jedním autoritativním serverem. Správu části lze delegovat.
📄 DNS záznamy – typy a struktura
Formát záznamu DZZ: {Jméno, TTL, Třída (IN), Typ, Hodnota}
TTL = jak dlouho může být záznam uložen v cache DNS serverů. Po vypršení se musí načíst znovu. Pokud neuvedeno, bere se MINIMUM ze SOA záznamu.
| Typ | Popis | Příklad hodnoty |
|---|---|---|
| A | IPv4 adresa pro doménové jméno | 147.32.232.212 |
| AAAA | IPv6 adresa pro doménové jméno | 2001:db8::1 |
| NS | Autoritativní DNS server pro doménu | ns1.fit.cvut.cz |
| MX | Poštovní server pro doménu | mail.fit.cvut.cz |
| CNAME | Kanonické jméno – alias/synonymum | pc2.mylab.com (pro pc1) |
| PTR | Reverzní záznam (IP → jméno) | pc-12.fit.cvut.cz |
| SRV | Server pro konkrétní službu (VoIP, XMPP) | voip.fit.cvut.cz |
| TXT | Textový komentář (SPF, DKIM, ověření domény) | "v=spf1 ..." |
| CAA | Certifikační autority oprávněné vydávat certifikáty pro doménu | 0 issue "letsencrypt.org" |
| RRSIG | Kryptografický podpis záznamu (DNSSEC) | (binární podpis) |
SOA (Start of Authority) = úvodní záznam každé zóny (vždy jeden). Obsahuje:
- MNAME = primární autoritativní NS server zóny
- RNAME = kontakt správce zóny (@ → .)
- SERIAL = sériové číslo zóny – zvyšuje se při změně
- REFRESH = interval obnovení, RETRY = interval opakování, EXPIRE = expirace, MINIMUM = výchozí TTL
🔎 Princip překladu jmen – iterativní, rekurzivní, reverzní
Iterativní dotazování:
- Resolver počítače pošle dotaz svému DNS serveru X
- X se ptá kořenového serveru → dostane odkaz na NS pro TLD (.cz)
- X se ptá NS pro .cz → dostane odkaz na NS pro cvut.cz
- X se ptá NS pro cvut.cz → dostane odkaz na NS pro fit.cvut.cz
- X se ptá NS pro fit.cvut.cz → dostane finální IP adresu
- X vrátí IP adresu resolveru počítače
Rekurzivní dotazování:
- Resolver pošle dotaz rekurzivnímu DNS serveru Y
- Y se ptá kořenového serveru, ten dotaz přepošle NS pro TLD, ten dál...
- Odpověď se vrací zpětně celým řetězcem (každý server čeká na výsledek)
- Y vrátí přeloženou IP resolveru
Cache DNS: DNS servery cachují odpovědi po dobu TTL → snižuje zatížení autoritativních serverů.
Reverzní DNS dotaz pro IP AA.BB.CC.DD = přímý dotaz na DD.CC.BB.AA.in-addr.arpa. Finální reverzní překlad provede NS organizace spravující daný adresní rozsah.
NS záznam: mylab.com. IN NS pc4.mylab.com. → pc4 je autoritativní NS pro mylab.com
A záznamy: pc4.mylab.com. IN A 10.0.1.41, pc2.mylab.com. IN A 10.0.1.21
MX záznam: pc3.mylab.com. IN MX 10.0.1.31 → pc3 je poštovní server pro mylab.com
CNAME: pc1.mylab.com. IN CNAME pc2.mylab.com. → pc1 je alias pro pc2
🛡️ Bezpečnost DNS a rozšíření
DNS Cache Poisoning (DNS Spoofing):
- Uživatel se dotáže DNS serveru na překlad jména → server posílá dotaz autoritativnímu NS
- Útočník vygeneruje podvrženou odpověď se správným 16-bitovým ID a falešnou IP adresou
- Podvržená odpověď přijde dříve než legitimní → DNS server ji přijme a uloží do cache → všichni uživatelé dostanou špatnou IP
DNSSEC = zabezpečené DNS. Každý NS podepisuje odpovědi svým soukromým klíčem. Veřejný klíč je uložen v záznamu RRSIG na NS nadřazené domény. Příjemce ověří podpis → podvržení odpovědi je odhaleno. Využívá asymetrickou kryptografii.
Dynamické DNS (DynDNS):
- Klasické DNS neumí měnit záznamy za běhu (jen administrátor)
- DynDNS server aktualizuje A záznamy automaticky na pokyn stanic
- Zařízení po připojení nahlásí serveru své jméno + aktuální IP → záznam se aktualizuje
- Vhodné pro zařízení s dynamickou IP (DHCP od ISP)
Rozdělování zátěže (DNS Load Balancing):
- Autoritativní NS vrací při opakovaném dotazu na stejné jméno různé IP adresy (round-robin)
- Uživatelé jsou distribuováni mezi více serverů = vyrovnání zátěže
- Nevýhoda: DNS cache může způsobit nerovnoměrné rozdělení (TTL)
📋 Shrnutí okruhu 2 a kontrolní otázky
- Transportní vrstva = doručení k aplikaci přes porty. Well-known porty < 1024.
- TCP = spolehlivý, spojový. 3-way handshake (SYN→SYN+ACK→ACK). Klouzavé okno pro flow control. CWL pro congestion control.
- TCP Tahoe: Slow Start (exponenciální) → ssthresh → lineární → Timeout → reset CWL=1. Reno: při Timeout CWL=CWL/2 (optimistik).
- UDP = nespolehlivý, nespojový, malá režie. Vhodný pro real-time (VoIP, video, DNS, DHCP).
- NAT = nahrazení privátní IP za veřejnou. NAPT/PAT využívá i porty → umožňuje více simultánních spojení za jednou veřejnou IP.
- DNS = hierarchický distribuovaný systém, port 53, UDP. Záznamy: A, AAAA, MX, NS, CNAME, PTR. Iterativní vs. rekurzivní překlad. DNSSEC chrání před Cache Poisoning.
- Jak funguje 3-way handshake TCP?
SYN (A→B, seq=x) → SYN+ACK (B→A, seq=y, ACK=x+1) → ACK (A→B, ACK=y+1). Dohodne se zahájení duplexního spojení a výchozí sekvenční čísla obou stran. - Co je CWL a jak se liší od délky okna přijímače (DO)?
DO nastavuje přijímač dle svých kapacit (flow control). CWL nastavuje vysílač dle zatížení linky (congestion control). Odesílá se min(DO, CWL) paketů. - Jaký je rozdíl mezi Slow Start (Tahoe) a chováním TCP Reno při ztrátě ACK?
Tahoe: po Timeout → ssthresh=CWL/2, CWL=1, restart od 0. Reno: po Timeout → ssthresh*=0.75, CWL=CWL/2, pokračuje lineárně. Reno se zotaví rychleji. - Proč UDP pro DNS a VoIP?
DNS: dotazy jsou malé, bez overhead handshake, app. zopakuje při ztrátě. VoIP: real-time, ztráta pár paketů = drobný šum, ale zpoždění TCP retransmise by bylo rušivé. - Jak NAPT/PAT umožňuje více stanic sdílet jednu veřejnou IP?
Každé spojení = čtveřice {vnitřní IP:port, vnější IP:port}. Router si mapování uloží do NAT tabulky a při odpovědi provede zpětný překlad dle portu. Různé stanice mají různé vnitřní porty → router je rozliší. - Jaký je rozdíl mezi iterativním a rekurzivním DNS dotazem?
Iterativní: DNS server vrací odkaz (kam se ptát dál), dotazující sám pokračuje. Rekurzivní: DNS server celý překlad provede sám a vrátí hotový výsledek. - Co je DNS Cache Poisoning a jak DNSSEC pomáhá?
Útočník podvrhne DNS odpověď (správné ID, falešná IP) dříve než legitimní → DNS server ji uloží do cache → špatná IP se šíří. DNSSEC: NS podepisuje odpovědi privátním klíčem, příjemce ověří podpis pomocí veřejného klíče z nadřazeného NS. - K čemu slouží reverzní DNS záznamy a jak fungují?
Přeloží IP adresu na doménové jméno (PTR záznam). Dotaz se formuluje jako přímý dotaz na DD.CC.BB.AA.in-addr.arpa (obrácená IP). Využívá se při diagnostice, ověřování poštovních serverů (anti-spam).