FIB(Forward Information dataBase)
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 dataBase)。FIB強調的是作為轉發的路由表,RIB是用來做路由管理的表。通常有了動態路由協定的參與才能理解這個問題。RIP、OSPF、BGP、ISIS都是動態路由協定,它們學習到的路由首先要通告給RIB表。RIB表把所有路由協定學習到的路由匯總到一起,經過優選,把優選結果的路由加入到FIB表,供轉發使用。所以FIB是RIB的一個子集。
注釋 :更改base 為 database 。簡單理解 庫 內 存放的一個大的excel表格。 可以理解為轉發庫(轉發表)
一般技術名詞的英文單詞,就解釋了功能。即:網路設備轉發信息(包)時候,用到的表格。告訴設備從哪個物理口出