Internet路由協(xié)議

基本概念

為了便于管理,Internet將整個(gè)互聯(lián)網(wǎng)絡(luò)劃分為相對(duì)較小的自治系統(tǒng)(AS,autonomous system)。一個(gè)自治系統(tǒng)內(nèi)的所有網(wǎng)絡(luò)通常屬于一個(gè)行政單位(例如以所公司、大學(xué)或政府部門)。一個(gè)自治系統(tǒng)的所有路由器在本自治系統(tǒng)內(nèi)都必須是連通的

自治系統(tǒng)

自治系統(tǒng).png

Internet路由協(xié)議分類

? 內(nèi)部網(wǎng)關(guān)協(xié)議IGP(interior gateway protocol)
自治系統(tǒng)AS內(nèi)使用的路由算法,RIP、OSPF
? 外部網(wǎng)關(guān)協(xié)議EGP(exterior gateway protocol)
自治系統(tǒng)AS之間使用的路由算法,BGP

內(nèi)部網(wǎng)關(guān)協(xié)議

路由信息協(xié)議RIP協(xié)議(Routing information Protocol)

RIP是一種分布式的基于距離向量的路由選擇協(xié)議

距離的定義

RIP使用跳數(shù)度量來(lái)衡量到達(dá)目的站的距離,不能同時(shí)使用多種度量,比如時(shí)延等。也就是說(shuō)如果有一條路徑是跳數(shù)最少但是時(shí)延比較大的,和另外一條跳數(shù)比較大但時(shí)延較小的路徑,按照RIP協(xié)議會(huì)按照跳數(shù)最少的來(lái)選擇路徑,不管時(shí)延是多少
從一路由器到直接連接的網(wǎng)絡(luò)的距離定義為1,從一路由器到非直連的網(wǎng)絡(luò)的距離定義為所經(jīng)過(guò)的路由器數(shù)加1。RIP允許一條路徑最多只能包含15個(gè)路由器?!熬嚯x”的最大值為16時(shí)即相當(dāng)于不可達(dá),數(shù)據(jù)會(huì)被丟棄,可見RIP只適用于小型互聯(lián)網(wǎng)

RIP協(xié)議的三個(gè)要點(diǎn)

? 僅和相鄰路由器交換信息
? 交換的信息時(shí)當(dāng)前本路由器所知道的全部信息,即自己的路由表
? 按固定的時(shí)間間隔交換路由信息,例如每隔30秒

RIP協(xié)議報(bào)文格式
RIP協(xié)議報(bào)文格式.png
距離向量的算法

對(duì)每一個(gè)相鄰路由器發(fā)送過(guò)來(lái)的RIP報(bào)文,進(jìn)行以下步驟:

步驟.png

上面給出的距離向量算法的基礎(chǔ)就是Bellman-Ford 算法(或Ford-Fulkerson 算法)。這種算法的要點(diǎn)是這樣的: 設(shè)X是結(jié)點(diǎn)A到B的最短路徑上的一個(gè)結(jié)點(diǎn)。若把路徑A→B拆成兩段路徑A-X和X-B.則每一段路徑A-X和X→B也都分別是結(jié)點(diǎn)A到X和結(jié)點(diǎn)X到B的最短路徑

下面是對(duì)上述距離向量算法的五點(diǎn)解釋:

解釋.png

例:己知路由器R6有表R6所示的路由表。現(xiàn)在收到相鄰路由器R4發(fā)來(lái)的路|由更新信息,如表R4所示。 試更新路由器R6的路由表

更新R6路由表.png

把這個(gè)表的每一行和表R6進(jìn)行比較
第一行在表R6中沒(méi)有,因此要把這行添加到表R6中
第二行的Net2在表R6中有,且下跳路由器也是R4.因此要更新(距離增大了)
第三行的Net3在表R6中有, 但下一跳路由器不同。于是就要比較距離。新的路由器的距離是2,小于原來(lái)表中的4,因此要更新
這樣,得出更新后的R6的路由表如表R6新所示

RIP協(xié)議的優(yōu)缺點(diǎn)

? 優(yōu)點(diǎn):就是實(shí)現(xiàn)簡(jiǎn)單,開銷較小
? 缺點(diǎn):當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時(shí),要經(jīng)過(guò)比較長(zhǎng)的時(shí)間才能將此信息傳送到所有的路由器。
RIP限制了網(wǎng)絡(luò)的規(guī)模,它能使用的最大距離為15。路由器之間交換完整路由表,隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,開銷也就增加

內(nèi)部網(wǎng)關(guān)路由協(xié)議OSPF協(xié)議(Open Shortest Path First)

OSPF是一種公開發(fā)表的分布式的鏈路狀態(tài)協(xié)議

OSPF要點(diǎn)

? 向本自治系統(tǒng)中所有路由器發(fā)送信息(洪泛)
? 發(fā)送的信息就是與本路由器相鄰的所有路由器的鏈路狀態(tài)(即本路由器都和哪些路由器相鄰,以及該鏈路的“度量”)
? 支持多種距離衡量尺度,例如:物理距離、延遲等(綜合考慮最優(yōu)路徑)

OSPF特點(diǎn)

? 不用UDP而是直接用IP數(shù)據(jù)報(bào)傳送
? 允許管理員給每條路由指派不同的代價(jià)。比如對(duì)于非實(shí)時(shí)的業(yè)務(wù)科設(shè)置較低的代價(jià),對(duì)于時(shí)延敏感的業(yè)務(wù)可設(shè)置為很高的代價(jià)
? 如果到同一個(gè)目的網(wǎng)絡(luò)有多條相同代價(jià)的路徑,那么可以將通信量分配給這幾條路徑,即多路徑間的負(fù)載平衡
? 有鑒別功能,保證僅在可信賴的路由器之間交換鏈路狀態(tài)信息
? 支持可變長(zhǎng)度的子網(wǎng)劃分和無(wú)分類的編制CIDR
? 由于網(wǎng)絡(luò)中的鏈路狀態(tài)可能經(jīng)常發(fā)生變化,因此OSPF讓每個(gè)鏈路狀態(tài)都帶上一個(gè)32位的序號(hào),序號(hào)越大狀態(tài)越新
? 路由更新過(guò)程收斂的快
? 支持隧道技術(shù)

OSPF的分層路由

為了使OSPF能夠用于規(guī)模很大的網(wǎng)絡(luò),OSPF將一個(gè)自治系統(tǒng)劃分為若干個(gè)更小的范圍,叫做區(qū)域。每一個(gè)區(qū)域都有一個(gè)32bit的區(qū)域標(biāo)識(shí)符(用點(diǎn)分十進(jìn)制表示)。設(shè)定一個(gè)主干區(qū)域(backbone area),標(biāo)識(shí)符規(guī)定為0.0.0.0,用于連通其他各區(qū)域。利用洪泛法交換鏈路狀態(tài)信息的范圍局限于每一個(gè)區(qū)域而不是整個(gè)的自治系統(tǒng),這就減少了整個(gè)網(wǎng)絡(luò)上的通信量。在一個(gè)區(qū)域內(nèi)部的路由器只知道本區(qū)域的完整網(wǎng)絡(luò)拓?fù)洌恍枰榔渌麉^(qū)域的網(wǎng)絡(luò)拓?fù)涞那闆r。OSPF更加適合大規(guī)模的網(wǎng)絡(luò)路由

OSPF的協(xié)議操作

建立路由器的鄰接關(guān)系→發(fā)現(xiàn)路由器→選擇適當(dāng)?shù)穆酚善鳌S護(hù)路由信息

OSPF路由協(xié)議的路由層次

這是一個(gè)自治系統(tǒng)劃分出的若干區(qū)域↓

OSPF路由協(xié)議的路由層次.png
OSPF分組
OSPF分組.png
OSPF分組類型

? 類型1:?jiǎn)柡颍℉ello)分組
? 類型2:數(shù)據(jù)庫(kù)描述(Database Description)分組
? 類型3:鏈路狀態(tài)請(qǐng)求(Link State Request)分組
? 類型4:鏈路狀態(tài)更新(Link State Update)分組,用洪泛法對(duì)全網(wǎng)更新鏈路狀態(tài)
? 類型5:鏈路狀態(tài)確認(rèn)(Link State Acknowledgment)分組

OSPF的基本操作
OSPF的基本操作.png
RIP和OSPF形象總結(jié)

RIP:
是一個(gè)距離矢量協(xié)議,也叫基于傳聞的協(xié)議.路由器之間運(yùn)行RIP,雖然彼此會(huì)傳遞更新報(bào)文,路由器也能學(xué)習(xí)到非直連網(wǎng)絡(luò)的路由信息,但是!網(wǎng)絡(luò)是如何連接而成的?有幾臺(tái)路由器?各有幾個(gè)接口?接口類型是什么樣的?從自身出發(fā)去往一個(gè)非直連網(wǎng)絡(luò)有哪些路徑?這些信息路由器一概不知。只是聽從鄰居的話,使用鄰居做為去往一個(gè)又一個(gè)非直連網(wǎng)絡(luò)的下一跳.
例如R1---R2---X 該例子中R1連接R2, R2身后連接X(jué)網(wǎng)絡(luò), 當(dāng)在R1和R2之間運(yùn)行RIP之后 ,R2給R1發(fā)送的更新報(bào)文中會(huì)包含X網(wǎng)絡(luò)路由。這相當(dāng)于R2在告訴R1, 想去往X網(wǎng)絡(luò)請(qǐng)使用我R2做下一跳, R1會(huì)照辦。將路由加入本地路由表,下一跳地址設(shè)置為R2.但R1其實(shí)并不知道X在哪里,自己去往X有哪些可行路徑,路徑包含哪些路由都不知道,因?yàn)椴荒茏C明R2傳遞的路徑信息的真?zhèn)巍R虼酥荒苓x擇相信,但如果X網(wǎng)絡(luò)不在R2身后,R2認(rèn)可的X網(wǎng)絡(luò)路徑信息如果是錯(cuò)的,R1收到更新也無(wú)法辨別,只能選擇信任。在這種情況下,路由器之間彼此傳遞錯(cuò)誤的路徑信息就會(huì)導(dǎo)致路由選擇環(huán)路,導(dǎo)致去往X網(wǎng)絡(luò)的數(shù)據(jù)在環(huán)中不停傳遞,浪費(fèi)大量資源
OSPF:
是一個(gè)鏈路狀態(tài)協(xié)議,也叫基于拓?fù)涞膮f(xié)議。路由器之間運(yùn)行OSPF之后,彼此交互的更新報(bào)文中包含的不是路由條目,而是LSA。雖然LSA有很多類型,不同場(chǎng)合路由器會(huì)使用特定LSA傳輸特定信息,但是大體上LSA包含的內(nèi)容既包含拓?fù)湫畔?,又包含路由信息。比如說(shuō)路由器產(chǎn)生的1類LSA里包含該路由器自身的信息,比如他的路由器ID,他是什么類型的路由器?以及該路由器宣告進(jìn)OSPF的接口信息,有幾個(gè)接口?連接的是什么類型的鏈路?有沒(méi)有通過(guò)接口建立其他OSPF鄰居?如果有鄰居的RID是多少?每個(gè)接口IP地址,子網(wǎng)掩碼,度量值是多少,都會(huì)在1類LSA中包含。路由器收到鄰居的LSA后,會(huì)在一個(gè)區(qū)域內(nèi)泛洪擴(kuò)散,使得區(qū)域內(nèi)所有路由器都能收到這條LSA。當(dāng)OSPF運(yùn)行一段時(shí)間后,每臺(tái)路由器都能收到區(qū)域內(nèi)所有路由器所產(chǎn)生的LSA,基于這些LSA路由器能知道整個(gè)區(qū)域是怎么連接而成的。有多少臺(tái)路由器?每臺(tái)路由器有多少接口?都是什么類型的?每個(gè)網(wǎng)絡(luò)分布在什么位置?都一清二楚。屆時(shí)每臺(tái)路由器都使用一個(gè)樹形結(jié)構(gòu)算法,將自身設(shè)置為樹根,利用SPF算法判斷去往每個(gè)一個(gè)非直連網(wǎng)絡(luò)的最優(yōu)路徑。最終將最優(yōu)路徑的路由加入路由表轉(zhuǎn)發(fā)數(shù)據(jù),可以理解為運(yùn)行OSPF的路由器是先知道網(wǎng)絡(luò)的拓?fù)?,再基于拓?fù)溆?jì)算路由。而不是聽從鄰居的建議使用相應(yīng)鄰居做下一跳轉(zhuǎn)發(fā)數(shù)據(jù)去往相應(yīng)目的網(wǎng)絡(luò)

外部網(wǎng)關(guān)路由協(xié)議EGP

因特網(wǎng)的規(guī)模太大,使得自治系統(tǒng)之間路由選擇非常困難。若源主機(jī)和目的主機(jī)處在不同的自制系統(tǒng)中(這兩個(gè)自制系統(tǒng)可能使用不同的內(nèi)部網(wǎng)關(guān)協(xié)議),當(dāng)數(shù)據(jù)報(bào)傳到一個(gè)自制系統(tǒng)的邊界時(shí),就需要使用一種協(xié)議將路由選擇信息傳遞到另一個(gè)自制系統(tǒng)中

自治系統(tǒng).png

自治系統(tǒng)AS2的BGP發(fā)言人通知主干網(wǎng)的BGP發(fā)言人:要達(dá)到網(wǎng)絡(luò)N1,N2,N3和N4可經(jīng)過(guò)AS2.主干網(wǎng)在受到這個(gè)通知后,就發(fā)出通知:要達(dá)到網(wǎng)絡(luò)N1,N2,N3和N4可沿路徑(AS1,AS2)。同理,主干網(wǎng)還可發(fā)出通知:要想到達(dá)網(wǎng)絡(luò)N5,N6和N7可沿路徑(AS1,AS3)

BGP發(fā)言人與會(huì)話

每一個(gè)自治系統(tǒng)的管理員要選擇至少一個(gè)路由器作為該自治系統(tǒng)的“BGP發(fā)言人”。BGP發(fā)言人往往就是BGP邊界路由器。BGP發(fā)言人之間要交換路由信息,就要建立BGP會(huì)話(session)

BGP發(fā)言人與會(huì)話.png
邊界網(wǎng)關(guān)協(xié)議BGP

BGP是不同自治系統(tǒng)的路由器之間交換路由信息的協(xié)議。BGP是一種距離向量路由算法
建立了BGP會(huì)話連接的路由器又被稱作對(duì)等體(peers or neighbors)。在BGP剛剛運(yùn)行時(shí),BGP的鄰站是交換整個(gè)的BGP路由表。但以后只需要在發(fā)生變化時(shí)更新有變化的部分

對(duì)等體的連接有兩種模式:
? IBGP(Internal BGP):用來(lái)在AS內(nèi)部完成BGP更新信息的交換,維護(hù)AS內(nèi)部連通性
? EBGP(External BGP):用來(lái)建立AS之間的路由器會(huì)話

邊界網(wǎng)關(guān)協(xié)議BGP.png
BGP的特點(diǎn)

采用路徑向量算法,路由信息中記錄路徑的軌跡。與距離矢量法非常類似,每個(gè)邊界網(wǎng)關(guān)向鄰居路由器廣播到目的節(jié)點(diǎn)完整路徑。力求尋找一條能夠到達(dá)目的網(wǎng)絡(luò)且比較好的路由,而并非尋找一條最佳路由

例如:
網(wǎng)關(guān)X可能發(fā)送到目的節(jié)點(diǎn)Z的路徑如→:Path(X,Z) = X,Y1,Y2,Y3,......,Z
假設(shè):網(wǎng)關(guān)X將它的路徑送到網(wǎng)關(guān)W,W可能接受或者不接受X所提供的路徑。如果W接收X發(fā)來(lái)的路徑,則:Path(W,Z)= w,Path(X,Z)。注意:X可以通過(guò)控制是否廣播某條路徑來(lái)控制該路徑的流量

BGP的4種消息類型

? 打開(Open)報(bào)文:用來(lái)與相鄰的另一個(gè)BGP發(fā)言人建立關(guān)系
? 更新(Update)報(bào)文:用來(lái)發(fā)送某一路由的信息,以及列出要撤銷的多條路由
? 保活(Keepalive)報(bào)文:用來(lái)確認(rèn)打開報(bào)文和周期性地證實(shí)鄰站關(guān)系(周期性地詢問(wèn)相鄰站 點(diǎn)是否存在,如果相鄰的站點(diǎn)撤銷了,下面的路由就不再給這個(gè)站點(diǎn)發(fā)送數(shù)據(jù)了)
? 通知(Notification)報(bào)文:用來(lái)發(fā)送檢測(cè)到的差錯(cuò)

RIP,OSPF和BGP的簡(jiǎn)單比較

RIP,OSPF和BGP的簡(jiǎn)單比較.png

三個(gè)協(xié)議的傳遞協(xié)議不同的原因
OSPF自身提供主從協(xié)商機(jī)制,可以保證可靠的傳輸,另外全網(wǎng)路由器保持著同樣的一個(gè)鏈路狀態(tài)數(shù)據(jù)庫(kù),當(dāng)拓?fù)浒l(fā)生變化時(shí),需要攜帶的變更信息較少,通過(guò)IP協(xié)議即可完成
RIP協(xié)議每周期需全網(wǎng)組播路由信息,路由信息數(shù)目較大,故使用UDP協(xié)議可提高效率
BGP為邊界網(wǎng)關(guān)協(xié)議,因攜帶的路由信息較多,且可能跨不同網(wǎng)絡(luò)傳送路由信息,為保證可靠性,需使用TCP協(xié)議,可兼顧容量和可靠性

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 路由信息產(chǎn)生 三種方式:設(shè)備自動(dòng)發(fā)現(xiàn),手工配置,通過(guò)動(dòng)態(tài)路由協(xié)議生成設(shè)備自動(dòng)發(fā)現(xiàn)的路由信息——直連路由;手工配置的...
    Gael閱讀 1,039評(píng)論 1 0
  • 路由算法與路由協(xié)議 選擇轉(zhuǎn)發(fā)IP分組的過(guò)程叫做:路由選擇 路由選擇的核心:路由選擇算法 帶權(quán)無(wú)向圖 將網(wǎng)絡(luò)抽象為一...
    陳_MY閱讀 1,405評(píng)論 0 0
  • 版權(quán)聲明:原創(chuàng)作品,謝絕轉(zhuǎn)載!否則將追究法律責(zé)任。 OSPF路由協(xié)議 楔子 為了加強(qiáng)自己我打算好好玩玩網(wǎng)絡(luò)。 OS...
    李偉銘MIng閱讀 4,761評(píng)論 0 25
  • 采用“分層次的路由選擇協(xié)議”的理由:--Internet的規(guī)模非常大,會(huì)導(dǎo)致路由表中項(xiàng)目太多,處理起來(lái)太花時(shí)間,路...
    恒星的背影閱讀 978評(píng)論 0 1
  • 我們知道網(wǎng)絡(luò)層的關(guān)鍵作用在于路由尋址,這主要依靠路由選擇協(xié)議來(lái)實(shí)現(xiàn),而路由選擇協(xié)議的核心在于利用路由算法生成路由表...
    JumboWu閱讀 1,430評(píng)論 0 2

友情鏈接更多精彩內(nèi)容