logo

Algoritmul de rutare vectorială de distanță

    Algoritmul vector Distanță este iterativ, asincron și distribuit.
      Distribuit:Este distribuit prin faptul că fiecare nod primește informații de la unul sau mai mulți vecini atașați direct, efectuează calcule și apoi distribuie rezultatul înapoi vecinilor săi.Iterativ:Este iterativ prin faptul că procesul său continuă până când nu mai sunt disponibile informații pentru a fi schimbate între vecini.asincron:Nu necesită ca toate nodurile sale să funcționeze în pasul de blocare între ele.
  • Algoritmul vector Distanță este un algoritm dinamic.
  • Este folosit în principal în ARPANET și RIP.
  • Fiecare router menține un tabel de distanțe cunoscut ca Vector .

Trei chei pentru a înțelege funcționarea algoritmului de rutare vectorială la distanță:

    Cunoștințe despre întreaga rețea:Fiecare router își împărtășește cunoștințele prin întreaga rețea. Routerul trimite cunoștințele colectate despre rețea vecinilor săi.Dirijare numai către vecini:Routerul își trimite cunoștințele despre rețea doar acelor routere care au legături directe. Routerul trimite orice are despre rețea prin porturi. Informațiile sunt primite de router și le utilizează pentru a-și actualiza propriul tabel de rutare.Partajarea de informații la intervale regulate:În 30 de secunde, routerul trimite informațiile către routerele vecine.

Algoritmul de rutare vectorială de distanță

Fie dX(y) să fie costul căii cu cel mai mic cost de la nodul x la nodul y. Cele mai mici costuri sunt legate de ecuația Bellman-Ford,

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

Unde minv este ecuația luată pentru toți vecinii x. După călătoria de la x la v, dacă luăm în considerare calea cu cel mai mic cost de la v la y, costul căii va fi c(x,v)+dîn(y). Cel mai mic cost de la x la y este minimul lui c(x,v)+dîn(y) a preluat toți vecinii.

Cu algoritmul de rutare vectorială distanță, nodul x conține următoarele informații de rutare:

  • Pentru fiecare vecin v, costul c(x,v) este costul căii de la x la vecinul direct atașat, v.
  • Vectorul distanță x, adică DX= [ DX(y): y în N ], cuprinzând costul său către toate destinațiile, y, în N.
  • Vectorul distanță al fiecăruia dintre vecinii săi, adică Dîn= [ Dîn(y): y în N ] pentru fiecare vecin v al lui x.

Rutarea vectorului distanță este un algoritm asincron în care nodul x trimite copia vectorului distanță către toți vecinii săi. Când nodul x primește noul vector de distanță de la unul dintre vectorul său vecin, v, salvează vectorul de distanță al lui v și folosește ecuația Bellman-Ford pentru a-și actualiza propriul vector de distanță. Ecuația este dată mai jos:

linie nouă în python
 d<sub>x</sub>(y) = min<sub>v</sub>{ c(x,v) + d<sub>v</sub>(y)} for each node y in N 

Nodul x și-a actualizat propriul tabel vector de distanță folosind ecuația de mai sus și trimite tabelul actualizat tuturor vecinilor săi, astfel încât aceștia să își poată actualiza propriii vectori de distanță.

Algoritm

 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> 

Notă: În algoritmul vectorial de distanță, nodul x își actualizează tabelul atunci când fie vede orice modificare a costurilor într-un nod direct legat, fie primește orice actualizare vectorială de la un vecin.

Să înțelegem printr-un exemplu:

Partajarea informațiilor

Algoritmul de rutare vectorială de distanță
  • În figura de mai sus, fiecare nor reprezintă rețeaua, iar numărul din interiorul norului reprezintă ID-ul rețelei.
  • Toate rețelele LAN sunt conectate prin routere și sunt reprezentate în casete etichetate ca A, B, C, D, E, F.
  • Algoritmul de rutare vectorială de distanță simplifică procesul de rutare presupunând că costul fiecărei legături este de o unitate. Prin urmare, eficiența transmisiei poate fi măsurată prin numărul de legături pentru a ajunge la destinație.
  • În rutarea vectorului la distanță, costul se bazează pe numărul de hop.
Algoritmul de rutare vectorială de distanță

În figura de mai sus, observăm că routerul trimite cunoștințele vecinilor imediati. Vecinii adaugă aceste cunoștințe la propriile cunoștințe și trimite tabelul actualizat propriilor vecini. În acest fel, routerele obțin propriile informații plus noile informații despre vecini.

Tabel de rutare

Au loc două procese:

  • Crearea Tabelului
  • Actualizarea tabelului

Crearea Tabelului

Inițial, tabelul de rutare este creat pentru fiecare router care conține cel puțin trei tipuri de informații, cum ar fi ID-ul rețelei, costul și următorul hop.

Algoritmul de rutare vectorială de distanță
    ID NET:ID-ul rețelei definește destinația finală a pachetului.Cost:Costul este numărul de hamei pe care trebuie să-l ia pachetul pentru a ajunge acolo.Următorul pas:Este routerul către care trebuie livrat pachetul.
Algoritmul de rutare vectorială de distanță
  • În figura de mai sus, tabelele de rutare originale sunt afișate pentru toate routerele. Într-un tabel de rutare, prima coloană reprezintă ID-ul rețelei, a doua coloană reprezintă costul conexiunii, iar a treia coloană este goală.
  • Aceste tabele de rutare sunt trimise tuturor vecinilor.

De exemplu:

 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. 

Actualizarea tabelului

  • Când A primește o tabelă de rutare de la B, atunci își folosește informațiile pentru a actualiza tabelul.
  • Tabelul de rutare al lui B arată cum se pot muta pachetele în rețelele 1 și 4.
  • B este un vecin cu routerul A, pachetele de la A la B pot ajunge într-un singur hop. Deci, 1 se adaugă la toate costurile date în tabelul lui B și suma va fi costul pentru a ajunge la o anumită rețea.
Algoritmul de rutare vectorială de distanță
  • După ajustare, A combină apoi acest tabel cu propriul său tabel pentru a crea un tabel combinat.
Algoritmul de rutare vectorială de distanță
  • Tabelul combinat poate conține unele date duplicat. În figura de mai sus, tabelul combinat al routerului A conține datele duplicate, deci păstrează doar acele date care au cel mai mic cost. De exemplu, A poate trimite datele către rețeaua 1 în două moduri. Primul, care nu folosește următorul router, deci costă un hop. Al doilea necesită două sărituri (A la B, apoi B la Rețeaua 1). Prima variantă are cel mai mic cost, prin urmare se păstrează, iar a doua este abandonată.
Algoritmul de rutare vectorială de distanță
  • Procesul de creare a tabelului de rutare continuă pentru toate routerele. Fiecare router primește informații de la vecini și actualizează tabelul de rutare.

Tabelele finale de rutare ale tuturor routerelor sunt prezentate mai jos:

Algoritmul de rutare vectorială de distanță