天天看點

路由器原理及路由協定

       本文通過闡述TCP/IP網絡中路由器的基本工作原理,介紹了IP路由器的幾大功能,給出了靜态路由協定和動态路由協定,以及内部網關協定和外部網關協定的概念,同時簡要介紹了目前最常見的RIP、OSPF、BGP和BGP-4這幾種路由協定,然後描述了路由算法的設計目标和種類,着重介紹了鍊路狀态法和距離向量法。在文章的最後,扼要講述了新一代路由器的特征。

            ——近十年來,随着計算機網絡規模的不斷擴大,大型網際網路絡(如Internet)的迅猛發展,路由技術在網絡技術中已逐漸成為關鍵部分,路由器也随之成為最重要的網絡裝置。使用者的需求推動着路由技術的發展和路由器的普及,人們已經不滿足于僅在本地網絡上共享資訊,而希望最大限度地利用全球各個地區、各種類型的網絡資源。而在目前的情況下,任何一個有一定規模的計算機網絡(如企業網、校園網、智能大廈等),無論采用的是快速以大網技術、FDDI技術,還是ATM技術,都離不開路由器,否則就無法正常運作和管理。

            1網絡互連

            ——把自己的網絡同其它的網絡互連起來,從網絡中擷取更多的資訊和向網絡釋出自己的消息,是網絡互連的最主要的動力。網絡的互連有多種方式,其中使用最多的是網橋互連和路由器互連。

            1.1網橋互連的網絡

            ——網橋工作在OSI模型中的第二層,即鍊路層。完成資料幀(frame)的轉發,主要目的是在連接配接的網絡間提供透明的通信。網橋的轉發是依據資料幀中的源位址和目的位址來判斷一個幀是否應轉發和轉發到哪個端口。幀中的位址稱為“MAC”位址或“硬體”位址,一般就是網卡所帶的位址。

            ——網橋的作用是把兩個或多個網絡互連起來,提供透明的通信。網絡上的裝置看不到網橋的存在,裝置之間的通信就如同在一個網上一樣友善。由于網橋是在資料幀上進行轉發的,是以隻能連接配接相同或相似的網絡(相同或相似結構的資料幀),如以太網之間、以太網與令牌環(tokenring)之間的互連,對于不同類型的網絡(資料幀結構不同),如以太網與X.25之間,網橋就無能為力了。

            ——網橋擴大了網絡的規模,提高了網絡的性能,給網絡應用帶來了友善,在以前的網絡中,網橋的應用較為廣泛。但網橋互連也帶來了不少問題:一個是廣播風暴,網橋不阻擋網絡中廣播消息,當網絡的規模較大時(幾個網橋,多個以太網段),有可能引起廣播風暴(broadcastingstorm),導緻整個網絡全被廣播資訊充滿,直至完全癱瘓。第二個問題是,當與外部網絡互連時,網橋會把内部和外部網絡合二為一,成為一個網,雙方都自動向對方完全開放自己的網絡資源。這種互連方式在與外部網絡互連時顯然是難以接受的。問題的主要根源是網橋隻是最大限度地把網絡溝通,而不管傳送的資訊是什麼。

            1.2路由器互連網絡

            ——路由器互連與網絡的協定有關,我們讨論限于TCP/IP網絡的情況。

            ——路由器工作在OSI模型中的第三層,即網絡層。路由器利用網絡層定義的“邏輯”上的網絡位址(即IP位址)來差別不同的網絡,實作網絡的互連和隔離,保持各個網絡的獨立性。路由器不轉發廣播消息,而把廣播消息限制在各自的網絡内部。發送到其他網絡的資料茵先被送到路由器,再由路由器轉發出去。

            ——IP路由器隻轉發IP分組,把其餘的部分擋在網内(包括廣播),進而保持各個網絡具有相對的獨立性,這樣可以組成具有許多網絡(子網)互連的大型的網絡。由于是在網絡層的互連,路由器可友善地連接配接不同類型的網絡,隻要網絡層運作的是IP協定,通過路由器就可互連起來。

            ——網絡中的裝置用它們的網絡位址(TCP/IP網絡中為IP位址)互相通信。IP位址是與硬體位址無關的“邏輯”位址。路由器隻根據IP位址來轉發資料。IP位址的結構有兩部分,一部分定義網絡号,另一部分定義網絡内的主機号。目前,在Internet網絡中采用子網路遮罩來确定IP位址中網絡位址和主機位址。子網路遮罩與IP位址一樣也是32bit,并且兩者是一一對應的,并規定,子網路遮罩中數字為“1”所對應的IP位址中的部分為網絡号,為“0”所對應的則為主機号。網絡号和主機号合起來,才構成一個完整的IP位址。同一個網絡中的主機IP位址,其網絡号必須是相同的,這個網絡稱為IP子網。

            ——通信隻能在具有相同網絡号的IP位址之間進行,要與其它IP子網的主機進行通信,則必須經過同一網絡上的某個路由器或網關(gateway)出去。不同網絡号的IP位址不能直接通信,即使它們接在一起,也不能通信。

            ——路由器有多個端口,用于連接配接多個IP子網。每個端口的IP位址的網絡号要求與所連接配接的IP子網的網絡号相同。不同的端口為不同的網絡号,對應不同的IP子網,這樣才能使各子網中的主機通過自己子網的IP位址把要求出去的IP分組送到路由器上。

            2路由原理

            ——當IP子網中的一台主機發送IP分組給同一IP子網的另一台主機時,它将直接把IP分組送到網絡上,對方就能收到。而要送給不同IP于網上的主機時,它要選擇一個能到達目的子網上的路由器,把IP分組送給該路由器,由路由器負責把IP分組送到目的地。如果沒有找到這樣的路由器,主機就把IP分組送給一個稱為“預設網關(defaultgateway)”的路由器上。“預設網關”是每台主機上的一個配置參數,它是接在同一個網絡上的某個路由器端口的IP位址。

            ——路由器轉發IP分組時,隻根據IP分組目的IP位址的網絡号部分,選擇合适的端口,把IP分組送出去。同主機一樣,路由器也要判定端口所接的是否是目的子網,如果是,就直接把分組通過端口送到網絡上,否則,也要選擇下一個路由器來傳送分組。路由器也有它的預設網關,用來傳送不知道往哪兒送的IP分組。這樣,通過路由器把知道如何傳送的IP分組正确轉發出去,不知道的IP分組送給“預設網關”路由器,這樣一級級地傳送,IP分組最終将送到目的地,送不到目的地的IP分組則被網絡丢棄了。

            ——目前TCP/IP網絡,全部是通過路由器互連起來的,Internet就是成千上萬個IP子網通過路由器互連起來的國際性網絡。這種網絡稱為以路由器為基礎的網絡(routerbasednetwork),形成了以路由器為節點的“網間網”。在“網間網”中,路由器不僅負責對IP分組的轉發,還要負責與别的路由器進行聯絡,共同确定“網間網”的路由選擇和維護路由表。

            ——路由動作包括兩項基本内容:尋徑和轉發。尋徑即判定到達目的地的最佳路徑,由路由選擇算法來實作。由于涉及到不同的路由選擇協定和路由選擇算法,要相對複雜一些。為了判定最佳路徑,路由選擇算法必須啟動并維護包含路由資訊的路由表,其中路由資訊依賴于所用的路由選擇算法而不盡相同。路由選擇算法将收集到的不同資訊填入路由表中,根據路由表可将目的網絡與下一站(nexthop)的關系告訴路由器。路由器間互通資訊進行路由更新,更新維護路由表使之正确反映網絡的拓撲變化,并由路由器根據量度來決定最佳路徑。這就是路由選擇協定(routingprotocol),例如路由資訊協定(RIP)、開放式最短路徑優先協定(OSPF)和邊界網關協定(BGP)等。

            ——轉發即沿尋徑好的最佳路徑傳送資訊分組。路由器首先在路由表中查找,判明是否知道如何将分組發送到下一個站點(路由器或主機),如果路由器不知道如何發送分組,通常将該分組丢棄;否則就根據路由表的相應表項将分組發送到下一個站點,如果目的網絡直接與路由器相連,路由器就把分組直接送到相應的端口上。這就是路由轉發協定(routedprotocol)。

            ——路由轉發協定和路由選擇協定是互相配合又互相獨立的概念,前者使用後者維護的路由表,同時後者要利用前者提供的功能來釋出路由協定資料分組。下文中提到的路由協定,除非特别說明,都是指路由選擇協定,這也是普遍的習慣。

            3路由協定

            ——典型的路由選擇方式有兩種:靜态路由和動态路由。

            ——靜态路由是在路由器中設定的固定的路由表。除非網絡管理者幹預,否則靜态路由不會發生變化。由于靜态路由不能對網絡的改變作出反映,一般用于網絡規模不大、拓撲結構固定的網絡中。靜态路由的優點是簡單、高效、可靠。在所有的路由中,靜态路由優先級最高。當動态路由與靜态路由發生沖突時,以靜态路由為準。

            ——動态路由是網絡中的路由器之間互相通信,傳遞路由資訊,利用收到的路由資訊更新路由器表的過程。它能實時地适應網絡結構的變化。如果路由更新資訊表明發生了網絡變化,路由選擇軟體就會重新計算路由,并發出新的路由更新資訊。這些資訊通過各個網絡,引起各路由器重新啟動其路由算法,并更新各自的路由表以動态地反映網絡拓撲變化。動态路由适用于網絡規模大、網絡拓撲複雜的網絡。當然,各種動态路由協定會不同程度地占用網絡帶寬和CPU資源。

            ——靜态路由和動态路由有各自的特點和适用範圍,是以在網絡中動态路由通常作為靜态路由的補充。當一個分組在路由器中進行尋徑時,路由器首先查找靜态路由,如果查到則根據相應的靜态路由轉發分組;否則再查找動态路由。

            ——根據是否在一個自治域内部使用,動态路由協定分為内部網關協定(IGP)和外部網關協定(EGP)。這裡的自治域指一個具有統一管理機構、統一路由政策的網絡。自治域内部采用的路由選擇協定稱為内部網關協定,常用的有RIP、OSPF;外部網關協定主要用于多個自治域之間的路由選擇,常用的是BGP和BGP-4。下面分别進行簡要介紹。

            3.1RIP路由協定

            ——RIP協定最初是為Xerox網絡系統的Xeroxparc通用協定而設計的,是Internet中常用的路由協定。RIP采用距離向量算法,即路由器根據距離選擇路由,是以也稱為距離向量協定。路由器收集所有可到達目的地的不同路徑,并且儲存有關到達每個目的地的最少站點數的路徑資訊,除到達目的地的最佳路徑外,任何其它資訊均予以丢棄。同時路由器也把所收集的路由資訊用RIP協定通知相鄰的其它路由器。這樣,正确的路由資訊逐漸擴散到了全網。

            ——RIP使用非常廣泛,它簡單、可靠,便于配置。但是RIP隻适用于小型的同構網絡,因為它允許的最大站點數為15,任何超過15個站點的目的地均被标記為不可達。而且RIP每隔30s一次的路由資訊廣播也是造成網絡的廣播風暴的重要原因之一。

            3.2OSPF路由協定

            ——80年代中期,RIP已不能适應大規模異構網絡的互連,0SPF随之産生。它是網間工程任務組織(1ETF)的内部網關協定工作組為IP網絡而開發的一種路由協定。

            ——0SPF是一種基于鍊路狀态的路由協定,需要每個路由器向其同一管理域的所有其它路由器發送鍊路狀态廣播資訊。在OSPF的鍊路狀态廣播中包括所有接口資訊、所有的量度和其它一些變量。利用0SPF的路由器首先必須收集有關的鍊路狀态資訊,并根據一定的算法計算出到每個節點的最短路徑。而基于距離向量的路由協定僅向其鄰接路由器發送有關路由更新資訊。

            ——與RIP不同,OSPF将一個自治域再劃分為區,相應地即有兩種類型的路由選擇方式:當源和目的地在同一區時,采用區内路由選擇;當源和目的地在不同區時,則采用區間路由選擇。這就大大減少了網絡開銷,并增加了網絡的穩定性。當一個區内的路由器出了故障時并不影響自治域内其它區路由器的正常工作,這也給網絡的管理、維護帶來友善。

            3.3BGP和BGP-4路由協定

            ——BGP是為TCP/IP網際網路設計的外部網關協定,用于多個自治域之間。它既不是基于純粹的鍊路狀态算法,也不是基于純粹的距離向量算法。它的主要功能是與其它自治域的BGP交換網絡可達資訊。各個自治域可以運作不同的内部網關協定。BGP更新資訊包括網絡号/自治域路徑的成對資訊。自治域路徑包括到達某個特定網絡須經過的自治域串,這些更新資訊通過TCP傳送出去,以保證傳輸的可靠性。

            ——為了滿足Internet日益擴大的需要,BGP還在不斷地發展。在最新的BGp4中,還可以将相似路由合并為一條路由。

            3.4路由表項的優先問題

            ——在一個路由器中,可同時配置靜态路由和一種或多種動态路由。它們各自維護的路由表都提供給轉發程式,但這些路由表的表項間可能會發生沖突。這種沖突可通過配置各路由表的優先級來解決。通常靜态路由具有預設的最高優先級,當其它路由表表項與它沖突時,均按靜态路由轉發。

            4路由算法

            ——路由算法在路由協定中起着至關重要的作用,采用何種算法往往決定了最終的尋徑結果,是以選擇路由算法一定要仔細。通常需要綜合考慮以下幾個設計目标:

            ——(1)最優化:指路由算法選擇最佳路徑的能力。

            ——(2)簡潔性:算法設計簡潔,利用最少的軟體和開銷,提供最有效的功能。

            ——(3)堅固性:路由算法處于非正常或不可預料的環境時,如硬體故障、負載過高或操作失誤時,都能正确運作。由于路由器分布在網絡聯接點上,是以在它們出故障時會産生嚴重後果。最好的路由器算法通常能經受時間的考驗,并在各種網絡環境下被證明是可靠的。

            ——(4)快速收斂:收斂是在最佳路徑的判斷上所有路由器達到一緻的過程。當某個網絡事件引起路由可用或不可用時,路由器就發出更新資訊。路由更新資訊遍及整個網絡,引發重新計算最佳路徑,最終達到所有路由器一緻公認的最佳路徑。收斂慢的路由算法會造成路徑循環或網絡中斷。

            ——(5)靈活性:路由算法可以快速、準确地适應各種網絡環境。例如,某個網段發生故障,路由算法要能很快發現故障,并為使用該網段的所有路由選擇另一條最佳路徑。

            ——路由算法按照種類可分為以下幾種:靜态和動态、單路和多路、平等和分級、源路由和透明路由、域内和域間、鍊路狀态和距離向量。前面幾種的特點與字面意思基本一緻,下面着重介紹鍊路狀态和距離向量算法。

            ——鍊路狀态算法(也稱最短路徑算法)發送路由資訊到網際網路上所有的結點,然而對于每個路由器,僅發送它的路由表中描述了其自身鍊路狀态的那一部分。距離向量算法(也稱為Bellman-Ford算法)則要求每個路由器發送其路由表全部或部分資訊,但僅發送到鄰近結點上。從本質上來說,鍊路狀态算法将少量更新資訊發送至網絡各處,而距離向量算法發送大量更新資訊至鄰接路由器。

            ——由于鍊路狀态算法收斂更快,是以它在一定程度上比距離向量算法更不易産生路由循環。但另一方面,鍊路狀态算法要求比距離向量算法有更強的CPU能力和更多的記憶體空間,是以鍊路狀态算法将會在實作時顯得更昂貴一些。除了這些差別,兩種算法在大多數環境下都能很好地運作。

            ——最後需要指出的是,路由算法使用了許多種不同的度量标準去決定最佳路徑。複雜的路由算法可能采用多種度量來選擇路由,通過一定的權重運算,将它們合并為單個的複合度量、再填入路由表中,作為尋徑的标準。通常所使用的度量有:路徑長度、可靠性、時延、帶寬、負載、通信成本等。

            5新一代路由器

            ——由于多媒體等應用在網絡中的發展,以及ATM、快速以太網等新技術的不斷采用,網絡的帶寬與速率飛速提高,傳統的路由器已不能滿足人們對路由器的性能要求。因為傳統路由器的分組轉發的設計與實作均基于軟體,在轉發過程中對分組的處理要經過許多環節,轉發過程複雜,使得分組轉發的速率較慢。另外,由于路由器是網絡互連的關鍵裝置,是網絡與其它網絡進行通信的一個“關口”,對其安全性有很高的要求,是以路由器中各種附加的安全措施增加了CPU的負擔,這樣就使得路由器成為整個網際網路上的“瓶頸”。

            ——傳統的路由器在轉發每一個分組時,都要進行一系列的複雜操作,包括路由查找、通路控制表比對、位址解析、優先級管理以及其它的附加操作。這一系列的操作大大影響了路由器的性能與效率,降低了分組轉發速率和轉發的吞吐量,增加了CPU的負擔。而經過路由器的前後分組間的相關性很大,具有相同目的位址和源位址的分組往往連續到達,這為分組的快速轉發提供了實作的可能與依據。新一代路由器,如IPSwitch、TagSwitch等,就是采用這一設計思想用硬體來實作快速轉發,大大提高了路由器的性能與效率。

            ——新一代路由器使用轉發緩存來簡化分組的轉發操作。在快速轉發過程中,隻需對一組具有相同目的位址和源位址的分組的前幾個分組進行傳統的路由轉發處理,并把成功轉發的分組的目的位址、源位址和下一網關位址(下一路由器位址)放人轉發緩存中。當其後的分組要進行轉發時,茵先檢視轉發緩存,如果該分組的目的位址和源位址與轉發緩存中的比對,則直接根據轉發緩存中的下一網關位址進行轉發,而無須經過傳統的複雜操作,大大減輕了路由器的負擔,達到了提高路由器吞吐量的目标。

繼續閱讀