在大型网络中为每个设备手动配置路由表将是一项极其繁琐的任务。为了自动化此过程,我们使用动态的路由协议。这些协议允许路由器通过学习不同路由、将它们构建到路由表中并相应地转发数据包来自动适应网络变化。路由协议主要有两种类型:距离矢量和链路状态。
距离矢量协议
距离矢量协议基于“通过谣言进行路由”的原则。每台路由器会定期与其直接相连的邻居共享其完整的路由表。当路由器从邻居接收到路由表时,它会使用任何新的或更好的路由来更新自己的表。“距离”通常以跳数等指标来衡量。这种方法很简单,但收敛速度可能较慢,并且容易出现路由环路。距离矢量协议的一个例子是路由信息协议 (RIP)。
链路状态协议
相比之下,链路状态协议为每台路由器提供了网络拓扑的完整地图。路由器不会共享其完整的路由表,而是将其自身链路的状态信息(例如,连接的邻居和连接的成本)发送给网络中的所有其他路由器。利用这些信息,每台路由器都可以独立构建一个相同的网络地图,并计算到每个目的地的最佳路径。这种方法带来了更快的网络收敛,并且比距离矢量协议更具可扩展性。一个例子是开放最短路径优先 (OSPF) 协议。
网络收敛
在进一步讨论协议之前,了解路由中的一个关键概念——网络收敛——非常重要。在使用路由协议时,路由器会相互通信以收集和交换信息。收敛是指所有路由器对网络拓扑具有一致且准确视图的状态。当每个路由表都正确映射了整个网络时,网络就被认为是“收敛的”。如果发生变化,例如链路中断,收敛会暂时被打破,直到所有路由器都了解该变化并更新其路由表。