Protokolový zásobník

Schematická vyobrazení protokolového zásobníku.

Protokolový zásobník je implementace sady protokolů pro počítačové sítě. Oba termíny se často používají jako synonyma, ale přesně řečeno, sada protokolů je definice protokolů, zatímco protokolový zásobník je jejich softwarová implementace[1].

Jednotlivé protokoly v sadě bývají navrženy s určitou jednotící myšlenkou, což usnadňuje návrh a implementaci. Modularizace usnadňuje návrh a implementaci. Protože protokolový modul typicky komunikuje se dvěma dalšími moduly, celá sada je obvykle strukturována do vrstev, odkud pochází název zásobník protokolů. Nejnižší protokol je vždy „nízkoúrovňový“ a pracuje s fyzickým hardwarem. Každá vyšší vrstva přidává další vlastnosti. Uživatelské aplikace obvykle pracují pouze s nejvyšší vrstvou (viz také Referenční model ISO/OSI)[2].

V praktické implementaci jsou protokolové zásobníky často rozděleny na tři hlavní části: část pro přístup k mediu, transportní část a aplikační část. Určitý operační systém nebo platforma má obvykle dvě dobře definovaná softwarová rozhraní: jedno mezi vrstvou pro přístup k médiu a transportní vrstvou a druhé mezi transportní a aplikační vrstvou.

Rozhraní mezi vrstvou pro přístup k médiu a transportní vrstvou definuje, jak software transportního protokolu používá určité typy médií a hardwaru („ovladače karet“). Tato úroveň rozhraní například definuje, jak transportní software TCP/IP využívá hardwarových služeb sítě Ethernet. V prostředí Microsoft Windows a DOS patří k těmto rozhraním ODI a NDIS.

Rozhraní mezi aplikační a transportní vrstvou definuje, jak aplikační programy využívají transportní vrstvu. Tato úroveň rozhraní například definuje, jak WWW prohlížeč komunikuje s transportním softwarem TCP/IP. K těmto rozhraním patří Berkeley sockets a Systém V STREAMS ve světě Unixu a Winsock v operačních systémech firmy Microsoft.

Popis obecné sady protokolů

  T ~ ~ ~ T
 [A]     [B]_____[C]

Budeme uvažovat tři počítače: A, B a C. Počítače A a B jsou vybaveny rádiovou komunikační kartou a mohou spolu komunikovat pomocí rádiových vln s použitím vhodného síťového protokolu (například IEEE 802.11). Počítače B a C jsou propojený kabelem, pomocí něhož si mohou vyměňovat data (opět s použitím vhodného protokolu například Ethernet). Ale žádný z těchto protokolů nebude schopen dopravit informace z A na C, protože tyto počítače nejsou připojeny do téže sítě. Pro jejich „propojení“ je potřeba mezisíťový protokol.

Bylo by možné zkombinovat oba protokoly a vytvořit výkonný třetí, použitelný pro komunikaci po kabelu i pro bezdrátové přenosy, ale různé super-protokoly by byly potřebné pro všechny možné kombinace protokolů. Snazší je ponechat základní protokoly nezměněné a navrhnout protokol, které bude využívat služby obou z nich (jako například internetový protokol), tak že bude patřit do protokolového zásobníku obou protokolů. Mezisíťový protokol bude komunikovat s každým ze základních protokolů jejich jednodušším jazykem; základní protokoly spolu komunikovat přímo nebudou.

Pokud aplikace na počítači A chce poslat data na počítač C, požadavek převezme protokol nejvyšší vrstvy, který ví, že počítač C je dosažitelný přes počítač B. Proto použije bezdrátový protokol pro vyslání datového paketu na počítač B. Na počítači B obsluha nižších vrstev předávají paket nahoru až dorazí do obsluhy mezisíťového protokolu, který zjistí, že B není konečný cíl, a použije funkce nižších vrstev ve druhém zásobníku pro přenos dat kabelem na počítač C. Na počítači C je přijatý paket opět předán protokolu vyšší vrstvy, který zjistí, že adresát je C, a předá paket protokolu vyšší vrstvy nebo příslušné aplikaci. I na nejvyšší úrovni může být protokol, který předá přijatá data k dalšímu zpracování.

Příklad protokolového zásobníku a odpovídajících vrstev:

ProtokolVrstva
HTTPAplikační
TCPTransportní
IPSíťová
EthernetLinková
IEEE 802.3uFyzická

Příklad implementace

Amitcp.svg

Související články

Reference

V tomto článku byl použit překlad textu z článku Protocol stack na anglické Wikipedii.

  1. What is a protocol stack? [online]. http://www.webopedia.com: WEBOPEDIA [cit. 2010-02-21]. Dostupné online. 
  2. Georg N. Strauß. The OSI Model, Part 10. The Application layer [online]. http://www.ika-reutte.v: Ika-Reutte, 2010-01-09 [cit. 2010-02-21]. Dostupné online. [nedostupný zdroj]

Média použitá na této stránce

IP stack connections.svg
Autor: en:User:Kbrose, Licence: CC BY-SA 3.0
Operation of the Internet Protocol suite between two Internet hosts connected via two routers (top) and the corresponding layers of the IP suite in use at each hop (bottom). All hosts use the Internet Layer to route packets to next hop solely based on the IP address while only the hosts need the upper layers to send or receive application data. At the Transport Layer and Application Layer the hosts can be said to have virtual connections between them (if using a connection-oriented transport protocol), but with peer-to-peer, the other layers will only know about the next-hop neighbor.
Amitcp.svg
Autor: Polluks, Licence: CC BY-SA 3.0
AmiTCP structure