路由器關鍵技術學習筆記
隨著我國路由行業的發展,也推動了路由器關鍵技術的不斷完善,于是我研究了一下路由器關鍵技術的詳細講解,在這里拿出來和大家分享一下,希望對大家有用。近年來,互聯網的發展異常迅猛,應用日益商業化,網上用戶數的發展難以預測。
此外,越來越多的用戶需要高速接入。有關資料表明,在我國,上網速度慢是眾多網民抱怨的首要問題。因此,提高網絡帶寬、網絡服務質量、路由器上的網絡管理系統變得日益重要。在保證質量的前提下,***限度地利用帶寬,及早發現并診斷設備故障,迅速方便地根據需要改變配置等網絡管理功能,成為直接影響網絡用戶和網絡運營商利益的重要因素。總地來說,路由器的結構正朝著速度更快、服務質量更好和更易于綜合化管理三個方向發展。
路由器的兩大功能
數據通路功能:對于每個到達路由器的數據包,在不丟失的情況下,負責尋路。此功能主要包括:轉發決定,經由背板輸出鏈路隊列調度。轉發功能是通過專門硬件來實現的,每一個通過路由器的分組包都要執行這個操作。數據通路功能對改進路由器關鍵技術的性能是很重要的。控制功能:主要包括路由表的管理和系統的配置與管理,以及與相鄰路由器關鍵技術信息,通過軟件實現等。這些功能不是針對每個數據包的,因此使用頻度相對低一些。
路由器關鍵技術問題
就目前路由器關鍵技術,有的問題已經取得了階段性的成果,有的才剛剛開始研究。需要說明的是,這個領域的發展非常快。為了便于系統地理解這些關鍵技術問題,我們根據路由器發展的三大趨勢,大致將這些問題分為三類。一是與高速有關的問題,如路由表快速查找、總線背板和交換結構等。二是QoS問題,如數據流和數據包的分類,流量工程和阻塞控制等。三是與軟件有關的問題,如軟件的穩定性、配置和管理等。需要說明的是,這種分類法并不嚴格,有些問題可以同時屬于兩類。
1.與速度有關的技術
路由表的快速查找技術
為了解決地址資源緊缺,減少路由表的規模,降低管理難度,互聯網采用了CIDR(Classless Inter-Doma in Routing)。這樣,路由表中存放的不是一個個具體的IP地址,而是可變長度的網絡前綴。路由技術在對IP包尋址時,采用最長的網絡前綴匹配(LPM-Longest Prefix Matching)。例如,假設路由表中有兩個表項“202.168.X.X,輸出端口1”和“202.168.16.X,輸出端口2”(X表示任意),如果有一個IP包的目的地址為202.168.16.5,那么這個包應該從端口2輸出。傳統的路由器執行最長網絡前綴匹配的時間很長,使得路由表查找成為路由器速度的瓶頸。最近兩年出現了一些快速查表算法,能夠支持吉比特鏈路。這些算法包括改進的精確匹配法、基于trie法、并行硬件法、協議改變簡化路由表的查詢和緩沖法等。這些算法,有些易于硬件實現,有些適合軟件實現。對于組播地址尋址,要根據IP包的源地址和組播地址查表,對源地址采用最長前綴匹配法,對目的地址采用精確匹配法。
交換結構和調度算法
交換結構有Crossbar、共享存儲器和總線三種方式。Crossbar結構的速度由調度器決定,共享存儲器結構的速度由存儲器的讀寫速度決定,共享總線結構的速度由總線的容量和仲裁的開銷決定。調度器是Crossbar交換結構的核心,它在每個調度時隙內收集各輸入端口有關數據包隊列的信息,經過一定的調度算法得到輸入端口和輸出端口之間的一個匹配,提供輸入端口到輸出端口的通路。采用輸入緩沖無阻塞方式的Crossbar,用ESLIP算法實現調度已被一些廠家所采用。調度器設計的難點在于,既要滿足系統吞吐率達到100%的要求,又要支持CoS(Classes of Service)。調度算法中,加權公平排隊算法(WFQ-Weighted Fair Queuing)和經過改進后的加權公平流排隊算法(WF2Q-Weighted Fair Flow Queuing)比較容易實現,而且性能也不錯。總之,要讓互聯網真正能夠綜合多種業務,作為網絡連接核心設備的路由器,必須提高端口速率和交換容量,提供QoS保證和流量工程(TE-Traffic Engineering)功能。
背板總線
由于端口速率高,交換結構需要加速,而且接口板與交換板之間、控制板與接口板之間、控制板與交換板之間的連線很多,目前的路由器關鍵技術以及交換機都采用高速背板總線以提高系統的吞吐率。為了提高效率,數據線采用串行差分線路,速率可達每秒鐘1~2吉比特。要保證如此高的傳輸速率和那么多的連線,對背板總線的設計要求非常高。如何降低數據的傳輸誤碼率以及保證時鐘同步是總線設計中的關鍵技術。斯坦福大學的Tiny Tera路由器項目中,大量采用串行總線的實現方法值得研究和借鑒。
2.與服務質量有關的技術
數據包分類技術
路由器關鍵技術要對到達的分組包進行識別、分類以決定其所應接受的服務類型。當初IETF所考慮的方案是在網絡的核心,根據IP報頭的TOS(Type of Service)域來識別分組,但是在互聯網的發展過程中,由于一直采用“盡力”傳輸,同時由于終端在發送IP包時不考慮TOS,因此,TOS一直沒有發揮作用。目前在邊緣設備,根據IP分組的源IP地址、目的IP地址、源端口號、目的端口號、傳輸層協議類型來對分組進行識別。此外,為了實現防火墻的功能也需要對IP分組進行識別。
在識別時,每條識別規則采用的是源IP地址、目的IP地址、源端口號、目的端口號、傳輸層協議類型。在上述識別規則中,每個域都可能是一個區間。例如有這樣一條識別規則“202.66.83.X,202.66.72.X,X,23,TCP”(X表示任意),這條規則識別從網絡202.66.83.X到網絡202.66.72.X的telnet數據。從幾何的角度來看,假如判別時利用了IP報頭的K個域,這個問題實際上是在一個K維空間中有許多互相交疊的實體(每條判別規則對應于一個實體),每當有一個分組到達時,該分組相當于K維空間上的一個點,進行判別實際上是要找出包含該點的優先級***的實體。
數據流的分類
一系列通過給定的源和目的地的數據包被作為數據流,流可以是長時間維持的TCP連接的一系列數據包,也可以是聲音或圖像的一系列UDP數據包。通常,流有長短之分,劃分有兩個標準:端口對和主機對。按端口對劃分是指同***的數據包必須具有相同的源、目的地址和TCP/UDP端口號等;按主機對劃分只要求各數據包具有相同的源和目的地址。目前常用的流分類器有三種,一種是X/Y分類器,Y為規定的時間間隔,X為數據包數。若在時間Y內某一數據流到達的數據包數大于X,則該流就被認定為長數據流,否則是短數據流;另一種是協議分類器(Protocol Classifier),它規定了所有的TCP包均被定義為數據流;還有一種是端口分類器(Port Classifier),它規定了幾個特殊的TCP端口作為長數據流。因為分類要對每個進入路由器關鍵技術的包進行包頭檢查,我們需要快速的分類算法。