
路由算法是提高路由協(xié)議功能,盡量減少路由時所帶來開銷的算法。當實現(xiàn)路由算法的軟件必須運行在物理資源有限的計算機上時高效尤其重要。路由算法必須健壯,即在出現(xiàn)不正常或不可預(yù)見事件的情況下必須仍能正常處理,例如硬件故障、高負載和不正確的實現(xiàn)。因為路由器位于網(wǎng)絡(luò)的連接點,當它們失效時會產(chǎn)生重大的問題。最好的路由算法通常是那些經(jīng)過了時間考驗,證實在各種網(wǎng)絡(luò)條件下都很穩(wěn)定的算法。此外路由算法必須能快速聚合,聚合是所有路由器對最佳路徑達成一致的過程。當某網(wǎng)絡(luò)事件使路徑斷掉或不可用時,路由器通過網(wǎng)絡(luò)分發(fā)路由更新信息,促使最佳路徑的重新計算,最終使所有路由器達成一致。聚合很慢的路由算法可能會產(chǎn)生路由環(huán)或網(wǎng)路中斷。
路由器使用路由算法來找到到達目的地的最佳路由。當說“最佳路由”時,考慮的參數(shù)包括諸如跳躍數(shù)(分組數(shù)據(jù)包在網(wǎng)絡(luò)中從一個路由器或中間節(jié)點到另外的節(jié)點的行程)、延時以及分組數(shù)據(jù)包傳輸通信耗時。關(guān)于路由器如何收集網(wǎng)絡(luò)的結(jié)構(gòu)信息以及對之進行分析來確定最佳路由,有兩種主要的路由算法:總體式路由算法和分散式路由算法。采用分散式路由算法時,每個路由器只有與它直接相連的路由器的信息——而沒有網(wǎng)絡(luò)中的每個路由器的信息。這些算法也被稱為DV(距離向量)算法。采用總體式路由算法時,每個路由器都擁有網(wǎng)絡(luò)中所有其他路由器的全部信息以及網(wǎng)絡(luò)的流量狀態(tài)。這些算法也被稱為LS(鏈路狀態(tài))算法。
路由算法通常具有下列設(shè)計目標的一個或多個:優(yōu)化、簡單、低耗、健壯、穩(wěn)定、快速聚合、靈活性。(1)最優(yōu)化:指路由算法選擇最佳路徑的能力。根據(jù)metric的值和權(quán)值來計算。(2)簡潔性:算法設(shè)計必須簡潔。路由協(xié)議在網(wǎng)絡(luò)中必須高效地提供其功能,盡量減少軟件和應(yīng)用的開銷。這在當實現(xiàn)路由算法的軟件必須運行在物理資源有限的計算機上時尤其重要。(3)堅固性:路由算法處于非正?;虿豢深A(yù)料的環(huán)境時,如硬件故障、負載過高或操作失誤時,都能正確運行。由于路由器分布在網(wǎng)絡(luò)聯(lián)接點上,所以在它們出故障時會產(chǎn)生嚴重后果。最好的路由器算法通常能經(jīng)受時間的考驗,并在各種網(wǎng)絡(luò)環(huán)境下被證實是可靠的。(4)快速收斂:收斂是在最佳路徑的判斷上所有路由器達到一致的過程。當某個網(wǎng)絡(luò)事件引起路由可用或不可用時,路由器就發(fā)出更新信息。路由更新信息遍及整個網(wǎng)絡(luò),引發(fā)重新計算最佳路徑,最終達到所有路由器一致公認的最佳路徑。收斂慢的路由算法會造成路徑循環(huán)或網(wǎng)絡(luò)中斷。(5)靈活性:路由算法要求可以快速、準確地適應(yīng)各種網(wǎng)絡(luò)環(huán)境。例如,某個網(wǎng)段發(fā)生故障,路由算法要能很快發(fā)現(xiàn)故障,并為使用該網(wǎng)段的所有路由選擇另一條最佳路徑。
路由算法還應(yīng)該是靈活的,即它們應(yīng)該迅速、準確地適應(yīng)各種網(wǎng)絡(luò)環(huán)境。路由算法可以設(shè)計得可適應(yīng)網(wǎng)絡(luò)帶寬、路由器隊列大小和網(wǎng)絡(luò)延遲。
1、選擇最短路由還是最佳路由;2、通信子網(wǎng)是采用虛電路操作方式還是采用數(shù)據(jù)報的操作方式;3、采用分布式路由算法還是采用集中式路由算法;4、考慮關(guān)于網(wǎng)絡(luò)拓撲、流量和延遲等網(wǎng)絡(luò)信息的來源;5、確定采用靜態(tài)路由還是動態(tài)路由。優(yōu)化指路由算法選擇最佳路徑的能力,根據(jù)metric的值和權(quán)值來計算。例如有一種路由算法可能使用跳數(shù)和延遲,但可能延遲的權(quán)值要大些。當然,路由協(xié)議必須嚴格定義計算metric的算法。