logo

Attāluma vektora maršrutēšanas algoritms

    Attāluma vektora algoritms ir iteratīvs, asinhrons un sadalīts.
      Izplatīts:Tas ir sadalīts tādā veidā, ka katrs mezgls saņem informāciju no viena vai vairākiem tieši pievienotajiem kaimiņiem, veic aprēķinus un pēc tam izplata rezultātu atpakaļ saviem kaimiņiem.Iteratīvs:Tas ir iteratīvs, jo tā process turpinās, līdz vairs nav pieejama informācija, ar ko apmainīties starp kaimiņiem.Asinhrons:Tas neprasa, lai visi tā mezgli darbotos bloķēšanas solī viens ar otru.
  • Attāluma vektora algoritms ir dinamisks algoritms.
  • To galvenokārt izmanto ARPANET un RIP.
  • Katrs maršrutētājs uztur attāluma tabulu, kas pazīstama kā Vektors .

Trīs atslēgas, lai izprastu attāluma vektora maršrutēšanas algoritma darbību:

    Zināšanas par visu tīklu:Katrs maršrutētājs dalās ar savām zināšanām visā tīklā. Maršrutētājs nosūta savāktās zināšanas par tīklu saviem kaimiņiem.Maršruts tikai kaimiņiem:Maršrutētājs nosūta savas zināšanas par tīklu tikai tiem maršrutētājiem, kuriem ir tiešas saites. Maršrutētājs caur portiem nosūta visu, kas tam ir par tīklu. Informāciju saņem maršrutētājs un izmanto šo informāciju, lai atjauninātu savu maršrutēšanas tabulu.Informācijas apmaiņa regulāri:30 sekunžu laikā maršrutētājs nosūta informāciju blakus esošajiem maršrutētājiem.

Attāluma vektora maršrutēšanas algoritms

Ļaujiet dx(y) ir izmaksas par viszemāko izmaksu ceļu no mezgla x uz mezglu y. Vismazākās izmaksas ir saistītas ar Belmana-Forda vienādojumu,

 d<sub>x</sub>(y) = min<sub>v</sub>{c(x,v) + d<sub>v</sub>(y)} 

Kur minv ir vienādojums visiem x kaimiņiem. Pēc ceļojuma no x uz v, ja ņemam vērā vismazāko izmaksu ceļu no v līdz y, ceļa izmaksas būs c(x,v)+diekšā(y). Vismazākās izmaksas no x līdz y ir c(x,v)+d minimumsiekšāy) pārņēma visus kaimiņus.

Izmantojot attāluma vektora maršrutēšanas algoritmu, mezglā x ir šāda maršrutēšanas informācija:

  • Katram kaimiņam v izmaksas c(x,v) ir ceļa izmaksas no x līdz tieši pievienotajam kaimiņam v.
  • Attāluma vektors x, t.i., Dx= [Dx(y) : y N ], kas ietver tās izmaksas visiem galamērķiem, y, N.
  • Katra tā kaimiņa attāluma vektors, t.i., Diekšā= [Diekšā(y) : y in N ] katram x kaimiņam v.

Attāluma vektora maršrutēšana ir asinhrons algoritms, kurā mezgls x nosūta sava attāluma vektora kopiju visiem saviem kaimiņiem. Kad mezgls x saņem jauno attāluma vektoru no viena no blakus esošajiem vektoriem v, tas saglabā v attāluma vektoru un izmanto Belmana-Forda vienādojumu, lai atjauninātu savu attāluma vektoru. Vienādojums ir dots zemāk:

char + int java
 d<sub>x</sub>(y) = min<sub>v</sub>{ c(x,v) + d<sub>v</sub>(y)} for each node y in N 

Mezgls x ir atjauninājis savu attāluma vektoru tabulu, izmantojot iepriekš minēto vienādojumu, un nosūta savu atjaunināto tabulu visiem saviem kaimiņiem, lai viņi varētu atjaunināt savus attāluma vektorus.

Algoritms

 At each node x, <p> <strong>Initialization</strong> </p> for all destinations y in N: D<sub>x</sub>(y) = c(x,y) // If y is not a neighbor then c(x,y) = &#x221E; for each neighbor w D<sub>w</sub>(y) = ? for all destination y in N. for each neighbor w send distance vector D<sub>x</sub> = [ D<sub>x</sub>(y) : y in N ] to w <strong>loop</strong> <strong>wait</strong> (until I receive any distance vector from some neighbor w) for each y in N: D<sub>x</sub>(y) = minv{c(x,v)+D<sub>v</sub>(y)} If D<sub>x</sub>(y) is changed for any destination y Send distance vector D<sub>x</sub> = [ D<sub>x</sub>(y) : y in N ] to all neighbors <strong>forever</strong> 

Piezīme. Attāluma vektora algoritmā mezgls x atjaunina savu tabulu, kad tas vai nu redz izmaksu izmaiņas vienā tieši saistītajā mezglā vai saņem vektora atjauninājumu no kāda kaimiņa.

Sapratīsim, izmantojot piemēru:

Informācijas koplietošana

Attāluma vektora maršrutēšanas algoritms
  • Iepriekš redzamajā attēlā katrs mākonis apzīmē tīklu, un cipars mākonī apzīmē tīkla ID.
  • Visi LAN ir savienoti ar maršrutētājiem, un tie ir attēloti lodziņās, kas apzīmētas kā A, B, C, D, E, F.
  • Attāluma vektora maršrutēšanas algoritms vienkāršo maršrutēšanas procesu, pieņemot, ka katras saites izmaksas ir viena vienība. Tāpēc pārraides efektivitāti var izmērīt pēc saišu skaita, lai sasniegtu galamērķi.
  • Attāluma vektora maršrutēšanā izmaksas ir balstītas uz apiņu skaitu.
Attāluma vektora maršrutēšanas algoritms

Iepriekš redzamajā attēlā mēs novērojam, ka maršrutētājs nosūta zināšanas tuvākajiem kaimiņiem. Kaimiņi pievieno šīs zināšanas savām zināšanām un nosūta atjaunināto tabulu saviem kaimiņiem. Tādā veidā maršrutētāji iegūst savu informāciju, kā arī jauno informāciju par kaimiņiem.

Maršrutēšanas tabula

Notiek divi procesi:

  • Tabulas izveide
  • Tabulas atjaunināšana

Tabulas izveide

Sākotnēji maršrutēšanas tabula tiek izveidota katram maršrutētājam, kas satur vismaz trīs veidu informāciju, piemēram, tīkla ID, izmaksas un nākamo lēcienu.

Attāluma vektora maršrutēšanas algoritms
    NET ID:Tīkla ID nosaka paketes galamērķi.Izmaksas:Izmaksas ir apiņu skaits, kas paciņai jāveic, lai tur nokļūtu.Nākamais lēciens:Tas ir maršrutētājs, kuram ir jānogādā pakete.
Attāluma vektora maršrutēšanas algoritms
  • Iepriekš redzamajā attēlā ir parādītas visu maršrutētāju sākotnējās maršrutēšanas tabulas. Maršrutēšanas tabulā pirmajā kolonnā ir norādīts tīkla ID, otrajā kolonnā ir norādītas saites izmaksas, bet trešā kolonna ir tukša.
  • Šīs maršrutēšanas tabulas tiek nosūtītas visiem kaimiņiem.

Piemēram:

 A sends its routing table to B, F &amp; E. B sends its routing table to A &amp; C. C sends its routing table to B &amp; D. D sends its routing table to E &amp; C. E sends its routing table to A &amp; D. F sends its routing table to A. 

Tabulas atjaunināšana

  • Kad A saņem maršrutēšanas tabulu no B, tas izmanto tās informāciju, lai atjauninātu tabulu.
  • B maršrutēšanas tabula parāda, kā paketes var pārvietoties uz 1. un 4. tīklu.
  • B ir A maršrutētāja kaimiņš, paketes no A līdz B var sasniegt vienā lēcienā. Tātad, 1 tiek pievienots visām izmaksām, kas norādītas B tabulā, un summa būs izmaksas, lai sasniegtu noteiktu tīklu.
Attāluma vektora maršrutēšanas algoritms
  • Pēc regulēšanas A apvieno šo tabulu ar savu tabulu, lai izveidotu kombinētu tabulu.
Attāluma vektora maršrutēšanas algoritms
  • Apvienotajā tabulā var būt daži dublēti dati. Iepriekš redzamajā attēlā maršrutētāja A apvienotā tabula satur dublētos datus, tāpēc tajā tiek saglabāti tikai tie dati, kuriem ir viszemākās izmaksas. Piemēram, A var nosūtīt datus uz tīklu 1 divos veidos. Pirmais, kas neizmanto nākamo maršrutētāju, tāpēc tas maksā vienu apiņu. Otrajam ir nepieciešami divi apiņi (A uz B, pēc tam B uz tīklu 1). Pirmajam variantam ir viszemākās izmaksas, tāpēc tas tiek saglabāts, bet otrais tiek atmests.
Attāluma vektora maršrutēšanas algoritms
  • Maršrutēšanas tabulas izveides process turpinās visiem maršrutētājiem. Katrs maršrutētājs saņem informāciju no kaimiņiem un atjaunina maršrutēšanas tabulu.

Tālāk ir norādītas visu maršrutētāju galīgās maršrutēšanas tabulas:

Attāluma vektora maršrutēšanas algoritms