第 4 章:网络层(下)—— 路由协议¶
场景: 你从北京开车到广州,导航软件帮你规划路线——走京港澳高速还是大广高速?哪条路不堵车?路由器做的事情和导航软件一模一样:根据目的地选择最优路径。
4.1 路由的基本概念¶
核心比喻:路由器就是快递中转站的分拣员
快递到了中转站,分拣员看一眼包裹上的目的地地址,决定下一站发往哪个城市。路由器做的事情完全一样——收到数据包,查看目的 IP 地址,查路由表,决定从哪个接口转发出去。
路由表¶
每台路由器维护一张路由表,记录"去往哪个网络,下一跳是谁":
目的网络 子网掩码 下一跳 出接口
192.168.1.0 255.255.255.0 直连 eth0
10.0.0.0 255.0.0.0 192.168.1.1 eth0
0.0.0.0 0.0.0.0 192.168.1.254 eth0 ← 默认路由
| 字段 | 含义 |
|---|---|
| 目的网络 | 数据包要去往的目标网络 |
| 子网掩码 | 用于匹配目的 IP 的网络部分 |
| 下一跳 | 数据包应该转发给哪个相邻路由器 |
| 出接口 | 从路由器的哪个端口发出 |
路由优先级¶
当多条路由匹配同一个目的地时,按 最长前缀匹配 原则选择:
目的 IP:192.168.1.100
路由 A:192.168.0.0/16 → 下一跳 R1 (匹配 16 位)
路由 B:192.168.1.0/24 → 下一跳 R2 (匹配 24 位)✅ 选这个!
路由 C:0.0.0.0/0 → 下一跳 R3 (匹配 0 位)
4.2 静态路由 vs 动态路由¶
| 对比维度 | 静态路由 | 动态路由 |
|---|---|---|
| 配置方式 | 管理员手动配置 | 路由器自动学习 |
| 适用规模 | 小型网络 | 中大型网络 |
| 网络变化 | 需手动更新 | 自动适应拓扑变化 |
| CPU/内存开销 | 无 | 有(运行路由协议) |
| 可靠性 | 不会出错(人为配置正确时) | 可能出现路由环路等问题 |
4.3 RIP 协议 —— 距离向量路由¶
核心比喻:RIP 就像问路——"到广州怎么走?"
你站在路口问路人:"到广州怎么走?"路人说:"往前走 500 米到下一个路口,再问那里的人。"
RIP 就是这样——每个路由器只知道到目的地的"距离"(跳数)和"方向"(下一跳),然后告诉邻居。邻居再根据自己的信息更新。
RIP 核心特征¶
| 特征 | 说明 |
|---|---|
| 算法 | 距离向量(Distance Vector) |
| 度量值 | 跳数(Hop Count),最大 15 跳 |
| 更新方式 | 周期性广播(每 30 秒) |
| 收敛速度 | 慢(好消息传得快,坏消息传得慢) |
| 适用场景 | 小型网络 |
RIP 的局限性¶
- 最大 15 跳 :超过 15 跳视为不可达,限制了网络规模
- 慢收敛 :网络拓扑变化后,所有路由器更新路由表需要较长时间
- 计数到无穷问题 :环路检测需要特殊机制(水平分割、毒性反转)
4.4 OSPF 协议 —— 链路状态路由¶
核心比喻:OSPF 就像拥有整个城市的实时交通地图
RIP 是"问路"模式——只知道下一跳。OSPF 是"导航软件"模式——拥有整个网络的完整拓扑图,用 Dijkstra 最短路径算法计算出到每个目的地的最优路径。
每台 OSPF 路由器都有一张相同的"网络地图"(链路状态数据库),独立计算最短路径树。
OSPF 核心特征¶
| 特征 | 说明 |
|---|---|
| 算法 | 链路状态(Link State),Dijkstra SPF 算法 |
| 度量值 | 链路开销(Cost = 参考带宽 / 链路带宽) |
| 更新方式 | 触发更新(拓扑变化时立即更新) |
| 收敛速度 | 快 |
| 分层结构 | 支持区域(Area)划分,Area 0 为骨干区域 |
| 适用场景 | 中大型企业网络 |
OSPF 区域划分¶
┌────────────────────────────────────┐
│ Area 0 (骨干区域) │
│ ┌──────────────┐ │
│ │ 骨干路由器 │ │
│ └──┬────────┬──┘ │
│ │ │ │
│ ┌───────┴─┐ ┌──┴───────┐ │
│ │ Area 1 │ │ Area 2 │ │
│ └─────────┘ └──────────┘ │
└────────────────────────────────────┘
4.5 BGP 协议 —— 互联网的"导航系统"¶
核心比喻:BGP 就是国家之间的航线协议
国内快递靠中转站(OSPF/RIP),跨国快递需要各国海关和航空公司协商航线。BGP 就是互联网上不同自治系统(AS)之间的"航线协议"——决定数据包从中国到美国走哪条海底光缆。
| 特征 | 说明 |
|---|---|
| 类型 | 路径向量(Path Vector)协议 |
| 作用范围 | 不同自治系统(AS)之间 |
| 端口 | TCP 179 |
| 度量方式 | AS 路径长度(经过的 AS 数量) |
| 策略控制 | 支持丰富的路由策略(如优先走某个 ISP) |
4.6 常见考试题型¶
例题 1: RIP 协议允许的最大跳数是( )。
A. 8 B. 15 C. 16 D. 255
查看答案
答案:B
RIP 协议以跳数作为度量值,最大有效跳数为 15,16 跳表示不可达。这个限制使得 RIP 只适用于小型网络。
例题 2: OSPF 协议使用的路由算法是( )。
A. 距离向量算法 B. 最短路径优先(SPF)算法 C. 路径向量算法 D. 洪泛算法
查看答案
答案:B
OSPF(Open Shortest Path First)使用 Dijkstra 的 SPF(Shortest Path First)算法,基于链路状态数据库计算到每个目的地的最短路径。
例题 3: 以下关于静态路由和动态路由的说法,错误的是( )。
A. 静态路由由管理员手动配置 B. 动态路由能自动适应网络拓扑变化 C. 静态路由适用于大型复杂网络 D. 动态路由需要消耗 CPU 和带宽资源
查看答案
答案:C
静态路由需要管理员手动配置每一条路由,当网络规模增大时,配置工作量急剧增加,且无法自动适应拓扑变化。因此静态路由适用于小型简单网络,而非大型复杂网络。
要点总结¶
- 路由表记录"目的网络 → 下一跳 → 出接口"的映射
- 最长前缀匹配原则:掩码越长越优先
- RIP:距离向量协议,最大 15 跳,适合小型网络
- OSPF:链路状态协议,Dijkstra 算法,支持区域划分,适合中大型网络
- BGP:路径向量协议,用于不同自治系统之间的路由
课后练习¶
-
路由表分析 :某路由器路由表中有三条记录:
10.0.0.0/8 → R1、10.1.0.0/16 → R2、0.0.0.0/0 → R3。目的 IP 为10.1.2.3的数据包会从哪个接口转发?为什么? -
协议对比 :从算法、度量值、收敛速度、适用场景四个维度对比 RIP 和 OSPF。
-
真题演练 :OSPF 协议中,所有非骨干区域必须与( )区域相连。
下一章预告: 网络层解决了"送到哪"的问题。但数据到了目标主机后,该交给哪个应用程序?传输层用"端口号"解决这个问题——第 5 章见。