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

TCP/IP a vzájemné propojování sítí

Způsob, jakým je v referenčním modelu ISO/OSI řešena otázka vzájemného propojování sítí, jsme si naznačili ve 41. dílu našeho seriálu. Z nejrůznějších materiálů o referenčním modelu však lze vycítit, že tato problematika do něj byla zapracována spíše až na poslední chvíli, a rozhodně nepatří mezi nejsilnější stránky celého referenčního modelu ISO/OSI. V případě TCP/IP je tomu jinak - vzájemné propojování sítí stejného i odlišného typu bylo jedním z výchozích předpokladů celé soustavy protokolů TCP/IP, a je v ní také řešeno mnohem systematičtěji, než v referenčním modelu ISO/OSI.

Obrázek 43.1.
Obr. 43.1: Vzájemně propojené sítě v síťovém modelu TCP/IP
a/ z pohledu uživatele (resp. aplikační a transportní vrstvy)
b/ skutečná topologie
Filosofie TCP/IP od začátku usiluje o co nejuniverzálnější propojení sítí různých typů - od lokálních sítí typu Ethernet, Token Ring apod., přes veřejné datové sítě až po rozlehlé sítě celosvětového dosahu. Klade si přitom za cíl umožnit každému počítači komunikovat s kterýmkoli jiným počítače, bez ohledu na to, zda mezi nimi existuje přímé spojení, nebo zda jsou například oba uzly různých sítí, které jsou vzájemně propojeny jednou nebo několika dalšími sítěmi. Výsledkem je pak jediná soustava vzájemně propojených sítí, v terminologii TCP/IP označovaná obecně jako internet (s malým "i", viz též 39. díl našeho seriálu). Z pohledu uživatele by však vnitřní struktura této soustavy sítí měla být irelevantní - uživatelé, resp. jejich aplikační programy, se mohou na celý internet dívat (podle obrázku 43.1 a/) jako na jedinou velkou síť, ke které jsou připojeny jednotlivé koncové počítače - v terminologii TCP/IP označované jako hostitelské počítače (host computers, hosts).

Brány, čili IP směrovače

Ve skutečnosti je ovšem výsledná soustava - internet - stále jen konglomerátem (dílčích) sítí stejného či různého typu, vzájemně propojených pomocí propojovacích zařízení. Tato propojovací zařízení se přitom v terminologii TCP/IP označují jako brány (gateway), viz obrázek 43.1 b/. Podobně jako referenční model ISO/OSI, předpokládají i protokoly TCP/IP, že propojení jednotlivých dílčích sítí bude realizováno na úrovni síťové vrstvy. Podle obvyklých definic, které jsme si uvedli ve 40. dílu našeho seriálu, jsou pak ale brány (v terminologii TCP/IP) ve skutečnosti spíše směrovači (routers). Tento dosti nepříjemný terminologický konflikt se některé novější odborné prameny snaží řešit zavedením výstižnějšího termínu IP router (tj. IP směrovač).

Úloha síťové vrstvy

Je to tedy právě síťová vrstva (resp. tzv. IP vrstva, realizovaná protokolem IP, viz minule), která v síťovém modelu TCP/IP zajišťuje potřebné směrování mezi jednotlivými dílčími sítěmi, a vyšším vrstvám tak vytváří iluzi jediné homogenní sítě dle obrázku 43.1 a/. Sama však musí pracovat se skutečnou vnitřní strukturou resp. způsobem vzájemného propojení (sama tedy pracuje s představou dle obrázku 43.1 b/).

Obrázek 43.2.
Obr. 43.2.: Představa brány a ovladačů na úrovni vrstvy síťového rozhraní
Síťová vrstva se však musí vyrovnávat i s konkrétními odlišnostmi jednotlivých dílčích sítí - například s odlišným charakterem adres, s různou maximální velikostí přenášených paketů resp. rámců a jejich formátem, s odlišným charakterem poskytovaných přenosových služeb (spojovaných či nespojovaných) apod. Pro každou síť či každý přenosový kanál, na který je brána připojena, má samostatný ovladač na úrovni vrstvy síťového rozhraní (viz obrázek 43.2.).

Ovladač na úrovni vrstvy síťového rozhraní dokáže odstínit síťovou vrstvu od konkrétního způsobu ovládání příslušné sítě a přesného formátu datových rámců. Není ovšem již v jeho silách zastřít před síťovou vrstvou rozdíl v používaném mechanismu adresování, resp. zajistit používání jednotných adres ve všech dílčích sítích. Tento jednotný způsob adresování může zajistit až síťová vrstva.

Jednotná abstrakce

Síťová vrstva, resp. protokol IP, který se pro její realizaci používá, vytváří jednotnou abstrakci všech dílčích sítí, která umožňuje pracovat s jediným typem virtuální sítě, namísto s více či méně odlišnými dílčími sítěmi. Tato jednotná abstrakce spočívá nejen v zavedení jednotného způsobu adresování, ale také v jednotném formátu datových paketů, používaných na úrovni síťové vrstvy, tzv. IP datagramů (IP datagrams), a v poskytování jednotné přenosové služby - nespolehlivé nespojované (datagramové) služby.

IP adresy

Adresy, které protokol IP zavádí (a které jsou proto označovány jako tzv. IP adresy), jsou 32-bitové. Z pohledu transportní a aplikační vrstvy je lze interpretovat jako lineární (resp. jednosložkové) adresy - což odpovídá představě jediné homogenní sítě dle obrázku 43.1. a/. Na úrovni síťové vrstvy se ale interpretují jako dvousložkové, tvořené číslem resp. adresou hostitelského počítače, a číslem resp. adresou (dílčí) sítě, ve které se tento hostitelský počítač nachází (tato interpretace pak odpovídá představě vzájemně propojených dílčích sítí dle obrázku 43.1. b/). Přesnému formátu a významu IP adres se budeme ještě věnovat v samostatném dílu našeho seriálu.

Je dobré si znovu zdůraznit, že IP adresy jsou pouze abstraktními adresami, které musí být posléze převedeny na skutečné fyzické adresy. Kdykoli totiž ovladač na úrovni vrstvy síťového rozhraní dostane nějaká data k odeslání, musí spolu s nimi dostat i konkrétní fyzickou adresu, na kterou je má odeslat. Sám totiž s IP adresami nepracuje. Jde-li například o lokální síť typu Ethernet, dostane síťová vrstva (od vrstvy transportní) adresu cílového hostitelského počítače ve formě 32-bitové IP adresy, ale příslušný ovladač vrstvy síťového rozhraní musí dostat 48-bitovou Ethernetovou adresu. K mechanismu, kterým se v TCP/IP sítích zjišťuje korespondence mezi IP adresami a konkrétními specifickými adresami, se samozřejmě vrátíme ještě podrobněji.

IP datagramy

Obrázek 43.3.
Obr. 43.3.: Přenos dat při existenci brány mezi sítěmi
Podobně jako jednotný formát adres a způsob adresování, zavádí protokol IP i jednotný formát přenášených dat na úrovni síťové vrstvy - již výše zmíněné IP datagramy. Jde o datové pakety, označované jako datagramy proto, že jsou přenášeny pomocí nespojované (též: datagramové) síťové přenosové služby.

Na úrovni vrstvy síťového rozhraní jsou tyto datagramy přenášeny pomocí takových rámců, se kterými příslušná dílčí síť pracuje. Tyto se ovšem v obecném případě síť od sítě liší!

Význam přenášených dat na úrovni jednotlivých vrstev ilustruje obrázek 43.3.: zatímco aplikační a transportní vrstvy vůbec "neví" o existenci jednotlivých dílčích sítí (a jako koncoví účastníci přenosu si tak předávají vždy přesně stejný tvar paketů, resp. zpráv), na úrovni vrstvy síťového rozhraní se přenáší identické rámce jen v jednotlivých dílčích sítí. V každé z nich je pak přenášen IP datagram vždy stejného formátu, který se ovšem přeci jen v něčem liší - například v hodnotě čítače, který vyjadřuje životnost paketu (což je součást mechanismu, který má zabránit případnému zacyklení).