RIP 路由 3 个定时器的工作流程
根据 RFC2453, RIP 协议一共定义了 3 种定时器,分别是:
・更新定时器 (Update Timer)
・老化定时器 (Age Timer)
・垃圾收集定时器 (Garbage-collectTimer)
RIP 的更新信息发布是由更新定时器控制的,默认为每 30s 发送一次,每一个路由表项对应两个定时器:老化定时器和垃圾收集定时器。当学到一条路由并添加到路由表中时,老化定时器启动。
如果老化定时器超时(Age Out),设备仍没有收到邻居发来的更新报文,则把该路由的度量值置为 16(表示路由不可达),并启动垃圾收集定时器。如果垃圾收集定时器超时,设备仍然没有收到更新报文,则删除该条目。
一条路由失效以后直到从 RIP 数据库中清除将会经过老化和垃圾收集阶段。老化阶段, 路由出现在路由表中,转发数据报文,但在垃圾收集阶段,路由仅在 RIP 数据库中存在,不转发数据报文,此期间 RIP 会向邻居路由器发送 RIP 毒化路由更新(Metric 为 16 的路由更新),任何接收到该毒化路由的 RIP 路由器,从路由表中撤销该路由,并在 RIP 数据库中为该路由启动垃圾收集定时器,开始扩散毒化路由。
RIP 路由 4 种防环方法
-
水平分割(Split Horizons)
为了避免路由器收到自身发送的无效路由信息而引发循环路由,路由器在接收到路由信息后,不允许从同一接口向网络中发送该信息。减少了不必要的重复信息流,避免了路由环路的产生,节省了链路带宽资源。
-
毒性逆转(Poisoned Reverse)
作为对水平分割的一种改进,当路由器接收到自身所引入的路由信息后,不直接阻止信息回传,而是通过在回应的路由更新报文中,将那条路径的跳数设置为最大值,从而使得接收路由器判断此条路由已不可用,并立即删除这条路由信息。这加速了路由表的更新过程。
-
触发更新(Triggered Updates)
在正常情况下,路由器按照固定的间隔时间(通常为 30 秒)来发送路由更新信息。但当网络拓扑结构发生变化时(例如新增或删除连接),路由器会立即发送包含最新路由信息的更新报文,以更快地适应网络变化。
-
抑制计时器(Holddown Timer)
当一条路由失效后,路由器进入抑制状态,即在特定时间内(通常为 180 秒)不会接受关于该路由的任何其他更新信息。这样能够避免因为链路瞬时故障导致消息频繁变动,提高网络的稳定性和减少不必要的路由查找工作。
RIP 协议通过上述 4 种机制协同工作,有效阻止了路由环路的发生,同时加快收敛速度,优化了路由信息的传播效率和网络稳定性。