Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49661
  • 博文数量: 8
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 21
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-08 10:55
文章分类

全部博文(8)

文章存档

2018年(6)

2017年(2)

我的朋友

分类: LINUX

2018-01-15 16:25:49

原文地址:FIB(Forward Information Base) 作者:zimang


0
  FIB(Forward Information Base)
  FIB从概念上讲类似于路由表或信息库。它维护着一个IP路由表中包含的转发信息的镜象。当网络中路由或拓朴结构发生了变化时,IP路由表就被更新,而这些变化也反映在FIB中。FIB基于IP路由表中信息,维护着下一网络段的地址信息。
  Linux内核中采用了FIB(Forward Information Base)这个名词代替了Routing Database,原因不详。可能是不想和应用层的路由数据库发生概念上的冲突吧。但是Linux内核还是有一个叫做RouteTable的数据结构的,不过,它只是FIB的一份cache而已,其关系如同计算机中内存和CPU cache的关系。系统中路由一般采取的手段是:先到路由缓存中查找表项,如果能查找到,那么就直接将对应的一项取出作为路由的规则;如果查不到,那么就到FIB中根据规则换算出来,并且增加一项新的,在路由缓存中将项目添加进去。所以在研究Linux代码时,应该注意这一点,不能抓着RouteTable不放而忽视了FIB。
  和FIB相近的一个概念叫RIB(Route Information Base)。FIB强调的是作为转发的路由表,RIB是用来做路由管理的表。通常有了动态路由协议的参与才能理解这个问题。RIP、OSPF、BGP、ISIS都是动态路由协议,它们学习到的路由首先要通告给RIB表。RIB表把所有路由协议学习到的路由汇总到一起,经过优选,把优选结果的路由加入到FIB表,供转发使用。所以FIB是RIB的一个子集。
阅读(1392) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~