网络层由数据平台和控制平台两个部分组成。接下来我们将对控制平台进行讨论。
1. 概述
重点
- 转发表和流表是如何计算、维护和安装的。
路由器的转发操作需要根据转发表将输入分组传输到合适的输出链路,因此转发表的初始化和更新很重要。有两种方式能够完成转发表的计算、维护与安装:
-
路由器控制:每台路由器都运行一种路由选择算法。
①路由器包含转发和路由选择两种功能。
②路由器通过路由选择组件间的通信计算转发表。
-
逻辑集中式控制:逻辑集中式控制器计算分发转发表。
①路由器仅执行转发功能。
②路由器中有一个控制代理(CA) 以配置和管理路由器的转发表。
两种工作方式中路由器分别含有路由选择组件和控制代理,但是它们的功能是完全不同的。两种方式的关键差异:
- 路由选择组件可以相互交互,也可以主动参与转发表的计算。
- 控制代理CA既不能相互交互,也不能主动参与转发表的计算。
2. 路由选择算法
路由选择算法是为从源到目的的分组确定一条开销最小的路由,通过计算源到目的的最短路径计算转发表。常见的路由算法有以下分类:
-
集中式路由选择算法:利用全局的网络知识计算从源到目的的最短路径及开销。
①以所有节点的连通性和链路的开销为输入。
②常见算法:LS -
分散式路由选择算法:路由器以迭代、分布式的方式计算最短路径及其开销。
①以直接相连的邻居节点及其链路开销为输入。
②常见算法:DV
- 静态路由选择算法:人为手工配置转发表。
①路由更新慢、优先级高。 - 动态路由选择算法:利用路由选择算法计算更新转发表。
①路由更新快、及时响应链路费用和网络拓扑变化。
2.1 链路状态路由选择算法(LS)
(1)定义
LS是一种集中式路由选择算法,它以网络拓扑和所有链路的开销为输出。
-
广播链路状态分组:每个节点向其他节点广播链路状态分组,链路状态分组由节点连接链路的标识和开销组成。
-
Dijstra算法:采用Dijstra算法计算源到目的的最短路径和开销。
①思路:每次选择距离源节点开销最小的未被访问的节点加入最短路径,然后对其邻接且还未被访问的节点的开销进行更新。算法结束后,每个节点都有一个前驱节点,可以通过前驱节点得到源到目的的最短路径。
②每个节点的转发表中保存源到目的的最短路径上的下一条节点。
(2)问题
- 震荡现象:假设链路开销表示链路负载。
因为链路开销动态的变化导致路由表更新频繁,在环形链路中分组可能无法到达目的地。
- 解决方法
①强制链路开销不依赖链路负载(×)&#