作者freshJC (Pearl Milk Tea)
看板PangSir
標題Re: [CN] Distance Vector
時間Mon Jun 21 15:13:30 2010
※ 引述《anfranion (南‧生命的意義是經歷)》之銘言:
: 之前上課有討論
: 如果是bad news
: 就要會花掉44個iteration
: 我發現我不知道,當4->60的時候
: routing table到底是怎麼變的
: 可以請知道的人幫忙回答一下嗎
: 感恩~
: p.s.它在投影片4-22頁
原本的network圖是這樣:
4
y 1
╱ ╲
x ———
z
50
然後y跟z的distance vector分別如下:
dy(x) dy(y) dy(z)
y 4 0 1
dz(x) dz(y) dz(z)
z 5 1 0
接下來,當x-y的link cost變成了60:
60 y 1
╱ ╲
x ———
z
50
y便會重新計算它的distance vector:
dy(x) = min{c(x) + dx(x), c(z) + dz(x)}
= min{60 + 0, 1 + 5} = 6
在這邊y會以為說,z存在著一條到x的路徑,cost只有5,
(實際上,這條路徑已經是錯誤的資料了)
比起直接到x的link cost: 60 還來得好。
因此y的distance vector就更新了:
t = 0:
dy(x) dy(y) dy(z)
y
6 0 1
dz(x) dz(y) dz(z)
z 5 1 0
更新完了distance vector,y就會把更新的dv傳給了z。
z就會重新計算它的distance vector:
dz(x) = min{c(x) + dx(x), c(y) + dy(x)}
= min{50 + 0, 1 + 6} = 7
這時z又誤以為y有一條到x的路徑,cost只有6,
所以distance vector又改變了。
t = 1:
dy(x) dy(y) dy(z)
y 6 0 1
dz(x) dz(y) dz(z)
z
7 1 0
然後z更新了distance vector,就又把這份傳給了y,
y再重新計算distance vector:
t = 2:
dy(x) dy(y) dy(z)
y
8 0 1
dz(x) dz(y) dz(z)
z 7 1 0
從此y跟z就進入了鬼打牆時期......
直到整個cost逼近到了50:
t = 44:
dy(x) dy(y) dy(z)
y
50 0 1
dz(x) dz(y) dz(z)
z 49 1 0
z在進行更新時發現最佳的路徑會變成直接到x的link cost:
dz(x) = min{c(x) + dx(x), c(y) + dy(x)}
= min{50 + 0, 1 + 50} = 50
從這邊開始,z的distance vector才會變成正常的數據。
大致上是這樣,不知道夠不夠清楚? :)
TA 鄭乃碩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.84
1F:推 anfranion:超級清楚的!!!!!謝謝助教<(_ _)> 06/21 17:07