Systémy pro sběr a přenos dat
• model ISO/OSI, funkce vrstev • základní typy datových přenosů • sdílení kapacity kanálu • adresace a řízení přístupu k médiu • spolehlivý a nespolehlivý kanál • spojovaná a nespojovaná služba
Referenční model ISO/OSI (Open System Interconnection)
Definován standardem ISO 7498-1 – první vydání je již z roku 1984
Obecný rámec pro návrh protokolů distribuovaných systémů, do nějž jsou zasazována jednotlivá konkrétní řešení – některá řešení byla navrhována s jeho využitím – jiná nikoliv (např. protokoly TCP/IP), ale dnes se je lépe či hůře snažíme tímto rámcem popisovat
Hlavním cílem je umožnit snadné propojování distribuovaných systémů – heterogenní systémy
Definuje sedmivrstvý protokolový zásobník – jednotlivé vrstvy poskytují daný typ služeb – je definován způsob interakce mezi vrstvami
Dělení funkcí do vrstev
implementovat funkční síť je hodně složité a náročné – stejná situace jako při řešení velkých SW celků
jde o jeden velký problém, který se vyplatí dekomponovat – rozdělit na menší části, které je možné řešit samostatně
zde: dekompozice se provede po hierarchicky uspořádaných vrstvách – dobře to odpovídá povaze řešeného problému – přináší to i další výhody • možnost alternativních řešení na úrovni nižších vrstev • větší modulárnost
Dělení funkcí do vrstev
Vrstva N poskytuje služby vrstvě N+1 Mezi odpovídajícími si vrstvami různých uzlů vznikají virtuální kanály aplikační data
uzel A L3 CI
vrstva 3
L3 data
L2 CI
L2 data VC2
L1 CI
vrstva 1
vrstva 3
VC3
vrstva 2
uzel B
vrstva 2
L1 data VC1 ~ fyzický kanál
fyzický kanál
vrstva 1
Referenční model ISO/OSI
Počet vrstev byl předmětem sporů – dnes se zdá 7 vrstev příliš
Kritérii bylo: – činnosti na stejném stupni abstrakce ve stejné vrstvě – minimalizace datových toků mezi vrstvami – aplikovatelnost na významné existující standardy (X.25)
Aplikační vrstva Prezentační vrstva Relační vrstva Transportní vrstva Síťová vrstva Spojová vrstva Fyzická vrstva
Fyzická vrstva
Zabývá se výhradně přenosem bitů (symbolů) – otázkami typu kódování, modulace, časování, synchronizace, elektrické parametry signálů, konektory, řídicí signály rozhraní, ....
Nabízí služby typu – přijmi bit, odešli bit
Nijak neinterpretuje to, co přenáší – jednotlivých bitům nepřisuzuje žádný specifický význam
Na úrovni fyzické vrstvy se rozlišuje: – paralelní a sériový přenos – synchronní, asynchronní a arytmický přenos – přenos v základním a přeloženém pásmu
Příklady standardů fyzické vrstvy: – RS-232, RS485 – IEEE802.3, IEEE802.11 P
Spojová (linková) vrstva
Přenáší celé bloky dat - rámce (frames) Zajišťuje přenos pouze v dosahu přímého spojení – bez „přestupních stanic“
Může fungovat – spolehlivě či nespolehlivě, spojovaně či nespojovaně
Může využívat různé technologie fyzické vrstvy – linkové i bezdrátové
Hlavní úkoly jsou: – synchronizace na úrovni rámců • správné rozpoznání začátku a konce rámce, i všech jeho částí
– zajištění spolehlivosti • detekce chyb a náprava
– řízení toku • aby vysílající nezahltil příjemce
– přístup ke sdílenému médiu • řeší konflikty při vícenásobném přístupu ke sdílenému médiu
Síťová vrstva
Přenáší bloky dat označované jako pakety (packets) Zajišťuje doručení paketů až ke konečnému adresátovi – v prostředí, kde není přímé spojení, hledá vhodnou cestu až k cíli – zajišťuje tzv. směrování(routing) mezi sítěmi
Musí si uvědomovat skutečnou topologii celé sítě (obecně) Může používat různé algoritmy směrování: – adaptivní, neadaptivní – izolované, distribuované
Je poslední vrstvou, kterou musí mít přenosová infrastruktura (s výhradou velmi jednoduchých systémů) – není např. u většiny průmyslových distribuovaných systémů
Asi nejrozšířenější implementací síťového protokolu je protokol IP – podporovaný protokoly pro komunikaci mezi směrovači
Transportní vrstva
Existuje proto, že často nelze měnit vlastnosti a funkce nižších vrstev – třeba proto že patří někomu jinému
Vyšší vrstvy mohou mít jiné požadavky na charakter komunikace, než jaký nabízejí nižší vrstvy Úkolem transportní vrstvy zajistit potřebné přizpůsobení! Protokoly transportní vrstvy jsou implementovány pouze v koncových účastnících Transportní vrstva může měnit: – nespolehlivý charakter přenosu na spolehlivý – méně spolehlivý přenos na více spolehlivý – nespojovaný přenos na spojovaný
Relační vrstva
Zajišťuje sestavení, řízení a zrušení relací – má smysl pouze pro spojovanou komunikaci
Dále může zajišťovat: – – – –
synchronizaci šifrování podpora transakcí atd.
Presentační vrstva
Nižší vrstvy se snaží doručit každý bit přesně tak, jak byl odeslán Stejná posloupnost bitů může mít pro příjemce jiný význam než pro odesilatele, např. kvůli – – – – –
kódování znaků (ASCII, EBCDIC,...) formátu čísel formátu struktur, polí ukazatelům (pointerům) atd.
Prezentační vrstva má na starosti potřebné konverze
Aplikační vrstva
původní představa: – bude obsahovat aplikace – problém: aplikací je moc, musely by být všechny standardizovány • to nejde stihnout • nemělo by to ani smysl
později: – aplikační vrstva bude obsahovat pouze „jádro“ aplikací, které má smysl standardizovat • například přenosové mechanismy el. pošty • služby pro přístup k objektům distribuovaným v síti • ostatní části aplikací (typicky: uživatelská rozhraní) byly vysunuty nad aplikační vrstvu
Základní typy datových přenosů
Podle směru přenosu – jednosměrný • simplex
V
P
– obousměrný střídavý • poloviční duplex • half-duplex
V/P
V/P
– obousměrný současný • plný duplex • full-duplex
V/P
V/P
Základní typy datových přenosů
Podle počtu současně využitých kanálů – sériový • bity (symboly) jsou přenášeny v čase postupně 1001110
1001001
– paralelní • bity (symboly) jsou přenášeny v čase po skupinách 1 0 0 1 1 1 0
1 0 0 1 0 0 1
Základní typy datových přenosů
Podle způsobu synchronizace (v základním pásmu) – paralelní synchronní přenos
– paralelní asynchronní přenos
Základní typy datových přenosů
Podle způsobu synchronizace (v základním pásmu) – sériový asynchronní (arytmický) přenos Data start bit LSB
stop MSB PAR bit
– sériový synchronní přenos • buď vyhrazený kanál pro přenos hodin • častěji je synchronizační signál zakódován přímo do datové posloupnosti (kanálová kódování – např. Manchester) – stačí jediný kanál – je třeba vyšší šířka pásma – technicky složitější synchronizace přijímače
Základní typy datových přenosů
Podle využitého frekvenčního pásma základní pásmo
výkonová spektrální hustota
0
frekvence
přenesené pásmo
výkonová spektrální hustota
0
frekvence
Přeložené pásmo se používá, protože: – umožňuje efektivní využití kapacity kanálu – automaticky v sobě zahrnuje frekvenční multiplex – je typické pro rádiové přenosy, ale využívá se i jinde
• PLC komunikace, xDSL • digitální kabelové rozvody
Sdílení kapacity kanálu
Metody umožňující rozdělit jeden fyzický kanál na více kanálů logických – multiplexování Frekvenční multiplex (FDM) – šířka pásma fyzického kanálu je rozdělena na požadovaný počet subkanálů – využití subkanálu lze dosáhnout vhodnou k1 k2 k3 k4 modulační technologií – může být jiná pro jednotlivé subkanály C – překrývání spekter sousedních f subkanálů komplikuje demodulaci – mezery mezi nimi snižují přenosovou kapacitu – rozhlas, ADSL + ISDN t
Sdílení kapacity kanálu
Frekvenční multiplex v optických přenosech – elektrické multiplexování • vše se realizuje elektricky a výsledným součtovým signálem se moduluje zdroj záření • vyžaduje vysokou linearitu zdroje – optické multiplexování (vlnový multiplex - WDM) modulátor
optický zdroj
vlnový multiplexor
vlnový demultiplexor
optický detektor 1
1
M1 λ1
n
Mn
světlovodné vlákno
n λn
Sdílení kapacity kanálu
Časový multiplex (TDM) – kapacita kanálu je postupně využívána pro přenos dat jednotlivých subkanálů – obvykle konstantní přiřazení časových slotů – typické pro telekomunikační sítě
• např. rozhraní typu E1 – 2 Mbit/s, 32 subkanálů po 64 kb/s k1
k2
k3
k4
C 1 2 3 4 t
f
Sdílení kapacity kanálu
Statistický časový multiplex – v případě, kdy je konstantní přiřazení časových slotů neefektivní • např. multiplexování programových toků v DVB • v principu se používá téměř ve všech distribuovaných systémech (pouze se tak neoznačuje) – má dodatečnou režii spojenou s identifikací jednotlivých subkanálů • přímo souvisí s přístupovými metodami k1
k2
k3
k4
C
t f
Sdílení kapacity kanálu
Kombinovaný časový a frekvenční multiplex – spojuje obě metody – typickým příkladem jsou sítě GSM k1
k2
k3
k4
C
f
t
Sdílení kapacity kanálu
Kódový multiplex (CDM) – modifikace vybraného parametru signálu podle předem daného (obvykle pseudonáhodného kódu) • tzv. rozprostření spektra – jednotlivé kanály tak v tomtéž čase sdílejí frekvenční pásmo – dekódování je založeno na ortogonalitě C pseudonáhodných sekvencí – typické příklady jsou WiFi, Bluetooth
f
t
Sdílení kapacity kanálu
Prostorový multiplex (SDM) – tento pojem se používá poměrně zřídka – je založen na omezeném prostorovém dosahu • tzn. umožňuje současné využití téhož frekvenčního pásma a kódu v jiné lokalitě • typický především v rádiových C systémech C t • v principu i metalické vedení t s1 f či optické vlákno – přeslech při špatném multiplexování
s2
f
C t s3
f
Topologie fyzické vrstvy
sběrnice, hvězda, kruh, strom existují i další topologie (strom-hvězda, mříž ..) – některé jsou využívány pouze ve specielních aplikacích
T
T
Adresace na linkové vrstvě
Adresace uzlů (node oriented addressing) – MAC adresa – specifikuje, komu je linkový rámec určen a kdo je odesilatelem • v některých systémech stačí pouze adresa příjemce (řízení Master – Slave)
– některé adresy či jejich rozsahy mohou být vyhrazeny pro zvláštní účely (broadcast, multicast, adresace v síťové vrstvě P)
Adresace zpráv (message oriented addressing) – typická pro systémy, kde jsou rámce vysílány do sítě (broadcast) – identifikuje obsah rámce (často se proto nazývá identifikátor) – neříká nic o příjemci • tím jsou obvykle všechny uzly sítě, které mají o data v rámci zájem • všechny uzly tedy přijímají současně
Řízení přístupu k médiu
Jedná se vlastně o řízené sdílení komunikačního kanálu – obvykle časové – časové sloty však nejsou obvykle přiřazeny konstantně
Současný přístup více uzlů vede ke kolizi – důsledkem je ztráta přenášené informace
Obecně existují dva základní přístupy – deterministické • zde kolize vůbec nenastávají
– stochastické (náhodné) • kolize nastat může a protokol s ní počítá
– někdy se přidává další kategorie, a to pro systémy využívající CDMA, které do určitého bodu (počtu současně vysílajících uzlů) pracují deterministicky, při jeho překročení již vznikají kolize (nežádoucí režim)
Řízení přístupu k médiu
Deterministické metody – Master-Slave • vyhrazený uzel (Master) se dotazuje uzlů typu Slave – ty nesmí samostatně vysílat – komunikace probíhá pouze mezi uzlem Master a jednotlivými uzly typu Slave
• nevýhodami jsou – závislost komunikačního cyklu na počtu uzlů – závislost na výpadku uzlu Master
• výhodou je velmi jednoduchá implementace • často využívá především u systémů s nižší datovou propustností a tam, kde daný typ komunikace odpovídá požadavkům aplikace – průmyslové distribuované systémy
Řízení přístupu k médiu
Deterministické metody – Token Passing • jednotlivé uzly jsou rovnocenné • oprávnění k vysílání má pouze držitel pověření (token) – to si uzly předávají v kruhu mezi sebou – vlastnictví pověření je obvykle časově omezeno
• nevýhodami jsou – obvykle dlouhý čas na zformování kruhu při ztrátě pověření nebo při spuštění sítě
• výhodou je nezávislost na jediném uzlu – TDMA • přesně určené časové sloty • využívá se v aplikacích s vysokými nároky na bezpečnost – X by wire
Řízení přístupu k médiu
Deterministické metody – Delegated Token • opět existuje vyhrazený uzel – někdy se nazývá arbitr (bus arbiter)
• vysílání specielní výzvy, umožňující ostatním uzlům vyslat rámec nebo rámce – přijímat mohou současně všechny uzly sítě (využívá se adresace zpráv, adresa je součástí pověření)
• nevýhodami jsou – závislost na uzlu arbitra
• výhodou je současný příjem zpráv všemi uzly
Řízení přístupu k médiu
Stochastické metody – jedním z nejstarších byl protokol ALOHA (universita Hawai) – dnes se využívají různé varianty CSMA (Carrier Detect Multiple Access)
• uzly jsou obvykle rovnocenné • chtějí-li začít vysílat, čekají na volný kanál (CS) a poté mohou začít vysílat – může dojít ke kolizi – ta se může rozpoznat nebo nikoliv (pak jsou data na této vrstvě ztracena)
– CSMA/CD (P with Collision Detection)
• kolize jsou detekovány a po uplynutí náhodné doby lze pokus o vysílání zopakovat
Řízení přístupu k médiu
Stochastické metody – CSMA/CR (P with Collision Resolution) • kolize nejsou destruktivní a slouží k arbitráži mezi současně vysílanými rámci • rámec s nejvyšší prioritou je odvysílán, ostatní pokus opakují • typické pro sběrnici CAN – CSMA/CA (P with Collision Avoidance) • převážně v bezdrátových sítích – zde nemusí být kolize rozpoznána
• po detekci volného kanálu se čeká po náhodnou dobu a pokud je kanál ještě volný, uzel smí vysílat • často se kombinuje s tzv. rezervací kanálu – uzel si rezervuje určitou dobu pro své vysílání, ostatní předpokládají, že je po tuto dobu obsazen (např. WiFi)
Spolehlivá a nespolehlivá služba
Spolehlivá služba – zabezpečuje kompletní doručení všech rámců či paketů – provádí kontrolu správnosti obsahu • s využitím redundantních informací – při zjištění chyb se přenos opakuje • počet opakování je obvykle omezen – příkladem je USB (všechny typy přenosů mimo isochronního)
Nespolehlivá služba – doručení všech rámců či paketů není zaručeno – může provádět kontrolu správnosti obsahu – při zjištění chyb se data zahodí • přenos se neopakuje – příkladem je Ethernet
Zabezpečení vůči chybám
Slouží pro detekci případně korekci chyb – detekce se využívá tam, kde je nízká pravděpodobnost vzniku chyb • v případě detekce chyby se přenos obvykle opakuje
– korekce tam, kde buď nelze chybný přenos opakovat • isochronní vysílání (např. DVB, radiotelekomunikační spoje)
– nebo je taková chybovost kanálu, že by byla velmi nízká propustnost • např. PLC, komunikace s družicemi
Zabezpečení vůči chybám
Detekce chyb rámce – parita – kontrolní součet (CRC, suma mod 256 apod.) – CRC se počítá jako zbytek po dělení binárních polynomů • existují standardní polynomy pro 16 a 32 bitové CRC • důležitá je jejich Hammingova vzdálenost
Korekce chyb rámce (FEC – Forward Error Correction) – různé kódy podle charakteru dat • blokové (Reed-Solomonovy, BCH, ..) • proudové (především konvoluční)
– často kombinováno s prokládáním • vyšší odolnost vůči skupinovým chybám
Spojovaná a nespojovaná služba
Nespojovaná služba – před vysláním dat není třeba budovat „spojení“ s druhou stranou – zcela nezávisle jsou odesílány jednotlivé pakety – ty mohou k cíli dorazit různými cestami • může dojít k prohození pořadí při příjmu
Spojovaná služba – – – –
nejprve je třeba otevřít „spojení“ s druhou stranou poté lze odesílat data často existuje mechanismus na řízení datového toku v případě prohození pořadí paketů v nižších vrstvách protokolů je zajištěno jeho obnovení
Přepínání okruhů X přepínání paketů
Přepínání okruhů (circuit switching) – příklad: klasická telefonie, ale i např. klasický rozhlas, TV – mezi příjemcem a odesilatelem vzniká (fyzicky) přímá, souvislá cesta, komunikace probíhá v reálném čase • představa: od odesilatele vede až k příjemci jednolitá „roura“ – přenášená data se nikde nehromadí – výhodné pro kontinuální přenosy (konstantní datový tok) – vhodné pro multimediální formáty (živý zvuk a obraz) – data nemusí být příjemci explicitně adresována • příjemce je jednoznačně určen: ten, kdo je na druhém konci „roury“ – typické pro telekomunikační sítě • dnes jsou i zde stále častěji využívány paketové sítě (VoIP P)
Přepínání okruhů X přepínání paketů
Přepínání paketů (packet switching) – příklad: odeslání dopisu – mezi příjemcem a odesilatelem nevzniká žádná souvislá vyhrazená cesta • na cestě od příjemce k odesilateli existují přestupní body, které si zásilku postupně předávají, a jsou schopny ji nakonec dopravit až k příjemci • přenášená data cestují podle principu „store & forward“ • jednotlivé přestupní uzly nejprve přijmou celý přenášený blok dat (paket), a teprve pak jej předají dál - není to v reálném čase
– přenášená data musí být explicitně adresována • musí nějak identifikovat příjemce
– výhodné pro přenosy s náhodnými požadavky, např. přenosy souborů – nevhodné pro zvuk a obraz – typické pro počítačové sítě • často se však v některé z vyšších vrstev emuluje spojení