Vyšlo v týdeníku CHIPweek č. 25/96, 18. června 1996
Vytištěno z adresy: http://www.earchiv.cz/a96/a625k150.php3

Sedm vrstev ISO/OSI

Při svém zrodu dostal referenční model ISO/OSI do vínku přesně sedm vrstev - ačkoli původně padaly různé jiné návrhy, nakonec se autoři rozhodli právě pro tento počet. Přitom se samozřejmě uplatnila různá kritéria a také různé názory na to, jak by počítačové sítě měly vypadat a fungovat. O jaká kritéria a názory ale šlo?

Koncepce referenčního modelu ISO/OSI nevznikala zcela na zelené louce. Jedním ze vzorů, které se při volbě celkové koncepce ISO/OSI uplatnily více než jen v roli inspirace, bylo například již tehdy existující doporučení X.25 - tedy poměrně ucelená představa o tom, jak by měly fungovat veřejné datové sítě, nabízející svým uživatelům přenosové služby na principu přepojování paketů (přesněji: jak by měly fungovat navenek, ve vztahu k připojeným počítačům, a nikoli interně). Doporučení X.25, které předcházelo vzniku RM ISO/OSI přibližně o pět let, přitom vzniklo také ve „světě spojů", a tak se nelze příliš divit, že autoři ISO/OSI převzali mnoho z jeho filosofie a pohledu na svět. Při hodně velkém zjednodušení je možné si představit, že autoři ISO/OSI navrhli svůj referenční model takovým způsobem, aby do něj šlo doporučení X.25 velmi jednoduše „zapasovat".

Dvakrát tři plus jedna

Obrázek 1.
Sedm vrstev ISO/OSI
Doporučení X.25, týkající se veřejných datových sítí, se ovšem zabývá pouze otázkami přenosu, a nikoli již dalšími nadstavbovými službami (službami vyšší úrovně), které by vycházely vstříc i dalším potřebám nejrůznějších aplikací - v terminologii pozdějšího modelu ISO/OSI doporučení X.25 pokrývá pouze tři nejnižší vrstvy (fyzickou, linkovou a síťovou), charakteristické právě svou orientací na vlastní přenos dat. Autoři vznikajícího referenčního modelu ovšem chtěli pokrýt i zmíněné nadstavbové služby, a tak museli ještě nějaké vrstvy přidat. Nakonec pro nadstavbové služby zavedli další tři vrstvy (relační, prezentační a aplikační), nyní již vysloveně orientované na podporu koncových aplikací. Mezi obě skupiny po třech vrstvách pak vložili ještě jednu další vrstvu, fungující jako přizpůsobení mezi oběma „třívrstevnatými bloky" - vycházeli totiž z toho, že skupina nejnižších tří vrstev je dosti těsně svázána s reálnými vlastnostmi přenosových cest a nabízí tomu odpovídající charakter služeb, zatímco skupina tří nejvyšších vrstev se zase „dívá na svět" spíše očima koncových aplikací, a může mít zcela odlišné představy a požadavky na přenosovou část sítě. Mezi oběma skupinami pak může vznikat i dosti velká disproporce, a úkolem vrstvy přidané mezi obě skupiny je tyto disproporce překlenout. Zmíněná přizpůsobovací vrstva, vložená mezi oba bloky, pak byla označena jako transportní (transport layer) - nejspíše proto, že je „poslední instancí" zabývající se ještě otázkami transportu dat.

Všichni, nebo jen někdo?

Referenční model ISO/OSI je mnohdy kritizován za nerovnoměrnost ve svém členění na vrstvy - to se podle kritiků projevuje tím, že zatímco nižší tři vrstvy mají poměrně přesně vymezené úkoly a „hodně práce", skupina tří nejvyšších vrstev je naopak definována mnohem vágněji, a její jednotlivé vrstvy mají také relativně málo úkolů. Poznáme to ostatně i na vlastní kůži, až si budeme popisovat co přesně mají jednotlivé vrstvy na starosti - u nižších vrstev je to vcelku jasné a snadno vysvětlitelné, zatímco například u relační vrstvy je dosti netriviální již jen popsat, co je tato vrstva zač.

Zajímavé je v tomto ohledu jistě i srovnání referenčního modelu ISO/OSI se síťovým modelem TCP/IP: ten se liší především v tom, že místo bloku tří nejvyšších vrstev (relační, prezentační a aplikační) počítá na stejném místě jen s vrstvou jedinou (vrstvou aplikační). Důvody jsou zajímavé, a je třeba je hledat v celkové filosofii a přístupu autorů.

Autoři referenčního modelu ISO/OSI předpokládali, že prakticky všechny aplikace budou potřebovat podpůrné služby (resp. služby charakteru nadstavby nad přenosovými službami, o jejich charakteru si povíme příště). A tak se jim jevilo rozumné koncipovat tyto služby takovým způsobem, aby mohly být k dispozici všem aplikacím - a právě to znamenalo vytvořit pro ně samostatné vrstvy (především vrstvu relační a prezentační). Naproti tomu autoři TCP/IP vyšli z předpokladu, že zmíněné podpůrné služby budou zapotřebí spíše méně často, a tak bude rozumnější když si je sama zajistí až ta aplikace, která je bude skutečně potřebovat. A tak síťový model TCP/IP nepotřebuje žádnou samostatnou relační a prezentační vrstvu pro tyto podpůrné služby.

Spolehlivě a spojovaně

Dalším charakteristickým rysem referenčního modelu ISO/OSI je jeho důraz na poskytování spolehlivých služeb - tedy takových, které chápou jako svou povinnost postarat se o nápravu v situaci, kdy došlo k nějaké nepříjemnosti (například ke ztrátě či poškození dat). Na tento aspekt jsme již v tomto seriálu narazili několikrát, například v souvislosti s veřejnými datovými sítěmi, u kterých se jejich provozovatelé báli že by nikdo neměl zájem o případné nespolehlivé přenosové služby. Proto například právě doporučení X.25 má v sobě zabudovány poměrně silné a robustní mechanismy na zajišťování spolehlivosti. Referenční model ISO/OSI tento pohled na věc přejímá, a to velmi důkladně - v podstatě každá vrstva ISO/OSI počítá s tím, že bude poskytovat spolehlivé služby, resp. že sama bude zajišťovat spolehlivost. Ve skutečnosti to pak dělají všechny vrstvy najednou, každá z nich na to spotřebovává určitou nenulovou režii, a režie jednotlivých vrstev se sčítají (v optimálním případě, v horším případě se násobí). Celkový efekt je pak výrazně horší, než kdyby nižší vrstvy fungovaly pouze nespolehlivě (a tudíž bez režie na zajištění spolehlivosti), a případnou spolehlivost zajišťovala až některá z vyšších úrovní (a to ještě jen tehdy, kdy je spolehlivost vůbec požadována).

Možnost nabízet i nespolehlivé služby (které nemají žádnou režii na zajištění spolehlivosti a mohou tudíž fungovat rychleji), byla do referenčního modelu ISO/OSI přidána až později, pod tlakem „lidí od počítačů", a zcela jistě i pod tlakem úspěšnosti síťového modelu TCP/IP, který na rozdíl od referenčního modelu sází spíše na nespolehlivé, ale zato rychlé služby.

Časem, a na základě tlaku uživatelů, se pak do referenčního modelu ISO/OSI dostala i podpora tzv. nespojovaných služeb. Původně totiž RM ISO/OSI počítal jen se službami spojovaného charakteru, které před jakýmkoli přenosem vyžadují explicitní navázání spojení mezi komunikujícími stranami - typicky formou vytváření tzv. virtuálních okruhů mezi příjemci a odesilateli. V telekomunikacích je takovýto „spojovaný" přístup téměř samozřejmostí, a vzhledem k podstatě a charakteru přenosů asi nejvhodnější. Ale v případě datových přenosů už jeho výhodnost není zdaleka tak jednoznačná, zde naopak záleží na četných dalších faktorech, a v mnoha situacích (například při příležitostných přenosech menších objemů dat) může být naopak výhodnější tzv. nespojovaný přenos. Tedy takový přenos, při kterém jsou data přenášena „na blint", bez předchozího navázání spojení mezi odesilatelem a příjemcem, podobně jako jsou přenášené jednotlivé zásilky běžnou listovní poštou.