作者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