路由算法是網(wǎng)絡(luò)層軟件的一部分,它負(fù)責(zé)確定一個(gè)進(jìn)來(lái)的分組應(yīng)該被傳送到哪一條輸出線路上。如果子網(wǎng)內(nèi)部使用了數(shù)據(jù)報(bào),那么路由器必須針對(duì)每一個(gè)到達(dá)的數(shù)據(jù)分組重新選擇路徑,因?yàn)閺纳弦淮芜x擇了路徑之后,最佳的路徑可能已經(jīng)改變了。如果子網(wǎng)內(nèi)部使用了虛電路,那么只有當(dāng)一個(gè)新的虛電路被建立起來(lái)的時(shí)候,才需要確定路由路徑。因此,數(shù)據(jù)分組只要沿著已經(jīng)建立的路徑向前傳遞就行了。無(wú)論是針對(duì)每個(gè)分組獨(dú)立地選擇路由路徑,還是只有建立新連接的時(shí)候才選擇路由路徑,一個(gè)路由算法應(yīng)具各的特性有:正確性、簡(jiǎn)單性、健壯性、穩(wěn)定性、公平性和最優(yōu)性。
路由算法可以分為:非自適應(yīng)的和自適應(yīng)的。非自適應(yīng)算法不會(huì)根據(jù)當(dāng)前測(cè)量或者估計(jì)的流量和拓?fù)浣Y(jié)構(gòu)來(lái)調(diào)整它們的路由決策,這個(gè)過(guò)程也稱(chēng)為靜態(tài)路由。相反,自適應(yīng)算法則會(huì)改變它們的路由決策,以反映出拓?fù)浣Y(jié)構(gòu)的變化,通常也會(huì)反映出流量的變化情況,這個(gè)過(guò)程稱(chēng)為動(dòng)態(tài)路由。