跳转到内容

路由协议

来自轻之舟百科
Routing Protocol
中文名 路由协议
英文名 Routing Protocol
类别 网络协议
功能 在路由器之间交换路由信息,构建并维护路由表
核心算法分类 距离向量算法链路状态算法路径向量算法
主要协议 RIP、OSPF、IS-IS、EIGRP、BGP
传输层 通常直接封装于IP(如OSPF、EIGRP)或使用UDP(如RIP)、TCP(如BGP)

路由协议(Routing Protocol) 是计算机网络中路由器之间为交换路由信息而共同遵循的一组规则和标准的统称[1][2]。其核心作用在于帮助每台路由器动态发现通往其他网络的最优路径,并将这些信息填充于路由表(Routing Table)中,以供数据包的转发决策使用[1]。作为TCP/IP网络体系结构中的关键支撑技术,路由协议是确保端到端通信在网络拓扑变化时依然保持可达与高效的基础设施[3]

基本分类

按工作区域分类

根据网络规模和管理域的不同,路由协议可分为内部网关协议(IGP)和外部网关协议(EGP)两大类[4]

  • 内部网关协议(Interior Gateway Protocol, IGP):在同一自治系统(Autonomous System, AS)内部运行,负责发现和计算到达AS内部其他网络的最优路径,主要关注协议的快速收敛和对拓扑变化的及时响应[4]。典型的IGP包括RIP、OSPF、IS-IS和EIGRP[1]
  • 外部网关协议(Exterior Gateway Protocol, EGP):在不同自治系统之间运行,负责在AS之间传递网络可达性信息,通常关注策略控制和路由扩展性而非单纯的选路速度[4]。目前实际应用中的EGP仅有BGP(Border Gateway Protocol)[4]。早期的EGP(RFC 904,1984年)已基本被BGP取代[5]

按算法分类

按核心算法原理划分,当前互联网中主流的动态路由协议普遍基于三种基本范式:距离向量算法、链路状态算法和路径向量算法[6]

  • 距离向量算法(Distance Vector Algorithm, DV):基于Bellman-Ford算法,每个路由器向所有直连邻居通告自己的完整路由表,邻居据此更新自己的路由表。以“跳数”(Hop Count)作为基本度量。实现简单,适用于小型网络[4]。代表协议:RIP、IGRP(Cisco专有)。
  • 链路状态算法(Link State Algorithm, LS):基于Dijkstra的最短路径优先(SPF)算法。每个路由器向区域内所有路由器泛洪(Flooding)本地链路的连接状态信息,最终所有路由器都能绘制出完整的网络拓扑图,并独立计算通往各目的地的最优路径。收敛速度快,支持大型复杂网络[4]。代表协议:OSPF、IS-IS。
  • 路径向量算法(Path Vector Algorithm):在距离向量的基础上增加了记录路由所经过的路径序列(AS_PATH),借此有效地检测并防范路由环路。主要关注路由策略和可达性而非单一的“距离”优化。代表协议:BGP[6]

此外,某些混合路由协议(如Cisco的EIGRP)结合了距离向量和链路状态的特点,在收敛性能和资源占用之间取得一定平衡[1]

按消息行为分类

  • 有类路由协议(Classful Routing Protocol):在路由更新中不携带子网掩码信息,因此无法支持可变长子网掩码(VLSM)和无类别域间路由(CIDR)。典型的例子是RIPv1。
  • 无类路由协议(Classless Routing Protocol):在路由更新中携带子网掩码信息,允许对IP地址进行更灵活的子网划分和地址聚合。现代路由协议均为无类协议,如RIPv2、OSPF、EIGRP和BGP[1]

发展历史

路由协议的概念与互联网的前身——ARPANET的演进紧密交织。

  • **1969年**:由BBN(Bolt, Beranek and Newman)公司的团队(包括Will Crowther)在ARPANET的初始设计时即引入了一种基于Bellman-Ford算法的**距离向量路由算法**,这是所有现代动态路由协议的基础算法源头[7][8]
  • **1970年代**:**GGP(Gateway-to-Gateway Protocol)** 作为ARPANET中最早正式部署的路由协议之一而诞生,它基于距离向量算法,用于在核心网关(路由器)之间交换路由信息[8]。GGP为后续路由协议的设计奠定了基础[8]
  • **1980年代**:随着网络规模的扩大,GGP等早期协议的局限性日益显现。**RIP(Routing Information Protocol)** 于1982年问世,成为第一个在TCP/IP网络中广泛部署的内部网关协议[9]。同期,为了解决外部自治系统间的路由问题,**EGP(Exterior Gateway Protocol)** 于1984年被定义(RFC 904),成为早期的域间路由标准[10]
  • **1990年代**:随着网络复杂性的指数级增长,基于距离向量的RIP在大型网络中遭遇了收敛慢、易形成路由环路等问题。为此,**OSPFv1(Open Shortest Path First)** 的规范于1989年提出(RFC 1131),并于1991年发布OSPFv2(RFC 1247),成为链路状态路由协议在IP网络中的首个成功大规模部署的典范[11]。IS-IS(Intermediate System to Intermediate System)同样在此时期被适配于IP网络。为了适应互联网全球扩展的需求,**BGP-4** 于1995年发布(RFC 1771),替代了早期的EGP和功能受限的BGP-3,成为现代互联网中唯一的域间路由协议[12]。BGP-4引入了对CIDR的支持并采用路径向量算法,为互联网的规模化和扁平化管理提供了关键技术支撑[12]

基本原理

路由表的生成与维护

所有动态路由协议都围绕“路由表”这一核心数据结构工作。其基本流程如下[13]

  1. **信息发现**:路由器通过其接口发送特定类型的Hello消息,以发现处于同一网段的、运行相同路由协议的邻居路由器。
  2. **信息交换**:根据协议的不同算法,路由器与邻居交换路由信息。例如,RIP会定期(如每30秒)向所有邻居广播其完整路由表;而OSPF则仅在链路状态发生变化时,将变化的链路状态通告(LSA)泛洪到整个区域。
  3. **路径计算**:路由器基于收到的路由信息,运用特定算法(如Bellman-Ford或Dijkstra)计算通往每个已知目的地的最优路径。该“最优”由协议的度量值(metric)定义,可以是跳数、链路开销、带宽、延迟或管理员自定义策略。
  4. **路由表更新**:路由器将计算出的最佳路由条目写入其本地路由表(RIB,Routing Information Base),取代旧的或次优的路径。

收敛

    • 收敛(Convergence)** 是路由协议的一个关键指标,指当网络拓扑发生变化(如链路故障、新加入节点)后,网络中所有路由器重新计算并达成一致的最优路由视图的过程[14]。收敛速度的快慢直接影响网络在故障后的自愈能力和服务质量。链路状态协议(如OSPF)通常比距离向量协议(如RIP)收敛更快[14]

路由环路

当路由信息传播出现延迟或不一致时,网络中可能出现**路由环路(Routing Loop)**,即数据包在两个或更多路由器之间循环转发,无法到达目的地[15]。RIPv1等早期距离向量协议尤其容易出现环路问题,为此引入了**水平分割(Split Horizon)**、**毒性反转(Poison Reverse)** 和**定义最大跳数(如RIP的16跳为“无限远”)** 等辅助机制以缓解环路的负面影响[16][17]。链路状态协议由于每个路由器都掌握完整的拓扑信息,可以从根本上避免临时环路的产生[14]

常用协议

  • RIP(Routing Information Protocol):基于距离向量算法,使用跳数作为度量,支持最多15跳。IETF在RFC 1058(RIPv1)中将其标准化。配置简单,但收敛慢,扩展性差,目前主要应用于极小型网络或作为教学用途[1]
  • OSPF(Open Shortest Path First):基于链路状态算法,使用带宽、延迟等复合开销作为度量。支持区域(Area)划分以适应大规模网络部署。是企业和运营商网络中部署最广泛的IGP之一。OSPFv2对应IPv4,OSPFv3对应IPv6。RFC 2328定义了OSPFv2[1]
  • IS-IS(Intermediate System to Intermediate System):源于OSI协议栈,后适配于TCP/IP网络。作为链路状态协议,与OSPF功能相似,但在大型服务提供商网络中因其极高的稳定性、扩展性及对多拓扑的支持而更受欢迎。
  • EIGRP(Enhanced Interior Gateway Routing Protocol):Cisco Systems开发的专有路由协议,早期版本为IGRP。融合了距离向量和链路状态的特点,被称为“高级距离向量”协议。通过Diffusing Update Algorithm (DUAL)实现了快速收敛和高效更新,在Cisco设备主导的网络中有广泛部署[1]
  • BGP(Border Gateway Protocol):当前互联网中唯一的域间路由协议,其现代版本为BGP-4(RFC 4271)。使用路径向量算法,以AS_PATH属性作为防环机制。BGP是支撑全球互联网互联互通的核心协议,负责在不同AS之间传递路由策略。

参考文献