# 5. Počítačové siete
Koncepty, principy, architektury. ISO/OSI a TCP/IP model, IP protokol, transportní protokoly (TCP, UDP). Protokoly na síťových vrstvách, funkce IPv4, pokročilé funkce IPv6. Peer-to-peer (P2P) sítě, ad-hoc/senzorové sítě, vysokorychlostní sítě, počítačové sítě a multimédia. Příklady z praxe pro vše výše uvedené. (PA159, PA191)
---
**Počítačová sieť** je zoskupenie počítačov a zariadení prepojené komunikačnými kanálami, ktoré napomáhajú vzájomnej komunikácii medzi používateľmi a umožňujú im zdieľať dostupné zdroje.
- V sieti dochádza k prenosu dát
- Najznámejšou sieťou je Internet
## Koncepty, princípy, architektúry
### Koncepty, princípy
Sieť sa vyznačuje nasledujúcimi **vlastnosťami**:
- Dáta sa musia doručiť správnemu príjemcovi
- Dáta sa musia doručiť nepoškodené
- Dáta sa musia doručiť včas
Medzi základné **súčasti** komunikačného systému patrí:
- Odosielateľ
- Príjemca
- Správa
- Prenosové médium
- Protokol
**Sieťový komunikačný protokol** definuje správy (syntax, sémantiku, časovanie), ktoré si medzi sebou vymieňajú komunikujúce strany, ich poradie a akcie, ktoré sa majú pri ich prijmutí či odoslaní vykonať.
- Protokoly rozlišujeme podľa toho, na akej vrstve sú definované
**Prenosové médiá** delíme na:
- Vodené - krútená dvojlinka, koaxiál, optický kábel
- Nevodené (bezdrátové) - elektromagnetické vlny
Sieť charakterizujeme nasledujúcimi **parametrami**:
- **Priepustnosť** (bandwidth) - vyjadrené počtom Mbps
- **Stratovosť** (packet loss) - vyjadrené v percentách z odoslaných paketov
- **Oneskorenie** (latency) - vyjadrené v ms
- **Rozptyl** (jitter) - vyjadrené v ms
Siete delíme na **spojované** a **nespojované**.
V **spojovanej** sieti dochádza pred začiatkom prenosu k vytvoreniu spojenia - okruhu.
- Circuit-switching network
- Sieť si musí uchovávať stav prepojenia
- Establish connection, disconnect connection
- Výhodou je jednoduchosť spojenia, QoS
- Nevýhodou je náchylnosť na chyby spojenia (prerušenie akéhokoľvek uzlu na okruhu)
- Príkladom sú analógové telefónne siete
V **nespojovanej** sieti sú dáta delené do paketov, pričom ich cesta po sieti nie je vopred definovaná.
- Packet-switching network
- Sieť si **ne**udržuje stav prepojenia
- Ethernet LAN, GSM, LTE siete
- Pakety sa prenášajú nezávisle
- Realizované pomocou **virtuálnych kanálov** alebo **datagramov**:
- **Virtuálny kanál**
- Na začiatku komunikácie je vytvorená cesta pre pakety
- Cesta sa počas relácie nemení
- Využívajú WAN siete (WAN Virtual Circuits)
- Používané v štandardoch ATM (Asynchronous Transfer Mode), X.25, Frame Relay
- **Datagramový prístup**
- Cesta paketov sa môže meniť
- IP, UDP, TCP
- Internet
Na to, aby bola sieť **optimálna** požadujeme nasledujúce **vlastnosti**:
- **Efektivita** - efektívne/maximálne využitie dostupnej prenosovej kapacity
- **Spravedlivosť** - rovnaký prístup ku všetkým dátovým tokom všetkých používateľov s rovnakou prioritou
- **Decentralizovaná správa**
- **Rýchla konvergencia** pri adaptácii na nový stav
- **Podpora multi/demultiplexingu**
- **Spoľahlivosť**
- **Riadenie toku dát** - ochrana voči zahlteniu siete
Podľa **implementovania funkcionality** rozlišujeme komunikáciu:
- **End-to-end** - prepojenie dvoch aplikácií (zvyčajne L4 a vyššie)
- **Hop-by-hop** - prepojenie medzi dvoma bodmi pomocou IP adries (L3)
- **Point-to-point** - prepojenie práve dvoch zariadení (L2)
Prepojovanie počítačových sietí (**internetworking**) je proces vzájomného prepojovania celých sietí ale aj jednotlivých káblových segmentov.
- Prepojením sietí vzniká **internetwork**
- Zariadenia spájame do LAN siete
- LAN siete spájame do WAN siete
Siete sa dajú prepájať na viacerých vrstvách OSI modelu pomocou **zariadení**:
- Fyzická vrstva L1
- **Modem** - modulátor, demodulátor, rieši multiplexing na médium operátora (ISP)
- **Repeater** - opakovač signálu, používa sa napr. na koaxiál, má iba 2 porty
- **Hub** - multiportový opakovač, rozširuje kolízne domény
- Linková vrstva L2
- **Bridge** - opakovač, ale dokáže filtrovať správy podľa MAC adries
- **Switch** - multiportový bridge, rozdeľuje kolízne domény ale zachováva broadcastové domény
- Sieťová vrstva L3
- **Router** - prepája siete, rozdeľuje broadcastové domény pomocou smerovania IP adries
Rozlišujeme **aktívne** a **pasívne** sieťové prvky:
- Pasívne - káble, konektory, prenosové médium, patch panely
- Aktívne - zariadenia, klienti, servery
Siete prepájame z nasledujúcich **dôvodov**:
- Rozšírenie dosahu našich služieb (web, pošta)
- Sprístupnenie zdieľaných zdrojov (tlačiarne, fax)
- Optimalizácia fungovania siete (veľká sieť rozdelená na viacero menších)
- Prekonanie technických obmedzení (nepraktické aby bola len jedna sieť)
Existujú rôzne **topológie** sietí, ktoré určujú usporiadanie staníc na médiu:
- Point-to-point
- Zbernicová (bus)
- Kruhová (ring)
- Hviezdicová (star)
- Stromová (tree)
- Každý s každým (mesh)
- Hybridné
V dnešnej dobe sa L1 LAN siete nepoužívajú, najčastejšie sa stretneme s **hviezdicovou topológiou**.
- Historicky jeden koaxiálny kábel (zbernica), na ktorý sa priamo pripájali stanice pomocou "kohútikov" (taps)
- Na konci linky bol "terminátor", ktorý zamedzoval odrazu dát od konca média
- Bolo nutné riešiť spoločný prístup staníc na médium - metódy CSMA (Carrier Sense, Multiple Access)
### Sieťové architektúry
Poznáme nasledujúce **sieťové architektúry**:
- **Client-server**
- **Centralizovaná** architektúra alebo **Hierarchická** architektúra
- Rozlišujeme stanice na klientov a servery
- Klient požaduje službu alebo dáta od servera
- Server poskytuje služby alebo dáta klientom
- Výhodou je jednoduchosť
- **Peer-to-peer**
- **Distribuovaná** architektúra
- Stanice sú si rovnocenné, komunikujú všetky navzájom
- Peeri poskytujú služby ostatným peerom a zároveň tieto služby žiadajú od iných
- Nie je potrebná centrálna stanica, arbiter (ale môže byť)
- Výhodou je škálovateľnosť, efektivita, redundancia dát
- Nevýhodou je **softvérový overhead** nad správou P2P siete pomocou algoritmov (overlay network)
- Neštruktúrované P2P siete majú problém so zahlcovaním siete pri pripojení alebo vyhladávaní služieb a dát (flooding)
- Na rodiel od klientov a serverov, peeri sú nespoľahlivý - vyhladávanie služieb v sieti je náročné
- Sieť P2P má možnosť sa samo-organizovať (self-organisation)
- Hybridné
- Spojenie klient-server a P2P siete, užitočné v niektorých aplikáciách
### Peer-to-peer (P2P) siete
**P2P architektúra** sa skladá z:
- Application layer
- Obsahuje protokoly pracujúce nad P2P sieťou
- Príklad: distribuované filesystémy, routovacie protokoly, file sharing, backup systémy
- Middleware layer
- Poskytuje služby aplikačnej vrstve, pričom skrýva prácu overlay layer
- Príklad: poskytuje služby bezpečnosti, peer discovery, peer groups
- JXTA, BOINC, Windows P2P, P2P.NET
- Base overlay layer
- Slúži na komunikáciu peerov medzi sebou po reálnej sieti
- Vyhľadáva nových peerov, zabezpečuje ich komunikáciu
- Forwarduje správy medzi peermi
**Konfigurácia peerov** môže byť:
- Statická (static) - každý peer má prednastavený zoznam peerov
- Centralizovaný priečinok (centralized directory)
- Každý peer sa pripojí na server (klient-server arch.), z ktorého si stiahne zoznam peerov
- Vzniká problém Single point of failure
Poznáme rôzne **topológie** prekryvovej siete (overlay network):
- Závisí na priemere (diameter), tj. najväčšia vzdialenosť medzi dvoma peermi
- Závisí na priemernom stupni uzlov, tj. s koľkými uzlami je jeden uzol prepojený
- Peeri musia zdieľať ostatným to, aké služby poskytujú - znova sa môže využiť nejaký klient-server alebo čiste skrz P2P
- **Random Mesh**
- Náhodné spojenie peerov
- Spoliehame sa na to, že štruktúra bude mať uniformné rozdelenie uzlov
- **Tiered Structure** (vrstvená štruktúra)
- peeri sú zaradení do vrstiev, ktoré komunikujú medzi sebou
- **Ordered Lattice** (2 až N dimenzionálna plocha)
- N-dimenzionálne súradnice peerov - využíva napríklad DHT alebo CAN
**Taxonómia** P2P sietí:
- **Centralizované** - je niekoľko serverov, ktoré poskytujú služby peerom
- **Decentralizované** - nie sú žiadne centrálne servery
- Podľa štruktúry overlay siete
- Flat (single-tier)
- Hierarchical (multi-tier)
- Podľa topológie
- Neštruktúrované
- Každý peer sa stará o svoje dáta a ukladá si informácie o svojich susedoch
- Má problém s vyhľadávaním
- Nie je garantované, že vyhľadávanie nájde výsledok aj ked sa v sieti nachádza
- Štruktúrované
- Využíva tabuľky (zvyčajne DHT)
- Tieto systémy majú určitú záruku presnosti vyhľadávania, výmenou za to, že si peeri musia ukladať dáta navyše
- **Hybridné** - kombinácia centralizovaného a decentralizovaného prístupu
- V sieti sú určení superpeers/ultrapeers, ktorí komunikujú iba s určitými peermi a sprostredkovávajú requesty ostatným superpeerom
Obsah v P2P sieťach sa vyhľadáva pomocou **lookup mechanizmov**:
- Centralizovaný lookup
- Klient sa opýta servera, ten mu odpovie, kde sa obsah nachádza
- Problém - Single point of failure, zle škáluje
- Flooding (záplava)
- Klient sa pýta svojich susedov, tí svojich susedov a podobne
- Problém - sieť sa zahlcuje
- Routed DHT queries
- Peeri si držia tabuľku hashov, podľa ktorých sa adresuje cieľový peer s obsahom
- Problém - veľkosť pamäte, overhead, kolízie
V P2P sieťach je **náročné smerovanie**. Zohľadňujeme nasledujúce **vlastnosti**:
- Storage
- Efficiency
- Usability
- Coverage
- Scalability
V **neštruktúrovaných** sieťach **smerujeme** pomocou:
- BFS
- DFS
- **Heuristík** (heuristic based routing)
- Iterative deepening
- Prakticky prehľadáva po úrovniach s BFS až po úroveň $D_n$
- Directed BFS and Intelligent search
- BFS vyhľadáva iba skrz tie uzly, u ktorých má nejakú znalosť, že je šanca, že sa vráti správny výsledok
- Problém - zvyčajne sú tieto štatistiky príliš jednoduché (latgest number of results, least hop-count, largest number of messages, shortest message queues)
- Intelligence Search - uzly si udržiavajú informácie o relevantnosti k dotazu a spravia zoradený zoznam podľa ktorého sa odosielajú requesty
- Local Indices Search
- Každý uzol si ukladá nielen svoje údale ale aj údaje o tom, že jeho susedia majú určité údaje, tj. ukladá si indexy k susedom
- Random Walk
- Náhodne vyberie suseda a jemu sa pošle dotaz
- Problém - neefektívne, nemáme zaručený výsledok
- Random BFS
- Podobne ako Random Walk ale náhodne vyberá skupinu, ktorým sa ten dotaz pošle
- Adaptive Probabilistic Search (APS)
- Každý uzol má navyše ešte aj isté skratky k iným uzlom, ktoré využíva prednostne
- Skratky sa vytvárajú vždy, ak od uzlu dostaneme výsledok
V **štruktúrovaných** sieťach **smerujeme** pomocou:
- Na rozdiel od tých neštruktúrovaných máme výhodu, že smerovanie je efektívnejšie, výmenou za to, že si musíme ukladať istú štruktúru uzlov
- Vždy, keď sa uzol pripojí alebo odpojí, musíme spraviť aktualizáciu štruktúry aby bola konzistentná
- **Distributed Hash Table (DHT)**
- Každý uzol si spravuje svoju vlastnú tabuľku
- Obsahu a ID uzlu sa priraďuje hash
- Podľa toho vieme spraviť hash obsahu a zistíme, kde sa nachádza daný obsah
- Príklad sietí využívajúce DHT:
- Chord - uzly sú zoradené na kružnici
- CAN - uzly spravujú N-dimenzionálny priestor hashov
- Pastry - používa PRR stromy, vyhľadáva najdlhší prefix k obsahu
- Tapestry - to isté ako Pastry ale hľadá suffix
- **Skip List**
- Je to štruktúra, ktorá zoskupuje uzly do spojovaných zoznamov (linked lists)
- Skip List je tvorený v niekoľkých úrovniach
- Úroveň 0 býva klasický linked list, so zvyšujúcou úrovňou dochádza k tvorbe skratiek
- Problém - každý dotaz musí prejsť cez najvyššiu úroveň, kde je iba 1 uzol - úzke hrdlo
- Skip Graph - na každej úrovni je viacero linked listov, rieši problém úzkeho hrdla
- SkipNet - Skip Graph ale uzly sú zoskupené na kružnici
- **Tree based**
- P-Grid
- Virtuálny binárny strom
- Každý peer je leafom stromu
- Každému uzlu je pridelený identifikátor, pričom tento uzol je zodpovedný za údaje začínajúce s identifikátorom
- P-Tree - P-Grid ale využíva B+ strom nad Chord kružnicou
- BATON - P-Tree ale navyše má skratky medzi uzlami
V **hybridných** sieťach **smerujeme** pomocou:
- Edutella - zoskupuje superpeerov do hyperkocky (hypercube)
- Gnutella - zoskupuje superpeerov do Mesh/Random Mesh štruktúry
- Structured Superpeers - superpeeri odpovedajú na dotazy peerov s určitým rozsahom kľúčov
## ISO/OSI a TCP/IP model, IP protokol, transportné protokoly (TCP, UDP)
Na zabezpečenie kompatibility medzi heterogénnymi sieťovými zariadeniami boli navrhnuté **modely vrstiev siete**.
Prvým z týchto modelov je model **ISO/OSI**.
- Open System Interconnect
- Skladá sa zo **7 vrstiev**
- Tento model **nebol** komunitou úplne prijatý a často sa miesto neho používa model TCP/IP
### TCP/IP Model
- Má iba 4 vrstvy
- Aplikačná (application layer)
- Transportná (transport layer)
- Internetová (internet layer)
- Linková (link layer)
- Oproti ISO/OSI - fyzická sa ignoruje, aplikačnú, prezentačnú a relačnú spojil do aplikačnej
- Dáva programátorom väčšiu slobodu pri návrhu
- Existuje viacero definícií TCP/IP modelu, napr. niektoré uvádzajú aj fyzickú vrstvu, alebo sa inak vrstvy volajú. Je to dané historickým vývojom a vydanou literatúrou.
Vrstvená architektúra sa vyznačuje nasledujúcimi **vlastnosťami**:
- Každá z vrstiev je zodpovedná za určitú definovanú funkcionalitu
- Aby mohla vrstva funkcionalitu zaistiť, pridáva si do prenášaných dát riadiace informácie
- Metadáta, preambula, footer, header
- **Každá vrstva komunikuje iba so svojimi priamo susediacimi vrstvami**
- Každá vrstva využíva služby poskytované nižšou vrstvou a poskytuje svoje služby vrstve vyššej
- Funkcionalita je izolovaná v rámci príslušnej vrstvy
- Dáta prechádzajú všetkými nižšími vrstvami
- **Vrstvy sú iba abstrakciou funkcionality** - skutočná implementácia sa môže líšiť
### OSI Model, protokoly na sieťových vrstvách
V rámci každej vrstvy sa definuje **PDU** - Protocol Data Unit, ktorý určuje, s akým druhom dát vrstva pracuje.
Mnemotechnická pomôcka:
- **P**rogrammers **D**o **N**ot **T**hrow **S**ausage **P**izza **A**way
**Aplikačná vrstva - L7 Application layer**
- Poskytuje rozhranie medzi užívateľom a počítačovou sieťou
- Na tejto vrstve su naimplementované sieťové aplikácie alebo protokoly
- Vstupom do vrstvy sú **dáta**, ktoré sa zabalia do aplikačného protokolu a následne odovzdajú nižšej vrstve
- Príklad protokolov: HTTP, FTP, TELNET, POP3, IMAP, SMTP, DNS, SSH, SCP, ...
**Prezentačná vrstva - L6 Presentation layer**
- Zaisťuje jednotnú reprezentáciu dát na obidvoch komunikujúcich stranách
- Robí prevod kódov, prispôsobuje poradie bajtov, serializuje dátové štruktúry do reťazca
- Môže dochádzať aj k šifrovaniu/dešifrovaniu
- Nejedná sa úplne o protokoly ale skôr o kódovania: ASCII, EBCDIC, XML, JSON
- **TCP/IP** - Táto funkcionalita by mala byť zabezpečená samotnou aplikáciou
**Relačná vrstva - L5 Session layer**
- Spravuje zostavené spojenie medzi komunikujúcimi aplikáciami
- Zabezpečuje, že pri strate spojenia relácia stále pretrváva a je možné ju obnoviť po obnovení pripojenia - **checkpointing**
- Relácia môže byť:
- **Simplexná** - komunikuje iba jedna strana (GPS, rozhlas)
- **Poloduplexná** - v jeden moment komunikuje iba jedna strana, musia sa striedať (vysielačka)
- **Duplexná** - obidve strany komunikujú naraz
- Príklad protokolov: H.245 (komunikačný protokol VoIP), RPC, SCP, RTCP, SSL/TLS
- **TCP/IP** - Táto funkcionalita by mala byť zabezpečená samotnou aplikáciou
**Transportná vrstva - L4 Transport layer**
- Zaisťuje identifikáciu (adresáciu) a doručenie segmentov/datagramov medzi dvoma komunikujúcimi procesmi
- Na jednom uzle môže bežať viacej služieb
- Zabezpečuje spolahlivosť prenosu
- Aplikácie medzi sebou komunikujú cez **porty**
- Prenášané dáta sa nazývajú **segmenty** alebo **datagramy**
- Príklad protokolov: TCP, UDP
**Sieťová vrstva - L3 Network layer**
- Prenášané dáta sa nazývajú **pakety** (packets)
- Zaisťuje identifikáciu (adresáciu) a doručenie paketov medzi dvoma komunikujúcimi uzlami
- Súčasťou je tiež nájdenie vhodnej cesty medzi uzlami - **smerovanie**
- Komunikácia prebieha cez **IP adresy** - IPv4 alebo IPv6
- Predstaviteľom týcho sietí su **WAN** siete (Wide Area Network)
- Siete sa konfigurujú pomocou protokolov ICMP, IGMP, ...
- Zariadenia - routre - používajú **routovacie protokoly** na nájdenie ciest
- Protokoly OSPF, RIP, BGP, ...
**Linková vrstva (spojová) - L2 Datalink layer**
- Prenášané dáta sa nazývajú **rámce** (frames)
- Zaisťuje prenos rámcov medzi dvoma uzlami prepojenými zdieľaným prenosovým médiom a zároveň riadi prístup k tomuto médiu
- Adresácia prebieha pomocou **MAC adries** (Medium Access Control)
- Predstaviteľom týchto sietí sú **LAN** siete (Local Area Network)
- Príklady protokolov: Ethernet, ARP, IEEE 802.11 Wireless LAN, ...
- Vrstva L2 komunikuje s vrstvou L3 pomocou protokolu **ARP**
- Address Resolution Protocol
- Ak zariadenie dostane paket, ktorý ma odoslať ďalej, potrebuje najprv zistiť MAC adresu daného zariadenia
- Ak ide paket mimo siete, vloží sa MAC adresa routra
- Ak je paket v rámci siete, vyšle sa broadcast na ARP Request, na ktorý zodpovie príslušná stanica s danou IP adresou
- Následne sa na túto MAC adresu odošle paket
- Niekedy sa ešte udáva rozdelenie na MAC (Media Access Control sublayer) a LLC (Logical Link Control sublayer)
- MAC - Protokoly CSMA/CA, CSMA/CD
- LLC - Protocol multiplexing, flow control, error correction, automatic repeat request (ARQ)
**Fyzická vrstva - L1 Physical layer**
- Prenášané dáta sa nazývajú **bity** (bits)
- Riadi udalosti v prenosovom médiu
- Rozhoduje o vysielaní/prijímaní prenášaných dát (bitov)
- Kóduje dáta do signálov
- Nedochádza k žiadnej adresácii
- Na tejto vrstve sú nadefinované štandardy - káblov, konektorov, kódovaní
- Príklady protokolov: Ethernet Physical Layer, 10BASE-T, 802.11 WiFi Physical Layer
**Pozorovanie**
- Nezávisle na tom, aké technológie sa používajú v jednotlivých vrstvách, "úzkym hrdlom" je protokol IP
## Internet Protocol (IP), funkcie IPv4, pokročilé funkcie IPv6
### Internet Protocol (IP)
- Najrozšírenejší protokol sieťovej vrstvy
- Cieľom protokolu je doručiť dáta na danú IP adresu
- O prenos a nájdenie cesty sa starajú **smerovače** (routers)
- Poskytuje nespolahlivú službu "**best-effort**" tj. dáta sa môžu na ceste stratiť
- Je implementovaný v dvoch verziách (IPv4 a IPv6)
### Funkcie IPv4
**Protokol IPv4** zaručuje nasledujúce funkcie:
- **Adresovanie** staníc pomocou 32-bitových adries
- Každá stanica má pridelenú IP adresu, ktorá sa môže ľubovolne meniť
- **Smerovanie** paketov pomocou smerovacích tabuliek a routrov
- **Fragmentácia** paketov v prípade limitácie linky
- **Služby a protokoly** na konfiguráciu siete
- ARP, Reverse ARP - komunikácia s vrstvou L2, preklad IP adresy na MAC a naopak
- ICMP - kontrola stavu komunikácie
- Správa chyby - napr. chyba vypršania TTL
- Správa echo - využívaná pri pingovaní
- IGMP - kontrola skupín multicast
- DHCP (Dynamic Host Configuration Protocol) - autokonfigurácia staníc na LAN sieti
- DNS (Domain Name System), Reverse DNS - preklad domén na IP adresy a naopak
- Základ pre služby vyššej úrovne
**Paket protokolu IPv4** sa skladá z:
- Verzia - verzia IP protokolu
- Dĺžka hlavičky - 20 až 60 bajtov
- Differentiated Services - trieda poskytovania kvality služieb (QoS)
- Dĺžka dát - včetne hlavičky
- Identifikácia - identifikuje skupinu fragmentov
- Flags - znaky riadiace fragmentáciu
- Fragmentačný offset - odstup od prvého fragmentu
- Time-To-Live - povolený počet hopov
- Protokol - protokol vyššej vrstvy
- Checksum hlavičky
- Zdrojová IP adresa
- Cieľová IP adresa
### Adresácia
Rozlišujeme špeciálne druhy adries:
- **Unicast** - adresuje práve jedno zariadenie
- **Multicast** - adresuje skupinu zariadení
- **Broadcast** - adresuje všetky zariadenia v sieti
Dôležitým termínom je **maska siete**, ktorá určuje ako vyzerá adresa siete a adresa uzlu.
- Je to bitová maska, ktorá sa skombinuje s IP adresou pomocou operátora AND
IP adresy môžeme pridelovať dvoma spôsobmi:
- **Classful** - podľa tried ABCDE
- Plýtva rozsahom adries, nakoľko určuje ako má vyzerať maska siete a čím sa musí každá IP adresa začínať
- Trieda A - 255.0.0.0 - začina bitmi 0
- Trieda B - 255.255.0.0 - začina bitmi 10
- Trieda C - 255.255.255.0 - začina bitmi 110
- Trieda D - Multicastové adresy - začina bitmi 1110
- Trieda E - Rezervované - začina bitmi 1111
- Na to, aby sa zamedzilo plýtvaniu priestoru sa používa **subnetting**
- Masku siete sa snažíme maximalizovať tak, aby sa nám zmestil počet staníc čo najviac na tesno
- Viac menších tried znamená, že sa nám rýchlo zahltia routovacie tabulky
- Opačný proces je **supernetting**, ak potrebujeme masku siete minimalizovať
- Spájame siete do jednej, využíva sa hlavne pri routovaní - optimalizácia routovacích tabuliek
- **Classless** - využitie celého adresného priestoru
- Táto metóda je založená na subnettingu
- Triedy nahrádzajú **CIDR** (Classless Inter-Domain Routing) bloky
- Sú priraďované hierarchicky, centrálnymi štruktúrami
- Vlastnia ich organizácie
Ďalšia technológia, ktorá zamedzuje plýtvaniu IP adries je **NAT (Network Address Translation)**:
- IP adresy sa prekladajú na iné IP adresy pomocou NAT tabuliek
- Bežne využívame pri LAN sieťach, ktoré sú pripojené na WAN sieť (Internet)
- Výhodou je zvýšená bezpečnosť, nevýhodou sú požiadavky na hardvér a aplikácie
### Fragmentácia
Ak sú pakety prílíš veľké na to, aby sa poslali k príjemcovi, dochádza k **fragmentácii**:
- **MTU** (Maximum Transfer Unit) určuje maximálnu veľkosť dát, ktoré sa dajú preniesť určitým L2 protokolom
- Ak je táto veľkosť prekročená, paket sa rozdelí do menších fragmentov, ktoré sú označené číslom
- **V cielovom uzle** sa fragmenty zložia do pôvodného paketu
- Fragmentovať môže ktorýkoľvek uzol na ceste, pokiaľ paket nie je označený flagom "do not fragment"
### Smerovanie (routing)
**Smerovanie** je proces nájdenia optimálnej trasy pre paket odosielaný cieľovej stanici.
- Prebieha na sieťovej vrstve L3
- Optimálna trasa sa hladá podľa **metriky**
- Smerovanie vykonávajú smerovače, ktoré riešia vždy iba jeden krok (hop-by-hop)
- Na smerovanie sa vieme pozerať ako problém nájdenia cesty v grafe
- Základnou dátovou štruktúrou smerovania je **smerovacia tabuľka**, ktorá obsahuje informácie o cestách k sietiam
Proces, kedy sa paket predáva z jedného smerovača do druhého nazývame **forwarding**.
Pri **smerovacích protokoloch** nás zaujíma:
- Komplexita - počet správ potrebných na ustanovenie tabuliek
- Rýchlosť konvergencie - ako rýchlo sa reaguje na zmeny sieti
- Robustnosť - tolerancia na chyby
- Škálovateľnosť - maximálna veľkosť siete, kde je protokol použiteľný
Smerovanie môže byť **statické** a **dynamické**.
Pri **statickom smerovaní** musí smerovacie tabuľky nastavovať človek.
- Jednoduché, vhodné pre statické siete
Pri **dynamickom smerovaní** smerovacie tabuľky nastavuje algoritmus.
- Algoritmus reaguje na zmeny v sieti a automaticky mení tabuľku
- Môže dojsť k dočasnej inkonzistencii tabuliek
Existuje niekoľko spôsobov **dynamického** smerovania:
- **Centralizované**
- V sieti je centrálny prvok, ktorý si udržuje smerovaciu tabuľku celej siete
- Každý smerovač tabuľku kopíruje
- Prakticky nepoužiteľné
- **Izolované**
- Každý smerovač rozhoduje sám za seba
- Neodosielajú nikomu žiadne informácie o tabuľkách
- Posielanie náhodnou cestou alebo najkratšou cestou, všetkými cestami...
- **Distribuované**
- V sieti sa nachádza dohoda o algoritme smerovania
- Zariadenia (susedia) si navzájom odosielajú informácie o cestách k sieťam
- Využíva sa v Internete
Smerovacie algoritmy rozlišujeme podľa **druhu algoritmu** na:
- **Distance Vector**
- Využíva algoritmus **Bellmana-Forda** na nájdenie najkratších ciest
- Susedné smerovače si vymieňajú celé kópie smerovacích tabuliek
- Na základe prijatých dát si zmenia Distance Vector číslo - metrika hopov k danej sieti
- Riadi sa princípom "**všetky informácie len svojim susedom**"
- Príklad protokolov: RIP, IGRP
- **Link State**
- Susedné smerovače si vymieňajú iba informácie o stave liniek na ktoré sú priamo pripojené
- Spojením dát získavajú kompletnú topológiu siete, v ktorej vyhľadávajú optimálnu trasu pomocou **Dijkstrovho algoritmu**
- Riadi sa princípom "**informácie o svojich susedoch všetkým**"
- Príklad protokolov: OSPF, IS-IS
- **Path Vector**
- Špecifická odnož Distance Vector protokolov
- Pri ceste správ cez sieť sa ukladá daná cesta
- Umožňuje jednoduchú detekciu slučiek na sieti
- Umožňuje kontrolu povolených sietí pomocou politík/pravidiel
- Príklad protokolov: BGP-4
Špecifiká protokolu **RIP** (Routing Information Protocol):
- Distance Vector
- **RIPv1** - staré, classful, broadcast
- **RIPv2** - nové, classless, autentizácia správ, multicast
- **RIPng** - verzia RIP pre IPv6
- Metrikou je počet hopov medzi linkami
- Správy sa posielajú pomocou UDP
- Má problém s "delením intervalov" - maximálny hop je 15, 16 je nekonečno
Špecifiká protokolu **IGRP** (Interior Gateway Routing Protocol):
- Distance Vector
- Cisco protokol
- Má veľmi zložitú, komplexnú metriku
- Nepodporuje IPv6, pracuje priamo nad IP, podporuje load balancing, nepodporuje classless (CIDR)
- **EIGRP** - verzia IGRP pre IPv6 + CIDR, metrika zostáva rovnaká
Špecifiká protokolu **OSPF** (Open Shortest Path First):
- Link State
- Vytvára topológiu siete podľa informácií dostupných z iných sieťových prvkov
- Metrikou je cena - počíta sa z priepustnosti linky (bandwidth), prípadne sa dá nastaviť ručne
- Podporuje autentizáciu správ (od verzie OSPFv3 iba skrz IPsec)
- Hierarchia môže byť rozdelená do subdomén (routing areas)
- Podporuje load balancing, classless (CIDR), multicast
Špecifiká protokolu **IS-IS** (Intermediate System to Intermediate System):
- Link State
- ISO štandard
- Pôvodne nebol používaný pre IP siete, ale bol upravený
- Podobný OSPF, avšak pracuje priamo nad rámcami L2, čo dovolilo ľahký prechod na IPv6
- Podporuje kontrolu preťažených routrov
- Cena je v rozsahu 0-63 alebo 0-16 miliónov
- Menej "ukecaný" protokol ako OSPF (OSPF má ale lepšiu podporu rozšírení)
Špecifiká protokolu **BGP-4** (Border Gateway Protocol):
- Určený pre routing medzi autonómnymi systémami (AS), na rozdiel od IS-IS
- Používa hop count metric, classless (CIDR)
- Vie pracovať s redundantnými cestami a slučkami
- Najprv sa nájde cesta, ktorá zodpovedá politikám, a až potom sa hladá najlepšia cesta
- Používa správy: OPEN, UPDATE, KEEPALIVE, NOTIFICATION, ROUTE-REFRESH
- Vo vnútri AS sa používa **Internal BGP** na propagovanie politík
- Cisco tvrdí, že BGP je "interne naškálovatelnejší routing protokol"
**Funkcie smerovača** (routra):
- Hľadanie ciest a packet forwarding
- Validácia IP hlavičky
- Kontrola a zmena TTL poľa paketu
- Rekalkulácia checksum pri zmene poľa TTL
- Nájdenie portu, na ktorý sa má paket vyslať
- Fragmentácia paketov
- Spracovanie možností IP protokolu
- Klasifikácia paketov
- Preklad adries
- Prioritizovanie paketov
- Implementácia routovacích protokolov
- Systémová konfigurácia
- Podpora pre management, napr. SNMP
Router sa **skladá** z:
- Sieťová karta - forwardovacia tabuľka, buffery, porty
- Softvér - routovacia tabuľka
- RAM, ROM, CPU
- Backplane - prepája viacero sieťových kariet
**Princíp hľadania** správnej adresy na forwarding:
- Vyhľadávanie najdlhšieho prefixu v routovacej tabuľke
- Forwardovacia tabuľka sa pravidelne aktualizuje podľa routovacej
- Mapuje IP adresy a ich prefixy na MAC adresy portov
- Naivný algoritmus $O(n)$
- Binárne vyhľadávanie a podobne (tzv. tries)
- Content Addressable Memory (CAM) - existuje podpora zo strany HW
- Podpora **filtrovania a klasifikácie paketov**
- K akému toku patrí daný paket
- Aké pravidlá sú s daným tokom spojené a ich aplikácia
- Využíva naivné algoritmy, 2D, Divide and Conquer, Decision Tree, Ternary CAM
- Využíva MPLS
**Traffic engineering** je proces zavádzania redundancie do siete a jej následné škálovanie, odstránenie úzkych ciest a ich problémov.
- Aká je aktuálna záťaž siete a riadiť tok údajov podľa toho
- Dosiahneme s využitím rozšírení existujúcich Interior routing protokolov
- Monitorovacie služby a aplikácie, routovacie a forwardovacie techniky
- Využívame matematickú optimalizáciu toku siete
- Jedná sa o obrovské kalkulácie, preto sa zvyčajne robí iba raz denne
Špecifiká protokolu **MPLS** (Multiprotocol Label Switching):
- Jedná sa o forwardovací mechanizmus, ktorým uľahčujeme prácu smerovačom a poskytujeme služby typu Traffic engineering
- Ak nájdeme cestu pre paket v sieti, vieme túto cestu priradiť celému dátovému toku (tzn. nemusíme rozbalovať paket)
- Paket, ktorý sa dostane k prvému MPLS smerovaču v sieti (Edge LSR) sa priradí MPLS Shim Header, ktorý obsahuje číslo, k akému datovému toku paket patrí (paket sa klasifikuje do FEC - Forward Equivalence Class)
- Toto číslo je zdieľané s ostatnými routrami (Core LSR) na sieti. Tieto routre vedia, akou cestou je potrebné paket poslať
- Ku koncu sa dostane paket k Egress Edge LSR, ktorý odstráni Shim Header a pošle paket von z MPLS siete
- Forwardovacie tabuľky sa nazývajú **LIB (Label Information Base)** alebo LFIB (Label Forward Information Base)
- Na ich zdieľanie sa používajú protokoly: BGP, RVSP-TE, LDP (Label Distribution Protocol), TDP (Cisco LDP), LDP/CR
- Rozlišujeme prístup Downstream-on-demand (MPLS priraďujú labels iba na požiadavku od iného LSR) a Downstream-unsolicited (ihneď ako LSR vypočíta trasu pre paket, zdieľa jej label s ostatnými LSR)
- Upravené MPLS protokoly: Generalized MPLS (GMPLS) pre optické siete, G2MPLS pre výpočetné gridy
Ak chceme podporovať **smerovanie** s podporou **QoS** (Quality of Service), použijeme **upravené** smerovacie protokoly:
- Source-based
- Router má informáciu o stave celej siete, vytvorí cestu a notifikuje ostatné routre aby sa držali pravidiel QoS
- Zavádza stav do siete, má problém so škálovaním
- Hop-by-hop
- Router vie smerovať iba jeden krok napred
- Problém so škálovaním a slučkami
- Hierarchické
- Združuje routre do hierarchických sietí
- Informácia o smerovaní sa zoskupuje iba na routroch na kraji logickej skupiny
- Dobre škáluje ale agresivita ovplyvňuje presnosť informácií
Príklad **QoS protokolov**:
- PNNI - routovací protokol pre ATM siete
- QOSPF - OSPF rozšírený o QoS
- Podporuje hierarchické rozdelenie routrov
- Dokáže pracovať v sieti, kde sa vyžaduje QoS aj best-effort smerovanie
- Na metriku sa používa iba priepustnosť siete (bandwidth) a oneskorenie (latency)
- Využíva Bellman-Ford na predkalkulovanie najširšej cesty a potom Dijkstru na nájdenie najkratšej cesty
### Funkcie IPv6
Odpoveďou na eventuálne vyplýtvanie IPv4 sietí je **IPv6**:
- Rieši najmä limitácie adresného priestoru, problémy škálovania a bezpečnosti na sieti
- Hlavička je jednoduchšia a umožňuje rozšírenia (veľkosť hlavičky sa môže meniť)
- Adresa má až 128 bitov (prakticky nie je možné minúť)
- Zvyčajne sa zapisuje po štyroch 16-bitových znakoch oddelených dvojbodkou v 8 blokoch
- Umožňujú skratky skrz "::"
- Využíva sa iba CIDR notácia
- Nie je potrebné NAT
- Adresy sú na rozdiel od IPv4:
- Unicast
- Multicast - špeciálne multicast skupiny nahrádzajú broadcast
- **Anycast** - nové, v rámci skupiny sa dáta odošlú iba prvému z nich
- Nefragmentuje správy - v prípade potreby fragmentovania router odošle paket "Packet Too Big" s veľkosťou MTU a očakáva, že sa pošle znova so správnou hodnotou
- Má vstavanú podporu na prenosy v reálnom čase, mobilitu, autokonfiguráciu a zabezpečenie (IPsec)
- Podporné protokoly IPv4 boli **nahradené**:
- NDP (Neighbour Discovery Protocol) za ARP
- ICMPv6 za ICMP a IGMP
**Rozšírenie bezpečnosti**:
- **Sieťovú vrstvu** vieme zabezpečiť pomcou kolekcie protokolov **IPsec**
- Protokoly definujú hlavičky, do ktorých sa zabalujú pakety
- **Authentication Header (AH)** - integrita, autentifikácia
- Protokol pre autentifikáciu strany
- **Encapsulating Security Payload (ESP)** - dôvernosť, integrita, autentifikácia
- Protokol pre zabezpečenie a šifrovanie dát (+ to isté, čo robí AH)
- Protokoly zabezpečujú **AAA** a **CIA**
- Authentication, Authorization, Accounting
- Confidentiality, Integrity, Availability
- ~~Non-repudiation~~ podľa najnovších RFC nie (ani AH, ani ESP)
- Pracujú v dvoch režimoch:
- **Transportný** mód - hlavička sa vkladá ako súčasť paketu
- **Tunelovací** mód - celý paket sa zabalí do nového paketu
- Výhoda: zabezpečí všetky dátové toky
- Nevýhoda: nemá automatizované prostriedky na správu kľúčov
- Infraštruktúra musí podporovať PKI - protokol IKEv2
**Rozšírenie mobility**:
- Podpora zariadení, ktoré sa pohybujú cez viacero sietí
- Host je pripojený na **Home Agent** (HA)
- V cudzej sieti komunikuje s Correspondent Node (CN)
- Host si pamätá svoju domácu adresu a adresu Home Agenta, ktorú odošle CN
- Komunikácia môže byť priama alebo skrz Home Agent
- Na ustanovenie priamej komunikácie sa používa procedúra **Return Routability**
- Kontroluje, či je adresa HA pre dané zariadenie validná
**Rozšírenie autokonfigurácie**:
- Bezstavová konfigurácia (IPv6 SLAAC)
- Smerovač zdieľa informácie o sieti cez "Router Advertisement" paket
- Klienti si vedia sami vytvoriť IP adresu z MAC adresy
- DHCPv6 miesto klasickej DHCP, ak chceme mať centralizovanú konfiguráciu + SLAAC
**Rozšírenie kvality služieb (QoS)**:
- Podporuje **Integrated Services** a **Differentiated Services**
- **Integrated** - vytvorí spojovanú linku, kde je zaručená kvalita služieb (**nepoužíva sa**)
- Využíva protokol **RSVP** (Resource Reservation Protocol) alebo YESSIR
- **Differentiated** - paket obsahuje pole **Traffic Class** (DiffServ), ktoré určuje, čo majú routre s paketom robiť aby zabezpečili kvalitu služieb
- Navyše je možnost použit bity **ECN** (Explicit Congestion Notification)
- Router ich nastaví, ak sa mu zapĺňajú buffere a pošle ich naspäť zdrojovému uzlu
- IPv6 hlavička má pole **Flow Control**, ktoré slúzi na ídentifikáciu toku paketov (**nepoužíva sa**)
**Kompatibilita medzi IPv4 a IPv6** je zabezpečená nasledujúcimi spôsobmi:
- Dual stack - sieťová karta podporuje IPv4 aj IPv6 v samostatných adresách
- Tunneling - paket IPv6 sa zabalí do paketu IPv4
- NAT - adresy IPv6 sa prekladajú na adresy IPv4
## Transportné protokoly (TCP, UDP)
**Transportná vrstva L4** je vrstva, ktorá zabezpečuje logický komunikačný kanál medzi aplikáciami na základe adresácie portami.
Protokoly transportnej vrstvy sa starajú o **segmentáciu** dát, prípadne o **zabezpečenie spolahlivosti** pripojenia.
**Protokol UDP** (User Datagram Protocol)
- Výhodou je jeho jednoduchosť a minimálna réžia (veľkosť hlavičky)
- Poskytuje **ne**spojovanú a **ne**spolahlivú službu
- Jednotky dát sa nazývajú datagramy
- Využíva sa v protokoloch DNS, TFTP, RTP, RIP alebo pri streamovaní, hraní hier
**Hlavička datagramu** sa skladá z:
- Zdrojový port
- Cieľový port
- Celková dĺžka (dáta+hlavička)
- Checksum
**Protokol TCP** (Transmission Control Protocol)
- Poskytuje **spojovanú** a **spoľahlivú** službu
- Dáta sú prijímané kompletne a v poradí
- Jednotky dát sa nazývajú **segmenty**
- Rozdeluje dáta na segmenty bajtov, ktoré čísluje v poradí bajtov
- **Maximum Segment Size (MSS)** je hodnota, ktorá určuje maximálnu veľkosť segmentu
- Pred začiatkom komunikácie dojde k vytvoreniu spojenia pomocou procesu s názvom **handshake**
**Handshake** je proces výmeny dát potrebných na vytvorenie spojenia.
- Spojenie je duplexné - z obidvoch strán
- Označuje sa tiež ako trojcestný
- Spojenie je typu **end-to-end** tj. zariadenia na sieti o ňom nevedia
- Na vytvorenie spojenia sa použie nasledujúca sekvencia správ TCP:
- ->SYN
- <-SYN ACK
- ->ACK
- Spojenie sa musí ukončiť podobne ako handshake:
- ->FIN
- <-ACK
- <-FIN
- ->ACK
TCP navyše zabezpečuje aj **detekciu chýb**:
- Kontrolné súčty
- Potvrdenia (ACK)
- ARQ (automatic repeat request) - Go-Back-N algoritmus + buffer pre segmenty mimo číslovania
- Timeout - založený na Round-Trip Time
TCP riadi aj **množstvo odoslaných dát** (pomocou MSS a počtu segmentov):
- **Riadenie toku** (Flow Control) - aby príjemca zvládol čítať segmenty
- Na základe spätnej väzby od príjemcu (počet zahodených paketov)
- **Riadenie zahltenia** (Congestion Control) - aby sa nezahltila sieť (linka) veľa segmentami
- Odhadujeme zahltenie siete pomocou algoritmov
- Slow start
- Additive increase
- Multiplicative decrease
Príklad **techník TCP**:
- Tahoe TCP
- Začína s Slow Start -> exponenciálne zvyšuje objem dat až po THRESH
- Po tom, čo sa využitie šírky pasma zvýši na THRESH, pokračuj s Additive Increase
- Po tom, čo vypadne paket, vrátime sa naspäť na Slow Start a proces sa opakuje
- Problém: Slow Start
- Reno TCP
- Rieši Slow Start
- Po tom, čo vypadne paket, sa vrátime na hodnotu THRESH a nie úplne na začiatok
- Vegas TCP
- Koncept založený na kontrole RTT
- Ak je siet zahltená, zahlcujú sa buffre routrov a zvyšuje sa RTT
- Tým pádom sa zníži MSS (cwnd)
- Je výhodne merať RTT pomocou disperzie času medzi paketmi
- Traditional TCP
- Responzivita je závisla na šírke pásma pri konštantom výpadku paketov
- Po urcitej dobe chceme, aby rôzne dátove toky TCP dosiahli ekvilibria
- Zavisi na tom, za aký čas ho dosiahnu
**Hlavička TCP segmentu** sa skládá z:
- Zdrojový port
- Cieľový port
- Sekvenčné číslo segmentu (sequence number)
- Číslo potvrdenia (acknowledgment number)
- Dĺžka hlavičky v bajtoch (data offset)
- Rezervované (nič)
- Stavové flagy: URG, ACK, PSH, RST, SYN, FIN
- Veľkosť okna (window)
- Checksum
- Urgent pointer (index, kde končia urgentné dáta)
- Nastavenia (MSS, WSCALE) a padding
## Ad-hoc, senzorové siete, vysokorychlostné siete, počítačové siete a multimédia
**Ad-hoc siete** sú siete, ktoré zriaďujeme za jedným konkrétnym, špeciálnym účelom.
- Príklad: pri katastrofách ak nie je dostupná bežná infraštruktúra
**Bezdrátová ad-hoc sieť** je zoskupením jednotlivých uzlov, ktorí sú schopní komunikovať bezdrátovo.
- Pracujú na decentralizovanom prístupe
- Každý uzol je hostom aj routrom
- Výhody:
- Rýchle a jednoduché zoskupenie
- Sú odolné (nemajú centrálny prvok)
- Efektívnejšie využitie šírky pásma než mobilné siete
- Problémy:
- Nie je žiadny centrálny prvok, jednotlivé stanice sa musia samo-organizovať
- Majú problém s dosahom staníc
- Mobilita staníc - MANET Mobile Ad-hoc Networks
- Musí sa riešiť medium access control (CSMA) a smerovacie protokoly
- Využitie MANETov:
- Factory floor automation
- Disaster recovery
- Car-to-car communication (VANETs)
**Smerovanie** v ad-hoc sieťach:
- Založená na **adresách**
- Správy sa posieľajú po staniciach na základe cieľovej adresy
- Každý uzol má unikátnu adresu
- Proaktívne - trasy sa vytvárajú vopred (klasické smerovanie v L3 OSI/ISO)
- **DSDV** (Destination Sequenced Distance Vector)
- Založené na RIP protokole, používa Bellman-Ford
- Periodicky si stanice vysielajú kompletné tabuľky svojim susedom
- **OLSR** (Optimized Link State Routing)
- Každý uzol si zostavuje sieť zo zlomkových link-state tabuliek
- Broadcasty sú optimalizované skrz MPRs (Multipoint Relays)
- Reaktívne - trasy sa vytvárajú iba na vyžiadanie
- DSR - Dynamic Source Routing
- Source-based routing protokol
- Dochádza k záplavám na sieti
- **AODV** - Ad-hoc On-demand Distance Vector
- Používa ZigBee
- Rovnaká procedúra ako pri DSR
- Navyše si uzly ukladajú tabuľku, aby vedeli obslúžiť niektoré requesty rýchlejšie
- DYMO - Dynamic MANET On-Demand
- Nástupca za AODV
- Zjednodušuje overhead pri tvorbe tabuliek
- Table-Driven - každý uzol vie iba o next-hop ale môžu vznikať cykly
- Source-Routing - každý uzol vie kompletnú cestu pre danú správu
- Flat - každý uzol má rovnaký routovací algoritmus
- Hierarchical - niektoré uzly majú inú úlohu v rámci semerovania (lepšie škáluje)
- Location-Based - protokoly berú do úvahy aj vzdialenosť medzi uzlami
- Non-Location-Based - protokoly neberú do úvahy vzdialenosť medzi uzlami
- Založená na **dátach**
- Výhoda - stanice nemusia mať adresu
- Dáta sa preposielajú ďalej podľa obsahu
**Bezdrátová senzorová sieť** je sieť zložená zo senzorov, ktoré komunikujú s centrálnou jednotkou za účelom kontroly okolia.
- Príklad: rozhádzanie senzorov do lesa za účelom kontroly teploty pri požiaroch
- Senzorový uzol musí mať: batériu, CPU, RAM, ROM, rádio a senzory
- Softvérovo sú založené na princípe event-driven OS
- Je dôležité spotrebovať čo najmenej energie
Medium Access Control (MAC) v senzorových sieťach musí **zohľadňovať** potrebu uzlu na **uchovávanie energie**.
- Kedže sú bezdrátové, tak vznikajú problémy s presluchmi a kolíziami
- **Hidden** a **exposed terminal** problems
Rozlišujeme senzorické MAC **protokoly**:
- **Contention-based protocols** (využitie média bez koordinácie)
- Princíp 802.11 "listen before talk"
- Bežne nepodporuje QoS mechanizmy
- Vždy, keď chce stanica niečo vysielať, musí sa dohodnúť so svojimi susedmi
- Sender-initiated
- Receiver-initiated
- **BTMA** (Busy Tone Multiple Access)
- Vždy, keď chce stanica vysielať, posiela na danom kanáli Busy tone a zároveň aj dáta
- **MACA** (Multiple Access Colision Avoidance)
- Vysielač vyšle RTS a cieľ vyšle CTS
- Ostatné stanice v tom momente vedia, že nemôžu vysielať lebo medzi nimi prebieha prenos
- **Power Control MAC (PCM)**
- Platí predchádzajúce, a navyše sa detekuje, ako ďaleko je cieľová stanica
- Nastaví aký signál sa má širiť, čím šetrí energiu
- S rezervačnými mechanizmami - rezervácia prostredkov na trase vopred, QoS
- S plánovacími mechanizmami - pakety sa zdieľajú len v období určenom časovému plánovaniu
- **Sensor MAC (S-MAC)** - rozďeluje plán na časy počúvania a spánku, obdobie počúvania sa rozdeľuje na synchronizáciu a dátový prenos
**Vysokorýchlostné siete** sú siete s veľkou šírkou pásma a nízkym oneskorením.
- Príklad: optika FFTH, Gigabit Ethernet, Backbones (campus, bank, company...), 5G Wireless
- Sú charakteristické svojou vysokou zriaďovacou cenou na zabezpečenie infraštruktúry
- Vyžadujú špecifické úpravy protokolov (napr. Jumbo Frames na L2, High-Speed TCP na L4, špecifické protokoly na L1)
- Typicky vyžadujú formy QoS a multiplexingu na prenosovom médiu (časový, frekvenčný)
**Multimédia** sú typom informácií, ktoré sa skladajú z viacerých rôznych typov médií
- Príklad: text, fotky, video, zvuk, interaktívne média
Text:
- FTP, HTTP, SMTP
- TCP/UDP
- Zvyčajne nemáme problém s oneskorením
- Riešime hlavne kódovanie
Audio:
- Zvuk je analógový signál, musíme ho vzorkovať a kvantizovať
- Riešime dostupnú šírku pásma, ktorá je zvyčajne nízka a frekvenciu spektra
- Človek vie ignorovať 1-2% strát a max. 200 ms oneskorenie
Grafika a animácia:
- GIF, PNG, JPG
- Podobne ako text, nemáme problém s oneskorením
- Riešime hlavne kompresiu
Video:
- Sekvencia snímok
- Riešime bitrate, frekvenciu FPS, šírku pásma, kompresiu
- Podobné charakteristiky chýb a oneskorenia ako u zvuku
Klasifikácia médií:
- **Prenos v reálnom čase** - diskrétne alebo spojité (tolerantné alebo intolerantné voči oneskoreniu)
- Statické médiá
Na **prenos médií v reálnom čase** sa musí klásť väčší dôraz na **oneskorenie a kompresiu**.
**Sieť** musí spĺňať **špecifické kritéria** a využívať **špecifické protokoly**.
Požiadavky na prenos dát po ceste (**traffic requirements**):
- Požiadavky na **oneskorenie** (delay)
- Packet processing delay - charakteristika A/D, D/A prevodu, operačného systému, spracovania na koncových uzloch, spracovanie aplikáciou
- Packet transmission delay - čas, ktorý trvá fyzickej vrstve siete daný paket preniesť z miesta na miesto
- Propagation delay - time-of-flight delay, tj. ako dlho trvá fyzickému médiu preniesť danú informáciu
- Routing and queueing delay - čas, ktorý potrebujú sieťové prvky na prenos dát, ovplyvnené QoS, zaplnenie bufferov
- Požiadavky na **šírku pásma**
- Best-effort internet neposkytuje mechanizmus na rezerváciu šírky pásma
- Prakticky nemožné odstrániť problémy tohto typu
- Packet processing rate je dôležitá metrika
- Požiadavky na **chybovosť**
- Error = poškodenie alebo nedoručenie paketu
- Sender-based repair
- Active - ARQ mechanizmus (Automatic Repeat Request)
- Passive - Forward Error Correction, Interleaving
- Receiver-based repair
- Forward Error Correction
- Media independent - paritné kódy, XOR, Reed-Solomon kódy
- Media dependent - dáta sú odosielané naprieč paketmi, využíva primárne a sekundárne kódovanie, výhodou je malé oneskorenie
- Interleaving - prekladanie rôznych dátových tokov medzi sebou
- Výhoda - nezvyšuje potreby šírky pásma
- Nevýhoda - zvyšuje oneskorenie
- Error Concealment - zakrytie a predikcia výpadku dát, využíva interpoláciu, regeneráciu z kódov dát
**Funkčné požiadavky** na prenos v reálnom čase:
- **Multicasting** support
- Native / Virtual
- Nepodporuje každá sieť
- IGMP, DVMRP, MOSPF, PIM
- Prebieha kopírovanie paketov na úrovni routrov
- **Bezpečnosť a mobilita**
- IPsec, IPv6 Mobility
- **Session Management**
- Zriadenie relácií
- Media Description
- Poskytuje službu rozširovania informácií o relácii
- Session Description Protocol (SDP)
- Popisuje jednotlivé vlastnosti streamovaných médií
- Tag = value format
- Session Initiation Protocol (SIP)
- Session Announcement
- Dovoľuje participantom oznámiť vznik relácie
- Session Announcement Protocol (SAP)
- Slúži na oznamovanie multicastových konferencií a podobne
- Session Identification
- Multimediálna relácia sa zvyčajne skladá z viacerych mediálnych streamov
- **Real-Time Transport Protocol (RTP)**
- Pracuje nad UDP
- Poskytuje Sequencing, Payload identification, Frame indication, Source identification, Intramedia synchronization, Additional information
- RTP neposkytuje kvalitu služieb
- Session Control
- Synchronizácia mediálnych streamov
- Real-Time Control Protocol (RTCP)
- Kontrolný protokol pre RTP
- Získava štatistiky o streame
- Poskytuje feedback aplikáciam
- Real-Time Streaming Protocol (RTSP)
- Poskytuje aplikácii podporu pauzy/prerušenia/stop/play/repositioning
- Pracuje s RTP a RSVP (Resource Reservation Protocol) na poskytovanie streamingu cez internet