Vyšlo v týdeníku Computerworld č. 15/92 v roce 1992
Vytištěno z adresy: http://www.earchiv.cz/a92/a215c110.php3

Referenční model ISO/OSI - přenos dat

Ve 23. dílu našeho seriálu jsme si naznačili základní myšlenku, na které je založena funkce všech vrstvových modelů: že každá vrstva využívá služeb vrstvy bezprostředně nižší, a sama nabízí své služby vrstvě bezprostředně vyšší. Upřesněme si nyní tuto obecnou představu právě na příkladu referenčního modelu ISO/OSI a jeho terminologie a ukažme si, jak se projevuje při přenosu dat.

Ten, kdo v určité vrstvě ISO/OSI modelu něco aktivního vykonává, je označován jako entita (entity). Bývá to nejčastěji objekt programové povahy (např. určitý proces), v nejnižších vrstvách to však může být i hardwarový celek (např. V/V řadič apod.). Na úrovni aplikační vrstvy jde o aplikační entity (application entities), na úrovni prezentační vrstvy o prezentační entity (presentation entities) atd. Entity na stejné úrovni, resp. ve stejnolehlých vrstvách se v angličtině označují přívlastkem peer (tj. jako peer entities).

Entity ve vrstvě N implementují služby, které jsou využívány vrstvou N+1, resp. entitami této vrstvy. Vrstva N zde tedy vystupuje jako poskytovatel služby (service provider), zatímco vrstva N+1 je v roli uživatele služby (service user). Vrstva N je však současně i v roli uživatele služeb vůči vrstvě N-1, neboť využívá její služby.

Bezprostředními poskytovateli a uživateli služeb však nejsou vrstvy jako takové, ale jejich entity. Každá entita, která chce nějaké služby využívat, však musí vědět, kam se má pro ně obrátit. Musí tedy existovat jednoznačně identifikovatelná místa v rámci rozhraní mezi jednotlivými vrstvami, jejichž prostřednictvím jsou služby poskytovány, resp. využívány. V terminologii ISO/OSI modelu se tato místa nazývají body poskytování služby (Service Access Points, zkratkou SAP) a jsou opatřena jednoznačnými adresami. Pro snazší představu je dobré využít analogii s telefonní sítí: bod poskytování služby neboli SAP je analogií zásuvky běžné telefonní přípojky, do které lze zapojit telefonní přístroj (odpovídající entitě vrstvy N+1). Chceme-li se pak dovolat na tento telefonní přístroj (poskytnout službu entitě vrstvy N+1), musíme znát příslušné telefonní číslo (adresu bodu SAP).

Obrázek 26.1.
Obr. 26.1.: Představa entit a bodů poskytování služby (SAP)
Každý bod SAP slouží vždy vzájemné komunikaci právě dvou entit ze sousedních vrstev. Nemůže být tedy sdílen více entitami. Každá entita však může poskytovat své služby více entitám prostřednictvím více bodů SAP a stejně tak každá entita může využívat služby více různých entit přes více bodů SAP. Situaci ilustruje obrázek 26.1.

Každá entita, která chce využívat službu jiné entity bezprostředně nižší vrstvy, musí znát nejen potřebný bod SAP, přes který je jí tato služba nabízena, ale musí také znát přesný způsob volání příslušné služby. Ten je samozřejmě pro různé služby různý, vždy však vyžaduje, aby volající předal volanému určitý objem řídicích informací, které jeho požadavek specifikují. V terminologii ISO/OSI modelu je tato řídicí informace označována jako Interface Control Information (ICI). Součástí požadavku pak bývají ještě různá "užitečná" data, označovaná jako Service Data Unit (SDU). Volající entita tedy v obecném případě předává volané entitě přes příslušný bod SAP na rozhraní mezi nimi dvě skupiny informací (tj. ICI a SDU), které dohromady tvoří tzv. datovou jednotku rozhraní (Interface Data Unit, zkratkou IDU) - viz obr. 26.2.

Obrázek 26.2.
Obr. 26.2.: Představa předávání dat mezi vrstvami
Entita, která je poskytovatelem služby a která je příjemcem jednotky IDU, si převezme řídicí informace obsažené v IDU (tj. část ICI). Z ní se dozví, co je od ní požadováno, a podle toho dále naloží s datovou částí (části SDU).

Jedním z nejčastějších požadavků entity ve vrstvě N+1 je žádost o přenos dat stejnolehlé entitě (tj. entitě vrstvy N+1) na jiném uzlovém počítači. Entita vrstvy N, která je o tuto službu požádána, nalezne příslušná data v části SDU přijaté jednotky IDU a snaží se je předat své partnerské entitě na příslušném uzlovém počítači. S touto stejnolehlou entitou komunikuje podle určitého protokolu (viz 23. díl našeho seriálu).

Tento protokol mimo jiné určuje, jak velké "kusy" dat si mohou obě vrstvy posílat a jakými dodatečnými informacemi řídicí povahy musí být tato užitačná data doplněna. Odesílací entita vrstvy N proto rozdělí data z jednotky SDU na tak velké části, jaké jí protokol umožňuje přenášet a připojí k nim potřebné řídicí informace. Tím vzniká tzv. protokolární datová jednotka (PDU, Protocol Data Unit), tvořená kromě užitečných dat (tj. složky SDU) také složkou PCI (Protocol Control Information), který obsahuje informace řídicí povahy, předepsané použitým přenosovým protokolem - viz opět obrázek 26.2.

Obrázek 26.3.
Obr. 26.3.: Průchod přenášených dat vrstvami ISO/OSI modelu
Partnerské entity stejnolehlých vrstev si tedy vzájemně zasílají jednotky PDU (ve formě zpráv, paketů, resp. rámců). Ve skutečnosti to ale doopravdy dělají jen entity fyzické vrstvy, pro které jsou celými jednotkami PDU jednotlivé bity, a které jsou schopné si je navzájem skutečně předávat. Všechny ostatní (tj. vyšší) vrstvy si jednotky PDU vyměňují prostřednictvím entit bezprostředně nižších vrstev - při odesílání se z celé jednotky PDU stávají "užitečná" data (složka SDU). K nim se přidá potřebná řídicí informace (složka ICI) a tím vzniká datová jednotka rozhraní (jednotka IDU), která je přes bod SAP předána entitě bezprostředně nižší vrstvy ... a vše se opakuje až do úrovně fyzické vrstvy.

Průchod uživatelských dat všemi vrstvami ISO/OSI modelu ukazuje obrázek 26.3. Z něj je názorně vidět, jak si každá vrstva na straně odesilatele v závislosti na použitém protokolu přidává k užitečným datům (jednotkám SDU) své řídicí informace (složky PCI) - obvykle ve formě hlavičky, kterou si pak stejnolehlá partnerská vrstva na straně příjemce zase odebírá.