路由就是信息傳輸的路徑,物聯網網絡層中有多種信息傳輸的路徑,這些路徑主要由兩種節點提供,一種是目的節點,另一種是通信子網絡源節點。要設計并構建物聯網網絡層,路由的選擇十分重要。當節點遇到分組時,必須確定下一節點的路由,否則將無法進行數據傳輸。為網絡節點選擇路由有多種方式,比如,我們可以在連接建立虛電路時確定路由,也可以在數據報方式中利用網絡節點為不同的分組選擇路由。
選擇路由需要借助路由算法,而路由算法的建立并不簡單,它的設計需要考慮多種要素:一是性能指標,路由算法需要建立在一定的性能指標之上,這種性能指標一般可分為兩種,分別是最優路由和最短路由,最優路由除了要考慮傳輸距離的長短之外,還要考慮其他綜合因素,是一種建立在綜合考慮下的路由選擇方式,而最短路由要考慮的主要因素是傳輸距離,距離最短是這種路由選擇方式的目標。二是充分考慮通信子網所采取的方式,這種考慮的方式也有兩種,一種是基于虛電路方式的路由選擇,另一種是基于數據報方式的路由選擇。三是既可以采用分布式路由算法,又可以采用集中式路由算法,如果選擇前者,那么在到達每一個分組之前都要為網絡節點選擇路由,如果選擇后者,那么決定整個路由的關鍵點是中央節點,或者是初始節點;四是綜合考慮信息的來源因素,既要考慮流量的來源,又要考慮延遲的原因,還要考慮網絡拓撲的來源等。五是在動態路由和靜態路由之間進行相關策略選擇。
路由可分成靜態路由和動態路由,在選擇路由時,通過類別比較進行選擇是一種普遍采用的方法。
(1)靜態路由選擇策略
這是一種根據某些固定規則和標準來選擇路由的策略,利用這種策略進行路由選擇,既不需要對網絡層進行相關測量,也不需要利用網絡信息進行分析。靜態路由選擇策略包含三種算法,分別是固定路由選擇算法、泛射路由選擇算法以及隨機路由選擇算法。
①固定路由選擇算法
該算法比較簡單,所以人們對這種算法的使用比較頻繁。在選擇路由之前,人們會在每一個網絡節點下面附上一張表格,用于記錄該網絡節點應該對應的鏈路或者目的節點。以存儲表格的方式來明確所要選擇的路由雖然看起來很“笨”,但卻非常方便有效。如果節點準備選擇路由,只需要將每一個節點下存儲的表格“打開”,并根據分組的地址信息,對應路由表中的目的節點,便可快速選出標準路由。固定路由選擇算法不僅實施起來十分方便,還可在特定環境中發揮更好的效果,比如在負載相對穩定以及拓撲結構變化較小時,使用該種算法可起到更好的運行效果。但固定路由選擇算法也有一定的缺點,比如遇到網絡故障或者網絡堵塞的情況,利用這種算法將無法選擇出較好的路由,這同時也表明了這種選擇算法比較“死板”,無法靈活適應不斷變化的網絡環境。因此,該種算法的實施,需要一個相對穩定的網絡。
②泛射路由選擇法算法
這種算法也比較簡單。當網絡層眾多線路中的某個分組到達一個網絡節點,這個網絡節點就會將這個收到的分組重新發送到其他所有線路中,這就相當于同時測試了所有路徑,網絡節點只需要找到那個最先到達目的節點的分組,并與之配對,便可以形成最短路徑。一些軍事網絡可以利用這種方法來選擇路由,因為軍事網絡的強壯性較高,不易遭到破壞,即使多數網絡節點被損壞,泛射路由選擇算法仍能根據某一個分組與其他目的節點配對選擇出最優路由,從而保證數據的高效、可靠傳輸。
除此之外,泛射路由選擇算法也可以應用于數據的廣播式交換,還可以應用于檢測網絡的最短傳輸延遲。
③隨機路由選擇算法
網絡節點在收到分組后,利用這種算法,可幫助該網絡節點在其他相鄰節點中選出一個出路節點作為分組的備用節點。隨機路由選擇算法的優點是簡單易行且具有一定的可靠性,但是利用這種方法選出的路由不一定是最佳路由,而非最佳路由往往會給網絡層增加不必要的負擔,還常伴有不可預測的傳輸延遲問題。因此,此種算法無法保證數據的可靠傳輸在現實中的應用也較少。
(2)動態路由選擇策略
動態路由選擇策略可用于改善網絡的性能,該種策略具有較強的適應性,可在不斷變化的網絡環境中較好地完成選擇最佳路由的工作。例如,利用動態路由選擇策略不僅能適應網絡流量的變化,也能適應拓撲結構的變化,并可根據網絡實時的狀態信息來確定節點路由的選擇。但是這種算法也有弊端,它比較復雜,因此往往會提高網絡負載,使網絡整體負擔加重,并且在現實操作中,還會出現多種不可靠情況。網絡反應較慢,這種算法就會不起作用;如果網絡反應較快,又會引起較大的網絡振蕩等。與靜態路由選擇策略相同,動態路由選擇策略也具有三種具體算法,分別是獨立路由算法、分布路由算法以及動態路由算法。
①獨立路由選擇算法。該種算法需要根據節點接收的信息自行選擇路由,在這個選擇的過程中,接收分組的網絡節點不會與其他網絡節點交換路由選擇的信息,其最大的好處是能適應拓撲結構以及網絡流量的變化,但是無法確定較遠網絡節點的路由選擇。熱土豆算法是一種早期的簡單的獨立路由選擇算法,該算法的特點是,網絡節點在接收到分組后,需盡快將其排列在最短的輸出列方向上,但是這個輸出列的方向如何,并不在該種算法的考慮范圍內。
②集中路由選擇算法。這種算法與固定路由選擇算法有相似之處,都有路由表,每個網絡節點對應一張路由表,路由表中記錄著路由選擇信息。兩種算法的不同點在于節點路由表的制作單位,當節點路由表應用于固定路由選擇算法中時,它的制作單位是人,也就是說,該算法中的路由表由人親手制作;而當節點路由表應用于集中路由選擇時,節點路由表的制作單位是路由控制中心RCC(Routing Control Center)。實際上,由路由控制中心RCC制作的節點路由表更具動態性,因為路由控制中心RCC會根據動態的網絡信息進行計算,通過分析網絡的實時狀態制作出相應的節點路由表,然后才會將這些路由表分送給各個網絡節點。簡單來說就是,一個是靜態信息路由表,一個是動態信息路由表。相比于靜態信息路由表,由RCC利用網絡實時信息制作的動態信息路由表更加完善,可以完美選擇路由,而不會增加各個網絡節點的計算負擔。
③分布路由選擇算法。分布路由選擇算法也是由表格制勝的算法,這種算法也會在每一個網絡節點中存儲一張路由表,這個路由表的特點是更具選擇性,可稱為“路由選擇表”。每個網絡節點都有一張路由選擇表,且它們都是由網絡中其他的每個網絡節點為索引,與集中路由選擇算法和固定路由選擇算法中的節點路由表都不同。
運用分布路由選擇算法時,每隔一段時間,網絡節點都會與其他相鄰節點交換信息,這些信息中包含了多種路由選擇數據。這張選擇路由表中的每一項都對應一個網絡節點,每一項又由兩個部分組成,分別是目的節點的輸出路線以及目的節點的言辭和距離信息。
分布路由選擇算法的度量標準有多種,比如等待分組數、毫秒數、鏈路段數、容量大小等。在這種算法中,每一個網絡節點都能作為一個“回聲定位系統”,當網絡出現延遲時,每個節點都會向其他節點發送一個回聲分組,其他節點接收到這個回聲分組后會為其加上一個時間標記,然后再回饋發送給原始節點,這樣便可測出網絡延遲。最后,通過延遲信息就可以選擇出最佳路由。