Základní pojmy a pricipy z oblasti počítačových sítí
-
přenos dat se týká digitálních zpráv, digitalizovaného nebo analogového signálu pomocí
přenosového média, při přenosu se data nemění! Přenášíme jednotlivé bity/byty, bloky dat nebo signály.
- zpracování dat - data se nepřenáší, zvláštní formou zpracování dat je jejich uchovávání
Přenos a zpracování dat
otázky:
- na jakou vzdálenost se přenos probíhá?
- jak rychle se přenos probíhá? (tj. přenosová rychlost)
- jak dlouho trvá přenos jednoho bitu a za jak dlouho je k dispozici přijatý bit? (zpoždění)
- kolik se toho přenese? (přenosový výkon)
- kolik užitečných dat se přenese za delší časový úsek? (režie přenosu)
- jak spolehlivý je přenos a jak často dochází k chybám či ztrátám? (chybovost přenosu)
- pokud dojde k chybě nebo ztrátě, je k dispozici opravný mechanismus? (korekce chyb)
otázky:
- jak probíhá zpracování, podle jakých algoritmů, programů...?
- jaký je časový průběh zpracování?
- po jakých kvantech se data zpracovávají? po kolika bitech/bytech/slovech
Kanál, okruh, spoj
- obecné pojmy, zahrnující všechny varianty prostředků pro přenos bez ohledu na technickou realizaci
- hlavními atributy jsou: přenosová kapacita – tj. celková schopnost přenášet data
- dílčími atributy jsou: přenosová rychlost, zpoždění, spolehlivost přenosu, …
- přenosový kanál: termín z prostředí telekomunikací, vždy jednosměrná (simplexní) přenosová cesta, umožňuje přenos jen v jednom směru jako například klasické DVB-T/S/C a R vysílání
- přenosový okruh: obousměrná (dpln2duplexní nebo poloduplexní) přenosová cesta, okruh může být skutečný (fyzický) nebo virtuální (emulovaný), který se pouze chová jako "skutečný"
- simplexní: (simplex) jednosměrný přenos

- polo duplexní (half duplex): umožňuje přenos v obou směrech, ale nikoli současně, např. radiostanice "přepínám..."

Uzel, síť, infrastruktura
- uzly: to, co propojujeme (např. server, počítač, terminál, tiskárna, scanner, NAS, telefon,...)
- aktivní síťové prvky: pomocí čeho propojujeme (např. opakovač (repeater), přepínač (switch), směrovač (router), brána (gateway) , ….)
- společně tvoří soustavu: síť (počítačovou, telekomunikační nebo hybridní)
Služby a technologie sítí
- sítě poskytují uživatelům služby, např.:
hlasové: interaktivní (pevná, mobilní, IP(VoIP) telefonie, IP telefonie, HBBTV...) neinteraktivní (rozhlas, IP rádio)
obrazové: interaktivní (videohovor, videokonference) neinteraktivní (TV vysílaní,...)
přenosu zpráv: email, messaging,
přenos souborů: ftp, scp, samba
vzdálené přihlašování
prohlížební WWW...
- technologie: konkrétní technické řešení umožňující poskytování konkrétní služby
definováno pomocí standardů/doporučení – např. Ethernet, Wi-Fi, GSM, 3G/UMTS, x DSL, ATM, …
proprietární (uzavřený, zná jen vlastník) – např. technologie, použitá pro realizaci služby Skype
- příklady připojení:
pevná připojení:
xDSL (Digital Subscriber Line): technologie využívajících místní smyčky pro vysokorychlostní přenos dat – ADSL, VDSL, SHDSL, …
PLC (PowerLine Communications): technologie pro přenos dat po silových elektrických rozvodech (230 V)
DOCSIS: technologie pro datové přenosy prostřednicvím sítě kabelové TV
mobilní připojení:
WiFi, WiMAX: technologie pro bezdrátové přenosy
GSM, GPRS, EDGE, CDMA, 3G/UMTS, HSPA, LTE, ….. pro poskytování mobilních hlasových nebo datových služeb Dílčí aspekty řešené v sítích
- jak má být co řešeno a stanovení základních principů z hlediska efektivnosti a vhodnosti, např:
- přenos dat: proudový (stream) nebo blokový (block), přepojování okruhů nebo přepojování paketů, spojovaný nebo nespojovaný přenos, spolehlivý nebo nespolehlivý přenos?
- poskytované přenosové služby: garantované nebo negarantované služby, best effort (snaha vždy vyhovět všem stejně) nebo QoS (nějaké upřednostnění nebo omezení)
- kam umístit řízení: "chytrá" síť (inteligentní spojovací prvky a jednoduché terminály (pevná telefonie)) nebo "hloupá" síť a chytré terminály
- jak hospodařit s dostupnými zdroji: vyhrazená nebo sdílená přenosová kapacita
- jak se vyvíjí dostupné zdroje: přenosová, výpočetní a přepojovací kapacita
- jak je potřeba řídit, usměrňovat a diktovat: regulace nebo liberalizace
Proudový a blokový přenos
- proudový (stream) přenos: přenášená data nejsou nijak členěna a tvoří "souvislý proud" (stream) – na úrovni bitů, bytů, slov, … přenosová cesta se chová jako roura (pipe) a spojení bod-bod 9point to point), z jedné strany se data vkládají, z druhé strany z ní ve stejném pořadí vystupují,
- blokový přenos: data jsou pro přenos členěna na vhodně velké celky, tj. bloky. Bloky mohou ale nemusí obsahovat údaje identifikující odesilatele a příjemce
Rámce, buňky, pakety, segmenty, zprávy
- přenášené bloky (u blokového přenosu) jsou pojmenovány podle vrstvy (L) na které jsou přenášeny. L1 jednotlivé bity, L2 eth. rámec nebo ATM buňka, L3 paket, L4 TCP segment, L7 email...
Přepojování okruhů
- mezi komunikujícími stranami se vytvoří vyhrazený souvislý přenosový okruh, komunikující strany jej mají výhradně ke své dispozici. Pokud není využit, jeho kapacita nemůže být přenechána někomu jinému. Okruh je tvz. přímý byť ve skutečnosti prochází přes další uzly, přenášená data se v nich nijak nezdržují. Doba přenosu (přenosové zpoždění) je konstantní a malá chová se jako roura. Odesilatelem je na jednom konc, příjemce na druhém. Přenášená data nemusí být nijak členěna na menší celky a mohou být přenášena jako proud 9stream). Pokud jsou data členěna na bloky jde o blokový přenos.
- Přepojování okruhů (circuit switching) bylo původně mechanické spojování kontaktů (zástrčky/zdířky, relé, …), čemuž se říkalo komutace. V současnosti přepojování zajišťují elektronické obvody, ale stále se hovoří o "komutaci", komutovaném připojení.
Přepojování paketů
- žádná přenosová kapacita se nevyhrazuje, ale zůstává společná. Odesilatel předá odesílaná data k doručení, tato musí být členěna na bloky (např. na pakety) a opatřena identifikací příjemce. Manipuluje se vždy s celými bloky (pakety, buňkami,...), proto "přepojování paketů". Cesta bloku se určuje podle identifikace příjemce (nebo i odesílatele a typu dat) Tyto informace si každý blok nese ve své hlavičce. K přenosu jednotlivých bloků se využívá celá dostupná přenosová kapacita cesty.
- přepojování paketů (packet switching) je obecný princip přenosu data v prostředí sdílené přenosové kapacity. Přenášené bloky dat se v přepojovacích uzlech mohou zdržet různou dobu podle souběhu všech datových bloků v daném přepojovacím uzlu a podle vytížení přepojovací logiky uzlu. Zpoždění při přenosu je větší než u přepojování okruhů, není rovnoměrné ani predikovatelné.
Store&Forward
- STORE: na vstupu se každý blok nejprve celý načte a uloží. Procesor (CPU) postupně načítá jednotlivé bloky ze vstupů a rozhoduje, co s nimi provést dál.
- FORWARD: procesor rozhodl, že daný blok má být předán dál (forwarded) v určitém výstupním směru a je zařazen do příslušné výstupní fronty (bufferu), kde čeká na odeslání. Nelze tak předem určít jak dlouho se daný datový blok zdrží při průchodu přepojovacím uzlem. Přenosové zpoždění je tedy nerovnoměrné a záleží na souběhu s ostatními bloky, na velikosti front, na rychlosti procesoru přepojovacího uzlu,...
Spojovaný a nespojovaný přenos
- spojovaný přenos (connection oriented): komunikující strany mezi sebou nejprve naváží spojení, potvrdí si že spolu vůbec chtějí komunikovat a případně si domluví i další parametry vzájemné komunikace. V rámci navázání spojení je nalezena trasa přenosu jíž mohou být vyhrazeny i určité zdroje - QOS (např. přenosová kapacita, priority, omezení,...). Po přenosu vlastních dat je potřeba spojení ukončit (rozvázat), vrátit přidělené zdroje a zrušit vytyčenou trasu, ….
Spojovaný přenos je stavový, komunikující strany přechází mezi různými stavy, minimálně spojení je/není navázáno a musí být zajištěn korektní a koordinovaný přechod mezi stavy. Nesmí dojít k tomu, že jedna strana považuje spojení za navázané a druhá nikoli – deadlock, uváznutí (zneužití při útoku DOS). Musí být ošetřovány nestandardní situace jako například výpadek spojení. Tento je potřeba nejprve detekovat, pak zrušit púvodní spojení a případně navázat nové. Přenášené bloky dat v hlavičce obsahují identifikátor spojení a mohou být přenášené podle tohoto identifikátoru. Spojovaný přenos zachovává pořadí dat.
- nespojovaný přenos (connectionless): komunikující strany mezi sebou nenavazují žádné spojení, neověřují si že druhá strana vůbec existuje a chce komunikovat. Není hledána žádná trvalá trasa mezi nimi, veškerá vzájemná komunikace probíhá skrze zasílání samostatných bloků dat. Každý blok dat je přenášen samostatně, vhodná trasa přenosu je pro něj hledána vždy znovu a nezávisle na přenosu ostatních bloků. Po ukončení komunikace není třeba nic potvrzovat, ukončovat, rozvazovat nebo rušit...
Nespojovaný přenos je bezestavý, komunikující strany nepřechází mezi různými stavy a jejich stav se v průběhu komunikace nemění. Nemusí být ošetřovány změny stavů ani nestandardní situace. Bloky dat přenášené nespojovaným způsobem v sobě nese plnou adresu svého příjemce, ne identifikator spojení, žádné zde není navazováno! Nespojovaná komunikace nemusí vždy zachovávat pořadí dat, každý blok je přenášen samostatně a nezávisle na přenosu ostatních bloků. Tj. každý blok může být přenášen jinou cestou, což může být příčinou změny pořadí doručení. Předem se ani nemusí zjišťovat existence příjemce (např. internetové rádio a multicast).
Virtuální okruhy a datagramová služba
- virtuální okruhy (virtual circuit VC): označení pro spojovaný způsob fungování přepojování paketů, při navazování spojení se cesta vytyčí pouze virtuálně (logicky), ne fyzicky, jako u skutečného přepojování okruhů. V přestupních bodech se pouze poznačí kudy okruh vede. Virtuální okruh dostane přidělený vhodný identifikátor – VCI, Virtual Circuit Identifier, přičemž každý blok přenášených dat jej nese ve své hlavičce a podle toho je přenášen vždy po stejném virtuálním okruhu.
- datagramová služba: označuje nespojovaný způsob fungování přepojování paketů, odesilatel ani nezjišťuje existenci příjemce nebo zda s ním chce komunikovat a jen mu odesílá jednotlivé datagramy. Každý jednotlivý blok dat (datagram) v sobě nese úplnou adresu svého příjemce a každý uzel, přes který daný datagram prochází, se podle této adresy rozhoduje, kudy jej pošle dál. Pokaždé se rozhoduje znovu podle aktuální situace, bez ohledu na předchozí historii. Při změně podmínek (průchodnost přenosových cest, vytížení,...) může rozhodnutí dopadnout jinak, tudíš různé bloky dat mohou cestovat různou cestou.
Spolehlivý a nespolehlivý přenos
- spolehlivý přenos: kdo data přenáší má za povinnost postarat se o opravu chyb, což vyžaduje rozpoznat, že k chybě došlo (detekce chyb) a vyžádat si nový přenos dat nebo jejich části (např. vhodným potvrzováním). Výsledkem je spolehlivá přenosová služba, resp. spolehlivý přenos. V reálu nedokáží detekční mechanismy detekovat všechny chyby a poškození, ale jen některé. Např. CRC (Cyclic Redundancy Check) – detekuje velkou většinu chyb a důsledkem je, že spolehlivost není absolutní, ale jen relativní a má vždy jen určitou míru. Nevýhodou spolehlivého přenosu je vyšší spotřeba zdrojů, je zapotřebí větší výpočetní kapacita k detekci chyb a na generování potvrzení, …. Je větší spotřeba přenosové kapacity, protože se posílají potvrzení a některá data se přenáší opakovaně. Příjemce musí detekovat zda přijatá data nejsou poškozena a případně v potvzení žádat o opakování (části) přenosu. Důsledekem opakovaných přenosů je narušení se plynulosti doručování dat, (nejen) čímž vznikají prodlevy, roste režie a náklady,...
- nespolehlivý přenos: při přenosu dat se neřeší chyby ani jejich oprava. Pokud dojde k chybě, pokračuje se dál v přenosu a poškozená data zahodí. Výsledkem je nespolehlivá přenosová služba, resp. nespolehlivý přenos, ale nenabourávající pravidelnost doručování dat. Nespolehlivé přenosy jsou levnější a efektivnější Pokud aplikace požadují vyšší spolehlivost přenosu, je výhodnější, pokud si ji zajistí samy. Pokud je spolehlivost zajišťována na vyšších vrstvách, nemá smysl ji
tak současně zajišťovat i na nižších úrovních komunikace, přičemž některým aplikacím více vadí nerovnoměrnost v doručování dat, než občasná chyba v datech nebo jejich výpadek (např. videostream).
Požadavky aplikací a služeb
- multimediální aplikace, např. přenos zvuku i obrazu vyžadují pravidelnost doručování, tj. co nejmenší kolísání zpoždění (jitter) při přenosu. Požadavek na co nejmenší celkové zpoždění při přenosu (latency) je relevantní pouze pro interaktivní služby, např. VoIP, videokonference,... Neinteraktivní služby zvládají i podstatně větší zpoždění, protože jednotlivé části přenášených dat jsou zpracovávány průběžně (zvuk je přehráván, obraz zobrazován … ) a nerovnoměrnosti v doručování mohou být kompenzovány zásobníkem (buffer). V případě výpadku je zvuk nebo obraz "trhaný"
- datové aplikace (www, email, přenos souborů) nejsou citlivé ani na zpoždění, ani na pravidelnost doručování, ale spíše kladou důraz na celkovou efektivnost protože jednotlivé části přenášených dat nejsou zpracovávány průběžně, ale až po doručení poslední části dat (zpracování souboru, emailu …) V případě některých aplikací je ale důležité celkové zpoždění (latence) ovlivňující reakční dobu, např. odezva na akci na www stránce...
Garantované a negarantované služby
- garantované přenosové služby: vždy bude dostatek zdrojů pro přenos (všech) právě přenášených dat a dostatek přenosové i přepojovací kapacity. Potřebné zdroje (přenosová a přepojovací kapacita) musí být dopředu vyhrazeny (QOS) podle maxima požadavků na přenos. Přenosová infrastruktura musí být všude dimenzována na součet maxim, což může být nákladné. Realizace je možná např. pomocí přepojování okruhů, toto vyhrazuje kapacitu pro jednotlivé přenosové okruhy.
- negarantované přenosové služby: negarantují, že vždy bude dostatek zdrojů pro přenos všech dat a může se stát, že v některých situacích (časových okamžicích) nebude dostatek zdrojů pro přenos všech dat. Pak se musí některé požadavky krátit nebo zahodit. Výhodou je, že přenosovou infrastrukturu lze dimenzovat podle průměru požadavků a celkově ji tak zlevnit. Realizace je například pomocí přepojování paketů, tj. kapacita zůstává společná, ale přenosy (přenosové služby) mohou fungovat různými způsoby, z pohledu toho, jak se chovají vůči přenášeným datům.
„Best Effort“ a Quality of Service (QoS)
- Best Effort: používá se u negarantovaných služeb a snaží se vyhovět všem požadavkům na přenos. Pokud se nedostávají zdroje pro zpracování (přenosová kapacita, výkon CPU,...) nelze přenést všechny bloky dat a některé bloky je nutné zahodit. Princip „Best Effort“ lze charakterizovat jako „maximální snahu ale nezaručený výsledek“. Jedná se o obecný princip netýkající se jen přenosu. Přenosová síť přistupuje ke všem datům stejně, ke všem se chová stejně a dokud jí stačí zdroje, vyhoví všem požadavkům. Pokud zdroje nestačí, přenosová síť krátí všechny požadavky na přenos (tj. zahazuje bloky dat) rovnoměrně, bez ohledu na jakákoli další kritéria, u přepojování paketů nelze předpovědet kdy zdroje dojdou, proto nezaručený výsledek.
- Quality of Service:
„absolutní QoS“ garantují stejné podmínky vždy a bez ohledu na ostatní přenosy. Obvykle je realizován na principu rezervace zdrojů. Má-li požadované podmínky garantovat, musí k tomu být vždy dostupné
zdroje. Tyto tak musí být předem vyhrazeny, resp. rezervovány a je to
velmi podobné jako přepojování okruhů včetně neekonomiky a neefektivity. Používají se např. pro "bussines" kvalitu VoIP (propojení ústředen a pod.)
„relativní QoS“, zajišťují jiné, většinou lepší (ne např. FUP, ten je zhošuje) podmínky než pro ostatní druhy přenosu. QoS na principu prioritizace nemá za cíl garantovat podmínky a nepotřebuje rezervovat (vyhrazovat) žádné zdroje. Dtto vlastně jen jinak hospodaří se zdroji, které má běžně k dispozici a přiděluje je podle priorit (např. znevýhodní přenos emailu). Taktéž přenosy negarantuje a pokud by všechny přenosy měly stejnou prioritu, stává se z toho Best Effort.
Příklady
- protokoly TCP/IP (ipv4): fungují negarantovaným způsobem, stylem Best Effort, podporu QoS lze zavést dodatečně. Na principu rezervace: IntServ, Integrated Services i na principu prioritizace: DiffServ, Differentiated Services, což ale je to problematické protože je nelze garantovat ve veřejném Internetu
- síťový protokol IP (internet protokol) funguje nespojovaně a nespolehlivě
- transportní protokol UDP funguje nespojovaně a nespolehlivě (jako protokol IP)
- transportní protokol TCP funguje spojovaně a spolehlivě, tj. odlišně od IP i UDP
- Ethernet funguje nespojovaně, nespolehlivě, stylem Best Effort
- X.25 (protokol pro veřejné datové sítě) funguje spojovaně, spolehlivě
- ATM – funguje spojovaně, nespolehlivě, dokáže fungovat stylem Best Effort i nabízet různé varianty QoS na principu rezervace zdrojů. Garantuje maximum i minimum
- Frame Relay – funguje spojovaně, nespolehlivě, nabízí i QoS na principu rezervace, garantuje minimum