
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).
![]() |
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.
![]() |
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).
![]() |
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.