Katedra telekomunikácií, FEI STU Bratislava

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

Link state smerovacie algoritmy

Obsah

Úvod

Link state algoritmy(ďalej LSA) sú pomenovaním pre globálne smerovacie algoritmy. Pri globálnom smerovaní má každý smerovač kompletnú informáciu o všetkých smerovačoch v sieti a stave zaťaťenia v sieti. Smerovače zasielajú informácie len o priamo pripojených linkách a neposielajú celú smerovaciu tabuľku. Vhodné sú najmä pre veľké prostredia, ktoré sa často menia. Využívajú sa hlavne v smerovacích protokoloch používaných v IP sieťach.

LSA algoritmus

Pri LSA, každý smerovač vykonáva nasledujúce kroky:

  1. Identifikácia smerovačov, ktoré sú k nim fyzicky pripojené a získanie ich IP adries. Keď smerovač začne pracovať, pošle do siete "HELLO" pakety. Každý smerovač, ktorý obdrží tento paket, odpovie so správou, ktorá obsahuje jeho jedinečný identifikátor ( v IP sieťach IP adresu).
  2. Smerovač meria ďalej čas oneskorenia (prípadne iné dôležité parametre siete ako priemerné zaťaženie) paketov od susedných smerovačov. Dosiahne to tak, že rozpošle do siete echo pakety pre všetkých susedov. Každý sused, ktorý obdrží takýto paket, odošle ako odpoveď echo reply packet. Čas medzi odoslaním echo paketu a prijatím reply paketu vydelí smerovač dvomi a tak odhadne oneskorenie. Tento čas však okrem času potrebného na prenos obsahuje aj čas potrebný na spracovanie paketu a odoslanie odpovede.
  3. Vysielanie informácie obsiahnutej v smerovači iným smerovačom a zároveň prijatie informácií od týchto smerovačov. V tomto kroku si smerovače teda navzájom vymenia informácie a získajú tak prehľad o štruktúre a stave siete. Toto sa deje pomocou záplavového algoritmu, multicastovým vysielaním alebo broadcastovým vysielaním. Toto závisí od konkrétneho smerovacieho protokolu. Informácie si navzájom vymieňajú tzv. link-state paketmi (LSP). Tieto pakety majú nasledovnú štruktúru:
    • ID smerovača
    • ID jedného zo susedných smerovačov
    • váha linky medzi nimi
    • sekvenčné číslo
    • TTL - time to live
    Ak smerovač obdrží LSP, pokúsi sa ho uložiť vo svojej LSP databáze. Ak takýto LSP už v databáze existuje, nevykoná nič. Inak ho uloží do databázy a jeho kópiu rozošle všetkým svojim susedom, okrem toho, ktorý bol zdrojom tohto paketu. Tieto pakety môžu byť posielané periodicky, pri zmene stavu liniek alebo pri kombinácii predošlého.
  4. Nasleduje výpočet najlepšej cesty medzi dvomi uzlami siete. Na tento výpočet sa používa najčastejšie Dijkstrov algoritmus (obr. 1) najkratšej cesty. V tomto algoritme smerovač na základe informácií, ktoré zozbieral, zostaví graf danej siete. V tomto grafe sú znázornené umiestnenia smerovačov a ich vzájomné prepojenia. Každé toto spojenie je ohodnotené váhou. Táto váha môže byť funkciou oneskorenia na danej linke, priemerného zaťaženia alebo môže označovať počet hopov medzi uzlami siete. Ak sa medzi počiatočným a cieľovým uzlom nachádza 2 a viac možných ciest, smerovač pomocou tohto algoritmu určí cestu s najmenšou váhou.

Dijkstrov algoritmus

Pri výpočte najkratšej cesty postupuje Dijkstrov algoritmus nasledovne:

  1. V grafe siete, ktorý vytvoril smerovač si určí zdrojový a cieľový uzol. Označme si ich U1 a U2. Z tohto grafu je následne zostrojená tzv. "matica susedov". Súradnice v tejto matici určujú váhu medzi zodpovedajúcimi uzlami. Napríklad [i, j] určuje váhu linky medzi Ui a Uj. Ak medzi týmito uzlami neexistuje priame spojenie, váha spojenia v tejto matici nadobudne hodnotu nekonečna.
  2. Smerovač si vytvorí záznamy stavov (status record set) pre každý uzol v sieti. Každý záznam obsahuje 3 polia:
    • Pole predchodcu - obsahuje predchádzajúci uzol
    • Pole dĺžky - obsahuje súčet váh od zdrojového uzla až po tento uzol
    • Pole návestia - obsahuje stav uzla. Každý uzol môže nadobúdať jeden z dvoch možných stavov: "permanentný" alebo "pokusný."
  3. Smerovač inicializuje parametre týchto záznamov pre všetky uzly a nastaví ich dĺžku na nekonečno a ich návestie na "pokusný".
  4. Smerovač nastaví T-uzol. V našom prípade, ak U1 je zdrojový T-uzol, smerovač nastaví jeho návestie na "permanentný". Toto návestie sa už nezmení.
  5. Smerovač upraví všetky záznamy pre všetky uzly s návestím "pokusný", ktoré sú priamo spojené s týmto T-uzlom.
  6. Smerovač ďalej prezrie všetky uzly s návestím "pokusný" a vyberie ten, ktorého spojenie s U1 má najmenšiu váhu. Tento uzol sa potom stane ďalším T-uzlom.
  7. Ak tento uzol nie je cieľový uzol U2, smerovač sa vráti do bodu 5.
  8. Ak tento uzol je cieľový uzol U2, smerovač vyberie jeho predchádzajúci uzol zo záznamov a takto pokračuje, kým sa nedostane naspäť do U1. Takto dostane zoznam uzlov, ktoré určujú najlepšiu cestu z U1 do U2.

Tento algoritmus je znázornený aj v animovanej prezentácii tu.

Zoznam literatúry

[1] Routing 101: Routing Algorithms, http://www.informit.com/articles/article.asp?p=27267
[2] Link State and Distance Vector Routing, http://www.eecs.umich.edu/~zmao/eecs489/
[3] Graph Theory Networking, http://www.ibiblio.org
[4] IP Routing From Basic Principles to Link State Protocols, http://www.informit.com/articles/article.asp?p=26129&redir=1
[5] Routing Algorithms, http://www.cis.ohio-state.edu/~jain/cis677-98/
[6] How routing algorithms work, http://computer.howstuffworks.com/routing-algorithm2.htm

image001.gif