Vyšlo v týdeníku Computerworld č. 30/94 v roce 1994
Vytištěno z adresy: http://www.earchiv.cz/a94/a430c120.php3

Protocol

Ne nadarmo se říká, že když si dva lidé mají porozumět, musí mluvit stejnou řečí. Ale to bohužel ještě nestačí. Může se totiž stát, že každý z nich dokáže správně identifikovat jednotlivá slova, která mu druhý říká, ale význam těchto slov i celých vět mu zcela uniká. Pak je ovšem prakticky vyloučeno, aby jeden předal druhému nějakou užitečnou zprávu, nebo dokonce aby oba prošli něčím, co by odpovídalo vzájemnému dialogu - postupnému předávání jednotlivých dílčích zpráv, na které druhá strana určitým způsobem reaguje a odpovídá, což zase vyvolá určitou reakci protistrany atd.

Má-li být takovýto vzájemný dialog možný, musí být obě strany předem dohodnuty na určitých pravidlech ohledně techniky vzájemné komunikace (například na tom, že si nebudou vzájemně skákat do řeči), musí používat taková slova a slovní spojení, jejichž významu dostatečně rozumí, stejně tak jako jejich skládání do větších celků (vět), a musí mít také určitým způsobem promyšleno či jinak předem dáno, jak na ně budou reagovat.

Ve světě počítačů takovémuto dialogu odpovídá vzájemná interakce dvou programových entit (nejspíše tedy samostatných procesů), které vzájemně komunikují prostřednictvím výměny vhodných zpráv či dat. Také zde musí být obě strany předem dohodnuty na tom, kdy a jak si budou něco předávat, v jakém tvaru si to budou předávat a jaký význam tomu budou přisuzovat (zda půjde o příkazy, stavové informace, či jiná data apod.). V neposlední řadě musí mít obě strany jasno i v tom, jak mají reagovat na nejrůznější stavy či situace, ke kterým bude v průběhu vzájemné komunikace docházet. Všechna tato "pravidla hry", která jsme si právě vyjmenovali, pak dohromady tvoří tzv. protokol (protocol).

S protokoly se nejčastěji setkáváme v prostředí počítačových sítí, kde řídí vzájemnou komunikaci programových entit (procesů), nacházejících se na různých uzlových počítačích, méně často pak i v souvislosti se vzájemnou komunikaci procesů, které koexistují vedle sebe na témže počítači ve vhodném víceúlohovém prostředí.

Obecně bychom za protokol mohli považovat jakákoli konzistentní pravidla vzájemné komunikace, ale v praxi se tento pojem zužuje jen na případ, kdy má být vzájemnou komunikací dosaženo určitého konkrétního cíle. Zde je ovšem dobré si uvědomit, že právě v případě počítačových sítí bývá software, který zajišťuje jejich fungování, rozdělen do určitého počtu vrstev, a stejně tak jsou jednotlivým vrstvám přiřazovány i konkrétní protokoly. Každá vrstva totiž má stanoveno, jaké úkoly má plnit - typicky ve spolupráci se stejnolehlými vrstvami jiných uzlových počítačů -, a protokol je pak konkrétním vyjádřením "pravidel hry", které přitom obě komunikující strany uplatňují.

Úkoly, které připadají určité vrstvě, je většinou možné zajistit různými způsoby. Tomu pak odpovídá to, že pro danou vrstvu existuje více alternativních protokolů, které těmto různým způsobům dosažení téhož cíle odpovídají. Má-li například síťová vrstva za úkol doručovat datové pakety od odesilatele až ke koncovému adresátovi přes případné mezilehlé uzly (není-li mezi oběma přímé spojení), pak to může dělat například tak, že si nejprve najde vhodnou cestu až ke konečnému adresátovi a všechny datové rámce pak následně posílá takto nalezenou cestou, nebo to může dělat i tak, že pro každý jednotlivý paket hledá nejvhodnější cestu znovu. V obou případech se ale příslušná komunikace bude řídit jinými pravidly, resp. bude vycházet z jiného přenosového protokolu (v prvním případě z protokolu pro tzv. spojovaný přenos, v druhém případě pak z protokolu pro tzv. nespojovaný přenos). Oba protokoly přitom "patří" do téže vrstvy (v daném případě do vrstvy síťové, tzn. jde o "síťové" protokoly) a jejich alternativnost je třeba chápat tak, že pro každý jednotlivý "dialog" mezi dvěma stranami je možné použít vždy jen jeden z nich. Nic ovšem v principu nebrání tomu, aby si obě strany nejprve vybraly, resp. aby na určité vrstvě bylo potenciálním zájemcům nabízeno více druhů služeb, realizovaných podle různých protokolů. Ty pak dokonce ani nemusí být alternativní (ve výše uvedeném smyslu), neboť náplní práce některých vrstev může být též poskytování více jednotlivých služeb, které se navzájem nevylučují.