🌐 BI-PSI – Počítačové sítě

Státnicové poznámky · Bakalářské státní zkoušky · FIT ČVUT

BI-SPOL.21-24 BI-SPOL.21-25 LS 2023/24 · Jan Fesl FitNET · KPS FIT ČVUT
Okruh 1 · BI-SPOL.21-24

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.

ISO/OSI model = referenční model složený ze 7 vrstev. Každá vrstva poskytuje služby vrstvě nad ní a využívá služby vrstvy pod ní. Vrstvy jsou záměrně odděleny → umožňuje jejich nezávislý vývoj a implementaci.
#VrstvaPDUPříklady protokolůSíťové zařízení
7AplikačníDataHTTP, FTP, DNS, SMTP
6PrezentačníDataTLS, XML, RPC
5RelačníDataNFS, NetBIOS
4TransportníSegmentTCP, UDP
3SíťováPaket / DatagramIP, ICMP, ARPRouter (směrovač)
2LinkováRámec (Frame)Ethernet, WiFi, PPPSwitch (přepínač), Bridge (most)
1FyzickáBityHub, 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

PDU (Protocol Data Unit) = datová jednotka konkrétní vrstvy. PDU = hlavička vrstvy (LH = Layer Header) + data (PDU vrstvy nad ní).

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).

⚡ Klíčový princip
Komunikace mezi stanicemi A a B probíhá vždy na úrovni stejných vrstev (peer-to-peer logika). Fyzicky data putují dolů vrstvami u odesílatele → po médiu → nahoru vrstvami u příjemce. Mezilehlá síťová zařízení pracují jen s vrstvami, které „rozumí" (router = 3, switch = 2, hub = 1).

🏷️ Princip IP adresace – motivace a IPv4

IP adresa = hierarchický, unikátní identifikátor síťového rozhraní (NIC). Hierarchie umožňuje efektivní směrování a shlukování adres do skupin (podsítí) – to MAC adresy neumožňují.
  • 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)
🧮 Příklad – síť 123.122.120.120/30

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:

RozsahTypPoužití
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16PrivátníLokální sítě – nesměrovatelné v Internetu
169.254.0.0/16Link-local (APIPA)Automatická konfigurace bez DHCP
127.0.0.0/8LoopbackTestování síťové vrstvy (sám sobě), typicky 127.0.0.1
224.0.0.0/4MulticastSkupinové doručení dat
0.0.0.0NedefinovanáKlient neznající svou IP (DHCP)
255.255.255.255BroadcastObecná 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

Linková vrstva (2. vrstva OSI) = zajišťuje přenos dat v rámci lokální (LAN) sítě. Základní přenášenou jednotkou je rámec (frame).
PodvrstvaPlný názevFunkceCharakter
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.

TypZkratkaPrincipPříklad
ČasovýTDMAKaždý účastník má svůj časový slotGSM, starý Ethernet
FrekvenčníFDMAKaždý účastník komunikuje na jiné frekvenciRádio, WDM v optice
KódovýCDMASdílejí medium, rozlišení kódem3G mobilní sítě
ProstorovýSDMARů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í

MAC adresa = 48-bitový (6 bytů) unikátní identifikátor síťového rozhraní na linkové vrstvě. Zápis: XX:XX:XX:XX:XX:XX (hexadecimálně).
  • 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 OSIPracuje sPrincip / Vlastnost
Hub / Repeater1. FyzickáBityZesiluje/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ínač (Switch) = zařízení 2. vrstvy, které přijme rámec, analyzuje cílovou MAC adresu a přepošle ho jen na příslušný port.

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í vs. broadcastová doména

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:

  1. Stanice A nezná MAC stanice B → odešle ARP-REQUEST broadcastem (FF:FF:FF:FF:FF:FF)
  2. Stanice B odpovídá ARP-REPLY unicastem se svou MAC
  3. A si MAC B uloží do ARP tabulky (cache)
⚠️ ARP Spoofing
Útočník odpovídá na ARP dotazy podvrženými odpověďmi → vydává se za jiné stanice → Man-in-the-Middle útok. Obranou je statické ARP nebo DHCP snooping.

DHCP = Dynamic Host Configuration Protocol. Automatické přidělení IP adresy. Protokol aplikační vrstvy (porty 67/68). Průběh – DORA:

  1. Discover – klient broadcastem hledá DHCP server (zdrojová IP: 0.0.0.0)
  2. Offer – server nabídne volnou IP
  3. Request – klient broadcastem potvrzuje zájem o nabídnutou IP
  4. 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)

VLAN (Virtual LAN) = technika vytváření více logicky oddělených sítí v rámci jedné fyzické infrastruktury. Odděluje provoz na linkové vrstvě.

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í)
IEEE 802.1Q = standard tagování VLAN. Do Ethernet rámce se za MAC adresy vkládá 4-bajtová VLAN hlavička (tag).

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řeposílání provozu MEZI VLAN
Switch provoz mezi různými VLAN nepropouští – jsou striktně odděleny. Provoz musí jít přes router (3. vrstva). Proto se říká: provoz mezi VLAN je směrován, ne přepínán.

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í

Síťová vrstva (3. vrstva OSI) = zajišťuje doručení dat mezi stanicemi v různých sítích na základě IP adres. Přenáší data v paketech (datagramech, max. 64 KB).

Klíčové protokoly: IP (Internet Protocol), ICMP.

Struktura IPv4 paketu – klíčová pole:

PoleVelikostPopis
Verze4 b0x4 pro IPv4
IHL4 bDélka hlavičky v 32-bitových slovech (min. 5 = 20 B)
TOS/DSCP8 bTyp služby – priorita pro QoS
Celková délka16 bDélka paketu v bajtech (max. 65535)
Identifikace16 bIdentifikátor pro skládání fragmentů (stejné ID = patří k sobě)
Příznaky3 bDF (Don't Fragment), MF (More Fragments)
Offset fragmentu13 bPozice fragmentu v původním paketu
TTL8 bTime To Live – každý router sníží o 1. TTL=0 → zahod a pošli ICMP chybu. Chrání před zacyklením.
Protokol8 bProtokol vyšší vrstvy: 6=TCP, 17=UDP, 1=ICMP
Kontrolní součet hdr.16 bIntegrita hlavičky. Nesouhlasí → zahod paket.
Zdrojová IP32 bIP adresa odesílatele
Cílová IP32 bIP 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í

VlastnostStatické směrováníDynamické směrování
KonfiguraceManuálně administrátoremAutomaticky směrovacím protokolem
Reakce na změnyŽádná – nereagujeRychlá (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
KombinaceLze 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
🌍 Jak funguje Internet
Internet = množina vzájemně propojených AS. Hraniční routery AS spolu komunikují přes BGP. Uvnitř každého AS se používají vnitřní protokoly (RIP, OSPF). Netransientní AS přijímají jen vlastní provoz; transientní AS přeposílají provoz cizích AS.

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:

TypPrefixPopis
Lokální linkové (LL)fe80::/10Automaticky z MAC (EUI-64), jen lokální síť
Unikátní lokální (UL)fc00::/7Analogie privátních IPv4, nutná konfigurace
Individuální globální (IGA)2000::/3Směrovatelné v Internetu (analogie veřejné IPv4)
Skupinové (multicast)ff00::/8Náhrada broadcast
AnycastDoručení nejbližšímu uzlu ze skupiny
Loopback::1/128Analogie 127.0.0.1
Přechodové64:ff9b::/96Pro 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.

🔑 Klíčový rozdíl IPv4 vs. IPv6 – fragmentace

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):

  1. Zdrojová stanice sestaví skupinovou adresu cíle: prefix FF02::1:FF00::/104 + posledních 24 bitů cílové IPv6
  2. Odešle zprávu NS (Neighbor Solicitation) na tuto skupinovou adresu
  3. Cílová stanice odpoví NA (Neighbor Advertisement) unicastem se svou MAC
  4. Zdrojová stanice uloží do tabulky sousedů (obdoba ARP cache, ale se stavy platnosti)

Bezstavová automatická konfigurace (SLAAC):

  1. Stanice odešle RS (Router Solicitation) skupinově na FF02::2 (všechny routery)
  2. Router odpoví RA (Router Advertisement) na FF02::1 s 64-bitovým prefixem + DNS + parametry
  3. 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).
❓ Kontrolní otázky
  1. 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.
  2. 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.
  3. 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).
  4. 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).
  5. 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.
  6. 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.
  7. 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í.
Okruh 2 · BI-SPOL.21-25

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

Transportní vrstva (4. vrstva OSI) = zajišťuje doručení dat ke konkrétní aplikaci/službě na cílové stanici. Přidává druhý stupeň adresace – porty.
Port = 16-bitový identifikátor (0–65535) konkrétní aplikace/služby. Adresace: [zdrojová IP : zdrojový port] → [cílová IP : cílový port].
  • 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:

ParametrJednotkaPopis
Ztrátovost (packet loss)%Podíl ztracených paketů. Řeší se retransmisí.
Zpoždění (delay)msPrůměrná doba doručení paketu od zdroje k cíli.
RTT (Round Trip Time)msObousměrné zpoždění (tam + zpět), typicky 2× delay.
JittermsNestabilita = 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

TCP (Transmission Control Protocol) = spolehlivý, spojově orientovaný protokol. Garantuje doručení, pořadí a integritu dat.

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:

  1. A → B: SYN (seq=x) – A chce otevřít spojení, navrhuje počáteční sekvenční číslo x
  2. 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)
  3. A → B: ACK (ACK=y+1) – A potvrzuje SYN od B
💡 Problém dvou armád (Two Generals Problem)
Ilustruje, že absolutní jistotu o zahájení spojení přes nespolehlivé médium nelze zaručit – vždy by bylo potřeba ještě jedno potvrzení. 3-way handshake je nejlepší praktické řešení.

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):

  1. A → B: FIN – A uzavírá svou stranu
  2. B → A: ACK – B potvrzuje
  3. B → A: FIN – B uzavírá svou stranu
  4. 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.
Délka okna (DO) = počet paketů, které může vysílač odeslat bez potvrzení. Nastavuje ji přijímač dle svých kapacit (flow control). DO=0 → vysílač přestane posílat.

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.
CWL (Congestion Window Length) = počet paketů, které může vysílač odeslat najednou, aby nedošlo k zahlcení linky. Nastavuje si ji vysílač sám.

Skutečné množství odeslaných paketů = min(DO, CWL)

TCP Tahoe – algoritmus nastavení CWL:

  1. Slow Start: CWL=1, zdvojuje se při každém úspěšném ACK (exponenciální růst)
  2. Po dosažení ssthresh (slow-start threshold, výchozí 32 KB): přechod na lineární růst (Congestion Avoidance)
  3. 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í.

💡 Proč Slow Start není pomalý?
Exponenciální růst (1→2→4→8→...) je ve skutečnosti velmi rychlý. "Slow" označuje pouze to, že nezačínáme plnou rychlostí linky, ale postupně – čímž se vyhýbáme okamžitému přetížení.

📨 Protokol UDP a srovnání s TCP

UDP (User Datagram Protocol) = nespolehlivý, nespojový protokol transportní vrstvy. Jednoduchá hlavička, nízká režie.

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)

VlastnostTCPUDP
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čky20–60 B8 B (minimální)
PropustnostNižší (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
💡 Proč UDP pro VoIP a video?
Real-time přenosy potřebují nízkou latenci. Ztráta pár paketů = drobný šum/výpadek – tolerovatelné. Čekání na retransmisi TCP by způsobilo rušivé zpoždění. Proto UDP: ztráty se tolerují, pořadí se řeší na aplikační vrstvě.

🔄 Překlad síťových adres – NAT na síťové vrstvě

NAT (Network Address Translation) = mechanismus na routeru: při průchodu paketu vnějším rozhraním nahradí privátní (vnitřní) IP adresu zdrojové stanice veřejnou (vnější) IP adresou routeru. Záznamy uloženy v NAT tabulce.

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):

  1. Stanice (10.0.0.5) odešle paket na Internet
  2. Router zaznamená mapování: {10.0.0.5} → {203.0.113.1} (veřejná)
  3. V hlavičce odchozího paketu nahradí zdrojovou IP svojí veřejnou adresou
  4. Při příchodu odpovědi provede zpětný překlad dle NAT tabulky
⚠️ Omezení NAT
Servery za NAT jsou z Internetu nedosažitelné (Internet nezná vnitřní adresu). NAT porušuje end-to-end princip Internetu. Komplikuje peer-to-peer komunikaci a protokoly bez portů (GRE).

🔌 NAT na transportní vrstvě – NAPT/PAT

NAPT / PAT (Port Address Translation) = rozšíření NAT využívající i čísla portů. Umožňuje rozlišit více simultánních spojení od různých stanic jdoucích přes tutéž veřejnou IP.

Každé spojení je identifikováno čtveřicí: {vnitřní IP : vnitřní port} ↔ {vnější IP : vnější port}

Algoritmus NAPT:

  1. Stanice A (10.0.0.5:12345) otevře spojení se serverem B (93.184.216.34:80)
  2. Router vytvoří záznam: {10.0.0.5:12345} → {203.0.113.1:54321} v NAT tabulce
  3. Paket odchází s vnějšími hodnotami {203.0.113.1:54321} → {93.184.216.34:80}
  4. 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ý.

💡 NAT = řešení nedostatku IPv4 i bezpečnostní mechanismus
NAT efektivně skrývá vnitřní síť – zvenčí není vidět, kolik stanic za NATem je ani jaké mají adresy. IPv6 NAT nepotřebuje (adres je dostatek), ale stále se někdy používá z bezpečnostních důvodů.

🌍 Systém doménových jmen – DNS

DNS (Domain Name System) = hierarchický, distribuovaný systém primárně určený pro překlad doménových jmen na IP adresy a naopak. Port 53, většina implementací UDP.

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.

TypPopisPříklad hodnoty
AIPv4 adresa pro doménové jméno147.32.232.212
AAAAIPv6 adresa pro doménové jméno2001:db8::1
NSAutoritativní DNS server pro doménuns1.fit.cvut.cz
MXPoštovní server pro doménumail.fit.cvut.cz
CNAMEKanonické jméno – alias/synonymumpc2.mylab.com (pro pc1)
PTRReverzní záznam (IP → jméno)pc-12.fit.cvut.cz
SRVServer pro konkrétní službu (VoIP, XMPP)voip.fit.cvut.cz
TXTTextový komentář (SPF, DKIM, ověření domény)"v=spf1 ..."
CAACertifikační autority oprávněné vydávat certifikáty pro doménu0 issue "letsencrypt.org"
RRSIGKryptografický 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í:

  1. Resolver počítače pošle dotaz svému DNS serveru X
  2. X se ptá kořenového serveru → dostane odkaz na NS pro TLD (.cz)
  3. X se ptá NS pro .cz → dostane odkaz na NS pro cvut.cz
  4. X se ptá NS pro cvut.cz → dostane odkaz na NS pro fit.cvut.cz
  5. X se ptá NS pro fit.cvut.cz → dostane finální IP adresu
  6. X vrátí IP adresu resolveru počítače

Rekurzivní dotazování:

  1. Resolver pošle dotaz rekurzivnímu DNS serveru Y
  2. Y se ptá kořenového serveru, ten dotaz přepošle NS pro TLD, ten dál...
  3. Odpověď se vrací zpětně celým řetězcem (každý server čeká na výsledek)
  4. 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.

📋 Příklad záznamu zóny (mylab.com)

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):

  1. Uživatel se dotáže DNS serveru na překlad jména → server posílá dotaz autoritativnímu NS
  2. Útočník vygeneruje podvrženou odpověď se správným 16-bitovým ID a falešnou IP adresou
  3. 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
⚠️ Obrana – DNSSEC

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.
❓ Kontrolní otázky
  1. 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.
  2. 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ů.
  3. 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.
  4. 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é.
  5. 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ší.
  6. 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.
  7. 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.
  8. 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).