路由算法:静态与动态路由、距离-向量、链路状态、层次路由。

4.2 路由算法

路由表是路由器进行分组转发的核心依据,由路由选择算法生成。根据能否根据网络通信量及拓扑结构动态调整,路由算法分为两大类。

4.2.1 静态路由与动态路由

类型 原理 优点 缺点 适用场景
静态路由 网络管理员手动配置路由表,路径固定 配置逻辑清晰、安全性高、资源消耗低 灵活性差、维护成本高、无法自动适应故障 小型局域网、专线连接
动态路由 路由协议自动探测拓扑、学习路径、实时更新 自动适应网络变化、优化流量分配 算法复杂、占用带宽、配置排查难度大 企业广域网、运营商骨干网

4.2.2 距离-向量路由算法

基本概念

  • 距离向量:每个节点维护一个包含所有目标节点距离的向量,距离通常以跳数衡量。
  • 路由表:记录到达各目标节点的下一跳节点和路径距离。

路由信息交换

  • 节点周期性地向相邻节点广播其距离向量。
  • 接收到距离向量后,节点根据Bellman-Ford算法更新自己的路由表。

Bellman-Ford算法

节点i对其每个相邻节点j的距离向量进行处理,更新到目标节点k的最短路径距离$D_i(k)$:

$$D_i(k) = \min(D_i(k),; D_j(k) + c_{i,j})$$

其中,$c_{i,j}$表示节点i到节点j之间的路径代价(通常为1表示一跳)。

特点

  • 收敛:通过多次迭代和信息交换,最终所有节点的路由表达到稳定状态。
  • 慢收敛:收敛速度较慢。
  • 路由环路:可能产生环路问题,导致数据包在网络中不断循环。
  • 典型协议:RIP(Routing Information Protocol)

例题(2021年37题)

某网络所有路由器均采用距离向量路由算法。路由器E与邻居A、B、C、D的直接链路距离分别为8、10、12、6,收到邻居的距离向量如下表:

目的网络 A的距离向量 B的距离向量 C的距离向量 D的距离向量
Net1 1 23 20 22
Net2 12 35 30 28
Net3 24 18 16 36
Net4 36 30 8 24

:E更新后的到达Net1~Net4的距离。

:E到各目的网络的距离 = min(直接链路距离 + 邻居到目的的距离)

  • Net1:min(8+1=9, 10+23=33, 12+20=32, 6+22=28) = 9
  • Net2:min(8+12=20, 10+35=45, 12+30=42, 6+28=34) = 20
  • Net3:min(8+24=32, 10+18=28, 12+16=28, 6+36=42) = 28
  • Net4:min(8+36=44, 10+30=40, 12+8=20, 6+24=30) = 20

答案:C. 9, 20, 28, 20


4.2.3 链路状态路由算法

基本概念

  • 链路状态:每个路由器了解其直接相连链路的状态(带宽、延迟、成本等)及相邻节点。
  • **链路状态包(LSP)**:包含节点链路状态的信息,广播给整个网络。

算法步骤

  1. 初始化:每个节点仅了解与其直接相连的链路状态。
  2. 链路状态包生成:节点创建LSP,包含节点ID、相邻节点ID、链路成本等信息。
  3. 链路状态包广播:节点将LSP通过泛洪法发送给所有相邻节点,确保全网收到。
  4. 拓扑数据库更新:每个节点根据收到的LSP构建全网拓扑图(链路状态数据库)。
  5. 最短路径计算:每个节点使用Dijkstra算法计算到所有其他节点的最短路径,生成路由表。

特点

  • 发送方式:向本自治系统中所有路由器发送信息(泛洪法)。
  • 发送内容:与路由器相邻的所有路由器的链路状态。
  • 发送时机:仅当链路状态发生变化时才发送。
  • 典型协议:OSPF(Open Shortest Path First)

优点

  • 每个节点独立计算路径,不依赖中间节点。
  • 链路状态报文不加改变地传播,易于查找故障。
  • 一步汇聚:节点收到所有报文后可立即计算正确通路。
  • 报文大小只与邻接节点数有关,规模可伸展性优于距离-向量算法。

4.2.4 层次路由

  • 因特网将路由协议划分为**内部网关协议(IGP)外部网关协议(EGP)**。
  • 层次路由:使用OSPF将一个自治系统(AS)划分为多个区域。
    • 每个路由器仅知道本区域内的转发细节。
    • 虽增加了信息交换种类,但大大减少了区域内部路由信息交换的通信量。
    • 使OSPF协议能用于规模很大的自治系统。
协议类型 典型协议 作用范围 核心算法
内部网关协议(IGP) RIP、OSPF 自治系统内部 距离-向量、链路状态
外部网关协议(EGP) BGP 自治系统之间 路径向量

笔记结束