Discovery znanje
/ Knowledge Discovery >> Discovery znanje >> tech >> računalnik >> računalniška strojna oprema >>

Kako Usmerjevalni algoritmi Work

eučinkovita. Da bi razumeli ta algoritem bolje, tukaj je vir programa s C pisnim:
 #define MAX_NODES 1024 /* Največje število vozlišč * /# opredeliti INFINITY 1000000000 /* število večje od vseh največjo poti * /int n, dist [MAX_NODES] [MAX_NODES]; /* dist [I] [j] je razdalja od i do j * /void shortest_path (int s, int t, int pot []) {struct stanje {/* pot, ki je delal na * /int predhodnika; /* prejšnjo dolžina vozlišče * /int /* dolžina od vira do tega vozlišča * /ENUM {trajna, tentative} nalepko /* state nalepka * /} state [MAX_NODES]; int I, K, min; struct stanje * p; za (p = & state [0]; p < & state [n]; p ++) {/* zagnati državna * /p > predhodnik = -1p- > dolžina = INFINITYp- > label = pogojno; } state [t] .length = 0; state [t] .label = trajna; K = t; /* k je začetni delovni vozlišče * /naredi {/* je boljša pot od k? * /for i = 0; I < n; I ++) /* Ta graf ima n vozlišč * /if (dist [K] [I] = 0 &! &Amp; state [I] .label == pogojno) {if (state [K] .length + dist [K ] [I] < state [I] .length) {state [I] .predecessor = k; state [I] .length = state [k] .length + dist [k] [I]}} /* Poiščite okvirno označeno vozlišče z najmanjšo etiketi. * /k = 0; min = INFINITY; za (I = 0, i < n; I ++), če je (state [I] .label == pogojno & & state [I] .length < min) = stanje [I] .length; k = I; } state [k] .label = trajna} while (K = i!); /* Kopirajte pot v izhodni niz * /I = 0; k = 0Do {pot [I ++] = k; k = state [k]. predhodnik;} while (k > = 0);} DV algoritmov 

DV algoritmi so znani tudi kot Bellman-Ford usmerjevalnih algoritmov in Ford-Fulkersonov usmerjevalnih algoritmov. V teh algoritmov, vsak usmerjevalnik ima mizo usmerjevalno da je najboljša pot za vsako destinacijo kaže. Tipičen graf in usmerjevalno tabelo za usmerjevalnik J je prikazano na vrhu strani.

Iz tabele je razvidno, če usmerjevalnik J želi priti pakete usmerjevalnika D, da bi jih morali poslati usmerjevalnika H. Ko paketi prispejo na usmerjevalniku H, da preveri svojo mizo in se odloči, kako poslati pakete do D.

V DV algoritmov, vsak usmerjevalnik mora slediti tem korakom:

  1. To šteje masa povezave neposredno povezani z njim in shrani podatke za njeno mizo.
  2. V določenem časovnem obdobju, da pošlje svoj tabelo k sosednjimi usmerjevalniki (ne vseh usmerjevalnikov) in prejemanje usmerjevalno tabelo vsakega sosedami
  3. Na podlagi informacij iz usmerjevalnih tabel svojih sosedov, da posod

    Page [1] [2] [3] [4] [5] [6]