路由的轉發原理
其實所有的網絡都是從簡單到複雜的,而交換和路由有是這其中最基本的元素。
我認爲路由器其實是一個邏輯的概念,而不僅僅只是我們看到得那個擺在機架上的黑色的鐵盒子,邏輯上來說:“有多個接口,用於連接多個IP子網及多種鏈路,能讓他們互聯互通的設備應該都可以稱之爲路由器”路由器的核心是全局路由表,通過路由器的所有數據轉發都要經過全局路由表來實現。
那麼這樣看路由器可以分爲兩個功能層面
1.控制層面:形成和維護全局路由表
2.轉發層面:根據形成的全局路由表來實現數據轉發
而控制層面和轉發層面的接口就是全局路由表
控制層面 |
||
|
全局路由表
|
|
|
|
|
轉發層面 |
那麼控制層面如何形成路由表?
1. 直連路由:只要路由器接口UP了那麼這個接口所在的網段會自動進入全局路由表中。
2. 靜態路由:通過靜態路由手工配置
3. 動態路由:通過動態路由協議學習到的(ospf,rip)
全局路由表包含什麼?
全局路由表中包含的以下5個最爲重要的項目
1. 通過何種方式學習
2. 目標網段
3. 目標網段子網掩碼
4. 出接口
5. 下一跳地址
轉發層面如何根據全局路由表來轉發IP數據包
1最長掩碼匹配原則(選擇所有匹配路由中,子網掩碼最長的那條進行數據轉發)
2.遞歸查找(如圖)
4. IP轉發是逐跳進行的,每一條都要查找全局路由表,通過遞歸算法知道查到下一跳爲直連,纔會把數據包發往該出接口。且每轉發一次TTL值-1。TTL值爲0是數據包會被丟棄
如下分析