在確定最佳路徑的過程中,路由選擇算法需要初始化和維護(hù)路由選擇表( routing table )。路由選擇表中包含的路由選擇信息根據(jù)路由選擇算法的不同而不同。一般在路由表中包括這樣一些信息:目的網(wǎng)絡(luò)地址,相關(guān)網(wǎng)絡(luò)節(jié)點,對某條路徑滿意程度,預(yù)期路徑信息等。
路由器之間傳輸多種信息來維護(hù)路由選擇表,修正路由消息就是最常見的一種。修正路由消息通常是由全部或部分路由選擇表組成,路由器通過分析來自所有其他路由器的最新消息構(gòu)造一個完整的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)詳圖。鏈路狀態(tài)廣播便是一種路由修正信息。
選擇定義路由選擇是指選擇通過互連網(wǎng)絡(luò)從源節(jié)點向目的節(jié)點傳輸信息的通道,而且信息至少通過一個中間節(jié)點。路由選擇工作在 OSI 參考模型的網(wǎng)絡(luò)層。
選擇組成路由選擇包括兩個基本操作,即最佳路徑的判定和網(wǎng)間信息包的傳送(交換)。兩者之間,路徑的判定相對復(fù)雜。
路徑判定在確定最佳路徑的過程中,路由選擇算法需要初始化和維護(hù)路由選擇表( routing table )。路由選擇表中包含的路由選擇信息根據(jù)路由選擇算法的不同而不同。一般在路由表中包括這樣一些信息:目的網(wǎng)絡(luò)地址,相關(guān)網(wǎng)絡(luò)節(jié)點,對某條路徑滿意程度,預(yù)期路徑信息等。
為了成功地轉(zhuǎn)發(fā)一個數(shù)據(jù)包,IP路由算法根據(jù)路由表選擇 下一跳的目的地址。
IP路由算法如下:
假設(shè)一個 待轉(zhuǎn)發(fā)的IP報文的目的地址是D, 網(wǎng)絡(luò)前綴是N:
If (N屬于某直連網(wǎng)絡(luò))
把IP報文直接轉(zhuǎn)發(fā)
else if(路由表包含目的為D的路由)
根據(jù)路由表中的下一跳轉(zhuǎn)發(fā)IP報文(如果存在多條匹配的路由,則選擇子網(wǎng)掩碼長度最長的路由轉(zhuǎn)發(fā))
Else if(路由表中存在缺省路由)
根據(jù)缺省路由轉(zhuǎn)發(fā)IP報文
Else
向源主機(jī) 發(fā)送ICMP 出錯消息,通知IP報文不能被轉(zhuǎn)發(fā)。
路由器之間傳輸多種信息來維護(hù)路由選擇表,修正路由消息就是最常見的一種。修正路由消息通常是由全部或部分路由選擇表組成,路由器通過分析來自所有其他路由器的最新消息構(gòu)造一個完整的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)詳圖。鏈路狀態(tài)廣播便是一種路由修正信息。1
交換過程所謂交換指當(dāng)一臺主機(jī)向另一臺主機(jī)發(fā)送數(shù)據(jù)包時,源主機(jī)通過某種方式獲取路由器地址后,通過目的主機(jī)的協(xié)議地址(網(wǎng)絡(luò)層)將數(shù)據(jù)包發(fā)送到指定的路由器物理地址(介質(zhì)訪問控制層)的過程。
通過使用交換算法檢查數(shù)據(jù)包的目的協(xié)議地址,路由器可確定其是否知道如何轉(zhuǎn)發(fā)數(shù)據(jù)包。如果路由器不知道如何將數(shù)據(jù)包轉(zhuǎn)發(fā)到下一個節(jié)點,將丟棄該數(shù)據(jù)包;如果路由器知道如何轉(zhuǎn)發(fā),就把物理目的地址變換成下一個節(jié)點的地址,然后轉(zhuǎn)發(fā)該數(shù)據(jù)包。在傳輸過程中,其物理地址發(fā)生變化,但協(xié)議地址總是保持不變。
選擇算法各種路由算法不盡相同,主要是由于:首先,算法設(shè)計者的設(shè)計目標(biāo)會影響路由選擇協(xié)議的運(yùn)行結(jié)果;其次,現(xiàn)有的各種路由選擇算法對網(wǎng)絡(luò)和路由器資源的影響不同;最后,不同的計量標(biāo)準(zhǔn)也會影響最佳路徑的計算結(jié)果。2
其他基礎(chǔ)知識路由是將對象從一個地方轉(zhuǎn)達(dá)發(fā)到另一個地方的一個中繼過程
學(xué)習(xí)和維持網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)知識的機(jī)制被認(rèn)為是路由功能。渡越數(shù)據(jù)流經(jīng)路由器進(jìn)入接口
穿過路由器被移送到外出接口的過程,是另一項單獨的功能,被認(rèn)為是交換/轉(zhuǎn)發(fā)功能。路由設(shè)備必須同時具有路由和交換的功能才可以作為一臺有效的中繼設(shè)備。
為了進(jìn)行路由,路由器必須知道下面三項內(nèi)容:
l、路由器必須確定它是否激活了對該協(xié)議組的支持;
2、路由器必須知道目的地網(wǎng)絡(luò);
3、路由器必須知道哪個外出接口是到達(dá)目的地的最佳路。
路由選擇協(xié)議通過度量值來決定到達(dá)目的地的最佳路徑。小度量值代表優(yōu)選的路徑;如果兩條或更多路徑都有一個相同的小度量值,那么所有這些路徑將被平等地分享。通過多條路徑分流數(shù)據(jù)流量被稱為到目的地的負(fù)載均衡。
執(zhí)行路由操作所需要的信息被包含在路由器的路由表中,它們由一個或多個路由選擇協(xié)議進(jìn)程生成。路由表由多個路由條目組成,每個條目指明了以下內(nèi)容:
*學(xué)習(xí)該路由所用的機(jī)制(動態(tài)或手動)
*邏輯目的地
*管理距離
*度量值(它是度量一條路徑的總"總開銷"的一個尺度)
*去往目的地下一HOP的中繼設(shè)備(路由器)的地址;
*路由信息的新舊程度
*與要去往目的地網(wǎng)絡(luò)相關(guān)聯(lián)的接口
使用命令SHOW IP ROUTE可看到以上內(nèi)容
缺省管理距離的預(yù)先分配原則是:人工設(shè)置的路由條目優(yōu)先級高于動態(tài)學(xué)到路由條目,度量值算法復(fù)雜的路由選擇協(xié)議優(yōu)先級高于度量值算法簡單的路由選擇協(xié)議。
路由器一般選擇具有最小度量值的路徑;CISCO路由器的IP環(huán)境中如果同時出現(xiàn)了多條度量值最低且相同的路徑,那么在這多條路徑上將啟用負(fù)載均衡,C ISCO默認(rèn)支持4條相同度量值的路徑,通過使用"maximum-paths"命令可以認(rèn)CISCO路由器支持最多達(dá)6條相同度量值路徑。
RIP是一種用在小到中型TCP/IP網(wǎng)絡(luò)中采用的路由選擇協(xié)議,它采用跳數(shù)作為度量值,它的負(fù)載均衡功能是缺省啟用的,RIP決定最佳路徑時是不考慮帶寬的?。?!
IGRP是一種用在中到大型TCP/IP網(wǎng)絡(luò)中采用的路由選擇協(xié)議,它采用復(fù)合的度量值,它考慮了帶寬、延遲、可靠性、負(fù)載和最大傳輸單元(M TU),但缺省地使用了帶寬和延時值。IGRP也能進(jìn)行負(fù)載均衡。
在路由器啟動之后,它立刻試圖與其相鄰路由設(shè)備建立路由關(guān)系。該初始通信的目的是為了識別相鄰設(shè)備,并且開始進(jìn)行通信并學(xué)習(xí)網(wǎng)絡(luò)相結(jié)構(gòu)。建立相鄰關(guān)系的方法和對拓?fù)浣Y(jié)構(gòu)的初始學(xué)習(xí)隨路由選擇協(xié)議的不同而不同。
路由選擇協(xié)議會交換定期的HELLO消息或定期的路由更新數(shù)據(jù)包,以維持相鄰設(shè)備間進(jìn)行著通信。
在了解了網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),且路由表中已包含了到已知地網(wǎng)絡(luò)的最佳路徑后,向這些目的地的數(shù)據(jù)轉(zhuǎn)發(fā)就可以開始了。
選擇協(xié)議有類別路由選擇(classful routing)概述
不隨各網(wǎng)絡(luò)地址發(fā)送子網(wǎng)掩碼信息的路由選擇協(xié)議被稱為有類別的選擇協(xié)議(RIPv1、IGRP)
當(dāng)采用有類別路由選擇協(xié)議時,屬于同一主類網(wǎng)絡(luò)(A類、B類和C類)有所有子網(wǎng)絡(luò)都必須使用同一子網(wǎng)掩碼。運(yùn)行有類別路由選擇協(xié)議的路由選擇協(xié)議的路由器將執(zhí)行下面工作的一項以確定該路由型網(wǎng)絡(luò)部分:
*如果路由更新信息是關(guān)于在接收接口上所配的同一主類網(wǎng)絡(luò)的,路由器將采用配置在接口上的子網(wǎng)掩碼;
*如果路由更新是關(guān)于在接收接口上所配的不同主類的網(wǎng)絡(luò)的,路由器將根據(jù)其所屬地址類別采用缺省的子網(wǎng)掩碼。
有類別歸納路由的生成是由有類別路由選擇協(xié)議自動處理的
無類別路由選擇(classless routing)概述
無類別路由選擇協(xié)議包括開放最短路徑優(yōu)先(OSPF)、EIGRP、RIPV2、中間系統(tǒng)到中間系統(tǒng)(IS-IS)和邊界網(wǎng)關(guān)協(xié)議版本4(BGP4)。
在同一主類網(wǎng)絡(luò)中使用不同的掩碼長度被稱為可變長度的子網(wǎng)掩碼(VLSM)。無類別路由選擇路由選擇協(xié)議支持VLSM,因此可以更為有效的設(shè)置子網(wǎng)掩碼,以滿足不同子網(wǎng)對不同主機(jī)數(shù)目的需求,可以更充分的利用主機(jī)地址。
多數(shù)距離矢量型路由選擇協(xié)議產(chǎn)生的定期的、例行的路由更新只傳輸?shù)街苯酉噙B的路由設(shè)備。
在純距離矢量型路由環(huán)境中,路由更新包括一個完整的路由表,通過接收相鄰設(shè)備的全路由表,路由能夠核查所有已知路由,然后根據(jù)所接收到的更新信息修改本地路由表。解決路由問題的距離矢量法有時被稱為" 傳聞路由(routing by rumor)"
CISCO IOS支持幾種距離矢量型路由選擇協(xié)議,兇手RIPv1、RIPv2和IGRP。CISCO也直持EIGRP,它是一種高級的距離矢量型路由選擇協(xié)議。
路由選擇協(xié)議通常與協(xié)議組的網(wǎng)絡(luò)層關(guān)聯(lián)
大多數(shù)距離矢量型路由選擇協(xié)議采用貝樂曼-福特(Bellman-Ford)算法來計算路由。EIGRP是一種高級的距離矢量路由協(xié)議,它采用彌散修正算法(D UAL)
Cisco的IP距離矢量型路由選擇協(xié)議的比較
特征RIPv1RIPv2IGRPEIGRP
計數(shù)到無限XXX
橫向距離XXXX
抑制計時器XXX
觸發(fā)式更新,路由反向 XXXX
負(fù)載均衡-等成本路徑XXXX
負(fù)載均衡-非等成本路徑XX
VLSM支持XX
度量值跳數(shù)跳數(shù)復(fù)合復(fù)合
跳數(shù)限制
易擴(kuò)展性小小中大
注:IGRP和EIGRP的跳數(shù)限制缺省為100,但是可以配置到最大為255。
鏈路狀態(tài)型路由選擇協(xié)議只當(dāng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)生變化時才生成路由更新數(shù)據(jù)包。當(dāng)鏈路狀態(tài)發(fā)生變化時,檢測到這一變化的設(shè)備就生成一個關(guān)于該鏈路(路由)的鏈路狀態(tài)通告(L SA)。隨后LSA通過一個特殊的多目組播地址被傳播給所有相鄰設(shè)備。每臺路由設(shè)備都會保留LSA拷貝,并向其相鄰設(shè)備轉(zhuǎn)發(fā)該LSA(這個過程變稱為擴(kuò)散f looding)然后更新其拓?fù)浣Y(jié)構(gòu)數(shù)據(jù)庫(這是一個包含網(wǎng)絡(luò)所有鏈路狀態(tài)信息表)。LSA擴(kuò)散被用于確保所有路由設(shè)備都能了解到這個變化,這樣它們就能夠更新它們的數(shù)據(jù),并生成一個更新過的、反映新的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的路由表。
Cisco的鏈路狀態(tài)型路由選擇協(xié)議的比較
特征OSPFIS-ISEIGRP
要求體系化拓?fù)浣Y(jié)構(gòu)XX
保留對所有可能路由的了解XXX
路由歸納-人工XXX
路由歸納-自動X
事件觸發(fā)式通告XXX
負(fù)載均衡-等成本路徑XXX
負(fù)載均衡-非等成本路徑X
VLSM支持XXX
路由算法DijkstraIS-ISDUAL
度量值鏈路成本(帶寬)鏈路成本(帶寬)復(fù)合
跳數(shù)限制無1024100
易擴(kuò)展性大很大大
各路由器中的路由進(jìn)程都必須留有到各可能目的地邏輯網(wǎng)絡(luò)的無環(huán)路單路徑,當(dāng)所有路由表都達(dá)到同步,且每個路由表都包含有到各目的地網(wǎng)絡(luò)的一條可用路由時,網(wǎng)絡(luò)就達(dá)到了收斂狀態(tài)。收斂是在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)生變化后,比如增加了新的路由或現(xiàn)有路由的狀態(tài)發(fā)生了變化后,與路由表同步相關(guān)聯(lián)的活動。
收斂時間是網(wǎng)絡(luò)中所有路由對當(dāng)前拓?fù)浣Y(jié)構(gòu)的認(rèn)知達(dá)到一致所需的時間,網(wǎng)絡(luò)的大小、所使用的路由選擇協(xié)議以及眾多可配置的計時器都能夠影響收斂時間。
有兩種檢測的方法:
*當(dāng)物理層或數(shù)據(jù)鏈路層沒能接收到一定數(shù)量(通常是3)的連續(xù)keepalive消息時,就認(rèn)為該鏈路失效。
*當(dāng)路由選擇協(xié)議沒能接收到一定數(shù)量(通常是3)的連續(xù)Hello消息或路由更新或相類似消息時,就認(rèn)為該鏈路失效了。
大多數(shù)路由選擇協(xié)議都具有防止在鏈路狀態(tài)轉(zhuǎn)換過程中產(chǎn)生拓?fù)浣Y(jié)構(gòu)環(huán)路用的計時器。3
本詞條內(nèi)容貢獻(xiàn)者為:
李嘉騫 - 博士 - 同濟(jì)大學(xué)