# 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