Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
statnice:bakalar:b4b38psia [2025/01/24 13:39] – jpelc | statnice:bakalar:b4b38psia [2025/06/03 19:00] (current) – zapleka3 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Počítačové sítě, ISO/OSI model, vlastnosti fyzických vrstev, topologie, řízení přístupu k médiu, kódování, | ====== Počítačové sítě, ISO/OSI model, vlastnosti fyzických vrstev, topologie, řízení přístupu k médiu, kódování, | ||
- | | + | [[https:// |
- | * Protokoly TCP/IP, IPv4, IPv6, ICMP, ARP, NDP, TCP, UDP, DHCP, systém DNS, princip směrování v IP sítích. | + | |
- | * Síťové technologie Ethernet a WiFi, přístupové metody, adresace, technologie VLAN, funkční rozdíly rozbočovač vs. přepínač. | + | * **ISO/OSI model** – funkce vrstev a komunikace mezi nimi, PDU, SDU, multiplexování, |
+ | | ||
+ | | ||
+ | |||
+ | ====== ISO/OSI model ====== | ||
+ | |||
+ | Model ISO/OSI je teoretický model, který rozděluje komunikaci v počítačových sítích do sedmi vrstev. Každá vrstva řeší určitou skupinu úloh a komunikuje pouze se sousedními vrstvami. Cílem modelu je umožnit snadné propojování distribuovaných systémů – například emailový klient nemusí vědět, zda komunikace probíhá přes Wi-Fi nebo kabel. | ||
+ | |||
+ | Data vytvořená v aplikační vrstvě jsou postupně zapouzdřována (obalována) hlavičkami nižších vrstev. Zařízení v síti vždy zpracovávají pouze hlavičku odpovídající jejich vrstvě – např. router rozhoduje podle IP adresy bez ohledu na to, zda jde o TCP nebo UDP. | ||
+ | |||
+ | * **7. Aplikační vrstva** – zajišťuje služby přímo pro koncového uživatele (např. HTTP, FTP, SMTP) | ||
+ | * **6. Prezentační vrstva** – kódování, | ||
+ | * **5. Relační vrstva** – správa relací mezi aplikacemi (navázání, | ||
+ | * **4. Transportní vrstva** – spolehlivý přenos dat mezi koncovými zařízeními (např. TCP, UDP) | ||
+ | * **3. Síťová vrstva** – směrování paketů mezi sítěmi (např. IP) | ||
+ | * **2. Spojová vrstva** – přenos rámců mezi dvěma přímo spojenými uzly (např. MAC adresa, Ethernet) | ||
+ | * **1. Fyzická vrstva** – fyzický přenos bitů po médiu (např. elektrické signály) | ||
+ | |||
+ | **Kritéria návrhu vrstev ISO/OSI modelu:** | ||
+ | * Činnosti na stejném stupni abstrakce mají být ve stejné vrstvě. | ||
+ | * Minimalizace datových toků mezi vrstvami. | ||
+ | * Snaha o aplikovatelnost na významné existující standardy (např. X.25). | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== 1. Fyzická vrstva ==== | ||
+ | |||
+ | Fyzická vrstva je nejnižší vrstva ISO/OSI modelu. Zajišťuje samotný přenos bitů (symbolů) po fyzickém médiu – vodiči, optickém vlákně nebo rádiovými vlnami. Neřeší význam přenášených dat, pouze jak se budou signály fyzicky šířit. | ||
+ | * Poskytuje služby typu: odešli bit, přijmi bit | ||
+ | * Nijak neinterpretuje to, co přenáší. | ||
+ | |||
+ | Zabývá se: | ||
+ | * **kódováním a modulací** – jak se binární data převádějí na signály (např. napěťové úrovně) | ||
+ | * **časováním a synchronizací** – aby příjemce věděl, kdy číst data | ||
+ | * **elektrickými a mechanickými parametry** – napětí, konektory, typy kabelů | ||
+ | * **řídicími signály** – např. detekce připojení, | ||
+ | |||
+ | === Typy přenosu === | ||
+ | * **Paralelní přenos** – více bitů současně (každý vodič jeden bit) | ||
+ | * **Sériový přenos** – bity přicházejí po jednom (běžnější u sítí) | ||
+ | * **Synchronní přenos** – odesílatel a příjemce synchronizováni hodinovým signálem | ||
+ | * **Asynchronní přenos** – data jsou oddělená start/stop bity, přenos není časově sladěný | ||
+ | * **Arytmický přenos** – přenos bez pevné časové struktury, používá se např. s autonegociací | ||
+ | |||
+ | === Přenosová pásma === | ||
+ | * **Základní pásmo (baseband)** – data se přenáší přímo jako 0/1 (např. Ethernet) | ||
+ | * **Přeložené pásmo (broadband)** – data se modulují na vyšší frekvence (např. Wi-Fi) | ||
+ | |||
+ | === Příklady standardů fyzické vrstvy === | ||
+ | * **RS-232, RS-485** – sériová rozhraní, často v průmyslovém prostředí | ||
+ | * **IEEE 802.3 (Ethernet)** – fyzická vrstva pro kabelové sítě | ||
+ | * **IEEE 802.11 (Wi-Fi)** – bezdrátový přenos signálu | ||
+ | |||
+ | ==== 2. Spojová vrstva (Data Link) ==== | ||
+ | |||
+ | Spojová vrstva zajišťuje přenos **rámců** (frames) mezi dvěma přímo propojenými uzly – v dosahu jednoho fyzického spoje. Nepřenáší data přes více uzlů, ale pouze lokálně, např. v rámci jednoho segmentu sítě (např. mezi dvěma zařízeními připojenými ke stejnému přepínači nebo AP). Využívá různé technologie fyzické vrstvy, může být kabelová i bezdrátová. | ||
+ | |||
+ | Může pracovat: | ||
+ | * **spolehlivě** či **nespolehlivě** – s detekcí/ | ||
+ | * **spojovaně** či **nespojovaně** – s navazováním spojení nebo bez | ||
+ | |||
+ | **Hlavní zodpovědnosti spojové vrstvy:** | ||
+ | * **Synchronizace rámců** – rozpoznání začátku a konce rámce, správné zpracování celé struktury rámce | ||
+ | * **Media Access Control (MAC)** – řízení přístupu ke sdílenému médiu a řešení kolizí | ||
+ | - CSMA/CD – detekce kolize (Ethernet) | ||
+ | - CSMA/CA – prevence kolize (Wi-Fi) | ||
+ | - Token passing – řízený přístup | ||
+ | * **Adresace** – fyzické MAC adresy (48bitové), | ||
+ | * **Spolehlivost přenosu** – detekce chyb (např. CRC-32, FCS), lokální opravy chyb (ARQ/FEC); může fungovat i jako „best-effort“ | ||
+ | * **Řízení toku** – např. pomocí PAUSE rámců nebo potvrzování (ACK/NACK, HDLC) | ||
+ | * **Správa spojení (link management)** – zřízení/ | ||
+ | |||
+ | ==== 3. Síťová vrstva (Network) ==== | ||
+ | |||
+ | Síťová vrstva přenáší **pakety** od zdroje k cíli, i pokud jsou na různých sítích a není mezi nimi přímé spojení. Musí tedy najít vhodnou cestu v síti – typicky přes více mezilehlých zařízení (routery). Na rozdíl od spojové vrstvy už zohledňuje topologii celé sítě. | ||
+ | |||
+ | Je to poslední vrstva, kterou **musí** implementovat přenosová infrastruktura – bez ní není možné směrovat mezi sítěmi. Výjimkou mohou být velmi jednoduché nebo uzavřené systémy (např. některé průmyslové aplikace). | ||
+ | |||
+ | Nejběžnějším síťovým protokolem je **IP** (Internet Protocol), včetně jeho verzí IPv4 a IPv6. | ||
+ | |||
+ | **Hlavní zodpovědnosti síťové vrstvy:** | ||
+ | * **Logická adresace** – přiřazení jedinečné IP adresy každému zařízení v síti | ||
+ | * **Směrování (routing)** – hledání nejlepší cesty k cílovému uzlu: | ||
+ | - **neadaptivní (statické)** – trasy se nemění podle zátěže; vhodné pro jednoduché topologie | ||
+ | - **adaptivní (dynamické)** – trasy se přizpůsobují aktuální síťové situaci (např. pomocí OSPF, BGP) | ||
+ | - **izolované (distance-vector)** – router zná jen informace od sousedů (pomalejší reakce) | ||
+ | - **distribuované (link-state)** – routery sdílejí kompletní informace o topologii (rychlejší a přesnější) | ||
+ | * **Fragmentace a defragmentace** – rozdělení velkého paketu, pokud přesahuje MTU, a následné složení na cíli | ||
+ | * **Kontrolní a diagnostické zprávy** – např. ICMP zprávy (ping, Time-Exceeded, | ||
+ | * **Značení QoS (Quality of Service)** – pomocí DSCP/ECN bitů je možné rozlišit důležitost a prioritu provozu | ||
+ | |||
+ | ==== 4. Transportní vrstva (Transport) ==== | ||
+ | |||
+ | Transportní vrstva slouží jako prostředník mezi požadavky aplikačních vrstev a schopnostmi sítě. Jejím úkolem je **přizpůsobit chování přenosu konkrétním potřebám aplikací**, | ||
+ | |||
+ | Např. přenos souboru vyžaduje vysokou spolehlivost, | ||
+ | |||
+ | **Transportní protokoly běží pouze v koncových uzlech** (klienti, servery). Samotná síť (např. routery) je nevyužívá – poskytují aplikačně specifické funkce. | ||
+ | |||
+ | **Zodpovědnosti transportní vrstvy:** | ||
+ | * **Zvýšení spolehlivosti** – číslování segmentů, potvrzování (ACK), opětovné vysílání (ARQ) | ||
+ | * **Virtuální spojení** – řízení spojení mezi dvěma aplikacemi (navázání, | ||
+ | * **Segmentace a sestavení (re-assembly)** – rozdělení velkých zpráv na části a opětovné složení | ||
+ | * **Řízení toku a zahlcení** – zabránění přetížení příjemce nebo sítě | ||
+ | * **Multiplexing portů** – více aplikací na jednom zařízení používá různé porty | ||
+ | * **Volitelně QoS, šifrování, | ||
+ | |||
+ | **Typické protokoly: | ||
+ | * **TCP (Transmission Control Protocol)**: | ||
+ | * **UDP (User Datagram Protocol)**: | ||
+ | * **SCTP, QUIC**: modernější alternativy, | ||
+ | |||
+ | ==== 5. Relační vrstva (Session) ==== | ||
+ | |||
+ | Relační vrstva (Session Layer) zajišťuje **sestavení, | ||
+ | |||
+ | **Možné funkce relační vrstvy:** | ||
+ | * **Synchronizační body (check-pointing)** – pro možnost obnovení po chybě bez nutnosti začít znovu | ||
+ | * **Koordinace více datových toků** – např. současné přehrávání audio a video streamu | ||
+ | * **Řízení dialogu** – určení, kdo kdy „mluví“, | ||
+ | * **Šifrování a komprese** – pokud nejsou řešeny jinde (např. TLS) | ||
+ | * **Podpora transakčního zpracování dat** – např. v databázových systémech | ||
+ | |||
+ | ==== 6. Prezentační vrstva (Presentation) ==== | ||
+ | |||
+ | Prezentační vrstva se stará o to, **jak data vypadají** – tedy o jejich formát, strukturu a kódování. Nižší vrstvy zajišťují, | ||
+ | |||
+ | Prezentační vrstva proto provádí potřebné **konverze a úpravy**, aby byla data pochopitelná pro příjemce. | ||
+ | |||
+ | **Možné využití: | ||
+ | * Převod **endianity** – např. mezi little-endian a big-endian reprezentací čísel | ||
+ | * Převod **znakového kódování** – např. UTF-8 ⇄ UTF-16 | ||
+ | * Definice a zpracování **datových formátů** – např. ASN.1, JSON, XML, Protobuf | ||
+ | * Úpravy formátu struktur a polí, které se přenášejí mezi různými systémy | ||
+ | |||
+ | ==== 7. Aplikační vrstva (Application) ==== | ||
+ | |||
+ | Aplikační vrstva poskytuje **síťové služby přímo aplikacím**. Je nejbližší uživateli – sem patří protokoly, které vývojáři nebo uživatelé skutečně volají (např. HTTP, FTP, SMTP). Nedefinuje samotné aplikace, ale pouze jejich síťové rozhraní. | ||
+ | |||
+ | **Historie a význam:** Původně se předpokládalo, | ||
+ | * Výsledkem je, že aplikační vrstva standardizuje pouze „jádra“ aplikací – např. přenos e-mailu, přístup k distribuovaným objektům, DNS apod., samotné uživatelské rozhraní aplikací leží **nad aplikační vrstvou**. | ||
+ | |||
+ | **Funkce aplikační vrstvy:** | ||
+ | * Poskytuje přístup ke konkrétním síťovým službám (HTTP, FTP, DNS, SMTP, MQTT...) | ||
+ | * Definuje **příkazy, | ||
+ | * Zajišťuje **autentizaci a autorizaci** | ||
+ | |||
+ | ==== PDU × SDU a komunikace mezi vrstvami ==== | ||
+ | |||
+ | Pro komunikaci mezi jednotlivými vrstvami modelu ISO/OSI je důležité pochopit, jak si předávají data a jak je zpracovávají. | ||
+ | * **SDU (Service Data Unit)** – data, která vrstva N **převezme** od vrstvy N + 1. Neobsahuje žádné hlavičky nebo metadata nižších vrstev. Vrstva s SDU nijak nemanipuluje – zasazuje ji jako uživatelský payload. | ||
+ | * **PDU (Protocol Data Unit)** – datová jednotka vytvořená vrstvou N. Obsahuje **SDU jako payload**, ale přidává k němu vlastní hlavičku a případně další řídicí informace. | ||
+ | * **PCI (Protocol Control Information)** – řídicí informace v hlavičce PDU, např. adresace, typ zprávy apod. | ||
+ | * **User data** – uživatelská část PDU, odpovídající SDU | ||
+ | **Vztah:** Vrstva N vytvoří PDU tak, že obalí SDU (data z vrstvy N+1) vlastní hlavičkou → PDU = PCI + SDU | ||
+ | * **SAP (Service Access Point)** – rozhraní mezi dvěma sousedními vrstvami: | ||
+ | * *horní SAP* vrstvy N – vstup, kterým vrstva N poskytuje službu vrstvě N + 1 | ||
+ | * *dolní SAP* vrstvy N – výstup, kterým vrstva N využívá službu vrstvy N − 1 | ||
+ | |||
+ | Další pojmy: | ||
+ | * **Entity (N)** – prvek vrstvy N, který realizuje část jejích funkcí | ||
+ | * **Peer Entities** – entity téže vrstvy, ale na různých uzlech (např. klient/ | ||
+ | * **Service (N)** – služba poskytovaná vrstvou N vrstvě N + 1 | ||
+ | |||
+ | ==== Multiplexing, | ||
+ | |||
+ | Různé vrstvy mohou přenášet data různě složitým způsobem – často dochází k mapování jednoho spojení nebo datové jednotky na více přenosů (nebo naopak). | ||
+ | * **Multiplexing / Demultiplexing**: | ||
+ | * Příklad: více TCP spojení běžících paralelně přes jednu IP adresu (identifikováno porty) | ||
+ | |||
+ | * **Splitting / Recombining**: | ||
+ | * Příklad: link aggregation (např. více fyzických linek sdružených do jednoho logického spojení) | ||
+ | |||
+ | * **Segmenting / Reassembling**: | ||
+ | * Příklady: IP fragmentace, | ||
+ | |||
+ | ==== Zpracování chyb při přenosech ==== | ||
+ | |||
+ | Při přenosu dat může docházet k chybám – buď je odhalíme a požádáme o opakování (ARQ), nebo se je pokusíme rovnou opravit pomocí redundantních dat (FEC). | ||
+ | |||
+ | === ARQ (Automatic Repeat reQuest) === | ||
+ | |||
+ | Metody pro zajištění spolehlivosti pomocí potvrzování (ACK/NACK) a opakovaného přenosu: | ||
+ | |||
+ | === ARQ (Automatic Repeat reQuest) === | ||
+ | |||
+ | **Stop-and-Wait ARQ** | ||
+ | * Odesílatel pošle **jedinou** PDU a **zastaví se**, dokud nepřijde ACK. | ||
+ | * Časovač hlídá timeout; pokud ACK nepřijde, rámec se vyšle znovu. | ||
+ | * V *potrubí* („pipeline“) je vždy jen 1 rámec → **propustnost** | ||
+ | * $\eta = \frac{T(frame)}{T_{\text{frame}} + 2 \cdot RTT}$; kde RTT je Round Trip Time, na dlouhých linkách klesá k nule. | ||
+ | * *Výhody:* extrémně jednoduchá implementace, | ||
+ | * *Nevýhody: | ||
+ | |||
+ | **Go-back-N ARQ** | ||
+ | * Odesílatel udržuje **okno** velikosti *N* – může rozeslat až *N* rámců bez ACK. | ||
+ | * Přijímač potvrzuje **kumulativně** (ACK = „vše do čísla k jsem dostal v pořádku“). | ||
+ | * Pokud se ztratí rámec *i*, příjemce zahodí i všechny následující a pošle ACK k-1; odesílatel „skočí zpět“ a zopakuje **vše od i dál**. | ||
+ | * *Výhody:* výrazně lepší propustnost než Stop-and-Wait, | ||
+ | * *Nevýhody: | ||
+ | |||
+ | **Selective Repeat ARQ** | ||
+ | * Oba konce mají okno; **každý rámec** se potvrzuje samostatným ACK nebo NACK. | ||
+ | * Přijímač si rámce, které dorazí mimo pořadí, odkládá do vyrovnávací paměti a čeká, až dorazí chybějící kusy, aby je pak mohl předat dál ve správném sledu. | ||
+ | * Odesílatel retransmituje **jen ty kusy, které opravdu chybí**. | ||
+ | * *Výhody:* nejvyšší možné využití šířky pásma; zbytečně se nic neopakuje → ideální pro linky s větším RTT (satellites), | ||
+ | * *Nevýhody: | ||
+ | |||
+ | === Detekce chyb (CRC / FCS) === | ||
+ | * **CRC (Cyclic Redundancy Check)** – zbytek po dělení dat polynomem, přenáší se spolu s rámcem. | ||
+ | * Detekuje většinu běžných chyb – typicky se používá na spojové vrstvě. | ||
+ | |||
+ | === FEC (Forward Error Correction) === | ||
+ | * Přidává redundantní bity, které umožní příjemci chybu **opravit bez opakování přenosu**. | ||
+ | * Hodí se pro případy bez zpětného kanálu (DVB, satelity, streamy). | ||
+ | * Používají se např. blokové nebo konvoluční kódy. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== 2. Protokoly TCP/IP ===== | ||
+ | |||
+ | Protokolový zásobník TCP/IP je základní architekturou internetu. Nevznikl podle ISO/OSI, ale má podobnou strukturu. Obsahuje tyto vrstvy: | ||
+ | * **Aplikační vrstva** – pohlcuje aplikační, | ||
+ | * **Transportní vrstva** | ||
+ | * **Síťová vrstva** | ||
+ | * **Vrstva síťového rozhraní** – odpovídá spojové a fyzické vrstvě OSI | ||
+ | |||
+ | TCP/IP protokoly definují, jak se data přenášejí od zdroje k cíli pomocí identifikace přes IP adresy. Podporují tyto způsoby doručení: | ||
+ | * **Unicast** – komunikace 1:1 | ||
+ | * **Broadcast** – 1: všem v síti (např. 255.255.255.255) | ||
+ | * **Multicast** – 1: skupině zařízení | ||
+ | * **Anycast** – 1: nejbližšímu z více možných cílů (v IPv6) | ||
+ | |||
+ | ==== IPv4 ==== | ||
+ | IPv4 je původní verze IP protokolu. Adresy jsou 32bitové, zapisované jako čtyři desetinná čísla (např. `1.1.1.1` (Cloudflare DNS)), správa adres je regionální | ||
+ | |||
+ | IP Adresa má dvě části: | ||
+ | * **síťová část** (network number) | ||
+ | * **část hostitele** (host number) | ||
+ | |||
+ | Původně byly IP adresy rozděleny na **třídy**: | ||
+ | |||
+ | * **Třída A** – $2^7 - 2 = 126$ sítí, $2^{24} - 2 = 16777214$ hostitelů | ||
+ | * **Třída B** – $2^{14} - 2 = 16382$ sítí, $2^{16} - 2 = 65534$ hostitelů | ||
+ | * **Třída C** – $2^{21} - 2 = 2097150$ sítí, $2^8 - 2 = 254$ hostitelů | ||
+ | * **Třída D** – pro multicast | ||
+ | * **Třída E** – rezervováno pro experimenty | ||
+ | |||
+ | **Multicastové adresy:** | ||
+ | * 224.0.0.x – dobře známé skupiny | ||
+ | * 239.x.x.x – lokální skupiny (organizace) | ||
+ | |||
+ | **Maska podsítě** definuje, kolik bitů tvoří síťovou část. | ||
+ | * např. 255.255.252.0 odpovídá síti s $2^{10} - 2 = 1022$ uzly | ||
+ | |||
+ | === Vyhrazené IPv4 adresy === | ||
+ | |||
+ | * **x.x.0.0** – adresa celé sítě | ||
+ | * **0.0.0.x** – adresa uzlu v neznámé síti | ||
+ | * **255.255.255.255** – omezený broadcast, neprojde přes router | ||
+ | * **x.x.255.255** – řízený broadcast, prochází přes router | ||
+ | * **127.x.x.x** – loopback (localhost), | ||
+ | * **10.0.0.0/ | ||
+ | * **172.16.0.0 – 172.31.0.0** – privátní sítě (třída B) | ||
+ | * **192.168.0.0 – 192.168.255.0** – privátní sítě (třída C) | ||
+ | |||
+ | === Vyčerpání adres a NAT === | ||
+ | |||
+ | Vzhledem k vyčerpání IPv4 adres se běžně používá: | ||
+ | |||
+ | * **NAT (Network Address Translation)** – více zařízení sdílí jednu veřejnou IP adresu | ||
+ | * **NAPT (Network Address Port Translation)** – překlad nejen adres, ale i portů → umožňuje rozlišit zařízení pomocí portů | ||
+ | |||
+ | Např. interní adresa `192.168.1.42: | ||
+ | |||
+ | ==== IPv6 ==== | ||
+ | |||
+ | IPv6 je nástupcem protokolu IPv4 – umožňuje přidělit mnohem více unikátních IP adres díky délce **128 bitů** (oproti 32 bitům u IPv4). Zároveň přináší zjednodušenou strukturu hlavičky a pokročilejší funkce (např. anycast, auto-konfiguraci). | ||
+ | |||
+ | **Zápis IPv6 adres:** | ||
+ | * 8 bloků po 4 hexadecimálních číslicích, | ||
+ | * např. `2001: | ||
+ | * lze zkrátit: | ||
+ | * **vynechání úvodních nul**: `2001: | ||
+ | * **nahrazení sekvence nul** pomocí `::` – ale **jen jednou v adrese**: `2001: | ||
+ | |||
+ | **Příklad zápisu v URL:** `http:// | ||
+ | |||
+ | === Struktura IPv6 adresy === | ||
+ | |||
+ | Adresa se skládá z několika částí: | ||
+ | |||
+ | * **Globální směrovací prefix** – typicky 48 bitů | ||
+ | * **Identifikátor podsítě** – obvykle 16 bitů | ||
+ | * **Identifikátor rozhraní (interface ID)** – vždy 64 bitů | ||
+ | * často odvozen z MAC adresy pomocí **modifikovaného EUI-64** | ||
+ | |||
+ | **Zápis s prefixem:** např. `2001: | ||
+ | |||
+ | === Typy IPv6 adres === | ||
+ | |||
+ | * **Unicast** – identifikuje jeden konkrétní uzel | ||
+ | * **Multicast** – odeslání dat celé skupině uzlů | ||
+ | * prefix `ff00::/ | ||
+ | * **Anycast** – doručení nejbližšímu uzlu ze skupiny (pouze v IPv6) | ||
+ | * (IPv6 **nepodporuje broadcast** – nahrazen multicastem) | ||
+ | |||
+ | === Vybrané speciální adresy === | ||
+ | |||
+ | * `::/128` – nedefinovaná adresa | ||
+ | * `::1/128` – loopback (ekvivalent 127.0.0.1) | ||
+ | * `fe80::/10` – link-local adresa (pro komunikaci v rámci jedné linky) | ||
+ | * `fc00::/7` – unikátní lokální adresy (náhrada IPv4 privátních) | ||
+ | * `ff00::/8` – multicastové adresy | ||
+ | |||
+ | === Zvláštní poznámky === | ||
+ | |||
+ | * Jedno rozhraní **může mít více IPv6 adres** (např. link-local + globální). | ||
+ | * Pro označení příslušnosti k síti se používá **prefix**: `adresa/ | ||
+ | * IPv6 adresa se **v URL zapisuje do hranatých závorek**, např. `http:// | ||
+ | |||
+ | ==== ICMP (Internet Control Message Protocol) ==== | ||
+ | |||
+ | ICMP je součástí IP protokolu a slouží k **hlášení problémů při zpracování IP paketů**. Nezajišťuje spolehlivost komunikace – je určen pro diagnostiku a řízení. | ||
+ | |||
+ | * Povinná součást implementace IPv4 i IPv6. | ||
+ | * Nepoužívá se pro **broadcast** ani **multicast**. | ||
+ | * Generování ICMP zpráv je **volitelné** – typicky je generují směrovače. | ||
+ | * Neposílají se, pokud je zdrojová adresa neplatná (např. `0.0.0.0`, `127.0.0.1`…). | ||
+ | |||
+ | **Příklady využití: | ||
+ | * `ping` – posílá ICMP Echo Request, očekává Echo Reply | ||
+ | * `traceroute` – využívá Time Exceeded zprávy ke zjištění cesty paketů | ||
+ | |||
+ | **Typické typy ICMP zpráv:** | ||
+ | * Echo Request (8) / Reply (0) ; Destination Unreachable (3) ; Time Exceeded (11) ; Redirect (5) | ||
+ | |||
+ | ==== ARP (Address Resolution Protocol) ==== | ||
+ | |||
+ | ARP se používá pro **získání MAC adresy podle IP adresy** – na linkové vrstvě IPv4 sítí. | ||
+ | |||
+ | * Funguje jen v rámci jedné fyzické sítě (neprochází routery). | ||
+ | * Síťový uzel si udržuje **ARP cache** – tabulku IP ↔ MAC. | ||
+ | * Pokud MAC adresa není známa: | ||
+ | * odesílá se **ARP request** (broadcast) | ||
+ | * cílový uzel odpoví **ARP reply** (unicast) | ||
+ | * ARP odpověď může aktualizovat existující záznamy v cache. | ||
+ | |||
+ | **Pouze pro IPv4.** V IPv6 se místo toho používá NDP. | ||
+ | |||
+ | ==== NDP (Neighbor Discovery Protocol) ==== | ||
+ | |||
+ | NDP je protokol používaný v IPv6 sítích pro správu sousedů na linkové vrstvě. Implementuje se pomocí **ICMPv6 zpráv**. | ||
+ | |||
+ | **Zajišťuje: | ||
+ | * zjištění linkové adresy souseda (obdoba ARP) | ||
+ | * detekci změn linkových adres | ||
+ | * detekci duplicitních adres | ||
+ | * přesměrování a hledání směrovačů (router discovery) | ||
+ | * získávání parametrů sítě – prefixy, MTU, směrovače… | ||
+ | |||
+ | **Používané zprávy ICMPv6:** Router Solicitation / Advertisement ; Neighbor Solicitation / Advertisement ; Redirect | ||
+ | |||
+ | ==== UDP (User Datagram Protocol) ==== | ||
+ | |||
+ | UDP poskytuje jednoduché aplikační rozhraní k IP vrstvě. Přenáší **datagramy (packety)** mezi aplikacemi, ale **neposkytuje žádné záruky** doručení, pořadí ani detekce chyb. | ||
+ | * **Neposkytuje: | ||
+ | * **Používá se tam, kde je důležitá rychlost a nízká režie**, např. VoIP, DNS, streamy | ||
+ | |||
+ | **Struktura hlavičky UDP (8 bajtů): | ||
+ | * Source Port | ||
+ | * Destination Port | ||
+ | * Length – délka celého UDP paketu | ||
+ | * Checksum – volitelný kontrolní součet | ||
+ | |||
+ | ==== TCP (Transmission Control Protocol) ==== | ||
+ | |||
+ | TCP zajišťuje **spolehlivou spojovanou komunikaci** mezi aplikacemi. Na rozdíl od UDP garantuje doručení dat ve správném pořadí, bez ztrát a duplikací. | ||
+ | |||
+ | * Emuluje **plně duplexní spojení** – obě strany mohou komunikovat současně | ||
+ | * Zajišťuje: | ||
+ | * **sekvenční číslování** segmentů | ||
+ | * **potvrzování (ACK)** přijatých dat | ||
+ | * **řízení toku** pomocí okna | ||
+ | * **opakování ztracených dat** | ||
+ | * **segmentaci** větších bloků dat | ||
+ | |||
+ | === TCP spojení === | ||
+ | |||
+ | * Navázání: | ||
+ | * Ukončení: výměna FIN a ACK | ||
+ | |||
+ | === TCP congestion control (řízení zahlcení) === | ||
+ | |||
+ | TCP dynamicky upravuje rychlost přenosu na základě ztrát paketů a odezvy: | ||
+ | * **Slow start:** Začíná s malým oknem, které se exponenciálně zvětšuje, rychle detekuje maximální přenosovou kapacitu | ||
+ | * **Congestion avoidance: | ||
+ | * **Fast retransmit: | ||
+ | * **Fast recovery:** Po ztrátě nastaví nové (nižší) okno, ale nevstupuje znovu do slow start, umožňuje pokračovat v přenosu s mírným omezením | ||
+ | |||
+ | ==== DHCP (Dynamic Host Configuration Protocol) ==== | ||
+ | |||
+ | DHCP slouží k **automatickému přidělování síťových parametrů** klientům v síti – nejčastěji IP adresa, maska podsítě, výchozí brána, DNS server apod. | ||
+ | |||
+ | * DHCP server běží obvykle na routeru nebo jiném síťovém zařízení | ||
+ | * Adresy jsou přidělovány z definovaného **adresního rozsahu (poolu)** | ||
+ | * Lze nastavit i **statické přidělení IP** pro konkrétní MAC adresu | ||
+ | * Protokol běží nad **UDP** a využívá **broadcast** zprávy | ||
+ | |||
+ | Používá se při spuštění počítače nebo zařízení pro získání konfigurace bez zásahu uživatele. | ||
+ | |||
+ | ==== DNS (Domain Name System) ==== | ||
+ | |||
+ | DNS zajišťuje **překlad doménových jmen na IP adresy a zpět**. Umožňuje používat čitelné názvy místo číselných IP adres. | ||
+ | |||
+ | * Funguje jako **hierarchický distribuovaný systém** | ||
+ | * Každá část doménového jména je obsluhována jiným serverem (např. `.cz`, `.cvut.cz`, …) | ||
+ | * Servery mají **autoritativní zónu** – zodpovídají za konkrétní část doménového stromu | ||
+ | * Dotazy mohou být **rekurzivní** (server hledá za nás) nebo **iterativní** (vrací jen odkazy dál) | ||
+ | |||
+ | **Příklad překladu `cw.felk.cvut.cz`: | ||
+ | * DNS klient postupně získává IP dotazem na: | ||
+ | * `.cz` | ||
+ | * `.cvut.cz` | ||
+ | * `.felk.cvut.cz` | ||
+ | * `.cw.felk.cvut.cz` | ||
+ | |||
+ | **Typy DNS serverů: | ||
+ | * *Primární* – má autoritu a provádí editaci záznamů | ||
+ | * *Sekundární* – kopie dat od primárního serveru | ||
+ | * *Caching only* – ukládá odpovědi, snižuje zátěž sítě, není autoritativní | ||
+ | |||
+ | **Historie: | ||
+ | * Dříve se překlad řešil lokálně přes soubor `hosts.txt`, | ||
+ | * S růstem sítě se tato metoda stala neudržitelnou → vznik DNS | ||
+ | |||
+ | |||
+ | ==== Směrování v IP sítích ==== | ||
+ | |||
+ | Směrování (routing) zajišťuje **doručení paketů k cílové IP adrese**, i pokud se nachází v jiné síti. Směrování probíhá na **síťové vrstvě**. | ||
+ | |||
+ | **Zajišťuje jej směrovač (router): | ||
+ | * Analyzuje cílovou IP adresu v hlavičce paketu | ||
+ | * Vyhledá nejlepší cestu podle **směrovací tabulky** | ||
+ | * Paket předá dál – na MAC adresu následujícího uzlu (next hop) | ||
+ | * Může propojovat sítě s různými fyzickými i linkovými technologiemi (např. Ethernet a Wi-Fi) | ||
+ | |||
+ | **Charakteristiky směrování: | ||
+ | * Směrovač zná **topologii sítě** (nebo její část) | ||
+ | * Směrovací tabulka se může plnit staticky nebo dynamicky (např. pomocí OSPF, BGP…) | ||
+ | * Směrovače mohou v síti tvořit **zpoždění** – při přetížení mohou některé pakety zahodit | ||
+ | |||
+ | **Gateway: | ||
+ | * Prvek pracující na vyšších vrstvách (často až **aplikační**) | ||
+ | * Umožňuje propojení různých systémů nebo protokolových rodin – například mezi OSI a TCP/IP | ||
+ | * Překládá formáty, adresy i logiku protokolů | ||
+ | |||
+ | |||
+ | ===== 3. Síťové technologie ===== | ||
+ | |||
+ | ==== Ethernet ==== | ||
+ | |||
+ | Ethernet je nejrozšířenější technologie pro **lokální sítě (LAN)**. Patří do linkové vrstvy ISO/OSI modelu a byl vyvinut ve firmě Xerox v 70. letech. Standardizace probíhá pod označením **IEEE 802.3**. | ||
+ | |||
+ | === Charakteristiky Ethernetu === | ||
+ | * Přenáší data v rámci **MAC rámců** | ||
+ | * Přístupová metoda: **CSMA/CD** – kolize jsou detekovány a rámce znovu odeslány | ||
+ | * Využívá **kroucenou dvoulinku** nebo **optické vlákno** | ||
+ | * **Fyzická topologie** může být různá, ale **logická topologie** je většinou **hvězdicová** | ||
+ | * Pro zamezení smyček se používá **Spanning Tree Protocol (STP)** | ||
+ | |||
+ | === Varianty Ethernetu === | ||
+ | * Historicky: **10Base2** (koaxiální kabel) | ||
+ | * Dnes běžně: **100Base-TX**, | ||
+ | * Označení podle standardu: **IEEE 802.3xx**, např.: | ||
+ | * `802.3a` – 10Base2 | ||
+ | * `802.3ab` – 1000Base-T | ||
+ | |||
+ | === Propojovací zařízení v Ethernet sítích === | ||
+ | * **Opakovač (repeater)** – regeneruje signál, zvětšuje dosah (používá se omezeně, max. 2–4 za sebou) | ||
+ | * **Rozbočovač (hub)** – pracuje na fyzické vrstvě, data vysílá na všechny porty, nevytváří oddělené kolizní domény | ||
+ | * **Most (bridge)** – filtruje provoz mezi segmenty sítě | ||
+ | * **Přepínač (switch)** – pracuje na linkové vrstvě, přeposílá rámce jen na cílový port podle MAC adresy, **odděluje kolizní domény** | ||
+ | |||
+ | ==== Wi-Fi ==== | ||
+ | |||
+ | Wi-Fi je bezdrátová síťová technologie, | ||
+ | |||
+ | === Vlastnosti Wi-Fi === | ||
+ | * **Flexibilita** – není potřeba fyzická infrastruktura, | ||
+ | * Přenos probíhá v pásmech **2,4 GHz**, **5 GHz** a nově **6 GHz** | ||
+ | * Přístupová metoda: **CSMA/CA (Collision Avoidance)** – kolizím se předchází, | ||
+ | * Kolize se eliminují pomocí **rezervačních mechanismů** (RTS/CTS) a **potvrzování přenosu (ACK)** | ||
+ | |||
+ | === Typy sítí === | ||
+ | * **Ad-hoc** – přímé spojení mezi zařízeními, | ||
+ | * **Infrastructure mode** – připojení zařízení přes **Access Point (AP)**, běžný režim ve většině sítí | ||
+ | |||
+ | === Spolehlivost přenosu === | ||
+ | * Standard **IEEE 802.11** obsahuje vlastní mechanismy zajišťující spolehlivost přenosu | ||
+ | * I při použití nespolehlivých protokolů (např. UDP) rámce mezi zařízeními nesmí být ztraceny | ||
+ | |||
+ | === Bezpečnostní standardy === | ||
+ | * **WEP** – původní, dnes považován za nebezpečný | ||
+ | * **WPA** – dočasná náhrada | ||
+ | * **WPA2** – bezpečné šifrování pomocí AES, dnes nejrozšířenější | ||
+ | * **WPA3** – moderní standard s vyšší úrovní zabezpečení | ||
+ | |||
+ | ==== Přístupové metody ==== | ||
+ | |||
+ | Přístupová metoda určuje, jakým způsobem zařízení sdílejí přenosové médium – tedy **kdo a kdy může vysílat**. Dělíme je na deterministické a nedeterministické. | ||
+ | |||
+ | === Deterministické přístupové metody === | ||
+ | Kolize **vůbec nenastávají** – přístup je řízený a předem daný. | ||
+ | |||
+ | * **Master-slave** | ||
+ | * Jeden uzel (*master*) přiděluje právo vysílat ostatním (*slave*). | ||
+ | * Slave nemůže sám od sebe vysílat. | ||
+ | * Využití např. v průmyslových distribuovaných systémech. | ||
+ | * *+* jednoduchá implementace, | ||
+ | * **Token passing** | ||
+ | * Uzel může vysílat jen, pokud drží **token** – speciální datovou jednotku. | ||
+ | * Token se předává v kruhu. | ||
+ | * *+* rovnost uzlů, *–* ztráta tokenu = dočasná nefunkčnost | ||
+ | * **TDMA (Time Division Multiple Access)** | ||
+ | * Kanál je rozdělen na **časové sloty**, každé zařízení má přidělený svůj čas. | ||
+ | * Umožňuje více uživatelům sdílet stejné médium bez kolizí. | ||
+ | * **Delegated token** | ||
+ | * Právo vysílat přiděluje **arbitr** vysíláním výzev. | ||
+ | * *–* závislost na uzlu arbitra | ||
+ | |||
+ | === Nedeterministické přístupové metody === | ||
+ | Kolize **mohou nastat**, ale protokol s nimi počítá. | ||
+ | |||
+ | * **CSMA (Carrier Sense Multiple Access)** | ||
+ | * Uzel čeká, dokud je médium volné, pak vysílá. | ||
+ | * Pokud médium není volné, čeká. | ||
+ | * **CSMA/CD (Collision Detection)** – Ethernet | ||
+ | * Po detekci kolize vysílání přeruší, čeká **náhodný čas (back-off)** a zkouší znovu. | ||
+ | * **CSMA/CA (Collision Avoidance)** – Wi-Fi | ||
+ | * Uzel oznámí úmysl vysílat (např. RTS/CTS), čeká, zda je médium volné. | ||
+ | * Eliminace kolizí u zařízení, | ||
+ | * **CSMA/CR (Collision Resolution)** | ||
+ | * Uzlům je přiřazena **priorita** – v případě kolize má přednost uzel s vyšší prioritou. | ||
+ | * Kolize se neřeší náhodným zpožděním, | ||
+ | |||
+ | ==== VLAN (Virtual LAN) ==== | ||
+ | |||
+ | **VLAN (Virtual LAN)** umožňuje **logické oddělení provozu** na sdílené fyzické infrastruktuře – bez nutnosti fyzicky oddělených kabeláží. Definováno standardem **IEEE 802.1Q**. | ||
+ | |||
+ | === Vlastnosti VLAN === | ||
+ | * Oddělení komunikace mezi skupinami zařízení – **každá VLAN funguje jako samostatná síť** | ||
+ | * Implementace je zajištěna pomocí **přepínačů (switchů)**, | ||
+ | * VLAN tag obsahuje **číslo VLAN** a volitelně **prioritu** | ||
+ | * VLAN tagy mohou být využity i pro řízení **QoS (Quality of Service)** | ||
+ | * **Spanning Tree Protocol (STP)** je spuštěn **samostatně pro každou VLAN** | ||
+ | |||
+ | Díky VLAN je možné například v jedné firmě oddělit síť pro zaměstnance, | ||
+ | |||
+ | ==== Rozdíly mezi rozbočovačem a přepínačem ==== | ||
+ | |||
+ | **Rozbočovač (hub)** | ||
+ | * Pracuje na **fyzické vrstvě** ISO/OSI modelu | ||
+ | * Data vysílá **všem portům** – forma broadcastu | ||
+ | * Vede k vysoké míře kolizí a nízké efektivitě | ||
+ | * **Bezpečnost je nízká**, protože každý může slyšet vše | ||
+ | * Dnes je **zastaralý** a prakticky nepoužívaný | ||
+ | |||
+ | **Přepínač (switch)** | ||
+ | * Pracuje na **linkové vrstvě** | ||
+ | * Data přeposílá **cíleně** podle MAC adresy | ||
+ | * **Odděluje kolizní domény**, zvyšuje efektivitu přenosu | ||
+ | * **Bezpečnější** než hub – odposlech je obtížnější | ||
+ | * Je běžnou součástí moderních LAN sítí | ||