The wiki page is under active construction, expect bugs.

This is an old revision of the document!


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.

B4B38PSIA

  • 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č.

1. ISO/OSI model

ISO/OSI model se skládá ze 7 vrstev:

7. Aplikační vrstva

6. Prezentační vrstva

5. Relační vrstva

4. Transportní vrstva

3. Síťová vrstva

2. Spojová vrstva

1. Fyzická vrstva

<markdown>

Kriterii pro ISO/OSI vrstvy bylo: * Činnosti na stejném stupni abstrakce mají být ve stejné vrstvě * Minimalizace datových toků mezi vrstvami * Aplikovatelnost na významné existující standardy (X.25)

## 1. Fyzická vrstva * Zabývá se výhradně přenosem bitů (symbolů – což je minimální jednotka) dat, který je fyzická vrstva schopna přenést. * Nabízí služby typu *odešli bit* / *přijmi bit*. * Nijak neinterpretuje to, co přenáší.

Rozlišujeme: * Paralelní a sériový přenos * Synchronní, asynchronní a arytmický přenos * Přenos v základním pásmu (drát ➜ přímo 0/1) a v přeloženém pásmu (data modulujeme do symbolů, na příjmu demodulujeme)

Příklady standardů fyzické vrstvy: * RS-232, RS-485 * IEEE 802.3 (Ethernet), IEEE 802.11 (Wi-Fi) …

## 2. Spojová vrstva (Data Link) * Přenáší rámce v dosahu jediného fyzického spoje.

Zodpovědnosti: - Synchronizace rámců – rozpoznání začátku/konce a struktury rámce. - MAC (media-access control) – řešení kolizí na sdíleném médiu (CSMA/CD, CSMA/CA, token passing). - Adresace – fyzické 48bitové MAC adresy, případně VLAN tagy. - Spolehlivost – detekce chyb (CRC-32/FCS), lokální ARQ/FEC; může fungovat i jako „best-effort“. - Řízení toku – aby vysílač nezahltil příjemce (PAUSE rámce, HDLC ACK/NACK). - Link-management – zřízení/ukončení spojení, asociace u bezdrátových sítí.

## 3. Síťová vrstva (Network) * Přenáší pakety od zdroje ke cíli napříč sítěmi (mezi odesílatelem a příjemcem může stát řada mezilehlých zařízení). * Musí počítat s topologií celé sítě (alespoň částečně). * Je poslední vrstvou, kterou musí implementovat samotná přenosová infrastruktura. * Nejrozšířenější implementací je protokol IP (IPv4/IPv6).

Zodpovědnosti: - Logická adresace – přidělení jedinečné IP adresy každému uzlu. - Směrování (routing) – vyhledání nejlepší cesty:

  • neadaptivní/statické – trasy se nemění podle provozu; jednoduché, ale neflexibilní (typicky menší nebo klidné sítě).
  • adaptivní/dynamické – tabulky se přepočítávají na základě aktuální topologie či zátěže (OSPF, BGP).
  • izolované (distance-vector) – router rozhoduje jen z vlastních informací, nezná detailní stav ostatních; pomalejší konvergence.
  • distribuované/kooperativní (link-state) – routery sdílejí kompletní pohled na síť a globálně počítají nejkratší cesty; rychlá reakce na změny.

- Fragmentace / defragmentace – rozdělení velkého paketu, pokud překračuje MTU segmentu; znovusložení na cíli. - Kontrolní a diagnostické zprávy – ICMP, chybové zprávy (Time-Exceeded, Destination-Unreachable) a echo testy (ping). - Značení QoS – DSCP/ECN bity pro správu přetížení a priorit.

## 4. Transportní vrstva (Transport)

* Úkol: přizpůsobit služby sítě požadavkům vyšších vrstev – překlenout rozdíl mezi tím, *co síť umí* a *co aplikace potřebují* :contentReference[oaicite:1]{index=1} * Proč je to nutné?

  • Vlastnosti nižších vrstev (spolehlivost, způsob spojení …) obvykle nemůžeme změnit – často patří jiné organizaci nebo jsou sdílené s dalšími uživateli.
  • Vyšší vrstvy mohou mít různé – i protichůdné – nároky (např. file-transfer vs. hlas)

* Kde běží: - Protokoly transportní vrstvy existují jen v koncových uzlech (servery, klienti).

* Jak může přenos vylepšit: - Spolehlivost: přidává číslování, potvrzování, ARQ → mění *nespolehlivý* přenos na *spolehlivý*. - Spojovanost: vytváří virtuální spojení (establish / maintain / teardown) i nad původně *nespojovanou* síť. - Další volitelné funkce: segmentace/re-assembly velkých SDU, řízení toku a zahlcení, multiplexing portů, volitelná QoS, šifrování (TLS nad TCP) apod.

* Typické protokoly: - TCP – spojovaný, spolehlivý (ARQ, congestion control) – vhodný pro web, soubory, e-mail. - UDP – nespojovaný, best-effort – ideální, když je důležitější latence než perfektní spolehlivost (VoIP, DNS). - SCTP, QUIC – hybridní nebo vylepšené varianty pro speciální potřeby (multistream, 0-RTT).

## 5. Relační vrstva (Session) * Zřizuje, spravuje a ukončuje relace mezi aplikačními procesy. * Možné využití: - Vkládání synchronizační body (check-pointing) pro obnovu po chybě. - Koordinace více toků – např. u videokonference drží audio a video „pohromadě“. - Řízení dialogu (kdo kdy mluví) a volitelné šifrování nebo kompresi na úrovni relace. - Šifrování dat - Komprese - Podpora transakčního zpracování dat

## 6. Prezentační vrstva (Presentation) * Řeší to že nižší vrstvy se snaží každý bit doručit stejně jak byl poslán. Ale prezenční vrstva se snaží data přizpůsobit příjemci. * Řeší formu dat – *jak* vypadají, ne *kam* jdou. * Možné využití: - Převádí endianitu dat (pořadí nejvíc významných bitů). - Převádí kódování znaků (UTF-8 ⇄ UTF-16), endianitu čísel. - Definuje datové formáty (ASN.1, JSON, XML, Protobuf).

## 7. Aplikační vrstva (Application) * Historicky vrstva ve které bude aplikace (nefunguje, aplikací je moc a musely by být standardizováno) * Poskytuje konkrétní síťové služby uživatelským aplikacím (HTTP, FTP, DNS, SMTP, MQTT …). * Definuje příkazy, odpovědi, formát zpráv, autentizaci a autorizaci. * Je nejbližší uživateli – to, co reálně „volá“ programátor nebo browser.

### PDU × SDU a komunikace mezi vrstvami

- PDU (Protocol Data Unit) – datová jednotka *uvnitř* vrstvy N: její hlavička + uživatelský payload. - SDU (Service Data Unit) – data, která vrstva N převzala od vrstvy N + 1 a zasazuje je jako payload do svého PDU. - SAP (Service Access Point) – „dveře“ mezi vrstvami:

  • horní SAP vrstvy N = rozhraní, kterým vrstva N poskytuje své služby vrstvě N + 1,
  • dolní SAP vrstvy N = rozhraní, kterým vrstva N využívá služby vrstvy N − 1.

### Multiplexing, Splitting, Segmenting - Multiplexing/Demultiplexing – jediné spojení vrstvy N − 1 nese více spojení vrstvy N (např. TCP porty nad IP). - Splitting/Recombining – jedno spojení vrstvy N rozděleno přes několik spojení N − 1 (link aggregation). - Segmenting/Reassembling – velká SDU rozdělena na více PDU; na cíli znovu složena (IP fragmenty, TCP segmenty).

### Zpracování chyb při přenosech - ARQ (Automatic Repeat reQuest) – snaží se udržet spolehlivost přenosu pomocí opakování chybné PDU:

  • Stop-and-Wait ARQ

1. Odesílatel pošle jedinou PDU a zastaví se, dokud nepřijde ACK.

  2. Časovač hlídá timeout; pokud ACK nepřijde, rámec se vyšle znovu.  
  3. V *potrubí* („pipeline“) je vždy jen 1 rámec → **propustnost**  
    $\eta = \frac{T_{\text{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

1. Odesílatel udržuje okno velikosti *N* – může rozeslat až *N* rámců bez ACK.

  2. Přijímač potvrzuje **kumulativně** (ACK = „vše do čísla k jsem dostal v pořádku“).  
  3. 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

1. Oba konce mají okno; každý rámec se potvrzuje samostatným ACK nebo NACK.

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

- CRC / FCS – zbytek dělení polynomem; detekuje všechny jednobitové a většinu vícenásobných chyb; používá se hlavně k detekci před ARQ. - FEC (Forward Error Correction) – přidá redundantní bity, aby příjemce chyby *opravil* bez retransmise; vhodné pro satelit, DVB-T, streamy s jednosměrným nebo zpožděným zpětným kanálem. (v podstatě v případech kdy přijímač neodesílá nic zpátky vysílači)

# 2. Protokoly TCP/IP

## IPv4 IP protokol verze 4, správa adres je regionální, adresy jsou 32 bitové

IPv4 adresa: například `1.1.1.1` (Cloudflare DNS)

IP adresa = `<network number> <host number>`

původně bylo rozděleno na třídy adres: - A - $2^7-2$ (126) sítí, $2^{24}-2$ (16777214) hostitelů - B - $2^{14}-2$ (16382) sítí, $2^{16}-2$ (65534) hostitelů - C - $2^{21}-2$ (2097150) sítí, $2^{8}-2$ (254) hostitelů - D - multicast - E - experimentální

multicastové adresy: 224.0.0.x - dobře známé skupiny 239.x.x.x - lokální multicastové skupiny

maska podsítě (definuje hranici mezi síťovým a hostitelským číslem) např: 255.255.252.0 - $2^{10} - 2$ uzlů v síti

### vyhrazené IP adresy - x.x.0.0 - adresa sítě - 0.0.0.x - adresa uzlu - 255.255.255.255 - omezený broadcast, neprojde přes router - x.x.255.255 - omezený broadcast, prochází přes router - 127.x.x.x - loopback, localhost (127.0.0.1) - 10.0.0.0 - lokální síť třídy A - 172.16.0.0 - 172.31.0.0 lokální síť třídy B - 192.168.0.0 - 192.168.255.0 - lokální síť třídy C

v dnešní době již došly IPv4 adresy, proto se použvá NAT (Network Address Translation) - překládání adres, které umožňuje připojit více zařízení do jedné veřejné IP adresy a NAPT (Network Address Port Translation) - překládání adres a portů, které umožňuje připojit více zařízení do jedné veřejné IP adresy a zároveň rozlišovat mezi nimi pomocí portů

## IPv6

## ICMP

Slouží k hlášení problémů při zpracování IP paketů, je povinnou částí implementace IP. Není určen k zajištění spolehlivosti, není používán v multicastu ani broadcastu.

Generování ICMP je volitelné.

Používá se například pro `ping` a `tracert` (traceroute).

## ARP (Address Resolution Protocol)

poskytuje konverzi mezi IP adresou a MAC adresou používá se v IPv4 sítích

uzel sítě si udržuje tabulku ARP, která obsahuje IP adresy a odpovídající MAC adresy pokud MAC není pro požadovanou IP adresu v tabulce, odešle ARP request (broadcast) a čeká na ARP reply (unicast) pokud je MAC adresa v tabulce, odešle ARP reply (unicast) přímo na požadovanou IP adresu

## NDP

umožňuje zjistit linkovou adresu z IP adresy, detekuje změny v linkových adresách, hledá routery, zjišťuje parametry sítě, přesměrování, detekce duplicitních adres. implementován pomocí ICMPv6

## UDP (User Datagram Protocol)

poskytuje aplikační rozhraní k IP

neposkytuje spolehlivost (neprovádí kontrolu chyb ani nezajiššťuje doručení packetů / doručení ve správném pořadí)

## TCP (Transmission Control Protocol)

zajišťuje spolehlivou komunikaci mezi aplikacemi (obdobně jako TCP, ale s implementovanými funkcemi pro spolehlivost)

zajišťuje: - řízení datového toku - sekvenční číslování packetů - generování potvrzení (ACK) - emuluje plně duplexní spojení - segmentuje data do packetů

TCP congestion control - řízení zahlcení sítě - slow start - zvyšuje rychlost přenosu dat, dokud nedojde k zahlcení sítě - congestion avoidance - zmenšuje rychlost přenosu dat, dokud nedojde k zahlcení sítě - fast retransmit - znovu odešle packet, který byl ztracen - fast recovery - zmenšuje rychlost přenosu dat, dokud nedojde k zahlcení sítě

## DHCP (Dynamic Host Configuration Protocol) slouží k automatickému přidělování IP adres a dalších parametrů (např. maska podsítě, výchozí brána, DNS server) klientům v síti DHCP server většinou běží na routeru nebo serveru v síti DHCP server přiděluje IP adresy z předem definovaného rozsahu (poolu) IP adres (lze nastavit i statické IP adresy pro konkrétní MAC adresy)

## DNS (Domain Name System) převod slovních doménových jmen na IP adresy a naopak je zajištěn pomocí distribuované hierarchie serverů kde část serverů je zodpovědná za určité domény rekurzivně hledáme IP adresu pro doménu kdy se postupně dotazujeme na servery zodpovědné za domény (server se může dotázat za nás, ale tato funkce je často vypnutá)

například překlad `cw.felk.cvut.cz` na `147.32.84.36` bude proveden přes servery zodpovědné za domény: * `.cz` * `.cvut.cz` * `.felk.cvut.cz` * `.cw.felk.cvut.cz` * a nakonec se dotáže na IP adresu `cw.felk.cvut.cz`

historicky se překlad adres řešil pomocí souboru `hosts.txt` který byl distribuován mezi počítače v síti, ale s rostoucím počtem počítačů v síti se tento způsob stal neudržitelným

## Směrování v IP sítích

# 3. Síťové technologie

## Ethernet

Ethernet je skupina technologií pro přenos dat v lokálních sítích (LAN), pracující na linkové vrstvě ISO/OSI modelu. Byl vyvinut v 70. letech ve firmě Xerox. Standardizace probíhá pod označením IEEE 802.3.

### Charakteristiky Ethernetu - Data se přenášejí v MAC rámcích. - Přístupová metoda: CSMA/CD (Carrier Sense Multiple Access with Collision Detection). - Moderní Ethernet využívá nejčastěji kroucenou dvoulinku (twisted pair) nebo optické vlákno. - Fyzická topologie může být různá, logická topologie je obvykle hvězdicová. - K zabránění vzniku smyček se využívá Spanning Tree Protocol (STP).

### Varianty Ethernetu - Původně 10Base2 (koaxiální kabel), dnes nejčastěji 100Base-TX, 1000Base-T (gigabitový Ethernet). - Standardní označení: IEEE 802.3xx.

### Propojovací zařízení v Ethernet sítích - Opakovač (repeater) – zvětšuje dosah sítě, regeneruje signál. - Rozbočovač (hub) – pracuje na fyzické vrstvě, vysílá data na všechny porty (vyšší koliznost). - Most (bridge) – filtruje provoz mezi segmenty sítě. - Přepínač (switch) – pracuje na linkové vrstvě, předává rámce pouze na cílový port na základě MAC adresy, odděluje kolizní domény.

## Wi-Fi

Wi-Fi je bezdrátová technologie standardizovaná jako IEEE 802.11, využívající rádiový přenos.

### Vlastnosti Wi-Fi - Flexibilní – žádná nutná fyzická infrastruktura. - Využívá pásma 2,4 GHz, 5 GHz a nově 6 GHz. - Přístupová metoda: CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance). - Bezdrátové stanice se nemusejí navzájem slyšet → eliminace kolizí probíhá přes reservation mechanism a potvrzování (ACK).

### Typy sítí - Ad-hoc – přímá komunikace mezi zařízeními bez Access Pointu. - Infrastructure mode – komunikace přes Access Point (AP).

### Spolehlivost - Standard IEEE 802.11 definuje vlastní vrstvu zajišťující spolehlivost. Data se tedy mezi Wi-Fi routerem a cílovým zařízením nemohou ztratit i při použití UDP protokolu.

### Bezpečnostní standardy - WEP (zastaralý), WPA, WPA2 (AES šifra), WPA3.

## Přístupové metody

### Deterministické přístupové metody - Master-slave – centrální master přiděluje přístup slave uzlům. - Token passing – uzly si předávají token, který umožňuje vysílání. - TDMA (Time Division Multiple Access) – přenosový kanál je rozdělen do časových slotů. - Delegated token – arbitr rozesílá výzvy k vysílání.

### Nedeterministické přístupové metody - CSMA – uzel vysílá po zjištění volného kanálu. - CSMA/CD – Ethernet, detekce kolizí a opakování přenosu po náhodném zpoždění. - CSMA/CA – Wi-Fi, předcházení kolizím pomocí rezervace kanálu a náhodného back-off intervalu. - CSMA/CR – kolize řešeny prioritou uzlů.

## VLAN (Virtual LAN)

Virtuální LAN umožňuje logicky oddělit provoz na sdílené fyzické infrastruktuře. Definováno standardem IEEE 802.1Q.

### Vlastnosti VLAN - Oddělení provozu mezi skupinami zařízení. - Přepínače (switches) přidávají do rámců VLAN tagy s číslem VLAN a volitelnou prioritou. - VLAN tagy umožňují i řízení QoS (Quality of Service). - Spanning Tree Protocol je aplikován samostatně pro každou VLAN.

## 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 připojeným portům formou broadcastu, což vede k vysoké míře kolizí a nízké efektivitě přenosu. Jeho bezpečnost je velmi nízká, protože je možné snadno odposlouchávat komunikaci. Rozbočovače byly využívány historicky a dnes se prakticky nepoužívají.

Přepínač (switch) pracuje na linkové vrstvě ISO/OSI modelu. Data cíleně přeposílá pouze konkrétnímu zařízení na základě MAC adresy, čímž odděluje kolizní domény a výrazně zvyšuje efektivitu sítě. Přepínače také poskytují vyšší úroveň bezpečnosti, jelikož odposlech provozu je složitější. V současnosti jsou přepínače běžným a standardním prvkem v moderních LAN sítích.

</markdow n>

Navigation

Playground

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