- Afstandsvektoralgoritmen er en dynamisk algoritme.
- Det bruges hovedsageligt i ARPANET og RIP.
- Hver router vedligeholder en afstandstabel kendt som Vektor .
Tre nøgler til at forstå, hvordan Distance Vector Routing Algorithm fungerer:
Afstand vektor Routing Algoritme
Lad dx(y) være prisen for den billigste vej fra node x til node y. De mindste omkostninger er relateret til Bellman-Ford-ligningen,
d<sub>x</sub>(y) = min<sub>v</sub>{c(x,v) + d<sub>v</sub>(y)}
Hvor minv er ligningen taget for alle x naboer. Efter at have kørt fra x til v, hvis vi betragter den billigste vej fra v til y, vil vejomkostningerne være c(x,v)+di(y). Den mindste omkostning fra x til y er minimum af c(x,v)+di(y) overtaget alle naboer.
Med Distance Vector Routing-algoritmen indeholder noden x følgende routinginformation:
- For hver nabo v er prisen c(x,v) vejomkostningen fra x til direkte tilknyttet nabo, v.
- Afstandsvektoren x, dvs. Dx= [Dx(y) : y i N ], med dets omkostninger til alle destinationer, y, i N.
- Afstandsvektoren for hver af dens naboer, dvs. Di= [Di(y): y i N] for hver nabo v af x.
Afstandsvektorrouting er en asynkron algoritme, hvor node x sender kopien af sin afstandsvektor til alle dens naboer. Når node x modtager den nye afstandsvektor fra en af dens nabovektorer, v, gemmer den afstandsvektoren for v og bruger Bellman-Ford-ligningen til at opdatere sin egen afstandsvektor. Ligningen er givet nedenfor:
freddie mercury
d<sub>x</sub>(y) = min<sub>v</sub>{ c(x,v) + d<sub>v</sub>(y)} for each node y in N
Noden x har opdateret sin egen afstandsvektortabel ved at bruge ovenstående ligning og sender sin opdaterede tabel til alle sine naboer, så de kan opdatere deres egne afstandsvektorer.
Algoritme
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>
Bemærk: I Afstandsvektoralgoritme opdaterer node x sin tabel, når den enten ser en omkostningsændring i en direkte linket node eller modtager en vektoropdatering fra en nabo.
Lad os forstå gennem et eksempel:
Deling af oplysninger
- I ovenstående figur repræsenterer hver sky netværket, og tallet inde i skyen repræsenterer netværks-id'et.
- Alle LAN'er er forbundet med routere, og de er repræsenteret i kasser mærket som A, B, C, D, E, F.
- Afstandsvektor routingalgoritme forenkler routingprocessen ved at antage, at prisen på hvert link er én enhed. Derfor kan transmissionens effektivitet måles ved antallet af links til at nå destinationen.
- I Distance vector routing er prisen baseret på hoptælling.
I ovenstående figur observerer vi, at routeren sender viden til de nærmeste naboer. Naboerne tilføjer denne viden til deres egen viden og sender den opdaterede tabel til deres egne naboer. På den måde får routere sine egne oplysninger plus de nye oplysninger om naboerne.
Routing tabel
Der sker to processer:
- Oprettelse af tabellen
- Opdatering af tabellen
Oprettelse af tabellen
Indledningsvis oprettes routingtabellen for hver router, der indeholder mindst tre typer information såsom netværks-id, prisen og det næste hop.
- I ovenstående figur er de originale routingtabeller vist for alle routerne. I en routingtabel repræsenterer den første kolonne netværks-id'et, den anden kolonne repræsenterer omkostningerne ved linket, og den tredje kolonne er tom.
- Disse rutetabeller sendes til alle naboerne.
For eksempel:
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.
Opdatering af tabellen
- Når A modtager en routingtabel fra B, bruger den dens information til at opdatere tabellen.
- Routingtabellen i B viser, hvordan pakkerne kan flytte til netværk 1 og 4.
- B'et er nabo til A-routeren, pakkerne fra A til B kan nå i et hop. Så 1 lægges til alle omkostningerne angivet i B's tabel, og summen vil være omkostningerne for at nå et bestemt netværk.
- Efter justering kombinerer A derefter denne tabel med sin egen tabel for at skabe en kombineret tabel.
- Den kombinerede tabel kan indeholde nogle duplikerede data. I ovenstående figur indeholder den kombinerede tabel for router A de duplikerede data, så den beholder kun de data, der har de laveste omkostninger. For eksempel kan A sende dataene til netværk 1 på to måder. Den første, som ikke bruger nogen næste router, så den koster et hop. Det andet kræver to hop (A til B, derefter B til netværk 1). Den første mulighed har den laveste pris, derfor beholdes den, og den anden udgår.
- Processen med at oprette routingtabellen fortsætter for alle routere. Hver router modtager informationen fra naboerne og opdaterer routingtabellen.
De endelige routingtabeller for alle routerne er angivet nedenfor: