路由協議和架構/網路裝置架構提示
外觀
< 路由協議和架構
路由器的架構一直在不斷發展,以不斷提高其資料包處理能力

第一代路由器基本上是經過修改的個人電腦
- 網路介面:它們是普通的網絡卡,數量更多,種類更多,與普通個人電腦上的網絡卡相比;
- 記憶體:固態儲存器(例如 SD 卡)優先,因為與機械硬碟相比,它不太容易出現故障;
- 作業系統:專門針對網路流量處理進行了最佳化。
- 優點
- 規模經濟:它使用大規模生產的元件,而不是專門用於網路世界的元件。
- 缺點
- 瓶頸:
- 共享匯流排:
- 慢速路徑:每個資料包在總線上傳輸兩次;
- 仲裁:一次只有一個網絡卡可以使用匯流排→多個介面不能並行工作;
- 記憶體訪問:路由表儲存在通用記憶體中的資料結構中→訪問不像傳統個人電腦那樣本地化,並且快取很少使用;
- 處理能力:每當資料包到達時,CPU 都會中斷作業系統;
- 共享匯流排:
- 網路介面:傳統的網絡卡沒有很多埠,並且只支援最常見的介面型別;
- 維護成本:使用開源元件(例如 PPP 客戶端)會導致整合問題和各種配置方式。
目前這種架構用於中低端路由器,其效能足以滿足小型辦公室的需求。

第二代路由器試圖透過將處理負載從核心 CPU 轉移到邊緣單元來解決效能問題:網絡卡被線路卡取代,線路卡是“智慧”網絡卡,它們將轉發模組新增到物理/MAC 元件中
- CPU:資料包處理器是專門用於“簡單”資料包處理的處理器;
- 記憶體:每個傳入的資料包都被儲存到一個本地記憶體中,該記憶體與包含路由表的記憶體(通常是 TCAM)分開;
- 路由表:有時更新後的路由表會從中央單元複製到線路卡。
資料包可以遵循兩種方式
- 快速路徑:符合典型情況(例如 IPv4)的資料包只在總線上傳輸一次:它們由資料包處理器直接處理,並立即傳送到輸出介面;
- 慢速路徑:最不頻繁的資料包(例如 IPv6、OSPF)會留給核心 CPU 進行更復雜的處理,但吞吐量明顯降低。
線路卡的工作應由核心 CPU 協調,路由協議(例如 OSPF)也在核心 CPU 上執行,核心 CPU 安裝在高端系統中的稱為監管器的卡上。
- 優點
- 核心 CPU:它只為快速路徑上的資料包工作→它可以不太強大;
- 快速路徑最佳化:連線中的第一個資料包會走慢速路徑,然後中央系統會將該連線標記為符合快速路徑的條件,所有後續資料包都將走快速路徑;
- 靈活性:引入新協議(例如 IPv6)只需要更新中央系統上的軟體。
- 缺點
- 共享匯流排仲裁:一次只有一個線路卡可以使用匯流排→多個介面不能並行工作。

第三代路由器專注於解決並行化問題,用交換結構(或交叉開關)取代共享匯流排,該結構能夠處理多個傳輸:一個線路卡透過短路交換矩陣中它們“線”的交點來連線到另一個線路卡。
兩個線路卡不能同時連線到同一個線路卡→需要一個仲裁器,它驅動切換點並解決爭用情況,避免衝突。
當輸出介面的傳送資料包速度比交換結構的交換速度慢時,資料包可以以各種方式排隊
- 輸出排隊:緩衝區放置在輸出介面上→最壞情況:交換結構的速度是接收速度的N倍,其中N=輸入介面的數量;
- 輸入排隊:緩衝區放置在輸入介面上→交換結構的交換速度不依賴於輸入介面的數量,但會遇到行首阻塞問題
- 兩個輸入佇列中的兩個資料包都將傳送到同一個輸出佇列;
- 仲裁器讓其中一個數據包透過,阻塞另一個數據包;
- 輸入佇列中的所有後續資料包,即使是那些要傳送到空閒輸出佇列的資料包,都必須等待“行首”;
- 虛擬輸出排隊:透過在每個輸入處為每個輸出保留一個佇列來解決行首阻塞問題;
- 帶緩衝交換結構:緩衝區放置在交叉開關內部的切換節點位置。
- 缺點
- 仲裁器:
- 它構成了一個瓶頸,尤其是在由於資料包較小而頻繁做出決策的情況下(例如 ATM);
- 服務質量的排程策略可能會使其硬體更加複雜;
- 佇列緩衝區:它們是昂貴的記憶體,因為它們必須很快。
多機箱路由器旨在實現可擴充套件性:連線多個並排機架,使其看起來像一臺路由器
- 處理能力乘以機箱的數量;
- 有更多用於網路介面的物理空間→可以將大量的連結連線到同一個裝置;
- 路由集中在一個站點(就像電話世界一樣),而不是分散在網路上的許多小型路由器→資料站點可以為一個廣闊的地理區域(例如皮埃蒙特)內的所有使用者提供服務。
另一個最近的趨勢旨在提高靈活性:路由器不再是純粹的第 3 層裝置,因為正在新增許多不屬於第 3 層的其他功能,例如快取、防火牆、網路監控、ACL 等。目標是定製 ISP 提供的服務,將目前掌握在內容提供商手中的部分業務帶回。
目前常用的解決方案是服務卡,這是一種增強了增值服務的線路卡,由製造商預先配置。但是,服務卡的靈活性不高:由於不可程式設計,因此需要購買新的服務卡才能新增服務。
吞吐量現在不再是問題,但當前的主要問題是
- 購買成本:為了降低網路裝置的成本,專用元件正在被大規模生產的通用元件取代
- 主流 CPU 的產品生命週期太短,更換時間太長→英特爾最近推出了嵌入式 CPU,與主流 CPU 相比,嵌入式 CPU 的產品生命週期更長,更換時間更短;
- 在專用系統中,程式設計師可以利用記憶體層次結構,將 RIB 儲存到慢速記憶體中,將 FIB 儲存到快速記憶體中(例如 TCAM),而通用系統會自動決定將什麼放入快取中→具有分割槽記憶體但處理通用性有限的 GPU 應該得到解決;
- 運營成本: 電力消耗和熱量散發可能非常大;
- 靈活性: 需要朝著將控制功能與物理硬體分離的方向發展:
C3. 軟體定義網路簡介.