深入解析IP路由与转发信息库(FIB)
1. IP路由中的延迟与截止时间
在IP路由中,当计算延迟时,如果 rt_deadline 为零,意味着 rt_flush_timer 已经过期,或者该定时器从未安装,且路由从未被刷新。在这种情况下, rt_deadline 会被设置为相对于当前 jiffies 的 ip_rt_max_delay 节拍。若有人尝试以负延迟或正延迟刷新缓存,并且自定时器安装以来无人刷新路由缓存,那么将根据此处设置的 rt_deadline 值为该定时器计算新的延迟。
2. 转发信息库(FIB)概述
FIB 是内核中的内部路由结构,包含路由信息。当 IP 层发送请求以识别目标地址的路由,且在路由缓存中未找到相应条目时,IP 层会在最具体的区域进行 FIB 查找,并搜索表格直至找到匹配项。找到匹配项后,FIB 会用该匹配项更新路由缓存,以便下次 IP 层能在路由缓存中找到路由。
FIB 的核心结构是 fib_table ,它是一个数组变量,包含一个指向 fn_hash 结构的指针。 fn_hash 结构又包含一个 fn_zone 结构表,每个 fn_zone 结构对应一个网络掩码位,共 32 个区域。例如,网络掩码 255.255.0.0 有 16 位,对应区域 16;网络掩码
深入解析IP路由与FIB机制
超级会员免费看
订阅专栏 解锁全文
2

被折叠的 条评论
为什么被折叠?



