Dnes je :
 

13/ Vrstvy, vrstvové modely, protokoly

Riešiť určitý problém ako celok je obvykle možné len po určitú hranicu - dokiaľ rozsah roblému resp. jeho zložitosť nepresiahne schopnosti riešiteľa či riešiteľov a možnosti nástrojov a metód, ktoré pritom používajú.

Akonáhle sa určitý problém stáva príliš zložitým, je vhodné previesť jeho dekompozíciu - rozdeliť ho na niekoľko ďalších problémov, ktoré by bolo možné riešiť samostatne a nezávisle na sebe.

Dobrým príkladom problému, ktorý je príliš veľký na to, aby bolo únosné ho riešiť ako jediný veľký problém, je otázka zaistenia základných funkcií počítačovej siete. Iste si tu ľahko predstaviť, že sa jedná predovšetkým o otázku základného programového vybavenia siete, ktoré bezprostredne ovláda technické prostriedky siete - sieťový hardware, tj. najrôznejšie komunikačné vybavenie, uzlové počítače atd. - a ich prostredníctvom zaisťuje chod celej siete ako
takej.


Vzhľadom k charakteru počítačových sietí a k povahe úkolov, ktoré je treba zaistiť, sa ako najvhodnejšie ukázala byť dekompozícia základného programového vybavenia siete na hierarchicky usporiadané vrstvy (layers). Každá vrstva má na starosti zaistenie presne vymedzeného okruhu úkolov. Mechanizmy, pomocou ktorých tieto úkoly zaisťuje, potom ponúkajú k využitiu ako svoje služby vrstve bezprostredne vyšší. Napríklad vrstva, ktorá zaisťuje prenos jednotlivých bitov, môže ponúkať svoje služby bezprostredne vyššej vrstve, ktorá s jej pomocou prenáša celé bloky dát a pod. V obecnom prípade teda každá vrstva ponúka určitý repertoár služieb vrstve bezprostredne vyššej, a k realizácii týchto služieb sama využíva služby vrstvy bezprostredne nižšej.

Predstava o tom, koľko samostatných vrstiev vymedziť a aké im zveriť úkoly, tvorí tzv. vrstvový model (layered model). Názorov na to, ako by taký vrstvový model mal vypadať, môže byť samozrejme celá rada.

Rozdelenie na hierarchické vrstvy v rámci vrstvového modelu ešte samo o sebe nezaisťuje hlavný efekt dekompozície jedného veľkého problému na niekoľko ďalších problémov - možnosť riešiť tieto ďalšie problémy samostatne a nezávisle na sebe. K tomu je nutné ešte stanoviť presné pravidla vzájomnej súčinnosti susedných vrstiev - teda definovať presné rozhranie (interface) medzi jednotlivými vrstvami. Súčasťou tejto definície musí byť napr. presné vymedzenie jednotlivých služieb, spôsob ich volania, počty parametrov atď.

Akonáhle sú známe úkoly, ktoré má určitá vrstva riešiť, a je tak isto presne definované jej rozhranie s dvoma susednými vrstvami, je možné začať uvažovať o spôsobe, ako zaistiť tie úkoly, ktoré boli vrstve zverené. Tu je dobré si uvedomiť, že každá vrstva síce využíva služby vrstvy bezprostredne nižší a sama ponúka svoje služby vrstve bezprostredne vyššej, jej partnerom pri komunikácii v sieti je ale tá vrstva, ktorá sa na inom uzlovom počítači nachádza na rovnakej úrovni hierarchie vrstiev . Tieto rovnako rozľahlé vrstvy musia byť spolu dohovorené na spoločných pravidlách vzájomnej komunikácii, ktoré tak isto musia dôsledne dodržovať.

Súbor pravidiel, ktoré rovnako rozľahlé vrstvy vrstvového modelu používajú pri vzájomnej komunikácii, tvorí tzv. protokol.

Ku každej vrstve v rámci určitého vrstvového modelu sa teda vzťahuje určitý protokol, podľa ktorého príslušná vrstva pracuje. Pre vrstvu však môže pripadať v úvahu viacej rôznych protokolov - rovnaké úkoly totiž môžu byť často zaisťované rôznymi spôsobmi.

K určitému vrstvovému modelu, ktorý definuje spôsob rozčlenení na vrstvy, teda môže existovať celá sústava protokolov (protocol suite), v rámci ktorej môže pre niektoré vrstvy pripadať v úvahu niekoľko vzájomne alternatívnych protokolov. Napríklad pre naše dve citované vrstvy bude obvykle existovať viacej rôznych protokolov podľa toho, či sú k prenosu využívané.

Akonáhle je pre každú vrstvu vybraný jeden konkrétny protokol, vzniká tzv. sústava protokolov (protocol stack), ktorá presne odpovedá hierarchickému členeniu na jednotlivé vrstvy.

Navrhnúť rozčlenenie základného programového vybavení na jednotlivé vrstvy, vymedziť úkoly, ktoré by tieto vrstvy mali vykonávať a stanoviť protokoly, ktoré by sa pritom mali používať - to všetko dáva dosť ucelenú predstavu o tom, ako by počítačová sieť mala vypadať a ako by mala fungovať. Na základe tejto ucelenej predstavy, ktorá tvorí architektúru siete (network architecture), je len možné uvažovať o konkrétnej implementácii.

Rozdelenie základného programového vybavenia siete na vrstvy a ich samostatné a nezávislé realizácie má vedľa rozdelenia jedného veľkého problému na niekoľko menších, ľahšie zvládnuteľných častí, ešte jednu veľmi významnou výhodu. Tou je možnosť jednoduchšie prispôsobenie zmenám - stačí vždy vymeniť jen tie vrstvy, ktorých sa zmena týka, a ostatné ponechať nezmenené.

 

 
Copyright © 2003 Blško