路由器原理詳解

轉自: [url]http://www.linkwan.com/gb/routertech/netbase/routerbase.htm[/url]
 
1.網絡互聯方式
1.1 網橋互連的網絡
——網橋工做在OSI模型中的第二層,即鏈路層。完成數據幀(frame)的轉發,主要目的是在鏈接的網絡間提供透明的通訊。網橋的轉發是依據數據幀中的源地址和目的地址來判斷一個幀是否應轉發和轉發到哪一個端口。幀中的地址稱爲「MAC」地址或「硬件」地址,通常就是網卡所帶的地址。
——網橋的做用是把兩個或多個網絡互連起來,提供透明的通訊。網絡上的設備看不到網橋的存在,設備之間的通訊就如同在一個網上同樣方便。因爲網橋是在數據幀上進行轉發的,所以只能鏈接相同或類似的網絡(相同或類似結構的數據幀),如以太網之間、以太網與令牌環(token ring)之間的互連,對於不一樣類型的網絡(數據幀結構不一樣),如以太網與X.25之間,網橋就無能爲力了。
——網橋擴大了網絡的規模,提升了網絡的性能,給網絡應用帶來了方便,在之前的網絡中,網橋的應用較爲普遍。但網橋互連也帶來了很多問題:一個是廣播風暴,網橋不阻擋網絡中廣播消息,當網絡的規模較大時(幾個網橋,多個以太網段),有可能引發廣播風暴(broadcasting storm),致使整個網絡全被廣播信息充滿,直至徹底癱瘓。第二個問題是,當與外部網絡互連時,網橋會把內部和外部網絡合二爲一,成爲一個網,雙方都自動向對方徹底開放本身的網絡資源。這種互連方式在與外部網絡互連時顯然是難以接受的。問題的主要根源是網橋只是最大限度地把網絡溝通,而無論傳送的信息是什麼。
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分組送給一個稱爲「缺省網關(default gateway)」的路由器上。「缺省網關」是每臺主機上的一個配置參數,它是接在同一個網絡上的某個路由器端口的IP地址。
——路由器轉發IP分組時,只根據IP分組目的IP地址的網絡號部分,選擇合適的端口,把IP分組送出去。同主機同樣,路由器也要斷定端口所接的是不是目的子網,若是是,就直接把分組經過端口送到網絡上,不然,也要選擇下一個路由器來傳送分組。路由器也有它的缺省網關,用來傳送不知道往哪兒送的IP分組。這樣,經過路由器把知道如何傳送的IP分組正確轉發出去,不知道的IP分組送給「缺省網關」路由器,這樣一級級地傳送,IP分組最終將送到目的地,送不到目的地的IP分組則被網絡丟棄了。
——目前TCP/IP網絡,所有是經過路由器互連起來的,Internet就是成千上萬個IP子網經過路由器互連起來的國際性網絡。這種網絡稱爲以路由器爲基礎的網絡(router based network),造成了以路由器爲節點的「網間網」。在「網間網」中,路由器不只負責對IP分組的轉發,還要負責與別的路由器進行聯絡,共同肯定「網間網」的路由選擇和維護路由表。
——路由動做包括兩項基本內容:尋徑和轉發。尋徑即斷定到達目的地的最佳路徑,由路由選擇算法來實現。因爲涉及到不一樣的路由選擇協議和路由選擇算法,要相對複雜一些。爲了斷定最佳路徑,路由選擇算法必須啓動並維護包含路由信息的路由表,其中路由信息依賴於所用的路由選擇算法而不盡相同。路由選擇算法將收集到的不一樣信息填入路由表中,根據路由表可將目的網絡與下一站(nexthop)的關係告訴路由器。路由器間互通訊息進行路由更新,更新維護路由表使之正確反映網絡的拓撲變化,並由路由器根據量度來決定最佳路徑。這就是路由選擇協議(routing protocol),例如路由信息協議(RIP)、開放式最短路徑優先協議(OSPF)和邊界網關協議(BGP)等。
——轉發即沿尋徑好的最佳路徑傳送信息分組。路由器首先在路由表中查找,判明是否知道如何將分組發送到下一個站點(路由器或主機),若是路由器不知道如何發送分組,一般將該分組丟棄;不然就根據路由表的相應表項將分組發送到下一個站點,若是目的網絡直接與路由器相連,路由器就把分組直接送到相應的端口上。這就是路由轉發協議(routed protocol)。
——路由轉發協議和路由選擇協議是相互配合又相互獨立的概念,前者使用後者維護的路由表,同時後者要利用前者提供的功能來發布路由協議數據分組。下文中提到的路由協議,除非特別說明,都是指路由選擇協議,這也是廣泛的習慣。
3 路由協議
——典型的路由選擇方式有兩種:靜態路由和動態路由。
——靜態路由是在路由器中設置的固定的路由表。除非網絡管理員干預,不然靜態路由不會發生變化。因爲靜態路由不能對網絡的改變做出反映,通常用於網絡規模不大、拓撲結構固定的網絡中。靜態路由的優勢是簡單、高效、可靠。在全部的路由中,靜態路由優先級最高。當動態路由與靜態路由發生衝突時,以靜態路由爲準。
——動態路由是網絡中的路由器之間相互通訊,傳遞路由信息,利用收到的路由信息更新路由器表的過程。它能實時地適應網絡結構的變化。若是路由更新信息代表發生了網絡變化,路由選擇軟件就會從新計算路由,併發出新的路由更新信息。這些信息經過各個網絡,引發各路由器從新啓動其路由算法,並更新各自的路由表以動態地反映網絡拓撲變化。動態路由適用於網絡規模大、網絡拓撲復雜的網絡。固然,各類動態路由協議會不一樣程度地佔用網絡帶寬和CPU資源。
——靜態路由和動態路由有各自的特色和適用範圍,所以在網絡中動態路由一般做爲靜態路由的補充。當一個分組在路由器中進行尋徑時,路由器首先查找靜態路由,若是查到則根據相應的靜態路由轉發分組;不然再查找動態路由。
——根據是否在一個自治域內部使用,動態路由協議分爲內部網關協議(IGP)和外部網關協議(EGP)。這裏的自治域指一個具備統一管理機構、統一路由策略的網絡。自治域內部採用的路由選擇協議稱爲內部網關協議,經常使用的有RIP、OSPF;外部網關協議主要用於多個自治域之間的路由選擇,經常使用的是BGP和BGP-4。下面分別進行簡要介紹。
3.1 RIP路由協議
——RIP協議最初是爲Xerox網絡系統的Xerox parc通用協議而設計的,是Internet中經常使用的路由協議。RIP採用距離向量算法,即路由器根據距離選擇路由,因此也稱爲距離向量協議。路由器收集全部可到達目的地的不一樣路徑,而且保存有關到達每一個目的地的最少站點數的路徑信息,除到達目的地的最佳路徑外,任何其它信息均予以丟棄。同時路由器也把所收集的路由信息用RIP協議通知相鄰的其它路由器。這樣,正確的路由信息逐漸擴散到了全網。
——RIP使用很是普遍,它簡單、可靠,便於配置。可是RIP只適用於小型的同構網絡,由於它容許的最大站點數爲15,任何超過15個站點的目的地均被標記爲不可達。並且RIP每隔30s一次的路由信息廣播也是形成網絡的廣播風暴的重要緣由之一。
3.2 OSPF路由協議
——80年代中期,RIP已不能適應大規模異構網絡的互連,0SPF隨之產生。它是網間工程任務組織(1ETF)的內部網關協議工做組爲IP網絡而開發的一種路由協議。
——0SPF是一種基於鏈路狀態的路由協議,須要每一個路由器向其同一管理域的全部其它路由器發送鏈路狀態廣播信息。在OSPF的鏈路狀態廣播中包括全部接口信息、全部的量度和其它一些變量。利用0SPF的路由器首先必須收集有關的鏈路狀態信息,並根據必定的算法計算出到每一個節點的最短路徑。而基於距離向量的路由協議僅向其鄰接路由器發送有關路由更新信息。
——與RIP不一樣,OSPF將一個自治域再劃分爲區,相應地即有兩種類型的路由選擇方式:當源和目的地在同一區時,採用區內路由選擇;當源和目的地在不一樣區時,則採用區間路由選擇。這就大大減小了網絡開銷,並增長了網絡的穩定性。當一個區內的路由器出了故障時並不影響自治域內其它區路由器的正常工做,這也給網絡的管理、維護帶來方便。
3.3 BGP和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的負擔。而通過路由器的先後分組間的相關性很大,具備相同目的地址和源地址的分組每每連續到達,這爲分組的快速轉發提供了實現的可能與依據。新一代路由器,如IP Switch、Tag Switch等,就是採用這一設計思想用硬件來實現快速轉發,大大提升了路由器的性能與效率。
——新一代路由器使用轉發緩存來簡化分組的轉發操做。在快速轉發過程當中,只需對一組具備相同目的地址和源地址的分組的前幾個分組進行傳統的路由轉發處理,並把成功轉發的分組的目的地址、源地址和下一網關地址(下一路由器地址)放人轉發緩存中。當其後的分組要進行轉發時,茵先查看轉發緩存,若是該分組的目的地址和源地址與轉發緩存中的匹配,則直接根據轉發緩存中的下一網關地址進行轉發,而無須通過傳統的複雜操做,大大減輕了路由器的負擔,達到了提升路由器吞吐量的目標。

0javascript

收藏css

jasmine_han0324

8篇文章,1W+人氣,0粉絲

Ctrl+Enter 發佈html

發佈vue

取消java

推薦專欄更多

CTO成長的道與術

IT人的互聯網名企晉升之道

共28章 | CTO訓練營

¥51.00 252人訂閱
網工2.0晉級攻略 ——零基礎入門Python/Ansible

網絡工程師2.0進階指南

共30章 | 薑汁啤酒

¥51.00 2034人訂閱

掃一掃,領取大禮包

0

分享
jasmine_han0324
相關文章
相關標籤/搜索