在前面的章节中,我们已经学习了IP地址和子网划分,知道了每一台计算机都有一个全球唯一的逻辑地址。但是,当你在浏览器输入网址时,数据包是如何跨越数千公里,经过无数个路由器,准确到达服务器的?这就涉及到了计算机网络的核心------路由(Routing)。
互联网并非是一个扁平的巨大网络,而是由无数个自治系统(Autonomous System, AS) 组成的集合。一个 ISP(如中国电信)、一所大学或一家大型企业都可以看作一个 AS。基于这种架构,路由协议自然被分为了两大类:
- 内部网关协议(IGP) :用于 AS 内部,追求速度和效率。典型代表是 RIP 和 OSPF。
- 外部网关协议(EGP) :用于 AS 之间,追求策略控制和可达性。目前唯一的代表是 BGP。
本章将深入剖析这三种协议,带你领略网络世界的导航法则。
1. 距离矢量协议的先驱:RIP (Routing Information Protocol)
1.1 历史背景与基本原理
RIP 是最早被广泛使用的内部网关协议之一。它的设计哲学非常朴素:我相信我的邻居。
RIP 基于距离矢量(Distance Vector)算法,其核心思想是 Bellman-Ford 算法。在 RIP 中,路由器的"眼中"只有跳数(Hop Count):
- 从自己到邻居,跳数为 1。
- 如果邻居说"我到目标网络 A 的跳数是 3",那么我就认为"我经由这个邻居到网络 A 的跳数是 3+1=43+1=43+1=4"。
RIP 路由器会周期性地(通常每 30 秒)向所有邻居广播自己的完整路由表。

图示 1:RIP 路由更新示意图
1.2 局限性与"坏消息传得慢"
虽然 RIP 配置简单,但它有两个致命弱点,导致它在现代大型网络中几乎绝迹:
- 最大直径限制 :RIP 规定最大跳数为 15,16 跳即被视为不可达。这意味着 RIP 只能适用于直径很小的网络。
- 收敛慢与路由环路 :当网络出现故障时,RIP 需要很长时间才能让所有路由器达成一致。
- 计数到无穷大(Count-to-Infinity)问题:假设 A-B-C 相连,当 C 断网时,B 还没来得及告诉 A,A 却告诉 B "我能到 C(其实是旧的经由 B 的路径)"。B 以为 A 有新路,于是更新自己的表。两者互相欺骗,跳数不断增加直到 16。
1.3 实际应用现状
目前,RIPv1 已被淘汰,支持 VLSM(可变长子网掩码)的 RIPv2 偶见于小型 SOHO 网络或某些老旧设备的兼容性配置中。在专业的企业网和运营商网络中,它已被 OSPF 和 IS-IS 取代。
2. 链路状态协议的标杆:OSPF (Open Shortest Path First)
2.1 发展与设计理念
随着网络规模扩大,依靠"听信谣言"的 RIP 无法满足需求。我们需要一种更科学的方法:给我一张地图,我自己算路。
OSPF(开放式最短路径优先)由 IETF 开发,基于 Dijkstra 最短路径算法 。它属于链路状态(Link-State)协议。
2.2 核心运作机制:从绘图到导航
OSPF 的工作过程可以类比为绘制地图:
- 建立邻居关系:路由器通过发送 Hello 包发现彼此。
- 泛洪 LSA(链路状态通告):每台路由器不发送路由表,而是发送"我的状态"(我有几个接口,带宽是多少,邻居是谁)。这种信息被称为 LSA。
- 同步 LSDB(链路状态数据库):所有路由器交换 LSA,最终每台路由器都拥有了一份完全相同的"全网地图"(LSDB)。
- 计算路由:每台路由器以自己为根,使用 SPF 算法计算到达所有目标的最短路径树。
Cost=参考带宽接口带宽 Cost = \frac{参考带宽}{接口带宽} Cost=接口带宽参考带宽
OSPF 使用开销(Cost)作为度量值,带宽越大,开销越小,路径越优。这比 RIP 的"跳数"更科学(千兆光纤的 2 跳显然优于 56K 拨号的 1 跳)。

图示 2:OSPF 的区域划分
2.3 实际应用与优势
OSPF 是目前企业园区网、数据中心网络中最流行的 IGP 协议。
- 收敛速度快:网络拓扑变化时,通过触发更新机制,几秒钟内全网即可同步。
- 无环路:由于每个路由器都有完整的拓扑地图,算法本身保证了无环路。
- 支持大规模网络:通过区域(Area)划分,支持成百上千台路由器的规模。
3. 互联网的粘合剂:BGP (Border Gateway Protocol)
3.1 为什么需要 BGP?
当我们将视角从一个企业内部移向全球互联网时,问题变了。
中国电信和美国 AT&T 对接时,他们在乎的不仅仅是"哪条路最快",而是:
- 商业策略:这是我的付费链路,还是免费对等链路?
- 安全性:我允许哪些流量经过我的网络?
- 规模:全球目前的路由表条目超过 90 万条,RIP 和 OSPF 的路由器内存和 CPU 根本无法承受。
因此,BGP(边界网关协议) 应运而生。它不追求计算"最短"路径,而是寻找一条"最佳且符合策略"的路径。目前互联网使用的是 BGP-4。
3.2 路径矢量与AS路径属性
BGP 被称为路径矢量(Path Vector)协议 。它在传递路由信息时,会携带一个重要的属性:AS_PATH。
当一条路由信息经过一个 AS 时,该 AS 会将自己的编号(ASN)附加在路径列表中。

图示 3:BGP 的 AS_PATH 属性
3.3 BGP 的独特之处
- 基于 TCP:不同于 RIP (UDP) 和 OSPF (IP协议号89),BGP 运行在 TCP 端口 179 上,保证了在不可靠的广域网上的传输可靠性。
- 丰富的属性(Attributes):BGP 不仅仅看带宽,还看 Local_Preference(本地优先级)、MED、Community(团体属性)等。管理员可以通过修改这些属性,精确控制流量是"走左边"还是"走右边"。
- 增量更新:BGP 仅在路由变化时发送更新,且只发送变化的部分,这对维护庞大的全球路由表至关重要。
3.4 实际应用:MP-BGP 与数据中心
除了连接互联网,现代 BGP(MP-BGP,多协议扩展 BGP)还广泛应用于:
- MPLS VPN:运营商用来承载企业专线。
- 大型数据中心(Data Center):在像 Google、Facebook 或阿里云这样的超大规模数据中心内部,传统的 OSPF 已经跑不动了,现在普遍采用 BGP 作为内部路由协议(Spine-Leaf 架构),利用 BGP 强大的策略控制能力来调度流量。
4. 总结与展望
为了方便记忆与对比,我们可以将这三种协议总结如下:
| 特性 | RIP | OSPF | BGP |
|---|---|---|---|
| 类型 | IGP (内部) | IGP (内部) | EGP (外部) |
| 算法 | 距离矢量 (Bellman-Ford) | 链路状态 (Dijkstra) | 路径矢量 |
| 度量标准 | 跳数 (Max 15) | 带宽 (Cost) | 复杂的属性组合 (AS-Path, LP等) |
| 收敛速度 | 极慢 | 快 | 中等 (侧重稳定性) |
| 应用场景 | 教学、微型网络 | 园区网、企业网 | 互联网骨干、大型数据中心 |
学习建议
对于计算机专业的初学者:
- 先彻底理解 RIP,明白"路由表"和"下一跳"的基本概念。
- 重点掌握 OSPF,这是网络工程师面试和工作的重中之重,尤其是 LSA 的类型和区域的概念。
- 对于 BGP,理解其"策略控制"的核心思想和 AS 的概念即可,深入的 BGP 调优通常属于高级网络专家的范畴。
随着软件定义网络(SDN)的兴起,虽然控制逻辑开始从路由器集中到控制器,但这三种协议依然是底层物理网络(Underlay)连通的基石。理解它们,你就掌握了网络世界的通行证。