zpět do archivu článků |
rejstřík |
předchozí díl |
následující díl
Jiří Peterka: Co je čím ... v počítačových sítích (46):
Směrování v TCP/IP sítích - I.
Další z aspektů, důležitých pro pochopení celkové
filosofie soustavy protokolů TCP/IP, je otázka směrování ve
vzájemně propojených sítích. Z ní jsme si něco naznačili již
ve 44. dílu našeho seriálu, nyní se však touto problematikou
budeme zabývat podrobněji.
 |
Obr. 46.1.: Představa vzájemně propojených sítí
Nejprve si ale připomeňme, jakým způsobem se protokoly
TCP/IP dívají na vzájemně propojené sítě (tzv. internet):
předpokládají, že jednotlivé (dílčí) sítě jsou propojeny
prostřednictvím bran (gateways), označovaných také jako IP
směrovače (IP routers) - viz obrázek 46.1. (srovnej
s obrázkem 43.1.). Vzájemné propojení je přitom takové, že
mezi libovolnými dvěma dílčími sítěmi vždy existuje alespoň
jedna cesta, která ovšem může vést i přes více jiných
dílčích sítí, resp. procházet posloupností bran,
propojujících mezilehlé sítě.
Každá brána je vždy připojena nejméně do dvou dílčích
sítí, a slouží pouze potřebám směrování (a nikoli
k provozování uživatelských aplikací). Tím se brány odlišují
od druhého typu uzlů, které naopak slouží především
k provozování aplikačních programů, a které se
v terminologii TCP/IP označují jako hostitelské počítače
(hosts, host computers). Také hostitelské počítače však
mohou být připojeny do dvou či více dílčích sítí současně
(pak jde o tzv. multi-homed hosts), a mohou tedy fungovat
i jako brány. Přestože se toto řešení v praxi občas používá
(hlavně v akademickém prostředí), není vždy bezproblémové.
Filosofie TCP/IP však velmi ostře rozlišuje mezi
hostitelským počítačem a bránou, a proto i my se přidržíme
představy dvou fyzicky různých zařízení.
Přímé a nepřímé směrování
Obecně lze říci, že na směrování jakožto rozhodování o
tom, kudy dále poslat datový paket, se podílí oba druhy uzlů
TCP/IP sítí, tedy jak brány, tak i hostitelské počítače.
Záměr je ovšem takový, aby se hostitelské počítače zabývaly
směrováním jen v minimální možné míře, a maximum práce
na tomto poli přenechaly bránám.
 |
Obr. 46.2.: Představa přímého směrování
Představme si situaci na obrázku 46.2., kdy hostitelský
počítač A chce odeslat IP datagram hostitelskému počítači B.
Z IP adresy počítače B jednoduchým způsobem rozpozná, že
leží v téže dílčí sítí (viz 44. díl našeho seriálu), a tak
mu IP datagram pošle přímo. Tento případ je v terminologii
TCP/IP označován jako tzv. přímé směrování (direct routing).
Jeho režie je minimální: vzhledem k formátu IP adres (viz
obr. 44.2. ve 44. dílu) je triviální rozpoznat, zda příjemce
leží v téže dílčí síti, a pokud ano, dílčí síť umožňuje
odeslat příslušný datagram jeho koncovému adresátovi přímo.
 |
Obr. 46.3.: Představa nepřímého směrování
Nyní si ale představme situaci na obrázku 46.3., kdy
hostitelský počítač A chce odeslat IP datagram hostitelskému
počítači C. Jelikož z jeho IP adresy rozpozná, že leží
v jiné dílčí síti, pošle datagram bráně G (ve "své" dílčí
síti). Tím úloha hostitelského počítače A jako odesilatele
končí, a další je již na bráně G resp. na celé struktuře
bran, které musí být schopné si datagram postupně předávat
tak dlouho, dokud se nedostane do cílové dílčí sítě, kde pak
může být prostřednictvím přímého směrování odeslán
hostitelskému počítači, který je jeho konečným adresátem.
Právě naznačený případ odpovídá tzv. nepřímému směrování
(indirect routing), ke kterému na rozdíl od směrování
přímého dochází tehdy, jestliže adresát není v téže dílčí
síti jako odesilatel, a ten proto posílá datagram bráně.
Volba mezi více bránami
Vzhledem k tomu, že vzájemně propojené sítě tvoří
souvislý celek, musí být v každé dílčí síti vždy alespoň
jedna brána. Nemusí ovšem být zdaleka jen jedna. Představme
si jednoduchý příklad na obrázku 46.4., kde má hostitelský
počítač A na výběr dvě brány, G1 a G2. Každá z nich by sice
měla být schopna doručit IP datagram kamkoli je třeba, ale
žádná z nich nebude zřejmě optimální pro všechny možné cíle
- k některým vede kratší cesta přes bránu G1, k jiným zase
přes bránu G2. Znalost toho, kdy je výhodnější poslat
datagram bráně G1 a kdy bráně G2, by ale měl mít již
hostitelský počítač A. Je samozřejmě možné, aby tento
hostitelský počítač měl potřebné informace "pevně
zabudovány" ve svých konfiguračních souborech, podle nichž
si pak vytváří své směrovací tabulky. Ve vzájemně
propojených sítích malého rozsahu a s minimem dynamických
změn to je rozumné řešení, v případě větších a častěji se
měnících konglomerátů sítí již nikoli. Zde již je nutný jiný
mechanismus, umožňující provádět dynamickou aktualizaci
směrovacích tabulek hostitelských počítačů podle okamžité
situace.
 |
Obr. 46.4.: Příklad dílčí sítě se dvěma bránami
Filosofie směrování v TCP/IP ale vychází z toho, že
znát nejvhodnější cesty a průběžně reagovat na skutečnou
situaci je úkolem bran, a nikoli hostitelských počítačů.
V soustavě protokolů TCP/IP je proto zabudován mechanismus,
pomocí kterého je celý problém velmi elegantně řešen:
kdykoli nějaká brána zjistí, že některý hostitelský počítač
používá neoptimální cestu, upozorní jej na tuto skutečnost.
Ukažme si to na příkladu (viz opět obrázek 46.4.): nechť
hostitelský počítač A v dílčí síti X pošle bráně G1 IP
datagram, určený počítači C v dílčí síti Y. Brána G1 zná
optimální cestu a ví, že ze sítě X do sítě Y je výhodnější
použít bránu G2. O doručení přijatého datagramu se brána G1
ještě postará, ale současně s tím upozorní hostitelský
počítač A, že další datagramy, směřující do sítě Y, již má
posílat přes bránu G2. Hostitelský počítač A si tuto
informaci zanese do svých směrovacích tabulek, a nadále se
podle ní řídí.
Právě naznačený mechanismus má jeden velmi příjemný
efekt - jednotlivé hostitelské počítače vystačí na počátku
(tj. při svém spuštění) se znalostí jedné jediné brány ve
"své" dílčí síti. Další brány se pak "naučí" používat díky
právě popsanému mechanismu. Ten je v praxi zajišťován
prostřednictvím protokolu ICMP (Internet Control Message
Protocol), který je povinnou součástí protokolu IP, a slouží
obecně pro předávání řídících informací a zpráv o chybách
a nestandardních situacích.
Připomeňme si však ještě jednu významnou skutečnost,
kterou jsme si uvedli již ve 44. dílu našeho seriálu - kvůli
minimalizaci rozsahu směrovacích tabulek je veškeré
směrování v TCP/IP sítích založeno jen na dílčích sítích
jako takových, a nikoli na jednotlivých hostitelských
počítačích (přesněji: na té části IP adres, které
představují adresy dílčích sítí). V našem konkrétním
případě, odpovídajícím obrázku 46.4., to znamená, že
hostitelský počítač A si ve svých směrovacích tabulkách bude
pamatovat pouze to, že nejvýhodnější cesta do sítě Y vede
přes bránu G2, a nikoli že k hostitelskému počítači C se
dostane nejlépe přes bránu G2.
zpět do archivu článků | rejstřík |
předchozí díl |
následující díl
Tento článek může být volně šířen, pokud se tak děje pro studijní účely, na nevýdělečném základě a se zachováním tohoto dovětku. Podrobnosti hledejte zde, resp. na adrese
http://ksi.ms.mff.cuni.cz/~peterka/archiv/copyleft.htm