跳轉到內容

路由協議和架構/網路裝置架構提示

來自華夏公益教科書
Previous page
內容交付網路
路由協議和架構 Next page
基於軟體的資料包過濾
網路裝置架構提示

路由器的架構一直在不斷發展,以不斷提高其資料包處理能力

  • 第一代(直到 1990 年初):低於 500 Mbps;
  • 第二代(1990 年初):約 5 Gbps;
  • 第三代(1990 年後期):從 50 Gbps 開始;
  • 多機箱(最近趨勢):Tbps 數量級。

第一代

[編輯 | 編輯原始碼]
第一代路由器架構。

第一代路由器基本上是經過修改的個人電腦

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

目前這種架構用於中低端路由器,其效能足以滿足小型辦公室的需求。

第二代

[編輯 | 編輯原始碼]
第二代路由器架構。

第二代路由器試圖透過將處理負載從核心 CPU 轉移到邊緣單元來解決效能問題:網絡卡被線路卡取代,線路卡是“智慧”網絡卡,它們將轉發模組新增到物理/MAC 元件中

  • CPU資料包處理器是專門用於“簡單”資料包處理的處理器;
  • 記憶體:每個傳入的資料包都被儲存到一個本地記憶體中,該記憶體與包含路由表的記憶體(通常是 TCAM)分開;
  • 路由表:有時更新後的路由表會從中央單元複製到線路卡。

資料包可以遵循兩種方式

  • 快速路徑:符合典型情況(例如 IPv4)的資料包只在總線上傳輸一次:它們由資料包處理器直接處理,並立即傳送到輸出介面;
  • 慢速路徑:最不頻繁的資料包(例如 IPv6、OSPF)會留給核心 CPU 進行更復雜的處理,但吞吐量明顯降低。

線路卡的工作應由核心 CPU 協調,路由協議(例如 OSPF)也在核心 CPU 上執行,核心 CPU 安裝在高端系統中的稱為監管器的卡上。

優點
  • 核心 CPU:它只為快速路徑上的資料包工作→它可以不太強大;
  • 快速路徑最佳化:連線中的第一個資料包會走慢速路徑,然後中央系統會將該連線標記為符合快速路徑的條件,所有後續資料包都將走快速路徑;
  • 靈活性:引入新協議(例如 IPv6)只需要更新中央系統上的軟體。
缺點
  • 共享匯流排仲裁:一次只有一個線路卡可以使用匯流排→多個介面不能並行工作。

第三代

[編輯 | 編輯原始碼]
第三代路由器架構。

第三代路由器專注於解決並行化問題,用交換結構(或交叉開關)取代共享匯流排,該結構能夠處理多個傳輸:一個線路卡透過短路交換矩陣中它們“線”的交點來連線到另一個線路卡。

兩個線路卡不能同時連線到同一個線路卡→需要一個仲裁器,它驅動切換點並解決爭用情況,避免衝突。

當輸出介面的傳送資料包速度比交換結構的交換速度慢時,資料包可以以各種方式排隊

  • 輸出排隊:緩衝區放置在輸出介面上→最壞情況:交換結構的速度是接收速度的N倍,其中N=輸入介面的數量;
  • 輸入排隊:緩衝區放置在輸入介面上→交換結構的交換速度不依賴於輸入介面的數量,但會遇到行首阻塞問題
    1. 兩個輸入佇列中的兩個資料包都將傳送到同一個輸出佇列;
    2. 仲裁器讓其中一個數據包透過,阻塞另一個數據包;
    3. 輸入佇列中的所有後續資料包,即使是那些要傳送到空閒輸出佇列的資料包,都必須等待“行首”;
  • 虛擬輸出排隊:透過在每個輸入處為每個輸出保留一個佇列來解決行首阻塞問題;
  • 帶緩衝交換結構:緩衝區放置在交叉開關內部的切換節點位置。
缺點
  • 仲裁器:
    • 它構成了一個瓶頸,尤其是在由於資料包較小而頻繁做出決策的情況下(例如 ATM);
    • 服務質量的排程策略可能會使其硬體更加複雜;
  • 佇列緩衝區:它們是昂貴的記憶體,因為它們必須很快。

多機箱路由器

[編輯 | 編輯原始碼]

多機箱路由器旨在實現可擴充套件性:連線多個並排機架,使其看起來像一臺路由器

  • 處理能力乘以機箱的數量;
  • 有更多用於網路介面的物理空間→可以將大量的連結連線到同一個裝置;
  • 路由集中在一個站點(就像電話世界一樣),而不是分散在網路上的許多小型路由器→資料站點可以為一個廣闊的地理區域(例如皮埃蒙特)內的所有使用者提供服務。

服務卡

[編輯 | 編輯原始碼]

另一個最近的趨勢旨在提高靈活性:路由器不再是純粹的第 3 層裝置,因為正在新增許多不屬於第 3 層的其他功能,例如快取、防火牆、網路監控、ACL 等。目標是定製 ISP 提供的服務,將目前掌握在內容提供商手中的部分業務帶回。

目前常用的解決方案是服務卡,這是一種增強了增值服務的線路卡,由製造商預先配置。但是,服務卡的靈活性不高:由於不可程式設計,因此需要購買新的服務卡才能新增服務。

當前主要問題

[編輯 | 編輯原始碼]

吞吐量現在不再是問題,但當前的主要問題是

  • 購買成本:為了降低網路裝置的成本,專用元件正在被大規模生產的通用元件取代
    • 主流 CPU 的產品生命週期太短,更換時間太長→英特爾最近推出了嵌入式 CPU,與主流 CPU 相比,嵌入式 CPU 的產品生命週期更長,更換時間更短;
    • 在專用系統中,程式設計師可以利用記憶體層次結構,將 RIB 儲存到慢速記憶體中,將 FIB 儲存到快速記憶體中(例如 TCAM),而通用系統會自動決定將什麼放入快取中→具有分割槽記憶體但處理通用性有限的 GPU 應該得到解決;
  • 運營成本: 電力消耗和熱量散發可能非常大;
  • 靈活性: 需要朝著將控制功能與物理硬體分離的方向發展: C3. 軟體定義網路簡介.
Previous page
內容交付網路
路由協議和架構 Next page
基於軟體的資料包過濾
網路裝置架構提示
華夏公益教科書