- 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:
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) = ∞ 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
- 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.
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.
- 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 & E. B sends its routing table to A & C. C sends its routing table to B & D. D sends its routing table to E & C. E sends its routing table to A & 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.
- Pēc regulēšanas A apvieno šo tabulu ar savu tabulu, lai izveidotu kombinētu tabulu.
- 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.
- 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: