= propojení více počítačů a zařízení komunikačními kanály, které zajišťuje komunikaci uživatelů a sdílení zdrojů
- účely PC sítě: komunikace, sdílení HW, sdílení SW a sdílení dat
- charakteristické vlastnosti PC sítě:
- delivery -- doručení dat do správného cíle
- accurance -- doručení přesných dat
- timeliness -- včasné doručení
Ideální síť | Skutečná síť |
---|---|
transperentní pro uživatele (end-to-end- to, co je uvnitř nás nezajímá) | vnitřní struktura ovlivňuje doručení dat |
neomezená propustnost | omezená propustnost (100 Gb/s Praha–Brno) |
bezztrátová | občas ztrátová (řeší to TCP) |
bez zpoždění a jitteru (rozptyl zpoždění) | občas zpoždění a jitter |
zachování pořadí paketů | možné prohození pořadí paketů (řeší to TCP) |
bezporuchová | občas poruchy |
- požadované vlastnosti PC sítě:
- efektivita -- maximální využití šířky pásma
- férovost -- všechny datové toky mají stejnou prioritu
- decentralizovaná správa
- rychlá adaptibilta a konvergence při změně stavu
- multipexing/demulteplexing
- spolehlivost
- řízení datových toků -- zabezpečení proti zahlcení
- základní přístupy:
- spojované -- uskutečním spojení a pak vysílám
- bezstavové -- vysílám bez předchozího vytvoření spojení, tento přístup je škálovatelnější (Internet)
- Co? (syntax) Jak? (sémantika) Kdy? (časování)
- zabezpečují komunikaci mezi entitami (čímkoli, co odesílá a přijímá informace)
- forma komunikace musí být ustanovena předem
= definice norem popisující komunikaci
- cílem je zajistit:
- kvalita (quality)
- bezpečnost (security)
- kompatibilita (compatibility)
- interoperabilita (interoperability)
- přenositelnost (portability)
- druhy standardizace:
- de facto -- někdo něco udělá a následně je to přijato komunitou
- de jure -- určeno vyšší autoritou
- organizace: ISO, ITU-T, ANSI, IEEE, IETF (RFC), IEC,...
- ISO/OSI
- TCP/IP
- model přesýpacích hodin
- 7 vrstev
- každá vrstva má vlastní izolovanou funkcionalitu
- každá vrstva komunikuje pouze s vrstvou bezprostředně nad/pod ní
ISO/OSI model | TCP/IP model |
---|---|
Aplikační vrstva | Aplikační vrstva |
Prezentační vrstva | Aplikační vrstva |
Relační vrstva | Aplikační vrstva |
Transportní vrstva | Transportní vrstva |
Síťová vrstva | Síťová (Internetová) vrstva |
Vrstva datového spoje | Vrstva přístupu k síti/médiu |
Fyzická vrstva | Vrstva přístupu k síti/médiu |
signál = funkce času reprezentující změny na fyzickém médiu
- hlavním cílem fyzické vrstvy je přenos bitů (0 a 1) mezi odesílatelem a příjemcem
- bity jsou ve fyzickém médiu přenášeny ve formě signálů
- služby:
- trasformace bity <--> signály
- Bit-Rate control -- počet poslaných bitů za sekundu
- synchronizace bitů -- časování bitového přenosu u odesílatele i přijímače
- multiplexing -- proces sdílení fyzického média mezi více souběžnými komunikačními kanály, vede k vyšší efektivitě
- Frequency-Division Multiplexing (FDM) -- pro analogové signály
- Wave-Division Multiplexing (WDM) -- pro analogové signály
- Time-Division Multiplexing (TDM) -- pro digitální signály
- přepínání okruhů
- druhy signálů:
- analogový -- využívá modulaci
- digitální -- využívá kódování
- druhy přenosových médií:
- drátová -- např. kroucená dvojlinka, koaxiální kabel, optické vlákno
- bezdrátová -- rádiové signály, mikrovlné signály, infračervené signály
- zajišťuje přenos datových rámců mezi dvěmi komunikujícími zařízeními (určenými MAC adresou) propojenými přes sdílené přenosové médium
- služby:
- transformace rámce <--> pakety
- adresace (MAC adresy)
- detekce a oprava chyb
- řízení toku
- MAC Medium Access Control
- topologie LAN sítí:
- bus
- circle
- star
- tree
- mesh (úplný graf)
- zařízení v LAN sítích:
- bridge (můstek)-- spojuje dvě části sítě, spojení je transperentní, odděluje různé části sítě, a tím zmenšuje zatížení sítě
- switch (přepínač) -- rozbočovač, který posílá data jen tam, kam patří (ne všude)
- cíl: odstranit cykly při zasílání dat mezi můstky
- všechny můstky periodicky posílají informaci o své vzdálenosti od kořene a upravují svoji definici nejlepší cesty
- výber kořenového můstku
- výběr kořenových portů
- výběr aktivních/neaktivních portů
- služby:
- internetworking -- logické spojování jednotlivých LAN do WAN
- *transformace segmenty <--> pakety
- směrování paketů -- proces hledání cesty v síti mezi dvěmi uzly
- překlad MAC adresa <--> IP adresa -- protokoly ARP (<--), RARP (-->)
- fragmentace -- v závislosti na MTU (Maximum Transmission Unit) rozděluje datagramy na menší části (IPv6 nefragmentuje)
- multicast -- řešení pro skupinovou komunikaci v síti (Source Based Tree, Core Based Tree)
- kontrolní zprávy -- ICMP protokol
adresace -- unikátní a systematická adresace každého zařízení v Internetu
- typy adres v IPv4:
- Unicastová adresa -- identifikace jednoho zařízení
- Broadcastová adresa -- identifikace hostitele v LAN
- Multicastová adresa -- identifikace skupiny zařízení, které požaduje data
- typy adres v IPv6:
- Unicastová adresa -- identifikace jednoho zařízení
- Multicastová adresa -- identifikace skupiny zařízení, které požaduje data
- Anycastová adresa -- stejné jako multicast, ale data jsou doručena pouze jednomu členu ze skupiny
- statické směrování -- nepřizpůsobuje se, je vhodné pro menší neměnící se sítě
- dynamické směrování -- reaguje na změny sítě, využívá komplexnější algoritmy
- centralizované -- jeden uzel řídí zbytek
- izolované -- každý uzel pracuje sám
- distribuované -- uzly spolupracují
- požadované vlastnosti směrovacího algoritmu:
- přesnost
- jednoduchost
- efektivita a škálovatelnost
- robustnost a stabilita
- férovost
- optimálnost
- Distance Vector -- Bellmanův-Fordův algoritmus, uzly sdílí informace o síti pouze svým sousedům (RIP protokol)
- Link-State -- Dijkstrův algoritmus, uzly sdílí informace o svých sousedech všem (OSPF protokol)
- routování v autonomních sítích pomocí BGP-4 protokolu (Border Gateway Protocol)
- služby:
- trasformace data <--> pakety
- kontrola spojení
- adresace portů -- 16 bitové číslo (0--65535)
- spolehlivost spojení -- Flow Control (proti přetížení příjemce) a Error Control
- QoS (Quality of Sevice)
- kontrola přetížení sítě
- Connection-oriented services (ustanoví se spojení, pakety jsou číslovány) vs. Connection-less services (neustanoví se spojení, pakety nejsou číslovány)
- UDP protokol -- rychlý, jednoduchý, bezspojový, ale nespolehlivý protokol
- TCP protokol -- spojovaný a spolehlivý protkol
- poskytuje služby uživateli
- obsahuje aplikační protokoly (HTTP, SMTP, FTP, DNS, RTP/RTCP,...)
- klasifikace aplikací:
- klient-sever vs. peer-to-peer
- pull model (přenos dat je iniciován klientem) vs. push model (přenos dat je iniciován severem)
- aplikace s nízkými/výsokými požadavky na síť
- vyčerpání bloků IPv4
- potřeba zabezpečení komunikace
- nebyla podpora autokonfigurace
- nutnost podporovat mobilitu
- větší adresový prosotr 2^128
- jednodušší formát hlavičky (konstantní délka) -> nižší režie na směrovačích -> vyšší propustnost
- možnost dalších rozšíření
- podpora real-time přenosů
- podpora zabezpečené komunikace
- podpora moblity
- podpora autokonfigurace zařízení -- samoorganizace sítě
- hexadecimální zápis
- čtveřice znaků oddělených
:
- zkrácení zápisu:
a) vynechání nul zleva
b) vynechání bloku obsahujícího samé nuly
::
- struktura adresy:
- n bitů -- globální směrovací prefix
- 16 bitů -- hodnota 2001
- 16 bitů -- RIR (Regional Internet Registry)
- 16 bitů -- LIR (Local Internet Registry)
- 64 - n bitů -- adresa podsítě
- 64 bitů -- adresa rozhraní
- n bitů -- globální směrovací prefix
- CIDR notace -- neoddělujeme adresu sítě a podsítě
- typy adres:
- unicast -- jednomu
- multicast -- všem ze skupiny
- anycast -- jednomu ze skupiny
- fragmentace v IPv6
- fragment se zahodí a odešle se ICMPv6 "Packet too big" zpráva, která se vrací zdroji, který musí upravit data
- rozšíření ARP prokolu z IPv4
- je součástí ICMPv6 protokolu
- funkce:
- autokonfigurace (stavová nebo bezstavová)
- určuje konfigurační informace
- detekuje duplicity
- ICMP zprávy:
- RS (Router Solicitation) -- výzva routeru
- požadavek routeru na dodání adresového prefixu a dalších autokonfigurančních informací
- RA (Router Advertisement) -- odpověď routeru
- slouží jako odpověď na RS
- router pravidelně rozesílá informace o adresovém prefixu a flag bits
- NS (Neighbor Solicitation) -- výzva sousedovi
- získání link-layer adresy souseda
- ověření dosažitelnosti souseda
- detekce adresových duplicit
- NA (Neighbor Advertisement) -- odpověd souseda (příznaky: R - router, S - solicited, O - override)
- slouží jako odpověď na NS
- při změně link layer adresy se rozešle zpráva o změně
- ICMP Redirect
- RS (Router Solicitation) -- výzva routeru
- založena na NS a NA ICMP zprávách
- používá se během autokonfiguračního procesu
- využívá NS zprávy
- uzel pošle zprávu se svojí vlastní adresou, pokud se nějaký uzel ozve, v síti se nachází duplicita
- uzel pravidelně kontroluje dostupnost svých sousedů
- dva přístupy:
- vysokoúrovňový protokol (např. TCP) informuje IPv6, že komunikace proběhla, tady je uzel přístupný
- pokud k tomuto nedošlo, musí "živost" uzlu zkontrolovat IPv6
- možné statusy sousedních uzlů:
- incomplete -- probíhá rozpoznávání adresy, čeká se na odpověď nebo timeout
- reachable (dosažitelný)
- stale -- od posledního potvrzení uběhlo více než ReachaleTime
- delay -- vyplršel limit dosažitelnosti
- stará se o ni DHCP
- typy:
- stavová
- bezstavová
- předpokládá, že routery v síti ví, co mají dělat
- čas od času informují o konfiguraci (RA zpráva)
- nové uzly čekají na RA zprávu nebo si ji vyžádají pomocí RS zprávy
- při generování nové adresy se nejdříve vygeneruje link-local adresa (z MAC adresy nebo náhodně) a následně se ověří, jestli je unikátní (DAD), potom se přiřadí na IP rozhraní a kontaktuje se router, který dodá další instrukce pro konfiguraci globální adresy
- každé zařízení má domácí síť, ve které má domovskou adresu
- CN Correspondent Node CN (korespondenční uzel) -- uzel, který vysílá zprávy
- HA Home Agent -- router v domácí síti, která přeposílá data, která přijdou na domácí adresu na mobilní adresu (pokud se zařízení nachází mimo domácí síť), přeposílá veškeré zprávy
- route oprimitation -- HA přepošle aktuální adresu zařízení a pak komunikace probíhá přímo
- ověření korespondenční a domácí adresy
- Home Test Init (HoTI) zpráva
- Care-of Test Init (CoTI)
- mobilní uzel zašle HoTI přes HA
- mobilní uzel zašle CoTI přímo
- ověřovatel zašle zpět přes agenta Home Init Cookie a Home Nonce Index přes HA
- ověřovatel zašle Care-of Init Cookie a Care-of Nonce Index přímo
- obě strany vypočítají 20-bytový Management Key, který je následně použit k ověření provázací aktualizace
- confidentiality (důvěrnost) -- přenášené nebo uložené informace nemohou být čteny nebo měněny neautorizovanou stranou (šifrování)
- integrity (integrita) -- libovolná změna přenesených nebo uložených informací může být detekována (kontrolní součty)
- availability (dostupnost)
- autentizace -- jednotlivec nebo skupina je tím, za koho se vydává
- autorizace -- autentizovaní uživatelé mají přístup k správným informacím
- accounting -- logování informací
- symetrické -- soukromý klíč
- asymetrické -- veřejný klíč
- message digest (hash) -- funkce, která bere vstup libovolné délky jako výstup vrátí (unikátní) kód fixní délky
- IPSec (RFC 2401 + RFC 4301)
- IPSec obsahuje:
- AH Authentication Header -- protokol pro autentizaci
- ESP Encapsulation Security Payload -- protokol pro šifrování
- definice pro šifrování, rozšifrování, autentizaci a další bezpečnostní opatření
- správa šifrovacích klíčů
- popis druhu zabezpečeného spojení mezi dvěmi zařízeními
- klíč + šifrovací a dešifrovací mechanismus + parametry algoritmu
- tři parametry:
- SPI Security Parameter Index
- IP Destination Address -- komu je SA určeno
- Security Protocol Identifier -- pro AH nebo pro ESP
- klíče je možné vyměnit pomocí Internet Key Exchange version 2 (IKEv2)
- dva způsoby přepravy:
- transportní mód -- zpráva je nejdřív chráněna a pak až je k ní přidána hlavička
- tunelovací mód -- IPSec je použito k ochraně kompletního zabaleného IP datagramu (včetně hlavičky)
- autentizace části a nebo celého datagramu
- poskytuje autentizaci nikoli soukromí
- protokol chránící data před zobrazením neautorizovanou stranou
- šifruje data
- poskytuje autentizaci i soukromí
- neutentizuje vnější IP hlavičku
- dřív nebyla potřeba, best-effort přístup stačil
- s příchodem multimediálních přenosů jsme začali míst vysší nároky
- integrované služby -- potřebujeme protokol, který předem zajistí zdroje
- diferencované služby -- pakety mají označenou prioritu
- pole v hlavičce paketu využívaná pro QoS:
- Traffic Class -- 1 byte určující prioritu paketu, (DiffServ CodePoints DSCP hodnoty)
- Flow Label -- 20bitové pole určující příslušnost paketu k určitému flow, stále nevíme, jak toto pole efektivně využívat
flow -- sekvence souvisejících paketů odeslaná do jedné destinace
- vnáší stavovost do bezstavové sítě
- postup:
- uzavření kontraktu se sítí (je třeba protokol RSVP, YESSIR)
- odmítnutí --> snížím požadavky nebo počkám na vhodnější chvíli nebo
- přijmutí --> přenos
- zachovává bezstavovost sítě
- lépe škáluje
- neodpovídá přesně potřebám paketů
- méně práce pro směrovače
- složitost konverze záležití na komlexitě aplikace
- aplikace může být:
- IPv4 only
- zvlášť IPv4 a IPv6
- nezávislá na verzi IP protkolu
- problémy s portováním:
- parsování adresy -- hexadecimální adresa je obtážněji parsovatelná, je nutné využít knihovnu
- adresový paměťový prostor -- IPv4 adresy bývají často ukládány v 32-bitových unsigned integer proměnných, některé systémy ale nativně používají 128-bitový datový typ
- URL a textová reprezentace IP adresy -- URL nepovoluje notaci s dvojtečkami (ty jsou užívány pro označení portů), je nutné použít hranaté závorky:
http://[fe80::219:d1ff:fe06:e908]:8080/
- více adres -- s IPv6 může mít jedno rozhraní více adres
- užitečné struktury:
struct addrinfo
struct sockaddr_in6
struct sockaddr_storage
- užitečné funkce:
getaddrinfo
getnameinfo
- mechanismy pro společnou existenci Ipv4 a IPv6
- dual stack
- zařízení podporuje obě verze naráz
- výhody: flxibilní, jednoduché
- nevýhody: náročné na zdroje (běží dva různé zásobníky na protokoly), aplikace musí umět rozpoznat, o který protokol se jedná
- tunneling
- IPv6 datagramy jsou zabaleny do IPv4 datagramů
- výhody: až bude vše na IPv6, nebude nutné provádět žádné změny
- nevýhody: zátěž pro routery, obtížně se řeší chyby, je to zdroj útoků
- překladače (NAT-PT)
- překlad IPv6 <--> IPv4
- nouzové řešení
- výhody: umožňuje přímou komunikaci
- nevýhody: nepodporuje pokročilé služby IPv6, NAT router je single point of failure
= nalezení cesty mezi dvěma uzly, cesta musí splňovat určité podmínky
- cílem směrování je nalézt optimální cestu a doručit data příjemci
- většinou hop-by-hop přístup
- grafový problém: uzly = routery, hrany = datové linky, ohodnocení hran = cena komunikace
- alrogitmy Bellmanův-Fordův a Dijkstra
- Praha--Brno 40 Gb/s
- směrování v Internetu:
- distribuované
- hop-by-hop
- deterministické
- single-path
- dynamický výběr cesty
- Distance Vector -- Bellmanův-Fordův algoritmus, uzly sdílí informace o síti pouze svým sousedům (RIP protokol)
- Link-State -- Dijkstrův algoritmus, uzly sdílí informace o svých sousedech všem (OSPF protokol)
- Path Vector -- posílají se celé cesty (detekuje cykly, umožňuje definici pravidel), preferuje kratší cesty, řeší pouze dostupnost
Distance Vector | Link State | |
---|---|---|
složitost | změna ceny linky se propaguje jen nejbližšímu sousedovi a těm, které to ovlivní | změna ceny linky se propaguje na všechny uzly, O(nE) zpráv |
rychlost konvergence | count-to-infinity problém (směrovací cykly), může být pomalejší než LS | algoritmus O(n^2), , zasílá O(nE) zpráv, trpí na oscilace |
robustnost | nesprávný výpočet je šířen sítí | špatný výpočet se šíří jen sousedům |
použití | menší sítě | menší i rozsáhlé sítě |
- cílem je rozdělení Internetu na autonomní systémy, abychom zjednodušili management a zmírnili přetížení routerů
- Autonomous System Number (ASN) -- 16bitové ID
- autonomní systémy odpovídají administrativním doménám (např. CESNET, PASNET apod.)
- typy podle připojení k Internetu:
- Stub
- Multihomed
- Transit
- oddělené směrování:
- internní -- v rámci AS, protokoly: RIP, OSPF, (E)IGRP, IS-IS
- externí -- mezi AS, protokoly: BGP-4
- první
- RIPv1 (broadcast), RIPv2 (multicast), RIPng
- formáty zpráv v RIPv2:
- příkaz
- verze
- identifikátor adresové rodiny
- IP adresa
- metrika
- route tag
- subnet mask
- next hop
- přechod mezi dvěma sousedními směrovači je 1 hop
- každých 30 si směrovače UDP protokolem vyměňují informace
- za 180 vteřin nastává timeout souseda
- použití: pro malé sítě
- překonává limity RIPv1 omezený počet hopů a jedinou metriku na počítání hopů
- puživá složenou metriku na základě:
- Bandwidth (B)
- Delay (D)
- Reliability (R)
- Load (L)
- vylepšuje IGRP:
- loop-free směrování
- spolehlivost doručení
- variable length subnet masking
- ...
- nyní nejpouživanější
- metrika 1--65535 (nejlepší--nejhorší) číslo přiřazené každému síťovému rozhraní směrovače
- OSPF zprávy jsou zabaleny přímo do IP datagramu
- metrika 0--63 nebo rozšíření na wide metric
- IS-IS zprávy jsou zabaleny v rámcích
- běží na 2 vrstvě (datového spoje)
- dobře škáluje na větších sítích
- aktuální verze: BGP-4
- podpora redundantních topologií, umí řešit cykly
- povoluje defnici směrovacích pravidel
- používá metriku počítání hopů
- používá CIDR pro agregaci cest
- mechanismus, který poskytuje informace o externích AS, interním routerům v AS
- směrování -- vytváření a udržování směrovací tabulky
- přeposílání paketů -- na zákldaně směrovací tabulky, forwardovací tabulka
- validace IP hlavičky -- ověření kontrolního součtu, délka hlavičky, správnost protokolu
- zpracování TTL
- odečtení jednotky z TTL
- pokud je TTL <= 0, paket je zahozen
- jinak se přepočítá kontrolní součet
- vyhledání dalšího směrovače
- fragmentace -- pokud je to nutné kvůli dalšímu MTU (Maximum Transmission Unit)
- zajištění speciálních podmínek
- klasifikace paketu
- překlad paketu
- prioritizace provozu
- směrovací protokol
- konfigurace systému
- management systému
- síťové rozhraní
- forvwrdovací nástroje
- správce fronty
- správce provozu
- Backplane -- zprostředkovává konektivitu pro síťová rozhraní
- Route Control Processor -- zodpovídá za směrovací protokoly
- Classful Addressing -- přímé forwardování
- CIDR (Classless Inter-Domain Routing) -- Longest Prefx Matching
- požadavky:
- lookup speed -- wire-speed forwarding
- využití paměti -- efektivní algoritmus využívá cache paměť
- škálovatenost -- rychlost i paměť (velikost forwardovací tabulky narůstá)
- aktualizovatelnost -- cesty se mění vlemi často
- algoritmy:
- naivní algoritmy -- linerání vyhledávání
- Trie-based algoritmy -- Binary Tries, Multibit Tries, Compressed Multibit Tries (trie" comes from "retrieval")
- požadavky:
- umožňuje:
- speciální zacházení s různými typy paketů
- flexibilitu účtování a cenění
- bezpečnost
- probíhá pomocí údajů v hlavičce paketu
- naivní
- Two-dimensional Solutions -- Hierarchical Tries, Set Pruning Tries, Grid-of-Tries
- d-dimensional Solutions
- Divide and Conquer Approaches -- Lucent Bit Vector, Aggregated Bit Vector, Cross-Producting, Recursive Flow Classification
- Tuple Space Approaches
- Decision Tree Approaches -- Hierarchical Intelligent Cuttings (HiCuts), HyperCuts,
- Hardware-Based Solutions -- Ternary Content Addressable
= objevování, jaké další cesty jsou v síti k dispozici, jaké je aktuální vytížení provozu v síti a směrování provoru i na cesty, které nejsou nejkratší, aby docházelo k optimálnímu využití síťových zdrojů
- dosahujeme toho kombinací:
- rozšíření k existujícím IGP protokolům
- monitoringem provozu
- směrovacími technikami
- proces:
- měření provozu --> matice provozu
- získání topologie a konfigurace ze sítě
- určení váhy hran -- aktualizuje se většinou jednou denně nebo týdně
- je potřeba mít přehled o využití zdrojů v rámci celé sítě
- síťový provoz záleží na dení době
- metody:
- Simple Network Management Protocol (SNMP)
- NetFlow
- sFlow, ntop,...
- u malých statických systémů postačí manuální konfigurace
- u velkých dynamických systémů využíváme automatizované systémy
- rozšíření IGP, OSPF, IS-IS
- minimalizační problémy
- Single-Commodity Network Flow
- Multicommodity Network Flow
- Shortest Path Routing and Network Flow -- založeno na váze linku
- Multicommodity shortest path-based routing flow
- technologie na pomezí 2. a 3. vrstvy
- spočítáme, kam mají být pakety stejného typu (označíme je stejným labelem) poslány, a pak je posíláme sátle stejnou cestou, což vede k zrychlení
- Edge Label-Switched Routers (Edge-LSRs)
- Ingress-LSR
- Egress-LSR
- Core Label-Switched Routers (Core-LSRs)
- hezky popsáno zde: https://dsn.felk.cvut.cz/wiki/_media/vyuka/cviceni/x36mti/petrim2-doc.pdf
- Grid-enabled GMPLS
- zobecnění MPLS na další vrstvy a rozhraní
- návěstí může být vloženo do všho, co může přenášet data
= směrování, kdy se výběr cest řídí podle znalosti dostupnosti zdojů a QoS požadavků na tok
- cíle:
- splnit požadavky koncového uživatele na QoS
- optimalizovat využití zdrojů v síti
- při přetížení síte podávat lepší výsledky než best-effort přístup
- využívají se různé metriky (bandwidth, delay, jitter,...)
- dochází k rezervaci zdrojů
- problémy:
- volba metriky a počítání cesty
- propagace znalostí a údržba
- Scaling by hierarchical aggregation
- administrativní kontrola
- integrace QoS-based směrování a Best-effort směrování
- algoritmy:
- source-based routing algorithms -- každý router má kompletní informaci o stavu sítě, špatná škálovatlenost
- hop-by-hop routing algorithms -- každý router má informace pouze o routeru o 1 hop blíž cíli, problém se škálováním a smyčkami (pokud nejsou konzistentní informace v různých routerech)
- hierarchical routing algorithms -- skládá se z několika vrstev, informace mají hraniční směrovače na každé vrstvě, dobře škáluje, nižší přenost stavových informací
- hierarchický dynamický směrovací protokol pro ATM sítě
- založen na link-state algoritmu
- nepodporuje multicast a policy směrování
- QoS rozšíření pro OSPF
- hierarchický protokol založený na link-state algoritmu
- do metriky Link State Advertisements jsou přidány pouze link bandwidth a propagation delay
- pro každou cestu algoritmus vypočítá nejširší-nejkratší cestu
- využívá Bellmanův-Fordův i Dijkstrův algoritmus
- zajišťuje spolehlivost přenosu
- zhodnocení chování:
- agresivita -- schopnost využít dostupnou šířku pásma
- responsivita -- schopnost zotavit se ze ztráty paketu
- férovost -- rozdělení šířky pásma mezi víc TCP sreamů (záleží na RTT a MTU)
- problém: velké vzdálenosti s velkou šířkou pásma
- kontrola toku (flow controll)
- deterministický feedback od příjemce (rwnd)
- kontrola zahlcení (congestion controll)
- množství dat, které je síť schopna přinášet (cwnd)
- --> ownd = min(rwnd, cwnd) -- z toho vypočítáme bandwidth
- tradiční TCP:
- Tahoe -- Slow start --> Congestion Avoidance, přeposlání celého aktuální okno
- Reno -- Slow start --> Congestion Avoidance --> Fast Recovery (rychlejší onbovení po ztrátě paketu)
- Vegas -- monitoruje RTT během přenosu, pokud detekuje růst, tak preventivně změnší okno
- problém: TCP reaguje na statistické výpadky (i když síť není zahlcená, ale je např. jen poškozený paket)
- rozdělení na více vláken
- nevýhoda: komplikovanější implementace
- prostředí, ve kterém je možné nakonfigutovat prostředí přenosu, aby bylo z pohledu rychlosti optimální
- distribuované
- kolekce ad-hoc modifikací
- korekce sstresh
- úpravy AIMD pro kontrolu zahlcení
- mění AIMD na MIMD (Multiplicative Increase Multiplicative Decrease)
- lepší zrychlení a férovost
- přechod mezi AIMD a MIMD
- jeho chování značně ovlivňuje stav sítě
- vyšší agresivita
- složitější vzorce pro výpočet cwnd
- výchozí algoritmus v Linuxovém jádře
- pro výpočet cwnd používá binární vyhledávání
- fáze:
- reakce na ztrátu paketu
- additive increase
- binární vyhledávání (dává prosor dalším tokům)
- maximum probing
- využívá kubickou funkci
- fáze slow-startu by mohla být zlepšena při využítí interakce se 3. vrstvou
- návrh: 4bytová volba v IP hlavičce, která se skládá z polí QS TTL a Initial Rate
- vyšle se SYN paket, který "zarezervuje zdroje" a vrátí se zpět k odesílateli s informací, podle které se přizůsobí cwnd
- ECN Early Congestion Notifcation -- 1 nebo 0, příznak o tom, že se blíží zahlcení
- reaguji na to, jak bych ztratila paket
- podobný Vegas, ale může využívat ECN
- provádí různě velké kroky v závislosti na vzdálenosti od equilibra
- kombinace TCP (řízení) a UDP (nahrnutí co nejvíce dat do sítě)
- záplavová vlna
- TCP - řízení, UDP - přenos dat
- u toho, kdo vysílá zůstává kompletní kopie dat
- příjemce označí pomocí vektoru, které data došla nebo nedošla, a pošle zpět
- zajištění, že dojdou veškerá data
- komunikuje se směrovači a získává od nich zpětnou vazbu (přes ICMP), jakým způsobem jsou doprvavovány pakety
- patří do aplikační vrstvy
- centrální server (může mít více kopií)
- server přijímá a odbavuje požadavky od klientů (sekvenčně nebo paralelně)
- výhody:
- jednoduchost vývoje
- udržovatelnost
- bezpečnost (za bezpečnost odpovídá server)
- nevýhody:
- škálovatelnost
- spolehlivost (server je single point of failure)
- klienti jsou na serveru nezávislí, mohou být různí
- např. SSH, webový server a prohlížeč, FTP
- distribuavané
- skládá se z indentických modulů, z nichž každý může být serverem nebo klientem
- každý komunikuje s každým
- úlohy v systému:
- budování systému
- nalezení dat v systému
- výhody:
- perfektní škálovatelnost (čím vější počet uzlů, tím lepší fungování)
- spolehlivost (systém funguje i když některý z uzlů neodpovídá)
- vlastnosti: symetričnost, škálovatelnost, heterogenita, decentalizace, dynamičnost, sdílení zdrojů, samoorganizace
- využití: WoW, vědecké výpočty, sdílení obsahu
- aplikační vrstva
- co má za úkol síť dělat
- sdílení souborů, směrovací protokoly, IM,...
- mezivrstva (middleware)
- úkoly:
- bezpečnost
- vyhledávání zdrojů
- struktura a vytváření skupin z uzlů připojených do sítě
- úkoly:
- základní překryvová síť
- úkoly:
- podpora virtuální sítě
- vyhledávání nových uzlů
- rozesílání zpráv mezi uzly
- transportní protokoly: TCP, UDP
- metrika: počet hopů mezi peery (může odpovídat více hopům v reálné síti)
- úkoly:
- klíčové parametry překryvu sítě:
- poloměr -- nejdelší vzdálenost mezi libovoulnou dvojcí peerů (počet hopů nebo latence), snažíme se ho minimalizovaz
- průměrný stupeň -- s kolika dalšími uzly je uzel propojen, snažíme se jej udržet v rozumné velikosti
- topologie:
- random mash (náhodné propojení) -- záplavové metody vyhledávní (není to moc efektivní)
- tiered (vrstvy) -- stromovitá hierarchie superuzlů, které mají informace o svých "potomcích"
- ordered lattice (uspořádaný svaz) -- uspořádání do mřížky, dotazy vždy směřují k sousedům, distribuované hašovací tabulky
- P2P síť je většinou virtuální překryv nad běžnou sítí
- novému uzlu stačí, aby našel jeden uzel z P2P sítě a následně se semoorganizačně do sítě začlení
- objevování peerů:
- statická konfigurace -- manuální kofigurace, každý uzel musí být předkonfigurován se seznamem dalších peerů v síti, vhodné pro malé statické sítě
- centralizovaný adresář -- server, který má informace o všech peerech, novému peeru stačí kontaktovat server
- Member Propagation Techniques with Initial Member Discovery -- kontaktuji jednoho peera, který mi poskytne informace o části sítě nebo o cleé síti
- klíčová je lokalizace informací
- centalizovaná P2P -- server, který má přehled, kde co je
- čistá P2P -- náhodně se prozkoumává, dokud se informace nenajde
- snaží se kombinovat vlastnosti P2P a Klient-sever
- centralizované jsou pouze informace o systému, data jsou přímo mezi peery
- výhody: rychlejší vyhledávání
- nevýhody: single point of failue --> nižší robustnost a škálovatelnost
- např. WoW
- výhody: robustní a dobře škálující
- nevýhody: lokalizace nabízených služeb
- dělení podle struktury:
- ploché -- funkcionalita je rovnoměrně rozprostřena na všechny peery
- hierarchické -- různé úrovně peeru, které mohou mít jiné vlastnosti
- dělení podle topologie:
- nestrukturované -- každý peer je zodpovědný za svá data, lokalizace dat je obtížná
- strukturované -- využívá se distribuovaná hašovací tabulka pro lokalizaci dat, přidávání uzlů je komplikovanější (musíme přerozdělovat data)
- např. Gnutella
- super peers -- komunikace probíhá mezi superuzly, které mají na starost pár dalších běžných uzlů
- směrování přes centrální jednotku
- směruji podle svých infromací o peerech
- záplavy
- Routed DHT Queries
- metriky efektivity:
- úložiště -- kolik informací systém má o tom, kde jsou data uložena
- efektivita -- systém umí rychle lokalizovat požadovaná data
- použitelnost -- čím širší dotaz můžeme položit, tím lépe
- pokrytí -- jak moc systém pokrývá systém dotazů, které můžeme pokládat
- škálovatelnost
- žádný z uzlů nemá informace co a kde je na uzlech uloženo
- po jistém počtu kroků je dotaz zahozen
- vyhledávací strategie:
- DFS
- BFS
- heuristické vyhledávací strategie:
- iterativní vnořování -- vícenásobné BFS vnořování
- directed BFS -- intellingent search, snaží se odhadnout, kteří sousedé jsou nadějní a těm to zasílá (ukládá si o sousedech informace) --> redukce počtu zpráva
- vyhledávání v lokálních indexech -- uzel si drží infromace o sousedech do hloubky k (držíme a aktualizujeme více informací)
- náhodná procházka -- omezeno pomocí TTL
- k-náhodná procházka -- na začátku je požadavek rozeslán k náhodným sousedům
- Random Breadth First Search (RBFS) -- v každém kroku rozesílém k náhodným sousedům
- adaptibilní pravděpodobnostní vyhledávání (APS) -- procházka kdy sousedé, kterým přeposílám jsou vybíráni podle určité pravděpodobnosti
- optimistický přístup
- pesimistický přístup
- Interest-Based Shortcuts -- množina uzlů s podobným zájemem
- dotaz jsou schopny zodpovědět přesně a v krátkém čase
- je komplikovanější zapojení nového uzlu do sítě
- Chord
- jednoduchý, oblíbený, často používaný
- každý uzel má svůj id, osah má id
- každý uzel nese obsah podle svého id
- uzly jsou provázány podle id
- uzly jsou uspořádány do kruhu
- problém nastává u větších sítích (procházíme sekvenčně)
- škálovatelný algoritmus -- využití finger table (každý uzel obsahuje odkaz na více uzlů podle mocnin dvojky)
- Content Addressable Network (CAN)
- využívá d-dimenzionální kartézské souřadnice
- id uzlu je mapováno na bod v prostoru
- prostor je rozdělen na oblasti
- uzel spravuje data, jejichž id padnou do jeho oblasti
- uzly znají svoje sousedy
- při přidání nového uzlu se oblast rozdělí a udpatují se informace kolem
- Pastry
- PRR stromy
- id uzlu je sekvence číslic (hexadecimální)
- data přísluší uzlu, které má nejdelší společný prefix
- uzly mají směrovací tabulku pro směrování zpráv
- leafeset -- seznam příbuzných uzlů (pomocná tabulka)
- Tapesty
- podobné jako Pastry, ale hledá se společný sufix
- skip list struktura
- peers jsou zřetězené podle svého id
- v další vrstvě je zřetězena jen polovina, v další čtvrtina atd.
- v horní úrovni je pouze jeden uzel, který se snadno přetíží
- O(log(n))
- skip graph
- všechny uzly jsou ve všech úrovních
- vektor příslušnosti
- propojeny jsou uzly se stejným prefixem
- O(log(n)), ale již nedochází k přetížení jednoho uzlu
- SkipNet
- podobné jako skip graph
- uzly jsou organizovány do kružnice
- na nejnižší úrovni je jedna kružnice obsahující všechny uzly
- na další jsou dvě kružnice, atd.
- P-Grid
- virtuální binární strom
- každý peer je v listu stromu
- každý z peerů je zopodvědný za všechny datové položky, které jsou rovny id uzlu
- datové položky mohou být znásobeny pro zvýšení robustnosti
- O(log_2(N))
- nevýhoda: nemusí být vyvážený
- P-Tree
- vyvážený P-Grid
- B+ stromy
- BATON
- vyvážený binární strom
- i ve vnitřních uzlech jsou peerové nesoucí obsah
- přidává další propojení podle podobnosti obsahu (nejbližší "horizontálně")
- dva typy uzlů:
- super uzly -- nemá data, ale informace o tom, kde jsou data
- klientské uzly -- má data
- Edutella
- hyperkostka
- souřadnicový systém
- Gnutella
- částečné mash propojení
- záplava
- The structured superpeers
= množina autonomních uzlů, které komunikují každý s každým, formují síť a zabezpečují spojení decentalizovaným způsobem
- zařízení je v pohybu
- každý uzel má funcionalitu koncového uzlu i směrovače
- jednohopová síť -- každý je v dosahu s každým
- multihopová síť -- mohu komunikovat i přes jiný uzel
- výhody: rychlé, levné, odolné
- nevýhody: samoorganizace, komplikovanější MAC a směrování
- příklady: vysokozdvižné vozíky ve skladu, řešení katastrof, komunikace aut, distribuované počítání
- VANET (Vehicular Ad-hoc Networks)
- komunikace aut
- zjednodušená situace: mapové podklady, předvídatelnost pohybu
- jsou zaměřeny na komunikaci s okolím
- vybaveny senzorem
- propojeny se stanicí, která sbírá data a posílá je dál
- příklad: péče o lesy, zábrana požárům, pohyb zvěře, přesné zemědělství, sledování budov a mostních konstrukcí (proti zemětřesení)
- baterie nebo dobíjení např sluneční energií
- podmínky funkčnosti:
- musí být pokud možno pravidělně rozmístěny
- energie
- společné věci:
- nebudujeme infrastrukturu
- limitace energie
- bezdrátová komunikace
- rozdíly:
- množství dustupné energie
- velikost procesoru
- dostupná paměť
- hustota
- mobilita
- heterogenita
- účel
- společné:
- samoorganizující se sítě s dynamickou topologií
- uzly jsou zodpovědné za směrování
- neexistuje centrální řídící jednotka
- rozdíly:
- motivace (P2P -- logická infrastruktura, MANET -- fyzická infrastruktura)
- spojení
- důvěrnost spojení
- lokalizace (jak daleko moou zařízení)
- směrování
- fixní vs. mobilní zařízení
- struktura
- řízení přístupu k sdíleným zdrojům
- cíl: minimalizovat kolize při vysílání
- kolize --> zahození dat --> nové vysílání --> stojí to energii
- problémy:
- nelze vysílát a přijímat v jeden okamžik
- vysílající neumí odhadnout, jestli u příjemce nedochází ke kolizi (interference)
- vysoká chybovost
- uzly jsou mobilní
- požadavky:
- šetření energie
- malý overhead
- malé množství chyb
- vysoká propustnost
- efekty podílející se na vysoké spotřebě energie:
- kolize
- přeslechy
- idle listening
- protocol overhead
- Contention-based protocols
- Contention-based protocols with reservation mechanisms
- Contention-based protocols with scheduling mechanisms
- žádný způsob zerezvace
- nezaaručuje QoS
- přístupy:
- sender-initiated protocols
- receiver-initiated protocols
- problémy:
- Hidden terminal problem -- příjemce už něco přijímá
- Exposed terminal problem -- vysílání je rušeno již probíhajícím vysíláním
- dva kanály:
- datový
- řídící -- informace o tom, že právě vysílám
- nevýhody: špatné využití pásma
- používá handshake
- Request to Send (RTS)
- Clear to Send (CTS)
- Network Allocation Vector (NAV)
- šetří energii
- vypočítá optimální intenzitu signálu
- sezory se periodicky vypínají a zapínají, aby šetřily energii
- provoz non-stop většinou není vyžadován, stačí měřit jednou za x minut
- vyžaduje se spolupráce směrovacího a MAC protokolu
- Address-based routing -- každý uzel má unikátní identifikátor (adresu)
- Data-centric forwarding -- uzly nemusí mít přesnou adresu, přeposílá se podle obsahu
- dělení:
- proaktivní protokoly -- uzly vytvářejí směrovací tabulky a následně podle nich směrují
- reaktivní protokoly -- snaží se najít cestu pro data pouze pokud je potřeba
- jiné dělení:
- table-driven -- znají pouze další krok k cíli
- source-routing -- znají kompletní cestu do cíle
- a ještě jedno:
- ploché protokoly -- všechny uzly mají stejný algoritmus
- hierarchické protokoly -- některé uzly jsou mocnější
- a poslední:
- location-based -- využíváme informaci o poloze uzlu (např. GPS)
- non-location-based
- Destination Sequence Distance Vector (DSDV)
- vychází z RIP
- Bellmanův-Fordův algoritmus
- uzly si vyměňují celé směrovací tabulky pouze se sousedními uzly
- všichni ví všecno
- nevýhody: špatně škáluje
- Optimized Link State Routing (OLSR) Protocol
- záplava
- speciální uzly, které fungují jako agregátory
- nevýhody: nepodporuje multicast, má problémy s bezpečností
- Dynamic Source Routing (DSR)
- source-based protokol
- využívá Route Request (RREQ) a Route Reply (RREP) pakety
- vhodné pro menší sítě
- záplava
- Ad Hoc on Demand Distance Vector (AODV)
- používá TTL
- Dynamic MANET On Demand (DYMO)
- posílá se celá cesta
- geografické směrování -- zabývá se fyzickým umístěním uzlů (GPS)
- Energy-Aware Routing Protocols -- klade v potaz energii uzlů
= informace složená z více typů médií (audio, video,...)
- obrázek řekne víc než tisíc slov (Vojna a mír)
- např. videokonference, multimediální elektronická pošta, web TV,...
- konverze analog <--> digitál
- komprese
- zprátová
- bezztrátová
- FTP, HTTP, SMTP,...
- namá příliš velké požadavky na zpoždění, šířku pásma (komprimujeme), chybovost (záleží na aplikaci!)
- anolog
- vzorkování a kvantování
- požadavky:
- tolerance ztráty paketů 1-2 %
- zpoždění řešíme bufferováním
- statické
- komprese
- pyramidové kódování -- postupně se zpřesňující výsledek
- error tolerantní
- žádné velké podmíny na zpoždění
- sekvence obrázků
- analog
- vzorkování a kvantování
- značné požadavky na síť
- nekomprimované video má velké rozměry
- techniky pro omezení chyb:
- posílám více verzí v nižší kvalitě
- při výpadku nahradíme rámec nějakým příbuzným (předcházejícím nebo následujícím)
- interleaving -- rámce v paketu nejdou za sebou, ale jeden pakt obsahuje např 1, 5, 15 rámec, druhý 2, 6, 16 atp.
- interpolace -- z okolních rámců dopočítáme chybějící část
- v relálném čase
- diskrétní média
- kontinuální média
- tolerující zpoždění
- netolerující zpoždění
- ne v reálném čase
- zpodění (delay)
- zpracování paketu -- komprese, zpracování
- přenos paketu
- propagace zpoždění -- se vzdáleností zpoždění roste
- směrovací a queuing zpoždění
- RTT Round-trip time -- dvojnásobek zpoždění
- jitter -- rozptil zpoždění
- šířka pásma (bandwidth) -- záleží na druhu TCP, UDP to neřeší vůbec
- požadavky na chyby -- přenos v nižší kvalitě, opravné kódy
- multicast
- bezpečnost
- mobilita
- Session Management
- umožňuje distribuci informací o session
Session Description Protocol (SDP) -- formát pro popis přenášených médií (typ, kódování apod.)
Session Initiation Protocol (SIP)
- umožňuje účastníkům oznámit budoucí session
Session Announcement Protocol (SAP) -- oznámení o existenci nové session
- identifikuje jednotlivé proudy médií (audio, video, text,...)
Real-Time Transport Protocol (RTP) -- obálkový protokol nad UDP, přidává informace, jak mají být dané pakety zpracovávány
- synchronizace (audia, videa, textu,...)
- pozastavení, přetočení apod.
Real-Time Control Protocol (RTCP) -- kontrolní protokol pro RTP, dělá statistiku provozu
Real-Time Streaming Protocol (RTSP) -- stremování živých přenosů