📅  最后修改于: 2020-11-10 01:00:08             🧑  作者: Mango
链接状态路由是一种技术,其中每个路由器都与网络中的每个其他路由器共享其邻居的知识。
了解链接状态路由算法的三个关键:
每个节点在图形上使用Dijkstra算法,以计算到达所有节点的最佳路由。
在上述算法中,循环之后是初始化步骤。循环执行的次数等于网络中可用节点的总数。
让我们通过一个例子来理解:
在上图中,源顶点为A。
第一步是初始化步骤。当前已知的从A到其直接连接的邻居B,C,D的最小成本路径分别为2,5,1。 A到B的成本设置为2,A到D的成本设置为1,A到C的成本设置为5。A到E和F的成本设置为无穷大,因为它们不直接链接到A。
Step | N | D(B),P(B) | D(C),P(C) | D(D),P(D) | D(E),P(E) | D(F),P(F) |
---|---|---|---|---|---|---|
1 | A | 2,A | 5,A | 1,A | ∞ | ∞ |
在上表中,我们观察到顶点D在步骤1中包含最小成本路径。因此,将其添加到N中。现在,我们需要确定通过D顶点的最小成本路径。
a)计算从A到B的最短路径
v = B, w = D
D(B) = min( D(B) , D(D) + c(D,B) )
= min( 2, 1+2)>
= min( 2, 3)
The minimum value is 2. Therefore, the currently shortest path from A to B is 2.
b)计算从A到C的最短路径
v = C, w = D
D(B) = min( D(C) , D(D) + c(D,C) )
= min( 5, 1+3)
= min( 5, 4)
The minimum value is 4. Therefore, the currently shortest path from A to C is 4.
c)计算从A到E的最短路径
v = E, w = D
D(B) = min( D(E) , D(D) + c(D,E) )
= min( ∞, 1+1)
= min(∞, 2)
The minimum value is 2. Therefore, the currently shortest path from A to E is 2.
注意:顶点D没有与顶点E的直接链接。因此,D(F)的值是无穷大。
Step | N | D(B),P(B) | D(C),P(C) | D(D),P(D) | D(E),P(E) | D(F),P(F) |
---|---|---|---|---|---|---|
1 | A | 2,A | 5,A | 1,A | ∞ | ∞ |
2 | AD | 2,A | 4,D | 2,D | ∞ |
在上表中,我们观察到在步骤2中E和B的成本路径最少。让我们考虑E顶点。现在,我们确定通过E的剩余顶点的最小成本路径。
a)计算从A到B的最短路径。
v = B, w = E
D(B) = min( D(B) , D(E) + c(E,B) )
= min( 2 , 2+ ∞ )
= min( 2, ∞)
The minimum value is 2. Therefore, the currently shortest path from A to B is 2.
b)计算从A到C的最短路径。
v = C, w = E
D(B) = min( D(C) , D(E) + c(E,C) )
= min( 4 , 2+1 )
= min( 4,3)
The minimum value is 3. Therefore, the currently shortest path from A to C is 3.
c)计算从A到F的最短路径。
v = F, w = E
D(B) = min( D(F) , D(E) + c(E,F) )
= min( ∞ , 2+2 )
= min(∞ ,4)
The minimum value is 4. Therefore, the currently shortest path from A to F is 4.
Step | N | D(B),P(B) | D(C),P(C) | D(D),P(D) | D(E),P(E) | D(F),P(F) |
---|---|---|---|---|---|---|
1 | A | 2,A | 5,A | 1,A | ∞ | ∞ |
2 | AD | 2,A | 4,D | 2,D | ∞ | |
3 | ADE | 2,A | 3,E | 4,E |
在上表中,我们观察到B顶点在步骤3中具有最小的成本路径。因此,将其添加到N中。现在,我们确定通过B的其余顶点的最小成本路径。
a)计算从A到C的最短路径。
v = C, w = B
D(B) = min( D(C) , D(B) + c(B,C) )
= min( 3 , 2+3 )
= min( 3,5)
The minimum value is 3. Therefore, the currently shortest path from A to C is 3.
b)计算从A到F的最短路径。
v = F, w = B
D(B) = min( D(F) , D(B) + c(B,F) )
= min( 4, ∞)
= min(4, ∞)
The minimum value is 4. Therefore, the currently shortest path from A to F is 4.
Step | N | D(B),P(B) | D(C),P(C) | D(D),P(D) | D(E),P(E) | D(F),P(F) |
---|---|---|---|---|---|---|
1 | A | 2,A | 5,A | 1,A | ∞ | ∞ |
2 | AD | 2,A | 4,D | 2,D | ∞ | |
3 | ADE | 2,A | 3,E | 4,E | ||
4 | ADEB | 3,E | 4,E |
在上表中,我们观察到C顶点在步骤4中具有最小的成本路径。因此,将其添加到N中。现在,我们确定通过C的其余顶点的最小成本路径。
a)计算从A到F的最短路径。
v = F, w = C
D(B) = min( D(F) , D(C) + c(C,F) )
= min( 4, 3+5)
= min(4,8)
The minimum value is 4. Therefore, the currently shortest path from A to F is 4.
Step | N | D(B),P(B) | D(C),P(C) | D(D),P(D) | D(E),P(E) | D(F),P(F) |
---|---|---|---|---|---|---|
1 | A | 2,A | 5,A | 1,A | ∞ | ∞ |
2 | AD | 2,A | 4,D | 2,D | ∞ | |
3 | ADE | 2,A | 3,E | 4,E | ||
4 | ADEB | 3,E | 4,E | |||
5 | ADEBC | 4,E |
Step | N | D(B),P(B) | D(C),P(C) | D(D),P(D) | D(E),P(E) | D(F),P(F) |
---|---|---|---|---|---|---|
1 | A | 2,A | 5,A | 1,A | ∞ | ∞ |
2 | AD | 2,A | 4,D | 2,D | ∞ | |
3 | ADE | 2,A | 3,E | 4,E | ||
4 | ADEB | 3,E | 4,E | |||
5 | ADEBC | 4,E | ||||
6 | ADEBCF |
由于泛洪,在线路状态路由中创建了大量流量。泛洪可能会导致无限循环,可以使用“离开时间”字段解决此问题