" />
所謂路由就是指通過相互連接的網(wǎng)絡(luò)把信息從源地點移動到目標(biāo)地點的活動。一般來說,在路由過程中,信息至少會經(jīng)過一個或多個中間節(jié)點。通常,人們會把路由和交換進行對比,這主要是因為在普通用戶看來兩者所實現(xiàn)的功能是完全一樣的。其實,路由和交換之間的主要區(qū)別就是交換發(fā)生在OSI參考模型的第二層(數(shù)據(jù)鏈路層),而路由發(fā)生在第三層,即網(wǎng)絡(luò)層。這一區(qū)別決定了路由和交換在移動信息的過程中需要使用不同的控制信息,所以兩者實現(xiàn)各自功能的方式是不同的。
早在40 多年之間就已經(jīng)出現(xiàn)了對路由技術(shù)的討論,但是直到80年代路由技術(shù)才逐漸進入商業(yè)化的應(yīng)用。路由技術(shù)之所以在問世之初沒有被廣泛使用主要是因為80年代之前的網(wǎng)絡(luò)結(jié)構(gòu)都非常簡單,路由技術(shù)沒有用武之地。直到最近十幾年,大規(guī)模的互聯(lián)網(wǎng)絡(luò)才逐漸流行起來,為路由技術(shù)的發(fā)展提供了良好的基礎(chǔ)和平臺。
路由技術(shù)的構(gòu)成
我們通常所說的路由技術(shù)其實是由兩項最基本的活動組成,即決定最優(yōu)路徑和傳輸信息單元(也被稱為數(shù)據(jù)包)。其中,數(shù)據(jù)包的傳輸和交換相對較為簡單和直接,而路由的確定則更加復(fù)雜一些。
確定路由
度量標(biāo)準(zhǔn)(metric),例如路徑長度等,是被路由算法用來計算和確定到達目的地的最優(yōu)路徑的標(biāo)準(zhǔn)。為了幫助確定數(shù)據(jù)傳輸?shù)穆窂剑酚伤惴梢越⒑途S護路由表。路由表中包含了各種路由信息。路由信息根據(jù)所使用的路由算法的不同而各異。
路由算法在路由表中寫入各種不同的信息,路由器會根據(jù)數(shù)據(jù)包所要到達的目的地選擇最佳路徑把數(shù)據(jù)包發(fā)送到可以到達該目的地的下一臺路由器處。當(dāng)下一臺路由器接收到該數(shù)據(jù)包時,也會查看其目標(biāo)地址,并使用合適的路徑繼續(xù)傳送給后面的路由器。依次類推,直到數(shù)據(jù)包到達最終目的地。這種通過目的地和路由器地址決定最佳傳輸路徑的示意圖如下:
除了我們在上圖中看到的兩項信息之外,路由表中還會包含其它一些對路由的計算和選擇有價值的信息。路由器通過比較不同路徑的度量值決定最優(yōu)路徑,而具體的度量值則要視所使用的路由算法而定。我們將會在文章稍后對一些較為常用的度量標(biāo)準(zhǔn)進行具體的介紹。
路由器之間可以進行相互通訊,而且可以通過傳送不同類型的信息維護各自的路由表。路由更新信息就是這樣一種信息,一般是由部分或全部路由表組成。通過分析其它路由器發(fā)出的路由更新信息,路由器可以把握整個網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。鏈路狀態(tài)廣播是另外一種在路由器之間傳遞的信息,它可以把信息發(fā)送方的鏈路狀態(tài)及時的通知給其它路由器。
數(shù)據(jù)包交換
交換算法相對路由算法來說更加簡單,而且絕大多數(shù)的路由協(xié)議都可以使用相同的交換技術(shù)。當(dāng)數(shù)據(jù)包的發(fā)送方通過一定的方式獲取到路由器的地址之后,就會把數(shù)據(jù)包以該路由器的物理地址(MAC地址)發(fā)送出去,同時使用網(wǎng)絡(luò)層地址標(biāo)識數(shù)據(jù)包的最終目的地。
當(dāng)路由器接收到數(shù)據(jù)包后將查看標(biāo)明其目的地的協(xié)議地址,并決定是否按照該地址將數(shù)據(jù)包轉(zhuǎn)發(fā)到下一臺路由器。假如路由器不知道如何把數(shù)據(jù)包轉(zhuǎn)發(fā)到其目的地的話,一般會丟棄該數(shù)據(jù)包。假如路由器知道數(shù)據(jù)包的轉(zhuǎn)發(fā)路徑,則會將其中的物理地址改為下一臺路由器的地址,然后將其發(fā)送出去。以此類推,直到數(shù)據(jù)包到達最終的目的地。在整個過程中,數(shù)據(jù)包的物理地址會隨著移動過程中所經(jīng)過的不同的路由器而變化,但是代表目的地的協(xié)議地址一直保持不變。具體如圖所示:
路由算法
路由算法主要由幾個要害因素決定。首先,算法的設(shè)計意圖對路由協(xié)議的實際運作具有很大的影響。其次,目前存在許多不同類型的路由算法,每一種算法對網(wǎng)絡(luò)和路由器資源都有不同的要求和影響。最后,路由算法使用不同的度量標(biāo)準(zhǔn),從而使最優(yōu)路徑的計算結(jié)果不同。
設(shè)計意圖
通常,一種路由算法可以體現(xiàn)出以下幾方面的設(shè)計意圖:
最優(yōu)性是指路由算法選擇最佳路徑的能力,這主要取決于計算最佳路徑所使用的度量標(biāo)準(zhǔn)。舉例來說,一種路由算法可以同時采用數(shù)據(jù)包經(jīng)過路由器的跳數(shù)和時延作為度量標(biāo)準(zhǔn),而其中又以時延為主要標(biāo)準(zhǔn)。每一種路由協(xié)議都必須嚴(yán)格定義度量值的計算方法。
路由協(xié)議的設(shè)計應(yīng)當(dāng)盡可能的簡單。換句話說,路由算法必須能夠以最有效的方式發(fā)揮其功能,最大程度的降低軟件和使用開銷。尤其是當(dāng)實現(xiàn)路由算法的軟件只能在資源有限的機器上運行時,有效性就變得更為重要。
路由算法必須具有良好的健壯性,能夠在出現(xiàn)異常或突發(fā)事件(例如硬件損壞,負(fù)載過高以及執(zhí)行錯誤等)時正常運行。因為路由器往往是網(wǎng)絡(luò)的連接節(jié)點,所以假如出現(xiàn)問題將會帶來非常嚴(yán)重的后果。因此,最好的路由算法應(yīng)當(dāng)能夠經(jīng)受時間的考驗,在不同的網(wǎng)絡(luò)條件下都能夠保持穩(wěn)定的運行狀態(tài)。
路由算法還應(yīng)當(dāng)能夠快速聚斂。所謂聚斂就是指所有路由器就最優(yōu)路徑重新達成一致的過程。當(dāng)因為某種原因使路由器出現(xiàn)問題而無法繼續(xù)正常使用時,路由器會發(fā)出路由更新信息傳遍整個網(wǎng)絡(luò),重新計算最優(yōu)路徑,并最終使所有路由器就新路徑達成一致。聚斂速度慢的路由算法可能會導(dǎo)致路由回路的出現(xiàn)。
在下圖所示的路由回路中,一個數(shù)據(jù)包在時間t1到達路由器1。因為路由器1中的信息已經(jīng)被更新,所以該路由器知道到達數(shù)據(jù)包目的地的最優(yōu)路徑應(yīng)當(dāng)通過路由器 2。因此,路由器1把數(shù)據(jù)包轉(zhuǎn)發(fā)到路由器2。但是路由器2中的信息沒有被更新,所以仍然認(rèn)為最優(yōu)路徑應(yīng)當(dāng)通過路由器1,并因此把數(shù)據(jù)包又轉(zhuǎn)發(fā)回路由器1。這樣,數(shù)據(jù)包只能在兩臺路由器之間往返傳遞,直到路由器2接收到了路由更新信息或者數(shù)據(jù)包超出了最大存活時間。
路由算法還應(yīng)當(dāng)具有非常好的適應(yīng)性,能夠快速準(zhǔn)確的適應(yīng)不同的網(wǎng)絡(luò)環(huán)境。例如,假設(shè)某一個網(wǎng)段出現(xiàn)問題,許多路由協(xié)議都可以快速的選擇新的最佳路徑替代已經(jīng)無法使用的原由路徑。路由算法應(yīng)當(dāng)能夠通過編程,適應(yīng)網(wǎng)絡(luò)帶寬,網(wǎng)絡(luò)時延等參數(shù)變量的變化。
算法類型
路由算法可以被劃分成許多不同的類型。主要的分類標(biāo)準(zhǔn)如下:
  靜態(tài)vs動態(tài) 
  單路徑vs多路徑 
  單層結(jié)構(gòu)vs分層結(jié)構(gòu) 
  主機智能vs路由器智能 
  域間vs域內(nèi) 
  鏈路狀態(tài)vs距離向量 
  靜態(tài)vs動態(tài) 
靜態(tài)路由算法并不是一種真正意義上的路由算法,而只是由網(wǎng)絡(luò)治理員在啟動網(wǎng)絡(luò)路由功能之前預(yù)先建立起來的 因為靜態(tài)路由系統(tǒng)無法對網(wǎng)絡(luò)變化作出響應(yīng),所以對今天的大型,動態(tài)網(wǎng)絡(luò)來說并不適用。目前所使用的絕大多數(shù)的主流路由算法都是動態(tài)路由算法,可以通過分析接收到的路由更新信息針對變化的網(wǎng)絡(luò)環(huán)境作出相應(yīng)的調(diào)整。假如網(wǎng)絡(luò)發(fā)生變化,路由軟件就會重新計算新路由,并將新的路由更新信息發(fā)送出去。更新信息可以傳遍整個網(wǎng)絡(luò),所有接收到該信息的路由器都會重新執(zhí)行各自的路由算法,對路由表作出相應(yīng)的修改。
靜態(tài)路由和動態(tài)路由并不是完全對立的,在適當(dāng)?shù)沫h(huán)境下,兩者可以有機的結(jié)合在一起,互為補充。例如,我們可以創(chuàng)建靜態(tài)路由,指定一臺專門的路由器作為最后訴求(last resort)路由器來接收所有無法被正確路由的數(shù)據(jù)包,這樣,我們就可以保證所有的信息都能夠以某種方式被處理。
新聞熱點
疑難解答
圖片精選