Síťová architektura
Systém vrstev, služeb, funkcí a protokolů.
Odpovídá struktuře síťového vybavení.
Referenční model ISO OSI - (Open System Interconnection)
* Otevřená architektura - všechna zařízení vyhovující normám vzájemně
propojitelná. Obsah norem veřejně přístupný.
ISO: standard archtektury propojení otevřených systémů Open System
Interconnection, IS 7498 (1984), ITU-T převzala jako X.200.
Cílem je 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í).
* Systém - samostatný celek schopný vykonávat zpracování a přenos informace
* Otevřený systém - reálný systém, jehož síťové vybavení je v souladu s OSI RM
Otevřený systém podle OSI je abstraktním modelem reálného otevřeného systému,
konkrétní implementace není specifikována
Vrstvená architektura
---------------------
- sedmivrstvá architektura, počet vrstev (7) je kompromis dohody.
- norma určuje všeobecně úkoly jednotlivých vrstev, služby poskytované vyšší
vrstvě a očekávané od vrstvy nižší (jen věcně, ne formálně).
Protokoly zde nezařazeny, specifikovány v samostatných doporučeních.
- cílem dekompozice problému komunikace na menší, snadněji řešitelné celky
- možnost modulární výměny vrstev
Někdy je implementace vrstvy prázdná, pokud není jejich služeb zapotřebí.
Vrstva se často dělí do podvrstev (viz např. linková vrstva LAN: MAC, LLC)
Komunikace mezi otevřenými systémy sestává z komunikace mezi sousedními
vrstvami (vertikálně) a mezi entitamy stejnolehlých vrstev různých otevřených
systémů.
* Podsystém: průnik systému a vrstvy. V rámci podsystému se rozpoznávají entity,
jako nositelé funkcí a poskytovatelé, příp. uživatelé služeb.
Entity jedné vrstvy interagují jen s entitami v sousedních dvou vrstvách.
Pro vykonávání svých funkcí využívá entita služeb entit v nižší vrstvě.
Funkce entity je cílená činnost směřující k poskytování své předem
specifikované služby
Vrstva je tvořena množinou entit.
Komunikace otevřených systémů:
> vertikální - mezi jednotlivými vrstvami systému
> horizontální - mezi entitami ve stejnolehlých vrstvách různých systémů
* vrstvový protokol - pravidla spolupráce entit ve stejné vrstvě na jiných
systémech
* mezivrstvový protokol (rozhraní) - pravidla spolupráce sousedních vrstev,
používají služební primitiva, prostřednictvím přístupových
bodů služby (Service Access Point, SAP).
Výměna údajů mezi komunikujícími stanicemi v rámci protokolu se děje pomocí
protokolových datových jednotek (PDU).
Vrstvový protokol používá PDU, mezivrstvový protokol využívá servisní datové
jednotky (SDU).
PDU obsahují protokolovou řídící informaci PCI - Protocol Control Information
(záhlaví) a uživatelská data.
Každá vrstva chápe PDU vyšši vrstvy jako data a přidává k nim svou řídící
informaci [hlavičku]
Komunikace mezi vrstvami (standardní terminologie)
--------------------------------------------------
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 - uživatelská data transparentně předávaná vrstvou
PCI - řídící informace protokolu mezi partnerskými entitami ve stejnolehlých
vrstvách komunikujících systémů
PDU - datová jednotka protokolu mezi partnerskými entitamu ve stejnolehlých
vrstvách komunikujících systémů. Kombinace PCI (hlavička) a SDU (data)
ICI - parametry předávané při volání služeb podvrstvy
IDU - veškerá informace předávaná prostřednictvím přístupového bodu služby (SAP)
mezi vrstvami: PCI+SDU+ICI
Primitiva interakce mezi uživatelem a poskytovatelem služby
-----------------------------------------------------------
(nezávislé na implementaci):
* žá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
Služby se spojením (connection-oriented) a bez spojení (connectionless)
-----------------------------------------------------------------------
Každá vrstva může sousední 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í
- možnost identifikace konkrétního spojení
- řízení toku 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říklad: X.25, Frame Relay, virtuální okruhy/kanály
* Režim komunikace bez spojení
- pro každou 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 směruje bez závislosti na ostatních.
- datová jednotka může být předána více příjemcům současně
- nemusí dodržovat pořadí datových jednotek a řešit řízení toku dat.
Příklad: spojová vrstva LAN, protokoly IP, IPX.
Pozn.: 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)
Pozn.: Transportní služba musí poskytovat službu se spojením
Popis vrstev referenčního modelu OSI
====================================
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ů nebo
znač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, fyzický přenos bitů v určeném pořadí, oznamování chybových stavů
linkové vrstvě
Příklady: RS232, RS422
Spojová(nesprávně linková) vrstva (link layer)
----------------------------------------------
- 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í rámců
- identifikace koncových bodů spojení,
- detekce a korekce chyb, oznamování neopravitelných chyb
- 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
Síťová vrstva (network layer)
-----------------------------
- zabezpečuje přenos dat mezi obecně nesousedními uzly sítě
- funkce a protokoly pro přenos po úsecích, směrování, zprostředkování přenosu
přes mezilehlé systémy, multiplexování síťových spojení na telekomunikační
okruhy, zřizování a rušení síťových spojení, korekce chyb, seřazování paketů
[např. použitím virtuálních spojů], formátování zpráv - vytváření paketů
- jedoznačná adresace v rámci celé intersítě
- poskytuje transportní vrstvě nezávislost na směrování
- služby: transparentní přenos dat mezi transportními entitami, zahajování
a ukončování síťových spojení
Síťová služba se spojením - spolehlivá
Síťová služba beze spojení [nespolehlivá, datagramová služba]
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.
Příklad: IP, IPX - bez spojení, X.25 - se spojením
Transportní vrstva (transport layer)
------------------------------------
- transparentní, spolehlivý a ekonomický přenos s požadovanou kvalitou.
- adresace transportních entit v rámci zařízení s jednou síťovou adresou
- služby poskytované vyšším vrstvám nezávisí na implementaci sítě.
- postavena mezi síťovou infrastrukturu a její uživatele.
- nejnižší vrstva, jejíž entity se nacházejí pouze v koncových systémech.
- mezi dvěma systémy může být několik transportních spojení současně,
- nestará se o směrování a přepojování
Pozn.: Transportní protokoly [a protokoly vyšších vrstev] se týkají
jen komunikace koncových systémů.
funkce:
> vytváření, udržování a ukončování transportních spojení [spojově orientovaná
služba] nebo přenos bloků [nespojově orientovaná služba]
> adresování - mapovaní transportních adres na síťové
> multiplexování a demuliplexování transportních spojení
> 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]
> urgentní přenos
Každé relační entitě přiřazuje transportní adresu, transportní spojení poskytuje
duplexní přenos mezi dvojicí transportních adres.
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í, zbytková chybovost, propustnost]
- dodržováno po celou dobu trvání transportního spojení.
Způsoby mapování spojení vrstev vyšších do spojení vrstev nižších
-----------------------------------------------------------------
> 1:1
> multiplexování - několik spojení vyšší vrstvy do jednoho spojení
v nižší vrstvě
- efektivnější využití kanálu nebo práce více 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 z multiplexu
> rozvětvení - jedno spojení vyšší vrstvy do několika spojení nižší vrstvy
- zajištění spolehlivosti zvýšením počtu spojení
- využití více spojení s nižším výkonem, než je požadovaný, je-li
to ekonomičtější
- nutnost naplánování způsobu rozvětvení, zpětné 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
Pozn. Adresování: přiřazení síťové adresy transportní adrese transportní entity.
Jedna transportní entita může obsluhovat více než jednu relační entitu.
Několika transportním entitám sdružených do jedné transportní entity může být
přiřazena jedna síťová adresa. Mapování adres se děje v transportních entitách.
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.
Relační vrstva (session layer)
------------------------------
- zabezpečuje výměnu dat mezi aplikacemi
- organizace a synchronizace dialogu mezi partnerskými presentačními entitami
- 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] - 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:
> mapování relačního spojení na transportní spojení - např. namapování jedné
relace na více transportních spojení, popř. opačně,
nebo vytváření a rušení transportního spojení
dynamicky během jedné relace, příp. více následných i
relací přes jedno transportní spojení
> řízení toku dat v rámci relace
Příklady:
RPC
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
souborovoého systému
Prezentační vrstva (presentation layer)
---------------------------------------
- cílem poskytnout reprezentaci informace, které entity v aplikační vrstvě
používají při komunikaci [reprezentace dat] nebo se na ni odkazují
[datové struktury].
- smyslem je jednotný způsob reprezentace přenášených zpráv pro aplikace
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, adaptace datových
struktur a formátů
- poskytuje mechanismy pro dohodu o syntaxi a mechanismy její pozdější změny
funkce: žádost o vytvoření a zrušení relace, přenos zpráv, dohoda o syntaxi,
transformace syntaxe a dat.
Pozn.: Presentační vrstva se zabývá pouze strukturou zpráv, sémantika zpráv je
známa pouze aplikaní vrstvě.
Příklad: normy pro kódování textu ASCII/EBDIC, grafických dat (TIFF,JPEG,...),
binární reprezentace jednotlivých datových typů (XDR, CDR/GIOP),
řazení bitů ve slově (pozice LSB), řazení bajtů čísel, ...
Šifrování.
Příklad: ASN.1 - Abstract Syntax Notation:
- formální jazyk pro popis dat a jejich vlastností
- sám o sobě nedefinuje formáty uložení a kódování dat, k tomu užívá
Basic Encoding Rules (BER)
- Použití např. v SNMP (Simple Network Management Protocol, správa sítě)
Aplikační vrstva (application layer)
------------------------------------
- cílem poskytnout aplikacím přístup ke komunikačnímu systému.
Služby:
> 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.: Funkce aplikační vrstvy (jako jediné z vrstev) mohou provádět i lidé,
nikoli jen programy a technické prostředky .
Přiklady: síťové aplikace - elektronická pošta-SMTP, přenos souborů-FTP,
libovolný aplikační sw 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ř. zabezpečení přenosu mezi mezilehlými uzly vs. zabezpečení přenosu
konec-konec).
Obvyklé služby duplikované ve více vrstvách
-------------------------------------------
Zapouzdření - nutné k funkci vrstvových a mezivrstvových protokolů
- redundance dat,
> řízení toku dat
> detekce a korekce chyb
> fragmentace/defragmentace (=segmentace/reassembling)
Zprávy se dělí na fragmenty, v transportní vrstvě z nich bloky, v síťové
vrstvě z nich pakety, v linkové vrstvě z nich rámce.
Problém neslučitelnosti datových jednotek v jednotlivých vrstvách co do délek
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 fragmentace na kratší jednotky:
lepší (příp. jednodušší) error-control, menší buffery na přijímači
nevýhody: větší režie (větší poměr servisní informace), více času
spotřebovaného na větší počet jednotek
Možný i opačný případ: seskupení několika SDU do jednoho PDU
Standardizační instituce působící v počítačových sítích