IP 路由缓存管理详解
1. 引言
在繁忙的网络系统或路由器中,会建立大量的网络连接,这使得路由缓存条目不断增加。单个 FIB 路由表条目可能会产生数百个内核路由缓存条目,每个与远程网络不同主机的连接都会对应一个路由缓存条目。这些缓存条目可能长时间闲置,占用系统内存。因此,需要对路由缓存进行有效管理,本文将详细介绍相关的管理机制和方法。
2. 路由缓存定时器
为了监控路由缓存条目,系统安装了定时器,以预设的时间间隔进行检查。与路由缓存管理相关的系统级定时器有两个:
-rt_periodic_timer
-rt_flush_timer
这两个定时器在系统启动时的ip_rt_init()例程中初始化,但只有rt_periodic_timer在第 2525 行安装。rt_periodic_timer和rt_flush_timer的定时器例程分别是rt_check_expire和rt_run_flush。
3.rt_periodic_timer
rt_periodic_timer是一个周期性定时器,在路由子系统初始化的启动时间启动,一旦启动就不会停止,但不一定以固定频率触发。
3.1 定时器的作用
该定时器触发时执行的例程是