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

Transportní vrstva

Hlavním úkolem transportní vrstvy referenčního modelu ISO/OSI je poskytovat efektivní přenosové služby své bezprostředně vyšší (tj. relační) vrstvě. Tyto služby přitom mohou mít spojovaný (connection-oriented) i nespojovaný (connectionless) charakter. Stejný charakter a stejnou podstatu však mají i služby síťové vrstvy, které transportní vrstva sama využívá. Do značné míry analogické jsou v obou vrstvách i mechanismy adresování a řízení toku dat. Zákonitě se pak nabízí otázka, proč je vlastně nutná samostatná transportní vrstva, když alespoň na první pohled nenabízí nic principiálně jiného, než vrstva síťová?

Obrázek 35.1.
Obr. 35.1.: Představa průchodu dat vrstvami
Odpověď na tuto otázku je skryta v obrázku, který jsme si ukázali již ve 32. dílu, a který nyní použijeme znovu jako obrázek 35.1. Ukazuje totiž, že komunikace dvou koncových účastníků se transportní vrstva zúčastňuje jen na obou koncových počítačích, zatímco v jednotlivých meziuzlech se na přenosu podílí jen tři nejnižší vrstvy - fyzická, linková a síťová. V případě rozlehlých sítí jsou tyto mezilehlé uzly (též: uzly IMP, viz 32. díl) často jen přepojovacími uzly v rámci komunikační podsítě, a vyšší vrstvy u nich nemusí být vůbec realizovány. Tak je tomu například u většiny veřejných datových sítí, které jsou provozovány nejrůznějšími spojovými organizacemi. A zde je právě kámen úrazu - je-li komunikační podsíť majetkem spojové organizace, musí uživatelé a jejich koncové (hostitelské) počítače vystačit s tím, co jim komunikační podsíť prostřednictvím své síťové vrstvy nabízí. Chtějí-li něco jiného - například spolehlivou přenosovou službu místo nespolehlivé, spolehlivější místo méně spolehlivé, spojovanou místo nespojované apod. - musí si vše potřebné zajistit sami. A to právě v transportní vrstvě.

K čemu slouží transportní vrstva?

Transportní vrstva je tedy v referenčním modelu ISO/OSI především proto, aby vyšším vrstvám poskytovala kvalitnější přenosové služby, než jaké ve skutečnosti dokáže poskytovat vrstva síťová. Současně s tím pak může uživatele resp. vyšší vrstvy odstiňovat od konkrétních specifik používané komunikační podsítě, od její přenosové technologie, a především pak od všech nedokonalostí podsítě. Transportní vrstva je tedy vlastně rozhraním mezi poskytovateli přenosových služeb (komunikační podsítí) a jejich uživateli (nejvyššími třemi vrstvami). Je také "poslední instancí", která může změnit nespojovaný charakter poskytované přenosové služby na spojovaný a naopak. To je možné udělat také na úrovni síťové vrstvy (jak jsme si naznačili ve 33. dílu našeho seriálu), nikoli však již na úrovni vyšších vrstev, které jsou uživateli těchto služeb (viz též obrázek 35.2.)

Síťové vs. transportní spojení

Obrázek 35.2.
Obr. 35.2.: Spojované a nespojované služby v ISO/OSI modelu
K lepšímu pochopení úlohy transportní vrstvy nám pomůže bližší přiblížení rozdílu mezi transportním a síťovým spojením. Transportní spojení (transport connection) je spojení, které vzniká mezi dvěma entitami transportní vrstvy (v případě spojovaných služeb). Ve skutečnosti je však realizováno prostřednictvím nižších vrstev, tedy prostřednictvím síťových spojení (network connections) jako spojení mezi dvěma entitami na úrovni síťové vrstvy. Standardně se každé jednotlivé transportní spojení realizuje prostřednictvím jednoho síťového spojení. Pokud ale transportní spojení požaduje vyšší přenosovou kapacitu, než jakou dokáže zajistit jedno síťové spojení, může být jedno transportní spojení zajišťováno pomocí více spojení síťových. Transportní vrstva se pak stará o rozdělení přenášených dat mezi jednotlivá síťová spojení tak, aby to pro vyšší vrstvy bylo transparentní (tj. neviditelné).

Může však nastat i opačný případ. Pokud je zapotřebí vytvořit více transportních spojení s relativně malými nároky na přenosovou kapacitu, může být vždy několik z nich realizováno prostřednictvím jediného síťového spojení. Takováto potřeba nastává např. při použití více terminálů, z nichž každý vyžaduje samostatné transportní spojení se vzdálených počítačem. Jsou-li ale tyto terminály používány spíše příležitostně a jsou-li fyzicky blízko sebe, může být dosti neekonomické zřizovat pro každý z nich samostatné síťové spojení. Potřebné přepínání (multiplexování) jednoho sdíleného síťového spojení mezi více transportních spojení pak zajišťuje opět transportní vrstva.

Kvalita služeb síťové vrstvy

Pro transportní vrstvu je velmi podstatné, jakou kvalitu může předpokládat u služeb, které jí poskytuje síťová vrstva. Této kvalitě pak musí být přizpůsobeny přenosové protokoly transportní vrstvy, mají-li vyšší vrstvy odstiňovat od všech specifik a nedokonalostí komunikační podsítě resp. síťové vrstvy.

Služby síťové vrstvy se v této souvislosti rozdělují na tři kategorie - viz tabulka 35.3. Do kategorie A patří síťové služby, které ztrácí či přenáší s chybou jen zcela zanedbatelné procento paketů, a u kterých prakticky nedochází k výpadkům již jednou navázaných spojení. Takovéto síťové služby lze považovat za (téměř) dokonalé, a transportní vrstva pak má při jejich použití nejméně práce. Kvality kategorie A dosahují síťové služby některých lokálních sítí, zatímco v případě rozlehlých sítí je kategorie A vzácnější než šafrán.

Kategorie Vlastnosti
A bez chyb při přenosu paketů a bez výpadků spojení
B bez chyb při přenosu paketů, s výpadky spojení
Cs chybami při přenosu paketů, s výpadky spojení
Tabulka 35.3. Kategorie přenosových služeb na úrovni síťové vrstvy
Do kategorie B spadají síťové služby, které jsou z hlediska přenosu jednotlivých paketů stejně spolehlivé jako kategorie A, ale u kterých dochází častěji k výpadkům spojení. Tedy k situacím, kdy z různých důvodů (přetížení, poruchy hardwaru, chyby v softwaru apod.) dochází k předčasnému ukončení (výpadku) dříve navázaného spojení. Transportní vrstva se s tím dokáže účinně vyrovnat (opětovným navázáním nového síťového spojení) a existenci výpadků před vyššími vrstvami skrýt. Má s tím však samozřejmě "více práce", než v případě síťových služeb kategorie A. Do kategorie B spadá obvykle většina veřejných datových sítí na bázi doporučení X.25.

Do kategorie C pak patří všechny ostatní síťové služby. Transportní vrstva je musí považovat za nespolehlivé, a potřebnou spolehlivost zajistit sama. Protokoly transportní vrstvy, které musí využívat služby této kategorie, jsou pak samozřejmě nesložitější a nejkomplikovanější.

Třídy transportních protokolů

Referenční model ISO/OSI se vyrovnává s odlišnou kvalitou služeb na úrovni síťové vrstvy zavedení pěti různých tříd přenosových protokolů na úrovni transportní vrstvy (transportních protokolů) - viz tabulka 35.4.

  • Do třídy 0 (TP0, Transport Protocol class 0) patří transportní protokoly, které využívají síťové služby kategorie A. Jsou jednoduchou "obálkou" nad příslušnými síťovými protokoly, a navíc zajišťují prakticky jen nezbytné navazování a rušení transportních spojení.

  • Třída 1 (TP1) předpokládá použití síťových služeb kategorie B, a musí se tedy umět vyrovnat s případnými výpadky spojení na úrovni síťové vrstvy.

  • Třída 2 (TP2) předpokládá opět použití síťových služeb kategorie A, tedy takových, které může považovat za dostatečně spolehlivé - stejně jako v případě třídy 0. Transportní protokoly třídy 2 jsou však navíc schopné zajistit potřebné multiplexování jednoho síťového spojení mezi více spojení transportních (viz výše).

  • Třída 3 (TP3) je kombinací tříd 1 a 2. Předpokládá síťové služby kategorie B, a dokáže je multiplexovat mezi více spojení transportních.

  • Třída 4 (TP4) je určena pro použití nad síťovými službami kategorie C. Transportní protokoly této třídy musí "počítat s nejhorším", a jsou tedy ze všech transportních protokolů nejsložitější a nejkomplikovanější.

Třída transportních protokolů Kategorie síťových služeb Funkce
TP0A jednoduchá obálka síťových protokolů
TP1 B zotavení z výpadků síťových spojení
TP2 A multiplexování jednoho síťového spojení mezi více transportních spojení
TP3 B multiplexování a zotavení z výpadků
TP4Cdetekce a oprava chyb, zotavení z výpadků
Tabulka 35.4.: Třídy transportních protokolů