Lec 9 路由
距离向量、链路状态以及如何
大纲
- 路由协议的目的是什么
- 为什么使用分布式路由协议?
- 分布式路由协议的三个主要步骤是什么,为什么要定期运行每个步骤?
- 链路状态路由:
- 广告中包含什么?
- 如果节点 A 发送广告,哪些节点会收到这份广告的副本?
- 节点使用什么算法来集成广告,该算法如何工作?
- 链路状态路由的优缺点是什么?
- 距离向量路由
- 广告中包含什么?
- 如果节点 A 发送广告,哪些节点会收到这份广告的副本?
- 节点使用什么算法来集成广告,该算法如何工作?
- 距离向量路由的优缺点是什么?
- 距离向量中广告接收顺序为何重要?
- “计数到无穷”是什么意思?
- 何时使用链路状态路由比较合适?
- 何时使用距离向量路由比较合适?
路由协议
路由协议的目标:使每个交换机能够知道网络中每个目的节点(dst)的最小成本路由。
A的路由表(形式上)

我们只讨论, 分布式路由协议,节点自己建立路由表,而不是由集中式机构提供路由表

- 通过hello协议,节点学习到了它有哪些的邻居
- 节点通过广告学习到了能够到达的节点
- 节点决定最小代价路由
广告包含的内容以及节点如何使用这些广告来确定最小成本路由,将根据具体的协议而有所不同。
所有这些步骤都定期发生,这使得路由协议能够检测并响应故障,并适应网络中的其他变化
距离向量路由(Distance-Vector Routing)

传播关于到每个节点的当前最小成本的信息,而不是实际的拓扑结构
广告的内容
它到它每个邻居的链路开销
谁能够拿到广告
高效地通过泛洪,让每个其他节点都能拿到
如果失败会发生什么
泛洪使链路状态路由对故障具有很高的韧性
什么限制了规模
泛洪的开销

链路状态路由(Link-State Routing)

目标是,传播完整的拓扑信息。图中的所有节点都了解完整的拓扑信息。
A的广告: [(B, 7), (D, 2), (F,1)]
A实际上要将这个广告发送给其他人,通过"泛洪(flooding)"实现。

分布式路由协议中,节点会记录它们已经转发过的路由广告信息。这样做的目的是防止节点在网络中传播重复的路由信息。它们还可以在泛洪时更加智能化,不会将广告转发回发送它的节点。
最小流问题, Dijkstra算法解决。
设想一下,这个操作每隔10分钟运行一次。如果有节点消失或者
当网络中出现故障时会发生什么?泛洪使链路状态路由对故障具有很高的韧性。当网络中的某个链路或节点发生故障时,受影响的路由器会感知到这些故障,并更新它们的链路状态数据库(LSDB)。由于LSA会在整个网络中广播,因此即使某条路径发生故障,其他路由器也能快速获知,并通过重新计算最短路径来适应网络的变化。这种泛洪机制使得链路状态路由协议在面对网络故障时能够快速、可靠地重新计算和更新路由信息
广告的内容
它所知道每个节点的当前开销
谁能够拿到广告
它的邻居
如果失败会发生什么
由于依赖周期性更新, 会比较复杂。
什么限制了规模
失败的处理