- 輸入端口
- 把一條輸入的物理鏈路與路由器連接的物理層功能
- 與位於入鏈路遠端的數據鏈路層交互的數據鏈路層功能
- 在輸入端口完成查找功能 。通過查詢轉發表決定路由器的輸出端口
- 控制分組從輸入端口轉發到路由選擇處理器
- 把一條輸入的物理鏈路與路由器連接的物理層功能
- 交換結構
將路由的輸入端口與輸出端口相連接 - 輸出端口
從交換結構接收分組,並通過執行必要的鏈路層和物理層功能在輸出鏈路上傳輸這些分組 - 路由選擇處理器
執行路由選擇協議,維護路由選擇表以及連接的鏈路狀態信息,並為路由器計算轉發表。還執行網絡管理功能。
輸入端口、輸出端口和交換結構共同實現了轉發功能,並且總是用硬件實現。這些轉發功能有時總稱為路由器轉發平面 (router forwarding plane)。
假如有 10Gbps 帶寬的輸入鏈路的 64 字節的 IP 數據報,其輸入端口在另一個數據報到達前僅有 51.2ns 來處理數據報。 如果 N 個端口結合在一塊線路卡上(實踐中很常見),數據報處理流水必須以 N 倍速率運行。這遠遠超過軟件時間的速率。
轉發平面以納秒時間尺度運行,路由器的控制功能在毫秒或秒時間尺度上運行。這些路由器控制平面 (router control plane) 通常用軟件實現並在路由選擇處理器上執行。
一、輸入端口

如圖,最左邊的線路端接功能和數據鏈路處理功能實現了用於各個輸入鏈路的物理層和鏈路層。
輸入端口進行的查找功能對路由器的執行是至關重要的。轉發表的一份影子副本通常會被存放在每個輸入端口,從而避免了集中式處理的瓶頸。
由於查找需要在納秒級執行,因此不僅需要硬件執行查找,而且需要對大型查找表使用超出簡單線性搜索的技術。同時,必須對內存訪問時間給予特別關注,使用 DRAM 和 SRAM 來設計。
通過查找確定了某分組的輸出端口,該分組就能進入交換結構。某些設計中,一個分組可能在進入交換結構時被暫時阻塞。此時,被阻塞的分組必須要在輸入端口處排隊,並等待稍后被及時調度以通過交換結構。
此外,還需要完成一些其他工作,包括並不限於:
- 檢查分組的版本號、校驗和以及壽命字段,並且重寫后兩個字段
- 更新用戶網絡管理的計數器
二、交換結構
交換結構位於一台路由器的核心部位。交換可以用多種方式進行,如經內存交換、經總線交換、經互聯網絡交換。
三、 輸出端口

基本執行的是和輸入端口相反的操作
四、路由器會出現丟包
在輸入和輸出端口都能夠形成分組隊列。隨着這些隊列的增長,路由器的緩存空間最終將會耗盡,此時如果有新的分組到達,會導致丟包 (packet loss)。
- 輸出端口隊列導致丟包
假設輸入和輸出線路的速率都是 R,有 N 個輸入端口和 N 個輸出端口,交換結構的速率足夠快。每個線路上的分組都有相同的固定長度,分組以同步的方式到達輸入端口,且每個分組都被轉發到同一個輸出端口。
這種情況下,向輸出鏈路發送一個分組的時間內,將有 N 個分組到達該輸出端口。這 N 個到達的分組必須排隊傳輸到輸出鏈路上。隨着時間的推移,排隊的分組數量將耗盡輸出端口可用內存,最終導致丟包。 - 輸入端口隊列導致丟包
如果交換結構不能快到使所有到達的分組無時延地通過它傳送,則在輸入端口也將出現分組排隊。因為到達的分組必須加入輸入端口隊列中,以等待通過交換結構傳送到輸出端口。