近年來,互聯網的發展異常迅猛,應用日益商業化,網上用戶數的發展難以預測。此外,越來越多的用戶需要高速接入。有關資料表明,在我國,上網速度慢是眾多網民抱怨的首要問題。因此,提高網絡帶寬、網絡服務質量、路由器上的網絡管理系統變得日益重要。在保證質量的前提下,最大限度地利用帶寬,及早發現并診斷設備故障,迅速方便地根據需要改變配置等網絡管理功能,成為直接影響網絡用戶和網絡運營商利益的重要因素。總地來說,路由器的結構正朝著速度更快、服務質量更好和更易于綜合化管理三個方向發展。
路由器的兩大功能
數據通路功能:對于每個到達路由器的數據包,在不丟失的情況下,負責尋路。此功能主要包括:轉發決定,經由背板輸出鏈路隊列調度。轉發功能是通過專門硬件來實現的,每一個通過路由器的分組包都要執行這個操作。數據通路功能對改進路由器的性能是很重要的。
控制功能:主要包括路由表的管理和系統的配置與管理,以及與相鄰路由器交換路由表信息,通過軟件實現等。這些功能不是針對每個數據包的,因此使用頻度相對低一些。
路由器的關鍵技術問題
就目前路由器設計中的一些關鍵技術,有的問題已經取得了階段性的成果,有的才剛剛開始研究。需要說明的是,這個領域的發展非常快。為了便于系統地理解這些關鍵技術問題,我們根據路由器發展的三大趨勢,大致將這些問題分為三類。一是與高速有關的問題,如路由表快速查找、總線背板和交換結構等。二是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端口作為長數據流。因為分類要對每個進入路由器的包進行包頭檢查,我們需要快速的分類算法。
QoS問題
如果能實現真正的QoS,對于互聯網變為一個商業應用的網絡來說,當然是最理想的。在目前網絡阻塞無法避免的情況下,IETF提出了一些模型和機制來支持QoS,主要有兩種實現框架,即IS(Integrated Service)和DS(Differentiated Service)。其中,IS應用資源預留協議(RSVP),在實時業務發送前建立發送通道并預留資源;而DS通過給數據包做標記將數據包分類,使不同的數據包享受不同的服務。實現真正的QoS有一定的難度,無論是采用輸出緩沖,還是共享緩沖的交換結構,內部都需要N倍的加速。
MPLS和流量工程
在互聯網上,可以通過MPLS支持顯式路由。顯式路由可以彌補傳統IP網絡中OSPF(Open Shortest Path First)協議在源和目的之間只建立一條最短路徑的不足。它的好處是,ISP可以在兩點之間的不同路徑上分配業務量,從而減少業務繁忙的路徑的阻塞率,提高線路的利用率,提供一定程度的QoS保證。還可以通過顯式路由建立冗余線路,在某些路由器發生故障的情況下,保證通信線路的暢通。IETF的相關工作組和許多網絡設備廠商正在進行這方面的工作,并且已經提出了一些實現方案。
阻塞控制
TCP協議采用滑動窗口機制進行流量和阻塞控制,實際上是發送端根據網絡的阻塞情況調整自己的發送速率。
TCP協議有兩個特點,一是不公平性,RTT(Round Trip Time)短的進程發送窗口增加得快,會占用更大的帶寬。路由器應該抑制這種不公平性。另一個是同步現象,以前的路由器采用的尾丟棄策略在網絡阻塞時,有可能導致許多TCP連接的發送窗口同時急劇下降,然后又同時上升而導致阻塞;如此循環往復,線路的利用率很低。這種現象稱為同步,路由器應該采取措施以避免這種現象的發生。
路由器處理阻塞的一個主要措施就是利用TCP協議的丟包性質。當分組丟失時,TCP會降低發送速率,從而減輕路由器的負擔。由于TCP協議對丟包很敏感,丟包會造成發送速率急劇下降,路由器應該針對TCP的性能對緩沖管理進行優化,以避免網絡性能的急劇下降。
目前,許多路由器采用隨機早期檢測(RED Random Early Detection)的方法來進行阻塞控制。這種方法通過在阻塞發生前提早丟包,使得終端降低發送速率,以減輕網絡負載,避免阻塞,抑制同步現象。RED算法的最大缺點是:只對類似TCP協議自動進行流控的傳輸層協議起作用;對于UDP協議路由器丟包并不會促使發送端降低發送速率。由于TCP數據流量在網絡中所占的比重很大,RED算法的性能還是比較好的。互聯網上許多路由器都采用了這種方法進行阻塞控制,事實證明這種方法效果良好。
3.與軟件有關的問題
軟件的重要性
過去,路由器被看作是最佳轉發數據包的硬件設備,軟件僅提供監視器的功能。但隨著路由器的發展,軟件在路由器中起的作用越來越大。實際上,實時操作系統(如,通信領域常用PSOS和VxWorks)的選擇對一個通信產品來說是至關重要的。如果要開發效率很高的軟件,需要操作系統廠商的支持。像Cisco公司,就是自己開發專用的路由器操作系統以及應用軟件。如果這種趨勢繼續發展,終端用戶將來可以很方便地在路由器上裝載各種應用軟件模塊,使路由器能夠提供防火墻、流量管理策略、特殊應用信令、路由策略等功能。
網管系統
目前的網管協議是簡單網管協議版本2.0(SNMPv2,Simple Network management Protocol v2.0),在TCP/IP協議中用UDP協議實現。由于路由器在體系結構上的變化,使得一些網管信息需要由底層的硬件來提供,這一點和以前的實現方法是不同的。這里的工作主要是通過網管功能和管理信息數據庫(MIB-Management Information Base)的實現來給網絡管理者提供充足的管理信息和強大、靈活的管理功能。
計費
對用戶的數據流量進行計費需要提取IP包的地址、端口、CoS等信息,由于端口速率很高,這部分信息的數據量也是比較大的,如果在接口板上進行處理很不現實。而且,不同的ISP收費的標準很可能是不一樣的。因此,應該將計費功能分離出去,路由器接口板只負責提供一個計費信息的接口,把計費信息送出來。之后,可以將這些數據寫到外部存儲設備,由專門的機器進行計費處理。這樣將減輕路由器的負擔,計費功能的實現也更加靈活。
配置
路由器的配置是一項非常重要而又較困難的工作,一旦出現錯誤配置,不但難以發現,而且會出現一些難于琢磨的性能問題。隨著路由器技術的發展,其配置會越來越簡單和有效,這個問題的完善解決將是一個長期的工作。
軟件的穩定性
大家知道,路由器的硬件可以用熱備份、雙電源供電、數據通路備份等方法來提高穩定性,但對于軟件的穩定性則是一個較難解決的問題。一個大網絡系統的穩定性的前提條件是軟件的穩定性。軟件穩定性的難點在于軟件的狀態均受不同軟件相互作用的影響。 (責任編輯:liucl)