RIP 与 BGP:路由表的自动生成
问题:路由表为什么不能手写
手写路由表在小规模下可行,但有两个硬伤:
- 路由器可能有多个出口,路由表会很长
- 周围拓扑会变动(新增路由器、路由器故障),需要路由表能及时把流量导向其他出口
因此需要一种机制,能自动探测周围拓扑并生成路由表。
用北京地铁理解路由更新
从机场到朝阳门:2号航站楼 → 三元桥 → 东直门 → 朝阳门
- 2号航站楼 = 出发主机,朝阳门 = 目的主机
- 三元桥、东直门 = 中间路由器
若 三元桥 → 东直门 段因维修停运,三元桥就需要更新自己的路由表,指示后续流量改走:三元桥 → 芍药居,再由芍药居按它的路由表继续送往朝阳门。
这就是路由协议要做的事:让每个节点自动获知”哪条路不通了、该改走哪条”。
RIP:按”跳数”决定路径
RIP(Routing Information Protocol) 通过距离决定路由,属于 distance-vector protocol(距离向量协议)。
这里的”距离” = 从出发地到目的地途径的路由器数目(hop number)。
工作过程
- 最初可手工生成某节点的路由表
- 该节点按 RIP 向周围路由器和主机广播自己到各个 IP 的距离
- 例:三元桥广播
到机场 = 0、国贸 = 1、望京西 = 1、建国门 = 2
- 例:三元桥广播
- 收到 RIP 包的节点,结合”自己到发送方的距离”算出新距离
- 东直门到三元桥距离为 1,收到”到机场 = 0” → 东直门经三元桥到机场 = 1 + 0 = 1
- 若东直门原有记录更远(如经芍药居 = 2),则更新路由表,改走三元桥
- 若原有记录不差,则保持不变
- 各点不断重复”广播 / 计算距离 / 更新路由表”,最终全网收敛到合理路径
基本逻辑一句话
如果 A 距离 B 为 6,而我距离 A 为 1,那么我途径 A 到 B 的距离为 7。
关键限制:15 跳上限
RIP 出于技术原因(looping hops,防环路)认为距离超过 15 的 IP 不可到达。
因此 RIP 只适用于规模有限的网络,典型是”互联网的一个部分”——往往属于同一个 ISP 或有同一管理机构。
自治系统(AS)
由于 RIP 的规模限制,互联网被划分为自治系统(AS, autonomous system):
- AS 内部:主机和路由器使用 RIP 决定路由表
- AS 之间:通过边界路由器通信
BGP:AS 之间的路由
各 AS 的边界路由器之间通过 BGP(Border Gateway Protocol) 生成前往其他 AS 的路由表。
BGP 的基本工作过程与 RIP 类似,但决策依据更丰富——不只是距离,还权衡政策、连接性能等其他因素来决定流量走向。
表:RIP 与 BGP 的分工
RIP BGP 作用范围 自治系统内部 自治系统之间 度量依据 跳数(hop number) 距离 + 政策 + 性能等 类型 距离向量协议 路径向量协议 规模限制 15 跳上限 面向全球互联网 使用者 AS 内主机与路由器 边界路由器
三个协议的分工总结
| 协议 | 解决的问题 | 层次 |
|---|---|---|
| ARP | 让每台设备知道局域网内 IP ↔ MAC 的对应关系,实现 IP 包到帧的封装 | 连接层与网络层之间 |
| RIP | 生成自治系统内部合理的路由表 | 网络层 |
| BGP | 生成自治系统之间的路由表 | 网络层 |
三者共同协助 IP 传输:ARP 解决”下一跳的 MAC 是谁”,RIP/BGP 解决”下一跳该往哪走”。
适用范围
上文的 IP 接力过程同样适用于 IPv6(除 ARP 被 NDP 替代外)。
参考链接
- IP包接力与路由表 — 路由表的使用者与转发机制
- IPv4地址分类与子网掩码 — 路由匹配依赖的地址结构