標籤:
一、路由器的硬體構成 路由器主要由以下幾個部分組成:輸入/輸出介面部分、包轉寄或交換結構部分(switching fabric)、路由計算或處理部分。
圖1 路由器的基本組成
輸入連接埠是物理鏈路和輸入包的進口處。連接埠通常由線卡提供,一塊線卡一般支援4、8或16個連接埠,一個輸入連接埠具有許多功能。第一個功能是進行資料連結層的封裝和解鎖裝。第二個功能是在轉寄表中尋找輸入包目的地址從而決定目的連接埠(稱為路由尋找),路由尋找可以使用一般的硬體來實現,或者通過在每塊線卡上嵌入一個微處理器來完成。第三,為了提供QoS(服務品質),連接埠要對收到的資料包進行業務分類,分成幾個預定義的服務等級。第四,連接埠可能需要運行諸如SLIP(串列線網際協議)和PPP(點對點通訊協定 (PPP))這樣的資料鏈路級協議或者諸如PPTP(點對點通道通訊協定)這樣的網路級協議。一旦路由尋找完成,必須用交換開關將包送到其輸出連接埠。如果路由器是輸入端加隊列的,則有幾個輸入端共用同一個交換開關。這樣輸入連接埠的最後一項功能是參加對公用資源(如交換開關)的仲裁協議。普通路由器中該部分的功能完全由路由器的中央處理器來執行,制約了資料包的轉寄速率(每秒幾千到幾萬個資料包)。高端路由器中普遍實現了分布式硬體處理,介面部分有強大的CPU處理器和大容量的快取,使介面資料速率達到10Gbps,滿足了高速骨幹網路的傳輸要求。
路由器的轉寄機制對路由器的效能影響很大,常見的轉寄方式有:進程轉寄、快速轉寄、最佳化轉寄、分布式快速轉寄。進程轉寄將資料包從介面緩衝拷貝到處理器的緩衝中進行處理,先查看路由表再查看ARP表,重新封裝資料包後將資料包拷貝到介面緩衝中準備傳送出去,兩次查表和拷貝資料極大的佔用CPU的處理時間,所以這是最慢的交換方式,只在低檔路由器中使用。快速交換將兩次查表的結果作了緩衝,無需拷貝資料,所以CPU處理資料包的時間縮短了。最佳化交換在快速交換的基礎上略作改進,將緩衝表的資料結構作了改變,用深度為4的256叉樹代替了深度為32的2叉樹或雜湊表(hash),CPU的尋找時間進一步縮短。這兩種轉寄方式在中高檔路由器中普遍加以應用。在骨幹路由器中由於路由表條目的成倍增加,路由表或ARP表的任何變化都會引起大部分路由緩衝失效,以前的交換方式都不再適用,最新的交換方式是分布式快速交換,它在每個介面處理板上構建一個鏡像(mirror)路由表和MAC地址表相結合的轉寄表,該表是深度為4的256叉樹,但每個節點的資料部分是指向另一個稱為鄰接表的指標,鄰接表中含有路由器成幀所需要的全部資訊。這種結構使得轉寄表完全由路由表和ARP表來同步更新,本身不再需要額外的老化進程,克服了其它交換方式需要不斷對緩衝表進行老化的缺陷。
交換結構最常見的有匯流排型、共用記憶體型、Cross-bar空分結構型。匯流排型結構最簡單,所有輸入和輸出介面掛在一個匯流排上,同一時間只有兩個介面通過匯流排交換資料。其缺點是其交換容量受限於匯流排的容量以及為共用匯流排仲裁所帶來的額外開銷。在調度共用資料轉送通道上必須花費一定的開銷,而且匯流排頻寬的擴充受到限制,制約了交換容量的擴張,一般在中檔路由器中使用這種結構。共用記憶體型結構中,進來的包被存貯在共用存貯器中,所交換的僅是包的指標,這提高了交換容量,但它受限於記憶體的訪問速度和儲存空間的管理效率,儘管存貯器容量每18個月能夠翻一番,但存貯器的存取時間每年僅降低5%,這是共用存貯器交換開關的一個固有限制。共用記憶體型結構在早期的中低檔路由器中普遍應用。Cross-bar空分結構相當於多條並行工作的匯流排,具有N×N個交叉點的交叉開關可以被認為具有2N條匯流排。如果一個交叉是閉合,輸入匯流排上的資料在輸出匯流排上可用,否則不可用。對流經它的資料不斷進行開關切換,可見開關速度決定了交換容量,隨著各種高速器件的不斷湧現,這種結構的交換容量普遍達到幾十Gbps以上,成為目前高端路由器和交換器的首選交換結構。
路由計算或處理部分主要是運行動態路由協議。接收和發送路由資訊,計算出路由表,為資料包的轉寄提供依據。各種檔次的路由器的路由表條目的大小存在很大差異,從幾千條到幾百萬條不等,因此高端路由器的路由表的構造對路由尋找速度影響很大,其路由表的資料結構常採用二叉樹的形式,尋找與更新的速度都比較快。
輸出連接埠在包被發送到輸出鏈路之前對包存貯,可以實現複雜的調度演算法以支援優先等級要求。與輸入連接埠一樣,輸出連接埠同樣要能支援資料連結層的封裝和解鎖裝,以及許多較進階協議。
一般而言,路由器對一個資料包的交換要經過一系列的複雜處理,主要有以下幾個方面:
1)壓縮和解壓縮
2)加密和解密
3)用輸入/輸出訪問列表進行報文過濾
4)輸入速率限制
5)進行網路地址翻譯(NAT)
6)處理影響本報文的任何策略路由
7)應用防火牆特性對包進行檢查
8)處理Web頁緩衝的重新導向
9)物理廣播處理,如協助性地址(ip help address)
10)利用啟用的QoS機制對資料包排隊
11)TTL值的處理
12)處理IP頭部中的任選項
13)檢查資料包的完整性
二、
路由器的軟體體系 路由器是在軟體控制下進行工作的,與普通作業系統相比,其軟體系統是比較簡潔、全部駐留在儲存空間當中且受限於原始平台的一種作業系統。在商用即時作業系統的核心基礎上開發一個包含TCP/IP協議棧的介面平台,輔以各種功能模組,形成完整的軟體系統。為最大限度地提高路由器快速交換報文的能力,該作業系統被設計為具有最小的操作性開銷,同時允許CPU使用最大的頻寬進行報文交換。其體繫結構。 圖2 路由器軟體體繫結構
路由器的軟體系統主要有五個組成部分:
1、進程:由執行特定任務的獨立線程和相關的資料群組成,如系統配置維護的telnet守護進程、用戶端進程,FTP進程、TFTP進程,SNMP進程,各種協議進程:IP、TCP、UDP、RIP、OSPF、BGP、ARP、ICMP、IGMP,其它有加解密進程、報文過濾進程、NAT進程等。
2、核心:為系統的其它部分提供基本的系統服務,如儲存空間管理、進程調度、定時器和時鐘管理。它為進程提供了硬體(CPU和儲存空間)資源的管理。
3、報文緩衝:用來存放將要被交換的報文。
4、裝置驅動程式:控制網路介面硬體裝置及其它外圍裝置(如Flash)。裝置驅動程式介面位於進程、核心、硬體之間,同時與交換控制軟體有介面。
5、交換控制軟體:根據轉寄方式控制報文的交換,在高端線速路由器中該部分功能由硬體實現。
三、
網路層的幾個基本概念
路由器工作在OSI參考模型第三層——網路層,是一種實現網路服務的裝置,它以不同的速度為大量鏈路和子網提供介面。路由器是有源的且具有智能的網路節點,從而能夠參與網路管理。
1、
被動路由協議與路由選擇協議
被動路由協議(routed protocols):指任何在網路層地址中提供了足夠資訊的網路通訊協定,該網路通訊協定允許將資料包從一個主機轉寄到以定址方案為基礎的另一個主機。被動路由協議定義了資料包內各欄位的格式和用途。資料包一般都從一個端系統傳動到另一個端系統。IP協議就是一個被動路由協議。
路由選擇協議(routing protocol):通過提供共用路由選擇資訊機制來支援被動路由協議。路由選擇協議訊息在路由器之間傳送。路由選擇協議允許路由器與其他路由器通訊來修改和維護路由選擇表。路由選擇協議有:RIP、OSPF、IGRP等。4-3說明了被動路由協議和路由選擇協議的關係。
圖3 被動路由協議用於引導資訊,路由選擇協議用在路由器之間維護路由表
2、網路層協議的工作
當一台主機上的應用需要向另一個網路上的目的主機發送資料包時,路由器的一個介面會收到一個資料鏈路幀。網路層進程通過檢查資料包前序來確定目的網路,然後查詢與網路出口的介面相聯絡的路由表,4。
資料包重新封裝在選定介面的資料鏈路幀中,排隊等待分發到路徑的下一站路由器(hop)。
在資料包通過另一個路由器交換時都要發生這個過程,在與包含目的主機的網路相串連的路由器中,資料包再次封裝成目的LAN資料鏈路幀的類型並被發送到目的主機。
圖4 每個路由器都為其上層功能提供其各種服務
3、靜態路由、動態路由、預設路由
由系統管理員事先設定好固定的路由稱之為靜態(static)路由,一般是在系統安裝時就根據網路的配置情況預先設定的,它不會隨未來網路拓撲結構的改變而改變。此時網路的可達性不依賴於網路自身的存在和狀態,不管目的網路存在或不存在,靜態路由都會儲存在路由轉寄表中,IP業務量仍然向著目的地發送。靜態路由允許互連網管理員指定在有限的劃分中哪些是可以公開的。當一個網路只能通過一個路徑到達時,對這個網路用靜態路由就足夠了,這種劃分稱為存根(stub)網路。對一個存根網路設定
靜態路由選擇,避免了動態路由選擇的開銷。5顯示了靜態路由的用途
圖5 靜態路由
動態(Dynamic)路由是路由器根據網路系統的運行情況而自動調整的路由。路由器根據路由選擇協議(Routing Protocol)提供的功能,自動學習和記憶網路運行情況,在需要時自動計算資料轉送的最佳路徑。此時網路可達性依賴於網路的存在和狀態。如果一個目的地不存在,則路由會從路由轉寄表中消失,IP包業務量不會向該目的地發送。使用動態路由可以很好的適應拓撲結構的變化。它可以在網路的不同路徑間改變流量方向。
預設路由是一個路由表入口,用來指明一些在下一跳沒有明確地列於路由表中的幀。預設路由可以說是管理員的靜態配置的結果。6顯示了預設路由的用途
圖6預設路由
4、
用度量表示距離 當一個路由選擇演算法改變路由表時,它的首要目標時確定要包含在表中的最佳資訊。每個選路演算法以自己的方式解釋最佳路徑。演算法為通過網路的每條路徑產生了一個數字,稱為度量值(metric)。其典型意義是該度量值越小,這條路徑就越好。(7示)
圖7用於選擇最佳路由路徑的各種度量
度量的計算可以基於路徑的一個特徵,或是將幾個特徵結合起來計算出更複雜的度量。,用於度量計算的幾個路徑特徵。路由器中最常用的度量如下:
1)跳數(hop count):資料包到達目的必須通過的路由器數。跳數越少,該路由越好。路徑長被用於描述到達目的的跳數;
2)頻寬(Bandwidth):鏈路的資料能力。如:一個10Mb/s的T1鏈路優於64kb/s的專線;
3)時延(delay):把資料包從源送到目的地所需的時間;
4)負荷(load):網路資源如路由器和鏈路上的活動數量;
5)可靠性(reliability):指每條網路鏈路上的差錯率;
6)滴答數(Ticks):用IBM PC的時鐘滴答(大約55ms)計數的資料鏈路延遲;
7)開銷(cost):是一個變化的值,通常基於頻寬、花費的錢數或其他由網路系統管理員指定的單位。
路由器開發(一)—— 路由器硬體結構及軟體體系