Katedra telekomunikácií, FEI STU Bratislava

Analýza smerovacích algoritmov v počítačových a telekomunikačných sietiach

Distance vector algoritmus

Obsah

Úvod

Distance Vector Algorithms (DVA) je jedným z dvoch základných smerovacích algoritmov používaných v IGP (Interior Gateway Protocol). Idea algoritmu je veľmi jednoduchá. Každý smerovač periodicky zasiela svojím susedom svoju smerovaciu tabuľku. Smerovacia tabuľka je tvorená položkami usporiadaných trojíc - cieľom, adresou nasledujúceho smerovača na ceste do cieľa a vzdialenosťou do cieľa danou počtom smerovačov na tejto ceste (Hop Count). Ak smerovač získa od svojho suseda kópiu jeho smerovacej tabuľky, porovná vzdialenosti svojích ciest so vzdialenosťami ciest prijatých inkrementovaných o 1. Ak je táto nová cesta kratšia, pôvodná je nahradená touto novou s uvedením zodpovedajúceho smerovača ako nasledujúceho na ceste do cieľa.
Tento postup je veľmi ľahko implementovaťeľný, a preto je, predovšetkým v podobe protokolu RIP, veľmi rozšírený. Algoritmus funguje veľmi dobre v relatívne malých sieťach. V sieťach väčšieho rozsahu je problém s jeho konvergenciou a hrozí nebezpečie vzniku nekonzistencie a zacyklenie ciest.

Vlastnosti

DVA je založený na tabuľke najlepších ciest ku každému cieľu. Na vybratie najlepšej cesty sa používa meradlo zvané "metrika". V jednoduchých sieťach sa bežne používa metrika, ktorá vyjadruje počet smerovačov cez ktoré musí správa prejsť. V komplexnejších sieťach metrika reprezentuje celkové oneskorenie správy, cenu posielania, alebo iné veličiny, ktoré môže byť minimalizované.Hlavnou požiadavkou je schopnosť reprezentovať metriku ako sumu cien pre individuálne prechody (Hops).

Nech D(i,j) reprezentuje metriku najlepšej cesty z entity i do entity j. Nech d(i,j) reprezentuje cenu priameho prechodu z entity do entity j. Ak i a j nie sú bezprostrední susedia d(i,j) je nekonečno. Najlepšie ohodnotenie je popísané nasledovne:

D(i,i) = 0 pre všetky i

D(i,j) = min[d(i,k) + D(k,j)] inak

k

Zmena topológie

V praxi smerovače a linky často padajú a vracajú sa späť do prevádzky. K ošetreniu tohto javu je nutné teoretický algoritmus trocha pozmeniť. Teoretický algoritmus si vyžaduje nejakých bezprostredných susedov. Ak sa zmení topológia, môže sa zmeniť aj sada susedov. Algoritmus je závislý na tom, že smerovače oznamujú susedom, keď sa ich metrika zmení. V prípade spadnutia smerovača neexistuje spôsob susedom oznámiť zmenu.

Na ošetrenie problémov tohto druhu sa používajú časové zabezpečenia. V RIP každý smerovač zasiela aktualizačné správy všetkým susedom každých 30 sekúnd. Ak nepočujeme od smerovača 180 sekúnd správu, predpokladá sa, že spadol smerovač alebo sieť. Potom sa cesta označí ako neplatná. Keď počujeme od nejakého suseda, že má platnú cestu do cieľa, neplatná cesta sa nahradí platnou.

RIP spolu s niekoľkými protokolmi tejto triedy, používajú na označenie suseda, ktorý má neplatnú cestu na sieť, špecifickú metrickú hodnotu, ktorá indikuje nedostupný cieľ. Táto hodnota je väčšia ako najväčšia platná očakávaná hodnota. RIP používa hodnotu 16. Táto hodnota sa používa na označenie nekonečna.

Nestabilita

Najväčším problémom je problém pomalej konvergencie, niekedy označovaný ako problém počítania do nekonečna. Je dokázané, že algoritmus DVA konverguje k správnym hodnotám smerovacej tabuľky v konečnom čase. No negarantuje, že tento čas bude dostatočne malý na to aby bol algoritmus použiteľný.

Demonštrujme vznik takejto situácie podľa tohto obrázka.

Je to vlastne model komunikačného systému. Písmená zodpovedajú smerovačom a spoje sieťam. Všetky linky majú ocenenie 1, okrem linky z C do D, ktorá má ocenenie 10. Úvahy robíme vzhľadom na cieľovú sieť. Je zrejmé:

Predpokladajme, že linka z B do D spadne. Zmeny sa začnú vtedy, keď B oznámi, že cesta do D nie je použiteľná. Vznikne problém, pretože A aj C si stále myslia, že môžu ísť do cieľa cez B s cenou 3. V ďaľšej iterácii B začne tvrdiť, že môže ísť do cieľa cez C s cenou 4. Samozrejme, že nemôže. A a C začnú postupne zvyšovať ceny ciest do ciľa cez seba navzájom. Systém síce bude konvergovať je ale bude mu to trvať nejaký čas. Tomuto problému sa hovorí počítanie do nekonečna.

čas ------>

D: priamo,1    priamo,1    priamo,1    priamo,1        ...    priamo,1    priamo,1        ...
B: padnutéC,4C,5 C,6C,11C,12
C: B,3A,4A,5A,6A,11 D,11
A: B,3C,4C,5C,6C,11 C,12

Keď sieť spadne, je potrebné počítanie do nekonečna, čo najskôr zastaviť. Preto je nekonečno zvolené ako kompromis medzi veľkosťou siete a rýchlosťou konvergencie. RIP navrhnutý pre siete z diametrálnou veľkosťou maximálne 15 čiže už 16 je nekonečno.

Pre zvýšenie stability DVA sa používajú nasledovné mechanizmy:

Split Horizont

Z vyššie uvedeného príkladu vyplýva, že A aj C sa navzájom klamú. Môže sa to ošetriť tak, že sa zisťuje odkiaľ je informácia o zmene poslaná. Potom je vhodné neposielať informácie o cieľovej sieti tomu susedovi, od ktorého je cesta naučená.

  • Easy Split Horizon neposiela žiadne správy o ceste tým susedom, od ktorých je cesta naučená.
  • Split Horizon With Poisoned Reverse zabezpečuje, aby metrika aktualizovanej položky smerovacej tabuľky posielanej smerovaču, od ktorého smerovacia informácia spôsobila jej aktualizovanie, bola nastavená na 16

Triggered updates

Split Horizon robí prevenciu pred smerovacími slučkami, ktoré vyvolávajú dva smerovače. Avšak je možné, že budú zviazané tri smerovače a budú sa navzájom klamať. V tom prípade Split Horizon nemôže zastaviť slučku. Táto slučka sa zastaví len ak metrika dosiahne nekonečno. Triggered Update sa pokúša urýchliť konvergenciu. Vždy keď sa zmení metrika pre cestu, skoro okamžite pošle aktualizačnú správu, aj keď nie je čas na pravidelné poslanie správy.

Predpokladajme, že cesta do cieľa N ide cez smerovač G. Potom, pri príchode aktualizácie z G, prijímací smerovač vyhodnotí cestu a ak je lepšia ako stará, tak prijímací smerovač pošle Triggered Update všetkým smerovačom priamo pripojeným k nemu. Vznikne kaskádové šírenie Triggered Update. Predpokladajme, že smerovač označí cestu do N ako neplatnú. G pošle Triggered Update všetkým susedom. Potom jediný sused, ktorého cesta do N ide cez G si aktualizuje cestu ako jediný a pošle Triggered Update. Tým sa všetky časti systému, ktoré majú cestu do N nastavia na nekonečno.

Samozrejme, že môže nastať prípad, kedy pri šírení triggered update príde pravidelná aktualizačná správa, založená na zlej ceste. Môže to spôsobiť nestabilitu systému a stratenie zostatku zlej cesty. Ale keď sa triggered updates šíria dostatočne rýchlo, je to dosť nepravdepodobné.

Zoznam literatúry

[1] http://www.faqs.org/rfcs/rfc1058.html

siet.png