zpět do archivu článků |
rejstřík |
předchozí díl |
následující díl
Jiří Peterka: Co je čím ... v počítačových sítích (36)
Relační vrstva
Jak jsme si již naznačili dříve, čtyři nejnižší vrstvy
referenčního modelu ISO/OSI jsou zaměřeny především na
vlastní přenos dat mezi jednotlivými uzlovými počítači.
Každá z nich přitom poskytuje "o něco více" než vrstva
bezprostředně nižší - čtvrtá (tj. transportní) vrstva pak
nabízí prostředky pro takovou komunikaci dvou koncových
počítačů resp. účastníků, která je nezávislá na konkrétní
komunikační podsíti, na její topologii i na dalších
specifikách. Vyšší vrstvy referenčního modelu ISO/OSI jsou
pak již orientovány spíše na potřeby síťových aplikací. Samy
využívají přenosové služby transportní vrstvy, a přidávají
k nim takové funkce a schopnosti, které by měly být užitečné
pro většinu aplikací. Takový je tedy smysl existence páté
(relační), šesté (prezentační), a vlastně i sedmé
(aplikační) vrstvy ISO/OSI modelu.
Referenční model ISO/OSI tedy vychází z představy, že
jednotlivé aplikace by měly mít k dispozici a měly by
využívat ještě dokonalejší a obecnější služby, než jaké
nabízí transportní vrstva. Jejich realizaci pak referenční
model svěřuje relační (session) a prezentační (presentation)
vrstvě. Mlčky tím ovšem předpokládá, že je budou využívat
všechny aplikace, nebo alespoň většina z nich - jen pak
totiž má rozumný smysl realizovat je pro všechny aplikace
společně. Existuje ale velké množství aplikací, které tento
předpoklad nesplňují, a které plně vystačí s takovými
službami, jaké nabízí již transportní vrstva. V tomto ohledu
není jistě bez zajímavosti, že "konkurenční" soustava
protokolů TCP/IP vychází z přesně opačné úvahy než
referenční model ISO/OSI - svým aplikacím nabízí pouze
přenosové služby na úrovni transportní vrstvy. Potřebuje-li
některá aplikace resp. služba aplikační vrstvy služby
obecnějšího charakteru, musí si je realizovat sama vlastními
silami. To je také důvod, proč soustava protokolů TCP/IP, na
které je vybudována např. síť ARPANET resp. dnešní Internet,
s existencí relační a prezentační vrstvy vůbec nepočítá.
Relační vrstvu s takovými funkcemi, jaké jí přisuzuje
referenční model ISO/OSI, neměla v době jeho zavedení žádná
síť - snad s výjimkou sítě SNA firmy IBM, která má obdobné
funkce realizovány ve více různých vrstvách.
Při vytváření samotného referenčního modelu ISO/OSI
byla kolem relační vrstvy a jejích úkolů velká diskuse.
Některé alternativní návrhy, které se v té době objevily,
s relační vrstvou dokonce vůbec nepočítaly. Nakonec se však
relační vrstva do referenčního modelu přeci jen prosadila.
Spolu se svou bezprostředně nadřazenou (tj. prezentační
vrstvou) však byla a nadále je relativně nejméně
propracovanou vrstvou.
Co je vlastně relace?
Pro správné pochopení smyslu relační vrstvy je dobré si
nejprve ozřejmit onen poněkud vágní termín relace (session).
Nejnázornější bude zřejmě analogie s telefonním hovorem -
ten je třeba nejprve vytočit (čímž vzniká analogie
transportního spojení), a pak je možné jeho prostřednictvím
vést rozhovor (relaci) dvou účastníků.
Relaci tedy můžeme považovat za spojení mezi dvěma
koncovými účastníky na úrovni bezprostředně vyšší, než je
vrstva transportní. Obvykle je každé takovéto spojení
(relace) zajišťováno prostřednictvím jednoho transportního
spojení (tj. spojení na úrovni transportní vrstvy), které je
zřizováno a rušeno při zřizování resp. rušení relace - viz
obr. 36.1. a/. Je ovšem možný i takový případ, kdy jedno
transportní spojení zajišťuje dvě nebo více po sobě jdoucích
relací, viz obr. 36.1. b/. Použijeme-li opět analogii
s telefonním hovorem, odpovídá tato situace tomu, že dva
účastníci telefonního hovoru svůj rozhovor dokončí, ale
místo zavěšení předají telefon jiné dvojici, která se může
začít bavit o něčem zcela jiném - tedy zahájit nový
rozhovor (relaci).
 |
Obr. 36.1.: Vztah relace a transportního spojení
a/ jedna relace - jedno transportní spojení
b/ více relací - jedno transportní spojení
c/ jedna relace - více transportních spojení
Podobně, jako se transportní vrstva snaží zakrýt
případné výpadky spojení na úrovni síťové vrstvy, měla by se
i relační vrstva dokázat vyrovnat s případným výpadkem
transportního spojení, a zajistit pokračování relace
prostřednictvím nově zřízeného transportního spojení - viz
obr. 36.1. c/. V naší "telefonní" analogii to odpovídá
situaci, kdy v průběhu rozhovoru dvou účastníků je jejich
hovor přerušen, a oni si musí zavolat znovu, aby svůj
rozhovor dokončili.
Zajímavou odlišností relace od transportního spojení je
i způsob jejího ukončení. V případě transportního spojení
nabízí referenční model ISO/OSI jen prostředky pro
jednostranné direktivní ukončení spojení, kterému druhá
strana nemá možnost zabránit. Na úrovni relační vrstvy se
však předpokládá spíše ukončení na základě vzájemné dohody
obou zúčastněných stran. Přesněji na návrh jedné strany,
který ale druhá strana má možnost odmítnou a zajistit si tak
pokračování relace.
Řízení dialogu
Jedním z hlavních úkolů relační vrstvy je řízení
dialogu mezi oběma koncovými účastníky. Tak jako při
telefonním rozhovoru není možné (či alespoň slušné), aby oba
účastníci mluvili současně, existují i v počítačových sítích
takové aplikace, které vyžadují koordinované střídání obou
zúčastněných při vysílání (například různé aplikace
transakčního charakteru apod.).
Relační vrstva tento požadavek zajišťuje obvykle pomocí
mechanismu předávání pověření k přenosu dat (data token)
- vysílat data smí vždy jen ten, kdo vlastní tento pomyslný
štafetový kolík (pověření resp. token), viz obrázek 36.2.
b/. Relační vrstva přitom nabízí prostředky, pomocí kterých
lze pověření předat, nebo si jej naopak vyžádat.
 |
Obr. 36.2.: Představa vzájemné komunikace v rámci relace
a/ plně duplexní dialog
b/ poloduplexní dialog
Obecně se na úrovni relační vrstvy rozlišují tři
způsoby vedení dialogu - plně duplexní (v terminologii RM
ISO/OSI: TWS resp. Two-Way-Simultaneous), poloduplexní (TWA
resp. Two-Way-Alternate) a simplexní (One-Way). Mechanismus
předávání pověření se přitom týká samozřejmě jen
poloduplexního dialogu. Zdůrazněme si však, že způsob vedení
dialogu nemá nic společného s duplexním, poloduplexním či
ev. simplexním charakterem přenosového kanálu. Všechna
spojení v referenčním modelu ISO/OSI jsou obecně plně
duplexní, a umožňují tedy současný přenos dat oběma směry.
Různé aplikace však z různých důvodů nemusí této možnosti
využívat, a po plně duplexním spoji mohou vést jen
poloduplexní dialog.
Synchronizace
Dalším důležitým úkolem relační vrstvy je tzv.
synchronizace (synchronization, též: checkpointing).
K jejímu pochopení si nejprve představme následující
situaci: příjemcem dat v rámci určité relace nechť je
počítač, který si přijímaná data průběžně zapisuje na disk,
případně je ihned tiskne na tiskárně. Dojde-li náhle
k poruše disku či tiskárny (nebo jí např. dojde papír, toner
apod.), může příjemce přijít o určitý objem dat, které jinak
v pořádku přijal (tj. které byly transportní vrstvou
bezchybně doručeny).
 |
Obr. 36.3.: Představa kontrolních bodů
Co je pak zapotřebí, je možnost "vrátit se o kousek
zpět", a ztracená data přenést znovu. Tedy znovu dosáhnout
potřebné synchronizace (vzájemného souladu). Relační vrstva
řeší tento problém možností vkládat do přenášených dat
kontrolní body (synchronization points, checkpoints).
Příjemci pak umožňuje, aby si na vysílajícím vyžádal návrat
k zadanému kontrolnímu bodu, a nové vyslání těch dat, která
leží za tímto bodem.
Není ovšem úkolem relační vrstvy pamatovat si přenášená
data tak, aby byl možný návrat k existujícím kontrolním
bodům. Tato data si musí "pamatovat" sám jejich odesilatel,
který služeb relační vrstvy využívá. Aby si ale nemusel
uchovávat zbytečně velké objemy dat, rozlišuje relační
vrstva dva druhy kontrolních bodů - hlavní (major)
a vedlejší (minor). Rozdíl mezi nimi je ten, že přes
vedlejší kontrolní bod se vracet lze, zatímco přes hlavní
kontrolní bod již nikoli. Pro vysílajícího z toho pak
vyplývá, že si musí "pamatovat" přenášená data jen od
posledního hlavního kontrolního bodu - viz obr. 36.3.
zpět do archivu článků | rejstřík | rejstřík |
předchozí díl |
následující díl
Tento článek může být volně šířen, pokud se tak děje pro studijní účely, na nevýdělečném základě a se zachováním tohoto dovětku. Podrobnosti hledejte zde, resp. na adrese
http://ksi.ms.mff.cuni.cz/~peterka/archiv/copyleft.htm