Skip to content

408 > 计算机网络 > 路由协议:OSPF

一、定位信息

  • 所属圈层:核心层
  • 前置知识:需了解链路状态路由算法(CN-04-02)的Dijkstra算法和泛洪机制,以及自治系统(AS)的概念(CN-04-03)
  • 知识网络位置:OSPF是链路状态路由算法的具体实现,是最常用的IGP之一。与RIP(CN-04-12)形成对比,与BGP(CN-04-14)构成域内/域间路由的完整体系
  • 考点热度等级H级(高频重点) — OSPF的工作原理、区域划分和与RIP的对比是408常考知识点

二、知识点讲解

2.1 OSPF的基本概念

OSPF(Open Shortest Path First,开放最短路径优先) 是一种基于链路状态算法的内部网关协议(IGP),使用Dijkstra算法计算最短路径。OSPF是"开放"的(非专有协议),是目前互联网中使用最广泛的IGP。

OSPF的关键特征:

  • 使用链路状态通告(LSA) 泛洪网络拓扑信息
  • 每个路由器构建完整的网络拓扑图
  • 使用Dijkstra算法计算最短路径树
  • 度量(metric)是链路代价(通常与带宽成反比)
  • 支持多区域层次化设计
  • 使用IP协议直接封装(协议号89),不使用TCP/UDP

2.2 OSPF的工作过程

步骤一:建立邻居关系 路由器通过交换Hello分组发现邻居并建立邻居关系。Hello分组每10秒发送一次(默认),死亡间隔为40秒。

步骤二:交换链路状态信息 邻居路由器之间交换数据库描述分组(DBD),同步链路状态数据库(LSDB)。

步骤三:泛洪LSA 每个路由器将自己的链路状态信息以LSA的形式泛洪给所有邻居,直到整个区域的所有路由器都有相同的LSDB。

步骤四:计算最短路径 每个路由器以自身为根,运行Dijkstra算法计算到所有目的网络的最短路径树,生成路由表。

2.3 OSPF的区域划分

为减少LSA泛洪的范围和LSDB的大小,OSPF支持将AS划分为多个区域(Area)

  • 骨干区域(Area 0):所有区域必须与骨干区域相连
  • 非骨干区域:连接到骨干区域,内部路由器只需维护本区域的LSDB
  • 区域边界路由器(ABR):连接骨干区域和非骨干区域
  • 自治系统边界路由器(ASBR):连接OSPF域和外部网络

2.4 OSPF的五种分组类型

类型名称用途
1Hello发现和维护邻居关系
2Database Description描述LSDB的摘要信息
3Link State Request请求特定的LSA
4Link State Update发送LSA(泛洪)
5Link State Acknowledgment确认收到LSA

2.5 OSPF与RIP的详细对比

对比维度RIPOSPF
算法距离-向量(Bellman-Ford)链路状态(Dijkstra)
度量跳数链路代价(带宽)
最大跳数15无限制
更新方式周期性全量(30秒)事件触发增量
更新内容完整路由表LSA(链路状态通告)
收敛速度
环路可能出现不易出现
区域支持不支持支持多区域
传输协议UDP(端口520)IP协议(协议号89)
认证RIPv2支持支持
适用规模小型网络大型网络

三、记忆与理解辅助

  1. 口诀:"OSPF链路状态协议,泛洪LSA建全图;Dijkstra算最短,区域划分减开销;Hello分组找邻居,五种分组各其职。"
  2. OSPF五种分组记忆:"Hello打招呼,DBD交换目录,Request要数据,Update发LSA,ACK确认收"
  3. OSPF关键数字:Hello=10秒,Dead=40秒,协议号=89,骨干区域=Area 0

四、例题与精解

例题1(基础巩固)

题目:以下关于OSPF协议的描述中,正确的是( ) A. OSPF使用UDP协议封装,端口号为89 B. OSPF使用Dijkstra算法计算最短路径 C. OSPF每30秒周期性广播完整路由表 D. OSPF最大跳数为15

命题意图:考查OSPF的基本特征,以及与RIP的区别。

精解

  1. 审题分析:选出正确的描述。
  2. 解题思路:逐项核对OSPF的关键特征。
  3. 完整步骤
    • A错误:OSPF使用IP协议直接封装(协议号89),不是UDP。这是OSPF与RIP的重要区别之一。
    • B正确:OSPF是链路状态协议,使用Dijkstra算法计算最短路径。
    • C错误:OSPF不是周期性广播路由表,而是泛洪LSA(链路状态通告),且主要在链路状态变化时触发更新。
    • D错误:OSPF没有最大跳数限制。最大跳数15是RIP的限制。
  4. 方法反思:区分RIP和OSPF的关键:RIP用UDP,OSPF用IP直接封装;RIP周期更新,OSPF事件触发。

例题2(中等提升)

题目:某企业网络有200台路由器,目前使用RIP作为路由协议。用户反映网络收敛慢,部分远端网络不可达。请分析可能的原因,并建议改用OSPF的理由。

命题意图:考查RIP的局限性和OSPF的优势,以及在实际场景中的协议选择。

精解

  1. 审题分析:200台路由器的网络使用RIP,出现收敛慢和不可达问题。
  2. 解题思路:从RIP的固有缺陷出发分析问题,对照OSPF的优势提出解决方案。
  3. 完整步骤

问题分析

  • 收敛慢:RIP使用距离-向量算法,每30秒才更新一次,且需要多轮迭代才能收敛。200台路由器的网络中,收敛可能需要数分钟。
  • 远端不可达:RIP最大跳数为15。如果两台路由器之间经过超过15个路由器,RIP会认为不可达(距离=16)。200台路由器的网络很容易超过15跳。
  • 周期性广播:每30秒发送完整路由表,在200台路由器的网络中消耗大量带宽。

改用OSPF的理由

  • 无跳数限制:OSPF没有最大跳数限制,不会出现"远端不可达"问题
  • 收敛快:OSPF使用链路状态算法,链路变化时立即泛洪LSA,收敛时间远快于RIP
  • 支持区域划分:200台路由器可以划分为多个OSPF区域,减少LSA泛洪范围,降低开销
  • 事件触发更新:不需要周期性广播完整路由表,节省带宽
  • 基于带宽度量:OSPF根据链路带宽选择路径,比RIP的跳数更合理
  1. 方法反思:在实际网络中,RIP只适用于小型网络(几十台路由器)。当网络规模增大或对收敛速度有要求时,应选择OSPF。

五、考情分析

  • 考查频次:近5年出现4-5次
  • 常见题型:选择题考查OSPF与RIP的区别;综合题可能结合Dijkstra算法
  • 分值占比:选择题2-4分,综合题5-8分
  • 命题趋势:OSPF与RIP的对比是经典考点,近年增加了对OSPF区域划分和LSA泛洪机制的考查

六、易错点提醒

  1. 错误表现:认为OSPF使用TCP或UDP封装

    • 错误原因:大多数协议都使用TCP/UDP,直觉上认为OSPF也是
    • 正确理解:OSPF使用IP协议直接封装(协议号89),不经过传输层。这是因为OSPF需要快速传输LSA,TCP的建立连接和确认机制会增加延迟
  2. 错误表现:认为OSPF和RIP一样每30秒更新一次

    • 错误原因:将RIP的特征套用到OSPF上
    • 正确理解:OSPF主要在链路状态变化时触发更新(泛洪LSA),Hello分组每10秒发送一次仅用于维护邻居关系,不是路由更新
  3. 错误表现:认为OSPF的度量是跳数

    • 错误原因:混淆了OSPF和RIP的度量
    • 正确理解:OSPF的度量是链路代价(通常与带宽成反比,带宽越高代价越低),不是跳数。这是OSPF比RIP路径选择更合理的原因

七、来源标注

  • 依据2026考研统考大纲
  • 依据《计算机网络(第8版)》谢希仁版
  • 依据RFC 2328(OSPF Version 2)

考研全科复习资料 - 基于2026考研统考大纲