什么是距离矢量路由算法?
距离矢量路由算法还有其他名称。Bellman-Ford 路由算法和 Ford-Fulkerson 算法通常是在研究人员创建它之后(Bellman 1957,以及 Ford 和 Fulkerson,1962)进行分发的。
特点
以下是距离矢量路由的特点:
路由器发送整个自治系统的知识。
数据共享仅与邻居进行。
数据发送在固定的、普通的间隔时间内进行,每 30 秒声明一次。
在这个算法中,每个路由器都会评估自身与每个可到达目的地的距离。这是通过评估路由器与其所有直接路由邻居之间的距离,并加上每个邻居路由器计算的该邻居与其紧邻邻居之间的距离来实现的。
学习此算法工作原理的三个关键点如下:
了解整个网络
每个路由器都会发送其关于整个网络的知识。它将其连接到的关于网络的所有知识传达给其邻居。
仅路由到邻居
每个路由器反复地仅与其具有显式连接的那些路由器共享其关于网络的知识。它通过其所有部分传输其关于完整网络的任何知识。这些数据由每个邻居路由器获取和存储,并且可以升级路由器自己关于网络的数据。
定期共享信息
在距离矢量路由中,每个路由器都会反复地与其邻居共享其关于整个网络的知识。例如,30 秒后,每个路由器都会共享其关于其邻居整个网络的数据。
在此,矩形框表示 LAN。每个矩形框内的数字是 LAN 的网络 ID。这些 LAN 通过路由器连接,由 A、B、C、D、E 等框描述。方形框表示路由器与其邻居的连接。
路由表创建和更新
此表包含三列,其中包含有关网络 ID、成本和下一跳的信息。假设每个路由器的原始表为。
路由器 A
网络 ID | 成本 | 下一跳 |
---|---|---|
24 | 1 | B |
23 | 1 | E |
88 | 1 | F |
路由器 B
网络 ID | 成本 | 下一跳 |
---|---|---|
24 | 1 | A |
65 | 1 | C |
路由器 E
网络 ID | 成本 | 下一跳 |
---|---|---|
23 | 1 | A |
18 | 1 | D |
路由器 D
网络 ID | 成本 | 下一跳 |
---|---|---|
18 | 1 | E |
76 | 1 | C |
当 A 可以将其数据包或路由表信息直接发送到 B 路由器、E 和 C 时。
类似地,B 可以将其路由表信息发送到路由器 A 和 C,依此类推。
当 A 接收器从 B、E 和 F 接收路由表时,它可以更新其表。类似地,B 接收 A 和 C 并更新自身,依此类推,如新表所示。
路由器 A 的新路由表
网络 ID | 成本 | 下一跳 |
---|---|---|
23 | 1 | E |
24 | 1 | B |
88 | 1 | F |
23 | 2 | D |
38 | 2 | C |
路由器 B 的新路由表
网络 ID | 成本 | 下一跳 |
---|---|---|
13 | 2 | A |
24 | 1 | A |
28 | 1 | C |
35 | 2 | C |
38 | 2 | C |
类似地,每个路由器都会更新自身,依此类推。更新算法检查路由器首先是否为每个广告路由的跳数字段添加跳数。路由器应应用以下规则。
如果显示的目的地不在路由表中,则路由器必须将显示的数据插入表中。
如果显示的目的地在路由表中,则可能发生两种情况。
如果下一跳字段相似,则路由器必须使用显示的字段恢复表的条目。
如果下一跳字段不相似
如果显示的跳数小于表中的跳数,则路由器必须使用新的跳数恢复表中的条目。
如果显示的跳数不大于表中的跳数,则路由器无需执行任何操作。