The wiki page is under active construction, expect bugs.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
statnice:bakalar:b4b38psia [2025/01/24 13:39] jpelcstatnice: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í, spolehlivost datových přenosů, protokoly rodiny TCP/IP. ====== ====== Počítačové sítě, ISO/OSI model, vlastnosti fyzických vrstev, topologie, řízení přístupu k médiu, kódování, spolehlivost datových přenosů, protokoly rodiny TCP/IP. ======
  
-  * ISO/OSI modelfunkce vrstev a komunikace mezi nimi, PDU, SDU, multiplexování, splitting, segmentace … metody zpracování chyb při datových přenosech, dopředná chybová korekce, ARQ metody, jejich vlastnosti a vhodné aplikační nasazení, CRC a jeho vlastnosti. +[[https://fel.cvut.cz/cz/education/bk/predmety/46/66/p4666906.html|B4B38PSIA]] 
-  * Protokoly TCP/IPIPv4, 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í, splitting, segmentace. Metody zpracování chyb při datových přenosech, dopředná chybová korekce, ARQ metody, jejich vlastnosti a vhodné aplikační nasazení, CRC a jeho vlastnosti. 
 +  * **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 ====== 
 + 
 +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í, šifrování, komprese dat 
 +  * **5. Relační vrstva** – správa relací mezi aplikacemi (navázání, udržování, ukončení spojení) 
 +  * **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). 
 + 
 +{{:statnice:bakalar:pasted:20250603-172610.png}} 
 + 
 +==== 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í, řízení toku 
 + 
 +=== 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í/nápravou chyb nebo bez 
 +  * **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é), případně rozšířené o VLAN tagy 
 +  * **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í/ukončení spojení, asociace v bezdrátových sítích 
 + 
 +==== 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, Destination-Unreachable) 
 +  * **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í**, protože nižší vrstvy často nemůžeme měnit – bývají sdílené nebo pod správou jiné organizace. 
 + 
 +Např. přenos souboru vyžaduje vysokou spolehlivost, zatímco videohovor raději upřednostní nízkou latenci. 
 + 
 +**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í, udržování, ukončení) 
 +  * **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í, prioritizace** 
 + 
 +**Typické protokoly:** 
 +  * **TCP (Transmission Control Protocol)**: spojovaný, spolehlivý, řízení zahlcení, ARQ, vhodný pro web, e-mail, přenosy souborů 
 +  * **UDP (User Datagram Protocol)**: nespojovaný, best-effort, preferován, když je důležitá latence (např. VoIP, DNS) 
 +  * **SCTP, QUIC**: modernější alternativy, podpora vícenásobných toků, lepší latence (QUIC = TCP+TLS+HTTP/2 dohromady) 
 + 
 +==== 5. Relační vrstva (Session) ==== 
 + 
 +Relační vrstva (Session Layer) zajišťuje **sestavení, správu a ukončení relací** mezi dvěma aplikačními procesy. Typicky jde o delší komunikaci, která může být organizovaná jako dialog nebo konverzace. 
 + 
 +**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í“, half-duplex/full-duplex komunikace 
 +  * **Š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í, aby byly bity doručeny přesně tak, jak byly odeslány. To ale nestačí – stejná posloupnost bitů může mít na různých zařízeních různý význam (např. kvůli jiné endianitě nebo znakovému kódování). 
 + 
 +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, že aplikační vrstva bude přímo obsahovat aplikace, ukázalo se, že aplikací je příliš mnoho a není smysluplné všechny standardizovat. 
 +  * 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, odpovědi, formát zpráv** 
 +  * 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/server) 
 +  * **Service (N)** – služba poskytovaná vrstvou N vrstvě N + 1 
 + 
 +==== Multiplexing, Splitting, Segmenting ==== 
 + 
 +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**: Jedno spojení vrstvy N − 1 nese více spojení vrstvy N   
 +    * Příklad: více TCP spojení běžících paralelně přes jednu IP adresu (identifikováno porty) 
 + 
 +  * **Splitting / Recombining**: Jedno spojení vrstvy N je rozděleno mezi více spojení vrstvy N − 1   
 +    * Příklad: link aggregation (např. více fyzických linek sdružených do jednoho logického spojení) 
 + 
 +  * **Segmenting / Reassembling**: Velká SDU je rozdělena na více PDU, které se přenesou samostatně a následně opět složí   
 +    * Příklady: IP fragmentace, segmentace v TCP 
 + 
 +==== 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, minimální vyrovnávací paměti. 
 +  * *Nevýhody:* malé využití linky, hodí se jen tam, kde je RTT malé a/nebo rámce krátké (jednoduché sériové linky, staré half-duplex rádiové modemy). 
 + 
 +**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, vyžaduje jen jeden ACK na okno. 
 +  * *Nevýhody:* zbytečně opakuje i rámce, které dorazily správně; při delším RTT a vyšší chybovosti rychle klesá efektivita. 
 + 
 +**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), nebo když je ztrát málo, ale záleží na rychlosti. 
 +  * *Nevýhody:* složitější implementace, potřebuje víc paměti na oba buffery. Moderní TCP používá formu Selective Repeat – **SACK** (Selective ACK). 
 + 
 +=== 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. 
 + 
 +{{:statnice:bakalar:pasted:20250603-180626.png}} {{:statnice:bakalar:pasted:20250603-181225.png}} 
 + 
 +===== 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í, prezentační a relační vrstvu OSI 
 +  * **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), např. 127.0.0.1   
 +  * **10.0.0.0/8** – privátní síť (třída A)   
 +  * **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:12345` může být zvenku viditelná jako `88.1.2.3:50001`. 
 + 
 +==== 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, oddělených dvojtečkami   
 +    * např. `2001:0db8:85a3:0000:0000:8a2e:0370:7334` 
 +  * lze zkrátit: 
 +    * **vynechání úvodních nul**: `2001:db8:85a3:0:0:8a2e:370:7334` 
 +    * **nahrazení sekvence nul** pomocí `::` – ale **jen jednou v adrese**: `2001:db8:85a3::8a2e:370:7334` 
 + 
 +**Příklad zápisu v URL:** `http://[2001:db8::1]/
 + 
 +=== 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:db8:1234::/48` 
 + 
 +=== Typy IPv6 adres === 
 + 
 +  * **Unicast** – identifikuje jeden konkrétní uzel 
 +  * **Multicast** – odeslání dat celé skupině uzlů   
 +    * prefix `ff00::/8` 
 +  * **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/délka`, např. `2001:db8::/32` 
 +  * IPv6 adresa se **v URL zapisuje do hranatých závorek**, např. `http://[2001:db8::1]/
 + 
 +==== 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:** spolehlivost přenosu (žádné potvrzování ani opakování), emulaci spojení, řízení toku 
 +  * **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í: tzv. **3-way handshake** (SYN → SYN+ACK → ACK) 
 +  * 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:** Po dosažení prahu (ssthresh) přechází na lineární zvyšování, zabraňuje zahlcení sítě 
 +  * **Fast retransmit:** Pokud přijdou 3 duplicitní ACK, předpokládá se ztráta a segment se odešle znovu bez čekání na timeout 
 +  * **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`, který byl sdílen mezi počítači 
 +  * 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**, **1000Base-T** (gigabitový Ethernet) 
 +  * 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, která umožňuje připojení bez nutnosti fyzické kabeláže. Standardizována je jako **IEEE 802.11**. 
 + 
 +=== Vlastnosti Wi-Fi === 
 +  * **Flexibilita** – není potřeba fyzická infrastruktura, zařízení lze snadno přemisťovat 
 +  * 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í, protože zařízení se nemusí vždy navzájem slyšet 
 +  * 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, bez Access Pointu 
 +  * **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, *–* závislost na funkci mastera 
 +  * **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í, která se navzájem neslyší. 
 +  * **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, ale podle pravidel. 
 + 
 +==== 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ů)**, které přidávají do rámců tzv. **VLAN tagy** 
 +    * 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, tiskárny a návštěvníky, i když sdílejí stejné fyzické připojení. 
 + 
 +==== 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í
  
Navigation

Playground

QR Code
QR Code statnice:bakalar:b4b38psia (generated for current page)