Architektury komunikujících systémů
Definice pojmů
Systém
- samostatný celek schopný vykonávat zpracování a přenos informace
Síťová architektura
- systém vrstev, služeb, funkcí a protokolů
- odpovídá struktuře síťového vybavení
Otevřená architektura
- obsah norem popisujících architekturu je veřejně přístupný
- všechna zařízení (systémy) vyhovující normám jsou vzájemně
propojitelná
Vrstvená architektura
- Cílem dekompozice problému komunikace na menší, snadněji
řešitelné celky.
- Možnost modulární výměny vrstev.
Dělení problému komunikace do vrstev

Podsystém = průnik systému a
vrstvy.
Entity vrstev
- Vrstva (pod)systému je tvořena množinou entit, ty (logicky) komunikují s
entitami stejnolehlé vrstvy partnerského systému.
- Entity jsou nositelé funkcí vrstvy a poskytovatelé služeb
(a současně i uživatelé služeb nižší vrstvy).
- Funkcí entity je cílená činnost směřující k poskytování své
předem specifikované služby.
- Pro vykonávání svých funkcí využívá entita služeb entit v nižší
vrstvě.
- Entity jedné vrstvy přímo interagují jen s entitami v sousedních
dvou vrstvách (svého systému).
Komunikace mezi vrstvami
Komunikace mezi otevřenými systémy sestává z komunikace mezi sousedními
vrstvami (vertikálně) a mezi entitami stejnolehlých vrstev různých
otevřených
systémů (tj. horizontálně).
Vrstvový protokol
- pravidla spolupráce entit ve stejné vrstvě na jiných systémech
Mezivrstvový protokol
- SW rozhraní
- pravidla spolupráce sousedních vrstev
- používají se služební primitiva
- komunikace prostřednictvím přístupových bodů služeb
(Service Access Point, SAP).
Primitiva interakce mezi uživatelem a poskytovatelem služby
- žádost (request) - žádost
o službu nižší vrstvy
- potvrzení (confirm) -
potvrzení poskytovatele služby o dokončení akcí dříve požadovaných
primitivou request.
- oznámení (indication) -
oznámení poskytovatele služby o vzniklé
situaci vedoucí k potřebě vyvolání určité akce na straně uživatele
služby<> <>
- odpověď (response) -
reakce uživatele služby potvrzující
ukončení akcí iniciovaných předtím poskytovatelem služby primitivou
indication
Primitiva jsou definována abstraktně, jsou nezávislé na implementaci.
Referenční model ISO OSI
(Open System Interconnection)
Otevřený systém (v modelu OSI RM)
- je chápán jako abstraktní model reálného otevřeného systému
- konkrétní implementace není specifikována
- síťové vybavení otevřeného systému je v souladu s OSI RM
- Referenční model OSI-RM je obecný model archtektury propojení
otevřených systémů (ISO definovalo jako normu IS 7498 (1984), ITU-T
převzala jako X.200)
- Cílem bylo poskytnout společnou základnu pro koordinované
vypracovávání norem pro propojení systémů (systém je zde zúžen na
síťové vybavení).
- Sedmivrstvá architektura modelu, počet vrstev (7) je kompromis
dohody.
- Model určuje všeobecně úkoly (funkce) jednotlivých vrstev, služby
poskytované vyšší vrstvě a očekávané od vrstvy nižší (jen věcně, ne
formálně).
Poznámky:
- Při praktickém použití je někdy je implementace vrstvy prázdná,
pokud není jejich služeb zapotřebí.
- Vrstva se v konkrétní implementaci často dělí do podvrstev (např.
spojová vrstva LAN podle IEEE se dělí na podvrstvy MAC a LLC)
Terminologie vrstvové komunikace otevřených systémů:
- Výměna údajů mezi komunikujícími systémy v rámci protokolu se
děje pomocí protokolových datových
jednotek (PDU-Protocol Data Unit).
- Vrstvový protokol používá PDU, mezivrstvový protokol využívá služební datové jednotky
(SDU-Service Data Unit).
- PDU obsahují protokolovou
řídící informaci (PCI - Protocol Control Information) (=záhlaví)
a uživatelská data.
- Každá vrstva chápe PDU vyšší vrstvy jako data a přidává k nim
svou řídící informaci (hlavičku)
Vrstva N+1
------------------------------| IDU |---
|
|-----------| IDU - Interface Data Unit
| | ICI - Interface Control Information
| | SDU - Service Data Unit
| PCI | | SDU | | ICI | PDU - Protocol Data Unit
\___ _____/ PCI - Protocol Control Information
| |
| |
| PDU | <---------| ICI |
|
Vrstva N |
----------| IDU |------------------------
Vrstva N-1
SDU (Service Data Unit)
- uživatelská data transparentně předávaná vrstvou
PCI (Protocol Control Information)
- řídící informace protokolu mezi partnerskými entitami ve
stejnolehlých vrstvách komunikujících systémů
PDU (Protocol Data Unit)
- datová jednotka protokolu mezi partnerskými entitami ve
stejnolehlých vrstvách komunikujících systémů. Kombinace PCI (hlavička)
a SDU (data)
ICI (Interface Control Information)
- parametry předávané při volání služeb podvrstvy
IDU (Interface Data Unit)
- veškerá informace předávaná entitě nižší vrstvy prostřednictvím
přístupového bodu služby (SAP-Service Access Point)
- IDU=PCI+SDU+ICI
Poznámka:
Specifikaci konkrétních protokolů model neřeší, ty jsou specifikovány v
samostatných doporučeních.
Implementace vrstvení - enkapsulace
Služby se spojením (connection-oriented)
a bez spojení (connectionless)
Každá vrstva může vyšší vrstvě poskytovat službu se spojením, bez
spojení
nebo obě.
Režim komunikace se spojením
- fáze navázání spojení, přenosu dat, ukončení spojení
- možnost dohodnout se na parametrech a volbách spojení
- potřeba identifikace konkrétního spojení
- řízení toku dat při přenosu
- potvrzování přenosu (a příslušné korekční akce) => zvýšení
pravděpodobnosti detekce chyb oproti službě poskytované nižší vrstvou
Příklady:
telefonní síť (klasická, ISDN), virtuální okruhy (Frame Relay,
ATM)
Režim komunikace bez spojení
- pro každou datovou jednotku musí být nižší vrstvě udána
adresa příjemce, příp. požadovaná kvalita služby a jiné volby; tyto
parametry platí pouze pro přenos dané datové jednotky
- datová jednotka se zasílá (i směruje) bez závislosti na ostatních
- výhoda: datová jednotka může být předána více příjemcům současně
(skupinové vysílání=multicast, všesměrové vysílání=broadcast)
- nemusí dodržovat pořadí datových jednotek a řešit řízení toku dat
Příklady:
spojová vrstva LAN; protokoly IP, IPX
Poznámka:
Běžně může vyšší vrstva poskytovat službu se spojením a využívat k tomu
služby bez spojení poskytovanou nižší vrstvou (např. TCP+IP), nebo
opačně
poskytovat službu bez spojením s použitím spojově orientované služby
(např. LAN emulace nad spojově orientovanou sítí ATM)
Popis vrstev referenčního modelu OSI
1. Fyzická vrstva (Physical layer)
- podporuje fyzickou komunikaci mezi systémy
- popisuje fyzické, elektrické a logické parametry rozhraní k
přenosovému kanálu<>
- aktivace, udržování a deaktivace fyzických spojení pro
přenos bitů neboznaček
- dvoubodové nebo vícebodové spojení, full nebo half duplex
Poskytované
služby:
- otevření a uzavření fyzického spojení
- řazení bitů nebo značek do sériového proudu
- fyzický přenos bitů v určeném pořadí
- oznamování chybových stavů spojové vrstvě
Příklady:
rozhraní RS232, V.35
2. Spojová vrstva (Link layer)
(nesprávně "linková vrstva")
- poskytuje jedno nebo více spojení mezi dvěma entitami síťové
vrstvy v sousedících systémech
- vytváření, udržování a rušení spojení
- formátování/rozpoznávání rámců
- identifikace koncových bodů spojení (entit síťové vrstvy)
- detekce a korekce chyb, oznamování neopravitelných chyb
- řízení toku dat (flow control)
U lokálních sítí se pro zjednodušení realizace často rozčleňuje do
podvrstev
Příklady:
LLC 802.2, PPP, Frame Relay
3. Síťová vrstva (Network layer)
- cílem síťové vrstvy je překlenout rozdílné vlastností různých
síťových
technologií (spojově i nespojově orientovaných) a dosáhnout univerzální
rozhraní služby
- zabezpečuje přenos dat obecně mezi nesousedními uzly sítě
prostřednictvím mezilehlých zařízení
- obsahuje funkce a protokoly pro přenos po úsecích, směrování,
zprostředkování přenosu přes mezilehlé systémy
- jednoznačná adresace systémů v rámci celé sítě
- směrování: při přenosu jednotlivých paketů nebo při vytváření
spojení (virtuálního okruhu)
- skrývá topologii sítě (vč. problému směrování) před 4.
(transportní) vrstvou
Poskytované
služby:
1. Síťová služba se spojením - spolehlivá
2. Síťová služba beze spojení (nespolehlivá, datagramová služba)
- zahajování a ukončování síťových spojení (u služby se spojením)
- transparentní přenos dat mezi entitami transportní vrstvy
Příklady:
IP, IPX - služba bez spojení, X.25 - služba se spojením
4. Transportní vrstva (transport layer)
- poskytuje transparentní, spolehlivý a ekonomický přenos s
požadovanou kvalitou mezi dvojicí transportních adres
- řeší adresaci transportních entit v rámci zařízení s jednou
síťovou adresou (transportní adresy)
- služby poskytované vyšším vrstvám nezávisí na implementaci sítě
(nestará se o směrování paketů a přepojování okruhů)
- postavena mezi síťovou infrastrukturu a její uživatele =
nejnižší vrstva, jejíž entity se nacházejí pouze v koncových systémech
(síťové prvky se protokolem transportní vrstvy nezabývají)
- mezi dvěmi systémy může být několik transportních spojení
současně
- transportní vrstva musí poskytovat službu se spojením
Funkce
vrstvy:
- vytváření, udržování a ukončování transportních spojení
(spojově orientovaná služba) nebo přenos bloků-datagramů (služba bez
spojení)
- mapovaní transportních adres na síťové
- každé relační entitě přiřazuje transportní vrstva transportní
adresu.
- multiplexování a demultiplexování transportních spojení (za
použití PDU síťové vrstvy a transportní adresy)
- koncová korekce chyb
- koncové řízení toku
- fragmentace a defragmentace zpráv, shlukování krátkých zpráv do
delších celků
- dohled nad spojením (např. keepalives)
- přednostní přenos urgentních dat
Kvalita služeb poskytovaných relační vrstvě závisí na požadované třídě
služeb zadané při vytváření transportního spojení a popsané souborem
parametrů (např. maximální zpoždění, chybovost, propustnost) -
dodržováno po celou dobu trvání transportního spojení.
Příklad:
většina architektur nabízí alespoň dva základní transportní protokoly,
pro spojově orientovanou a nespojovanou službu, např TCP/UDP, SPX/IPX.
5. Relační vrstva (session layer)
- zabezpečuje výměnu dat mezi aplikacemi
- organizace a synchronizace dialogu mezi partnerskými entitami
presentační vrstvy
Poskytované
služby:
- vytvoření a uzavření relačního spojení
- normální a urgentní přenos zprávy
- pozdržený přenos zpráv - zpráva již přenesená spojením se
skutečně doručí adresátovi až na pokyn odesílatele
- řízení dialogu (interakce stran) - komunikace jednosměrná,
obousměrná střídavá a obousměrná současná
- synchronizace relačního spojení (transakce) - definování
synchronizačních bodů, obnovení relačního spojení do stavu definovaného
některým synchronizačním bodem
- oznamování neopravitelných stavů vyšší vrstvě
Funkce
vrstvy:
- mapování relačního spojení na transportní spojení
- namapování jedné relace na více transportních spojení
- namapování více relací do jednoho transportního spojení
- vytváření a rušení transportního spojení dynamicky během jedné
relace
- více následných relací přes jedno transportní spojení
- řízení toku dat v rámci relace
Příklady:
- RPC (Standard Remote Procedure Call - vzdálené volání procedur)
- Sdílení disku: transportní spojení se naváže vždy jen na dobu
komunikace,
relační spojení po celou dobu "připojení" vzdáleného disku do lokálního
souborového systému
6. Prezentační vrstva (Presentation layer)
- cílem sjednotit prezentaci informace, kterou si vyměňují entity
v aplikační vrstvě
- sjednocuje (binární) reprezentaci dat (jednotlivých datových
typů) a použité datové struktury
- poskytuje mechanismy pro dohodu o syntaxi a mechanismy její
pozdější změny
Syntaxe používané vysílající aplikační entitou, přijímající aplikační
entitou
a přenosová syntaxe mohou být obecně různé. Proto presentační vrstva
realizuje transformaci syntaxe = převod kódů a abeced, sjednocení
datových struktur a formátů.
Funkce
vrstvy:
- žádost o vytvoření a zrušení relace
- dohoda o syntaxi (na začátku a možnost pozdějších změn)
- přenos zpráv se současnou transformací syntaxe a dat
Poznámka:
Presentační vrstva se zabývá pouze strukturou zpráv, sémantika zpráv je
známa pouze aplikační vrstvě.
Příklady:
- normy pro kódování textu ASCII/EBDIC, grafických dat (TIFF,JPEG,...),
- normy pro binární reprezentaci jednotlivých datových typů (XDR,
CDR/GIOP,
ASN.1+BER),
- řazení bitů ve slově (pozice LSB), řazení bajtů čísel (hi-lo, lo-hi)
- šifrování
7. Aplikační vrstva (Application layer)
Cílem vrstvy je poskytnout aplikacím přístup ke komunikačnímu systému.
Služby
vrstvy:
- přenos zpráv
- identifikace komunikujících partnerů - jmény, adresami, podpisem
(+ ověření přípustnosti těchto parametrů)
- zjištění stupně okamžité připravenosti partnera ke komunikaci
- dohoda o mechanismech zabezpečení zpráv
- určení přijatelné kvality služby
- synchronizace aplikací
- výběr režimu dialogu, způsobu jeho zahájení a ukončení
- dohoda o odpovědnosti za korekce chyb a zachování konzistence dat
- dohoda o syntaxi zpráv
Aplikační vrstva předepisuje, v jakém formátu a jak mají být data
přebírána/předávána od aplikačních programů (vč. způsobu dialogu mezi
konci spojení).
Poznámka:
Funkce aplikační vrstvy (jako jediné z vrstev) mohou provádět i lidé,
nikoli jen programy a technické prostředky.
Příklady:
- síťové aplikace (elektronická pošta, přenos souborů)
- libovolný aplikační software využívající sítě
Funkce společné více vrstvám
Některé funkce se opakují ve více vrstvách a vzájemně se doplňují svým
rozsahem
Např. kontrola chyb pomocí CRC v rámci s IP paketem i pomocí
kontrolního součtu v hlavičce přenášeného IP paketu.
Obvyklé služby duplikované ve více vrstvách
- detekce a korekce chyb
- řízení toku dat
- fragmentace/defragmentace (=segmentace/reassembling)
Fragmentace
- Problém neslučitelnosti maximálních délek datových jednotek v
jednotlivých vrstvách.
- Datová jednotka vyšší vrstvy proto musí být fragmentována
(segmentována) do více protokolových jednotek nižší vrstvy, do jejichž
hlavičky musí být
uveden údaj pro opětovné seskládání fragmentů (reassembling).
- Výhody: snazší error-control, menší buffery na přijímači
- Nevýhody: větší režie (poměr servisní a uživatelské informace),
více času spotřebovaného na větší počet jednotek
Poznámka:
Je možný i opačný proces k fragmentaci: seskupení několika SDU do
jednoho PDU.
Mapování spojení vrstev vyšších do spojení vrstev nižších
1) 1:1
jedno spojení vrstvy n namapováno na jedno spojení vrstvy n-1
2) multiplexování
- několik spojení vyšší vrstvy do jednoho spojení v nižší vrstvě
- efektivnější využití kanálu
- možnost více paralelních spojení, je-li k dispozici jen jeden
kanál
Implementované funkce:
- identifikace datových jednotek jednotlivých toků
- nezávislé řízení toku dat na jednotlivých tocích
- přidávání/rušení spojení vyšší vrstvy do/z multiplexu
3) rozvětvení
- data jednoho spojení vyšší vrstvy rozdělena do několika spojení
nižší vrstvy
- možnost zajištění spolehlivosti zvýšením počtu spojení
- možnost využití více spojení s nižší propustností (v součtu dají
celkovou požadovanou), je-li to ekonomičtější
- nutnost naplánování způsobu rozvětvení a zpětného obnovení pořadí
datových jednotek z více spojení na straně přijímače
- fáze zřizování/rušení dalšího spojení a fáze transportu dat
Implementované funkce:
- dynamické alokování/dealokování spojení, volba odpovídajících
spojení podle požadavků na kvalitu služby od vyšší vrstvy
- určení optimální délky transportních jednotek
Obvyklé názvy PDU na jednotlivých vrstvách
- aplikační-relační: zprávy (resp. fragmenty zpráv)
- transportní: segmenty, datagramy
- síťová: pakety
- spojová: rámce
Standardizační instituce pro oblast počítačových sítí (pro
informaci)