| 特性 | RIP | OSPF |
|---|---|---|
| 算法 | 距离向量(Bellman-Ford) | 链路状态(Dijkstra) |
| 信息范围 | 只知邻居 | 知道完整拓扑 |
| 度量 | 跳数 | 链路代价(带宽) |
| 更新方式 | 周期性(30s) | 触发式 |
| 收敛速度 | 慢 | 快 |
| 适用规模 | 小型 | 大型 |
1. 发现邻居:发送 Hello 报文,建立邻居关系
2. 交换链路状态通告(LSA):
- 每个路由器广播自己的链路状态(邻居、代价)
- 使用泛洪法(Flooding)发送给所有路由器
3. 建立链路状态数据库(LSDB):
- 所有路由器的 LSA 汇总
- 每个路由器有相同的 LSDB(全局视图)
4. 计算最短路径树:
- 以自己为根,用 Dijkstra 算法计算到所有目的的最短路径
- 结果写入路由表
初始化:
- 源节点距离=0,其他节点距离=∞
- 所有节点未确定
循环:
1. 选择未确定节点中距离最小的节点 u
2. 将 u 标记为已确定
3. 更新 u 的所有邻居 v 的距离:
如果 d(u) + cost(u,v) < d(v)
则 d(v) = d(u) + cost(u,v)
4. 重复直到所有节点都确定
| 类型 | 名称 | 内容 |
|---|---|---|
| Type 1 | Router LSA | 路由器的链路和代价 |
| Type 2 | Network LSA | 网络中的路由器列表 |
| Type 3 | Summary LSA | 区域间路由汇总 |
| Type 4 | ASBR Summary | AS 边界路由器信息 |
| Type 5 | External LSA | 外部路由信息 |
路由器 R1 的链路变化:
R1 → 生成新 LSA → 泛洪给所有邻居
邻居收到 → 更新 LSDB → 继续泛洪给其他邻居
...直到所有路由器都收到
序列号机制:防止旧 LSA 覆盖新 LSA
老化机制:LSA 有最大生存时间
大规模网络中 LSDB 太大,泛洪开销大
解决方案:将网络划分为多个区域(Area)
Area 0 是骨干区域,所有区域必须连接到 Area 0
| 考点 | 说明 |
|---|---|
| Dijkstra 算法计算 | 给定拓扑计算最短路径 |
| OSPF vs RIP 对比 | 算法、更新方式、收敛速度 |
| LSA 泛洪过程 | 链路变化时如何传播信息 |
| OSPF 区域的作用 | 减少泛洪开销 |
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。