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