Vyšlo v týdeníku CHIPweek č. 18/95, 30. srpna 1995
Vytištěno z adresy: http://www.earchiv.cz/a95/a518k130.php3

Protocol stack

Jedním z největších jazykových oříšků je pro překladatele i pro autory původních českých odborných textů vhodný překlad anglického "protocol stack". O co vlastně jde?

Je notoricky známé, že počítačové sítě si libují ve vrstvách - představy o tom, kolik by jich mělo správně být, se sice různí, ale vždy se v souvislosti se sítěmi, jejich funkcemi i konkrétní implementací s určitým počtem vrstev setkáte. Důvodem je skutečnost, kterou lidé pochopili už velmi dávno, když o počítačích a počítačových sítích neměli ještě ani tušení - totiž že jeden velký problém se vyplatí rozdělit na několik menších, snáze řešitelných problémů.

V konkrétním případě počítačových sítí se pak k této motivaci přidává ještě další významná motivace: při vhodném rozdělení síťových funkcí do jednotlivých vrstev a při vhodném návrhu rozhraní mezi jednotlivými vrstvami nemusí být konkrétní způsob naplnění funkcí jedné vrstvy závislý na způsobu naplnění funkcí jiné vrstvy. Jinými slovy: změna konkrétní implementace jedné vrstvy nemusí vyvolat potřebu změny v jiné vrstvě. Už tušíte ty báječné důsledky? Například vaším zprávám v rámci elektronické pošty může být srdečně jedno, zda "běhají" tu po kusu kovového drátu, tu po optickém vlákně, či zda se šíří éterem po mikrovlnném spoji, či dokonce přeskakují mezi Zemí a kolem ní obíhající družicí.

Pořádek ovšem musí být, a tak každá jednotlivá vrstva musí mít přesně definováno, co přesně má zajistit. Ovšem jak konkrétně toho dosáhne, to už pak záleží na ní - přesněji na "pravidlech hry", která jsou formálně specifikovány jako tzv. protokoly. Co jeden konkrétní způsob naplnění funkcí určité vrstvy, to jeden protokol.

Pro každu jednotlivou vrstvu tedy mohou (ale nemusí) existovat alternativní způsoby naplnění jejích funkcí, resp. alternativní protokoly. Například na nejnižší úrovni (na úrovni nejnižší vrstvy) se samozřejmě liší konkrétní přenosové protokoly, určené pro optická vlákna, kroucenou dvoulinku, koaxiální kabel a jiná přenosová média. Někdy je ale jedna vrstva "obydlena" i více protokoly, které nejsou vzájemně alternativní, ale každý z nich implementuje určitou část funkcí, požadovaných po dané vrstvě. Například o jednu či dvě vrstvy výše (nad nejnižší vrstvou) může mít jeden protokol na starosti vlastní přenos celých bloků dat (paketů), zatímco jiný protokol má na úrovni téže vrstvy na starosti šíření informací o tom, kudy vede jaké cesta, a kudy je tedy třeba zmíněné bloky dat přenášet, aby se dostaly ke svému cíli.

V praxi je tedy vždy nutné implementovat tolik protokolů, kolik je třeba pro pokrytí funkcí všech uvažovaných vrstev - pokud jsou některé z těchto protokolů na úrovni určité vrstvy vzájemně alternativní, stačí implementovat jen jeden z nich. Nejsou-li vzájemně alternativní, musí být imlementovány všechny tak, aby byly pokryty všechny funkce příslušné vrstvy. No a když se tak stane, vzniká to, čemu se v angličtině říká "protocol stack".

Každý "protocol stack" je vždy příslušný jedné konkrétní síťové architektuře, neboli jedné ucelené představě o tom, kolik má být vrstev, a co má která dělat. Příkladem může být architektura TCP/IP, jejíž konkrétní implementace pak představuje tzv. "TCP/IP protocol stack". Podobně firma Novell si prosadila vlastní představu a vyvinula vlastní sadu protokolů (mj. IPX a SPX), která pak nachází své konkrétní naplnění v podobě tzv. "protocol stack-u IPX/SPX". Ještě jiný "protocol stack" pak může představovat implementace protokolů NETBIOS a NETBEUI atd.

Po praktické stránce je jistě zajímavá skutečnost, že na jednom počítači může vedle sebe koexistovat i několik různých "protocol stack-ů" - pokud jsou vhodně napsány a nesnaží se chovat monopolisticky (a urvat všechno jen pro sebe). Díky tomu pak jeden a tentýž počítač může současně spolupracovat s Unixovými počítači i se serverem Novell NetWare, serverem Windows For Workgroups či Windows NT apod.

Vraťme se ale nyní zpět k jazykovému aspektu: jak správně překládat anglické "protocol stack"? Jednoznačné doporučení zřejmě neexistuje. Doslovný překlad "protokolový zásobník" není moc šikovný a užívaný, nehledě již na skutečnost, že nemusí vždy jít o přísně hierarchické uspořádání protokolů. Věcně správnější by asi byl překlad ve smyslu "sestava protokolů", ale ani to není zdaleka optimální. Nemáte někdo lepší nápad?