Chinaunix首页 | 论坛 | 博客
  • 博客访问: 265587
  • 博文数量: 54
  • 博客积分: 1425
  • 博客等级: 上尉
  • 技术积分: 541
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-27 23:26
文章分类

全部博文(54)

文章存档

2018年(2)

2015年(3)

2014年(6)

2013年(5)

2012年(5)

2011年(7)

2010年(14)

2009年(1)

2008年(3)

2007年(6)

2006年(1)

2005年(1)

我的朋友

分类: BSD

2015-01-25 22:08:31

转发信息库

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的一个子集。

阅读(971) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~