任何人都可以从基础知识解释距离矢量路由算法吗? 从过去几个小时开始,我一直在互联网上搜索材料,但是在任何地方都没有以初学者可以理解的方式进行解释。要么用非常小的例子来解释(尝试将算法应用于不同的例子似乎非常困难),或者它的解释非常模糊。 如果可能的话,请用好的'来解释。例子。
PS:我在理解正确的时候遇到了一个非常大的问题,并且在路由器中交换信息。我必须为此算法实现C或C ++程序。所以我试图完全理解它。 提前谢谢。
答案 0 :(得分:4)
Start with distance-vector:
0 for self,
D for neighbor at distance D.
Every 30 seconds,
For each neighbor,
Send the current distance vector, with entries that pass trough
that neighbor set to 16.
When receiving a distance-vector from a neighbor,
Save the received distance vector.
If any estimated distance, trough this neighbor, has changed,
Update the current vector, but cap at 16.
When 180 seconds has passed since the last message from some neighbor,
Set it's distance to 16.
Send the updated distance vector as above.
180秒是标准超时值。距离16被认为是无穷大。
由于节点不立即知道网络中的每个其他节点,因此无法立即添加所有列。最简单的方法是使用表格:
(Neighbor, Destination, Distance)
当前向量是每个目的地的最小距离加一。
上面的伪代码实现 Split Horizon 和 Poisoned Reverse ,但不实现触发更新
了解详情: