容遲網路中的路由演算法筆記(三)
第三章
基於地理資訊的路由演算法
背景:為了提高訊息成功投遞的可能性,一種普遍受認可的方式是採用基於洪泛的多副本策略,通過引入更多的訊息副本,增大訊息與目的節點相遇的機會。為了實現訊息的受控洪泛,減少訊息冗餘的程度,許多研究學者都在嘗試捕獲全域性網路拓撲知識或者額外的輔助資訊。但是在間斷性連線的容遲網路中,很難實時更新和維護整個網路的拓撲知識,即使在個別應用場景中,能夠獲得這些資訊,也要付出很高的代價。與捕獲全域性拓撲知識相比,只獲取區域性資訊的地理路由則可以有效避免這些不足。
地理路由只需要儲存自己及周圍鄰居節點的位置資訊,幾乎不需要其他的額外資訊,因此演算法開銷較少。從資訊的可獲得性和可靠性考慮,節點的地理位置資訊可以很容易地通過GPS定位系統或者相關的定位演算法獲得。
研究原因:在實際的挑戰性環境中,地理路由不可避免地受到一定程度的限制。由於網路節點部署不均勻或者是部分節點由於故障或者能量耗盡而失效,還有一些環境如沼澤、 水塘等會形成天然的“空洞”。在依據地理路由轉發訊息的過程中,資料包可能會到達沒有任何鄰居節點比自身更接近目的節點的區域,導致訊息無法繼續傳輸,影響了訊息的成功投遞。
相關研究
地理路由演算法分類:
-
基於平面化拓撲結構的地理路由:
此類地理路由是基於網路平面的轉發路由,即通過將網路平面化,形成由節點組成的不存在交叉的面,進而藉助此平面化圖的支援進行訊息轉發。
GPSR(greedy perimeter stateless routing)協議是一種典型的基於平面化的地理路由。在路由初始階段,訊息轉發採用貪婪轉發,當遇到路由空洞時,從當前節點開始進入邊緣轉發。GPSR按照右手法則進行邊緣轉發,選擇順時針或者逆時針方向沿著面轉發訊息。若轉發時遇到一個較大的面,一旦選錯了轉發方向,就可能比選擇正確方向的路徑多出較多的跳數。
所以GLNFR (greedy and local neighbor face routing)是一種新型的用於發現移動節點間通訊路徑的路由協議,它利用區域性構造法進行Delaunay三角剖分,保證節點間訊息的順利傳輸,對網路變化具有更好的可擴充套件性和適應性。 -
基於特徵節點的地理路由:
在某些應用環境中,當節點無法精確地獲得自身地理位置資訊或者GPS定位系統不能正常工作時,地理路由往往需要一些特徵節點進行輔助。
GLIDER (gradient landmark-based distributed routing)協議是一種典型的基於特徵節點的地理路由。它通過信標節點輔助完成路由。信標節點是一些經過選擇的特殊節點,它們知道自己的地理位置資訊,而且均勻地分佈在整個網路中。GLIDER通過這些分散性較好的信標節點構造網路的全域性拓撲,並且以信標節點為中心將網路劃分為不同的小區域,進而構成網路的區域性拓撲。
路由選擇的時候,首先尋找本地信標節點到目的信標節點的路徑,當訊息到達目的信標節點後,通過區域性貪婪或者洪泛將訊息傳遞給目的節點。 -
基於拓撲特性的地理路由:
地理路由除了使用特徵節點外,還可以利用節點的拓撲特性獲得自身地理位置資訊。
一般通過構造生成樹、虧格嵌入、定位邊界等方法,建立具有拓撲特徵的結構來輔助地理路由。GEM (graph embedding)是一種適用於資料中心儲存方式的基於拓撲特徵的地理路 由。其基本思想是建立一個虛擬極座標系統,網路中的每個節點形成一個以匯聚節點為根的帶環樹,每個節點用到樹根的跳數和角度範圍來表示,節點間的訊息路由通過這個帶環樹來實現。在訊息轉發過程中,如果目的節點的角度不在自己的角度範圍內,就將訊息傳遞給父節點,父節點按同樣的方法處理,直到訊息到達源節點或者目的節點。 -
地理位置資訊輔助的多策略路由:
此類路由策略在利用節點位置資訊輔助轉發訊息的同時,還採取其他路由措施如效用資訊、能量感知、限制副本等,進一步優化路由效能。
基於鄰居節點位置資訊的受控傳染路由演算法
-
動機及網路模型假設
背景:由於拓撲變化的頻繁以及高時延鏈路,維護和更新一張路由表是極其困難的,其原因是頻繁的拓撲變化以及高時延會使得拓撲更新資訊難以分發,從而降低該類路由演算法的實用性。從訊息的時效性以及易得性方面來考慮,一跳鄰居資訊較為可靠。首先,節點可以依靠週期性傳送廣播包以探測其鄰居節點,並可在其中包含自身資訊以通知其鄰居節點。鄰居節點可用攜帶資訊的資料包予以響應。
網路模型做出如下假設:
(1)每個節點裝有區域性定位系統,節點能夠獲取自身的位置資訊。
(2)當節點互相進入通訊範圍時,通過交換位置資訊,能夠獲取對方的位置資訊。
(3)位置資訊只經過一跳即可到達鄰居節點,因此忽略訊息傳遞的時延。
(4)位置資訊只在一跳鄰居內傳染,不會擴散到整個網路。並且相比於普通訊息資料,位置資訊具有更高的優先順序。
(5)只有一跳鄰居的資訊可以被實時獲得並利用,不假設任何已知的關於目的節點的資訊,包括目的節點的座標。
LCE兩條準則:
(1)節點應該有目標的選擇下一跳
(2)節點也需要做出有一定風險的選擇, 即在一定程度上放寬對副本數量的限制。
中繼節點的選擇:
當可用鄰居節點數目小於2個,可以推測網路節點的分佈可能較稀疏。此時遵循準則中的第二條,向兩個鄰居節點都傳遞訊息的副本,
當可用的鄰居節點數目大於2個時,遵循第一條準則,對周圍所有可用的鄰居節點進行選擇。儘可能選擇與當前節點形成張角最大的兩個節點,以實現副本的擴散投遞。並用餘弦值作為衡量標準,當其差值在£之內時,我們則轉而優先考慮距離因素。 -
LC-Epidemic路由協議描述:
LCE演算法釆用的受控傳染策略是,當可用節點的數目小於2個時,採用傳統的傳染病演算法,以增大訊息的並行性。若可用節點的數目大於兩個,為了節省網路中的快取資源,降低能耗,採用上述介紹的下一跳選擇演算法,對可用節點列表AvailableHostsList進行過濾,篩選出兩個節點傳染訊息。當傳遞操作結束後,向路由程式返回MSG_SENT訊號。
1When節點i從節點j收到hello_msg {
2 neighborsTable.update (j, time_now)//更新其一跳鄰居表neighborTable
3 messageSend (j,hello_response)// 通知鄰居節點j更新操作已結束,
4}
5When節點i從節點j收到hello_response{//收到hello response訊息,進行更新
6 neighborsTable.update (j, time_now)
7}
8When新訊息data_msg從節點j到達節點i {
9 neighborsTable.update (j, time_now)
10 if ( messageQueue.exist (data_msg) ){ //檢查資料訊息data_msg是否已在其佇列當中
11 丟棄 data_msg
12 return MSG_DROPPED
13 }
14 messageQueue.add (data_msg)
15 messageQueue.sort (increase, TTL) //根據訊息剩餘生存時間的增序對訊息佇列進行排序
16 AvailableHostsList=getHostsFrom (neighborsTable) //從鄰居表中讀取所有可用鄰居節點的資訊
17 if ( AvailableHostsList.length()<= 2 ) (
18 messageSend (AvailableHostsList, messageQueue)
19 }
20 else{
21 BestHostsList=filterHostsList (AvailableHostsList) //對列表進行過濾,篩選出兩個節點傳染訊息
22 messageSend (BestHostsList, messageQueue)
23 }
24 return MSG_SENT
25}
將 LC-Epidemic 與 Epidemic、Binary Spray & Wait、First Contact (FC)三個演算法進行比較,分析相關演算法的效能。主要的路由評估指標有訊息投遞率、平均時延、網路負載和平均跳數。
(1)訊息產生時間間隔下:
訊息投遞率:,LC-Epidemic是基於洪泛演算法,其目的是最大化副本數量以增加投遞率,故能夠達到與Epidemic相當的較高的訊息投遞。First Contact演算法取得較低的投遞率;Binary Spray & Wait演算法的投遞率最低。
端到端平均時延:Epidemic無疑具有最低的端到端平均時延,因為其最大化利用了所有網路可用資源。LC-Epidemic的平均時延比Epidemic約高4倍,但仍然大大低於其他兩種演算法。在訊息產生間隔小於20s時,由於快取資源受限,Binary Spray & Wait和First Contact的表現要好於基於洪泛的Epidemic以及LC-Epidemic演算法。隨著訊息產生間隔的持續增大, 固定時間內的副本數量不斷減少,Epidemic和LC-Epidemic的訊息端到端平均時延迅速下降,當訊息產生間隔時間大於30s時,節點的快取已不再是限制路由效能表現的瓶頸因素。Epidemic和LC-Epidemic與其他兩種演算法一樣,端到端平均時延趨於穩定。
結果:在訊息產生間隔小於30s時,快取資源是路由效能表現的瓶頸因素,此時LC-Epidemic能夠保證和Epidemic投遞率幾乎持平的情況下,降低一半的網路負載,代價是具有比Epidemic高的平均時延。相比傳統的Epidemic對訊息副本的盲目複製,LC-Epidemic基於節點分佈及相對位置選擇下一跳,故其路由策略更具有針對性。
Binary Spray & Wait和First Contact演算法在訊息投遞率和端到端平均時延兩項指標上,表現都差於基於洪泛的Epidemic和LC-Epidemic。
平均跳數:,First Contact具有最高的平均跳數,原因是其相比Epidemic和LC-Epidemic,只在網路中維護訊息的一份副本。LC-Epidemic的平均跳數只比Epidemic略高,其原因是LC-Epidemic是受控洪泛,在一定程度上控制訊息副本數目,進而控制網路資源的利用,以換來更低的負載率。
結果:,LC-Epidemic在投遞率和平均跳數兩項指標上都接近於最優的Epidemic,其負載率比傳統的Epidemic演算法低一半。不刻意強調端到端時延,可以用LC-Epidemic演算法代替Epidemic。在節點移動速度較低的網路場景下,Binary Spray & Wait以及First Contact的表現不甚理想,First Contact在投遞率、投遞時延以及負載率三方面都要優於Binary Spray & Wait。
(2)節點快取空間大小下:
當節點快取容量較小時,四種演算法都具有較低的端到端平均時延。隨著節點快取的增加,這種嚴重丟包的情況漸漸緩解,當快取容量達到5M時四種演算法的平均時延都已攀升到最高點。在節點快取容量從0.5MB增加到5MB的這個過程中,所有演算法的訊息投遞率都是在增長的,且當快取容量為5MB時,Binary Spray & Wait以及First Contact的投遞率也達到最大。隨著快取容量的繼續增大,基於洪泛策略的Epidemic和受控傳染策略的LC-Epidemic,具平均時延隨著目點快取的繼續增大而逐漸降低,至快取容量增大到30MB時趨於穩定。
結果:在快取資源稀缺時,宜釆用單副本演算法,如First Contact。因為此時洪泛策略往往會讓網路資源迅速耗盡,從而降低路由效能表現。如果要將跳數控制在一定範圍內,則宜採用受控傳染策略的路由演算法LC-Epidemic, 以降低網路負載率。
LC-Epidemic基於節點位置的下一 跳選擇演算法能夠有效地控制網路中訊息副本數量,從而降低負載,並且能夠獲得與Epidemic幾乎持平的投遞率,在一定程度上可以代替盲目的洪泛策略。
(3)訊息生存週期:
當TTL小於50min時,Epidemic和LC-Epidemic的投遞率遠高於Binary Spray & Wait以及First Contact,因為當訊息存活時間受限時,Epidemic和LC-Epidemic能夠有效利用快速增加訊息並行性的洪泛策略,及時完成訊息的投遞。而隨著TTL的增大,前兩者的投遞率不斷下降,而後兩者的投遞率卻保持攀升,因為過大的TTL,會導致當使用洪泛策略時節點快取中訊息副本積壓,從而造成丟包,降低訊息投遞率。
結果:試驗中,當訊息存活時間大於250min時,所有四種演算法的投遞率都趨於穩定,此時Binary Spray & Wait和First Contact要明顯優於其他兩個洪泛演算法。所以當訊息TTL較長時,宜採用嚴格控制副本數量的路由演算法,摒棄洪泛。然而當TTL較短時,Binary Spray & Wait以及First Contact 的表現相比Epidemic 和 LC-Epidemic差很多。
基於移動方向的受控傳染路由演算法
-
動機及模型假設
背景:當前多數利用節點區域性資訊和地理位置的路由演算法,例如位置感知的社會路由(location-aware social routing)等,在進行下一跳節點選擇時,都依賴於節點的位置資訊。然而在一些容遲網路中(例如野生動物追蹤網路),節點的移動性會導致節點的實際位置在時刻改變,因而位置資訊的穩定性較差。
可利用更加可靠的節點移動方向資訊來進行下一跳節點選擇。因為相比於節點位置的時刻改變,節點的移動方向就要相對穩定很多。相比於節點地理位置的時刻變化,節點移動方向的變化頻率要明顯低很多,具有更好的穩定性,更加可靠。
另外節點的位置資訊只能決定當前時刻訊息副本的分佈,新的中繼節點可能將訊息副本攜帶到任何位置。而利用節點的移動方向,可以很好地定向引導和控制訊息副本傳向我們選定的方位,因為在中繼節點選擇後的一定時間段或者一段距離之內,中繼節點仍會按照選定的方向移動。
快取空間的管理策略在DTN路由中同樣發揮著重要作用。一些典型路由演算法在基於優先順序的快取管理中引入了訊息經過的跳數,為跳數更少的訊息賦予更高的優先順序,讓其獲得優先轉發的機會,一定程度上提高了路由效能。但是以跳數作為度量優先順序的標準,存在一定的偶然性,很容易造成始終是跳數少的訊息得到轉發機會。
因此提出同時利用訊息的跳數和已經存活的時間作為度量標準,為那些跳數和已經存活時間更少的訊息賦予更高的優先順序。
移動方向的容遲網路受控傳染路由演算法(moving direction based controlled epidemic routing, MDCE)網路模型假設:
(1)節點能夠藉助於GPS或者相關定位演算法獲得自己的位置資訊,進而計算並廣播其當前移動方向。
(2)相比於節點位置的時刻變化,其移動方向則要穩定很多,通常節點在沿著某 一方向移動一段距離之後才會改變方向。
(3)廣播包的大小相對於網路中的資料訊息來說可以忽略,並且其傳輸距離很短,只在節點自身的通訊範圍內,鄰居節點在收到廣播包後不會再轉發,避免了在整個網路中的擴散。
(4)為了降低路由的複雜性,減少快取資源和能量的消耗,獲得更好的路由通用性,演算法不去捕獲網路拓撲知識或者其他輔助資訊。 -
下一跳中繼節點選擇
利用節點的移動性將訊息副本攜帶到Ni周圍的各個方向上。這樣即使無法獲取最終目的節點的具體方位資訊,也能確保各個方向上都存在與最終目的節點相遇的可能性,從而提高訊息投遞率。
輸入:Ni,的移動方向:MDi
Ni鄰居的移動方向:neighborsTable
角度範圍:angleScope
輸出:relayList
初始化relayList為空
for neighborsTable中每一個鄰居節點的移動方向MDi,
計算MD和MDi,的夾角
if夾角在angleScope的範圍內
確定節點具體的移動方向
if relayList中已經存在一個該方向上的中繼節點
選擇一個具有更小值的節點
else將該節點新增到relayList
end if
end if
end for
根據式(3.6)計算的值,將relayList按升序排序
return relayList
即:利用下面三個式子分別計算鄰居節點移動方向相對於左前或右前標準方向(即與Ni移動方向夾角恰為1/4兀的方向)的夾角偏移值,還有正左和正右(即與Ni移動方向夾角恰為1/2兀的方向)的角度偏移值,相對於左後和右後標準方向(即與Ni移動方向夾角恰為3/4兀的方向)的角度偏移值。選擇偏移值最小的鄰居作為中繼節點。按偏移值由小到大對Ni的中繼節點佇列relayList進行排序,讓移動方向更加偏向正左或正右方向的中繼節點獲得優先機會。
-
基於優先順序的快取管理策略
釆用訊息經過的跳數和已經存活的時間作為度量優先順序的綜合標準,讓跳數和己經存活時間更少的訊息具有更高的優先順序,避免了只用跳數作為度量標準的偶然性。
HOP是門限值,C(M)表示訊息M的跳數。M經過的跳數越多,則優先順序影響因子H(M)的值就越大,而經過的跳數越少,則優先順序影響因子H(M)的值就越小。當M經過的跳數超過門限值時,H(M)的值等於1。
用L(M)表示訊息M已經存活的時間,TTL表示訊息能夠存活的時間(即訊息的生存週期)。用NC表示網路中的節點數量。當訊息M已經存活的時間少於其生存週期的90%時,M生存時間越長,則其優先順序影響因子T(M)的值也就越大。而當M的生存時間超過其生存週期的90%時,表明M即將消亡,此時若以尚未成功交付,應該盡將其快轉發出去,因而此時讓T(M)取最小值0。
UP(M)綜合利用了訊息經過的跳數和已經生存的時間,並且各自賦予它們50%的權重。將訊息佇列按優先順序UP(M)的值由大到小的順序排序,從而在轉發訊息時先轉發優先順序高的訊息,而當快取溢位時先刪除優先順序最低的訊息。 -
路由協議描述
(3.11)
//節點的週期性更新操作
1.When處於更新週期內{
2. 更新當前位置資訊情況
3. 計算當前移動方向
4. 廣播其移動方向資訊
5. 更新 neighborsTable//刪除長時間未更新的鄰居
6. 更新 messagesQueue //刪除生存週期耗盡的訊息
7.}
8.When從節點j收到方向訊息束{
9. 在neighborsTable中更新節點j的移動方向資訊
10. 將其移動方向資訊通知節點j
11.}
12.When從節點j收到資料訊息束M {
13. if該節點是M的目的節點
14. 廣播確認訊息束
15. else if messagesQueue中不存在M
16. 將M新增到messagesQueue
17. else
18. 丟棄M
19. 在neighborsTable中更新節點j的時間資訊
20.}
//是節點收到確認包後清理快取的操作
21.When收到message的確認訊息{
22. if message 存在於 messagesQueue
23. 將其從messagesQueue中刪除
24.}
25.When neighborsTable.size()!=0 並且 messagesQueue.size() !=0 {
26. 將所有可投遞的訊息傳輸給相應的目的節點
27. 從 neighborsTable 中選擇 relayList
28. for relayList中的每一個節點{
29. 管理 messagesQueue//讓跳數和己經存活時間更少的訊息具有更高的優先順序
30. 將訊息複製給節點
31. }
32.}
其中鄰居表neighborsTable中儲存了所有鄰居的移動方向及其更新時間等資訊,第5行對鄰居表的更新操作是刪除長時間未更新的鄰居,因為這表明該鄰居已經不在節點的通訊範圍內。第6行對訊息佇列的更新操作是刪除生存週期耗盡的訊息,更新應用程式新生成的訊息以及按照快取管理策略管理訊息佇列。第21〜24行是節點收到確認包後清理快取的操作。第25- 32行是整個路由的核心,利用演算法3.3選擇下一跳中繼節點,並用式(3.8)〜(3.10) 計算出所有訊息的優先順序,進行高效的快取管理。
5. 模擬實驗
(1)節點快取空間
結果:在節點隨機移動的網路中,當資源很稀缺並且負載能力有限時,First Contact具有一定的實用價值;而當快取資源不是無限時,MDCE可以代 替Epidemic和Prophet。此時,MDCE在保持較高的投遞率的同時,能夠取得更低的負載率,更少的平均跳數和訊息丟包數,因而可以發揮更加高效的路由效能。
(2)訊息生存週期
結果:在節點隨機移動的網路中,當訊息的生存週期很長時,First Contact負載率更低,具有一定的實用價值。而當訊息的生存週期較短時,MDCE可以用來代替Epidemic和Prophet,因為其可以提供更好的路由效能,並且更加穩定。
(3)訊息時間間隔
結果:在節點隨機移動的網路中,Epidemic適用於訊息生成頻率較低的網路,而MDCE和Prophet能更好地應對訊息生成頻率的變化,具有更好的伸縮性,但總體上MDCE的路由效能要略優於Prophet。
**
基於區域性位置資訊與歷史效用的路由演算法
**
- 動機及模型假設
背景:由於節點移動的不可預測性及網路節點密度稀疏等原因,單純地只依靠節點位置資訊做出路由決策往往較難取得令人滿意的訊息投遞率。而在利用位置資訊對訊息路由進行輔助的同時,綜合利用多種效用資訊可以取得更高的訊息投遞率,進而提高路由效能。在真實的應用場景中,進行通訊的源節點對目的節點往往具有一定的認知度,相比於 中繼節點,源節點可以捕獲更多的關於目的節點的資訊,從而針對目的節點做出更高效的路由選擇。
利用位置資訊和歷史效用進行訊息路由的同時,進一步地在訊息的源節點和中繼節點上釆取不同的路由策略,從而更好地控制訊息冗餘,降低網路負載,提高路由效能。
LPHU演算法主要基於如下假設:
(1)通過GPS系統和相關的定位演算法,節點可以獲取自身的位置資訊,並且在節點相遇時以廣播的方式在其一跳鄰居內擴散位置資訊。
(2)節點利用每次的通訊機會,主動收集節點間相遇的歷史資訊。
(3)節點移動緩慢並且只在區域性範圍內活動,即相對於整個應用場景,其位置相對穩定。
(4)當訊息被成功投遞時,目的節點向整個網路廣播確認資訊包,收到確認資訊的節點主動丟棄該訊息副本。 - 下一跳中繼節點選擇
假設節點N3距離源節點N4的距離為d1,節點N2距離源節點Ni的距離為d2。如果d1>d2,則N3是當前節點N2的外層鄰居,N2可以選擇N3作為下一跳的中繼節點。
源節點攜帶的訊息可以一直保持其傳染能力,中繼節點攜帶的訊息副本主要經歷三個階段:傳染期、攜帶期和轉發期。傳染期,該訊息副本只有一次擴散訊息副本的 機會。此後,訊息副本處於攜帶期。此時,訊息副本不再具備傳染能力,即不再複製任何新的訊息副本,而是利用節點的移動性尋找目的節點。最後,訊息副本進入轉發期。在轉發期內,中繼節點需要接該訊息副本轉發給一個新的中繼節點,轉發成功後需要刪除該訊息副本。
(1)訊息源節點上的路由選擇
源節點儘可能選取可以形成最大張角的兩個一跳鄰居節點來複制訊息副本,以此來增加訊息副本的覆蓋面積,獲得更廣的方向分佈。節點在複製訊息副本之前,需要實時地將其當前的位置資訊封裝在每個訊息內,進而將其位置資訊儲存在每一個訊息副本內。中繼節點利用儲存在訊息副本內的位 置資訊,選擇外層的鄰居作為下一跳中繼節點。
? ❤️
//訊息Mi在源節點Ni上的路由策略
輸入:一跳鄰居列表:neigh_List
節點Ni的當前位置:position
1.if neigh_List.size()=O
2. return
3.else if neigh_List.size()<3
4. 將position封裝進Mi,
5. 將Mi複製到neigh_List
6.else
7. 初始化biggestAngle 為 0
8. 初始化neighborsCombination為空
9. for neigh_List中節點組合
10. //用式計算每一種組合的夾角angle
11. if angle > biggestAngle
12. biggcstAnglc=angle
13. neighborsCombination=combination
14. end if
15. end for
16. 將 position 封裝到Mi
17. 將Mi複製到 neighborsCombination
18.end if
19.return
在演算法3-5行,當一跳鄰居節點少於3時,源節點將訊息複製給所有的一跳鄰居節點。演算法7~17行,當一跳鄰居大於等於3時,源節點選擇形成最大張角的兩個鄰居來複制訊息副本。在演算法第4行和16行,源節點Ni需要將其當前的位置資訊封裝在訊息Mi內。
(2)訊息中繼節點上的路由選擇。
1.基於相遇歷史資訊的效用:利用節點相遇的歷史資訊來計算節點的效用值, 預測節點之間的相遇可能性,從而選擇更優的下一跳中繼節點。
動態矩陣DEHM儲存了節點N,在最近M個時間單元內與其他節點的相遇歷史資訊。
用U(i,nodej)作為選擇下一跳中繼節點的效用指標,以此選擇效用值比當前節點更高的鄰居作為下一跳中繼節點。
計算出一個效用向量Ui,它包含了節點與其他所有節點間的相遇計數。當節點相遇時,它們彼此交換效用向量。
2.中繼節點上的路由策略
中繼節點攜帶的訊息副本的傳染能力受到嚴格控制,並且中繼節點只能選擇外層的鄰居作為下一跳中繼節點。利用效用值來評估所有的外層鄰居,進而選擇效用值更高的下一跳中繼節點,以此來提高訊息的投遞率。
//訊息Mi在中繼節點Ni上的路由策略
輸入:一跳鄰居列表:neigh_List
Mi,初始生存週期:ini_TTL
1.計算節點Ni攜帶Mi的時間custody_time
2.if custody_time<=0.5ini_TTL
3. if Mi仍具備傳染能力
4. 從neigh_List中篩選出外層鄰居(根據鄰居節點到源節點的距離)
5. 再篩選出具有更高效用的鄰居
6. 將Mi複製給選定的節點
7. Mi喪失傳染能力
8. else //攜帶期
9. if Ni遇到Mi的目的節點
10. 將Mi交付給目的節點
11. 刪除Mi
12. else if Ni收到Mi的確認訊息
13. 刪除Mi
14. end if
15. end if
16.else
17. 從neigh_List中篩選出外層鄰居
18. 篩選出具有最髙效用值的一個鄰居轉發訊息副本
19. 將Mi複製給選定的節點
20. Mi喪失傳染能力
21.end if
22.return
3.模擬實驗
(1)不同快取空間下的效能表現
LPHU在利用歷史資訊選擇史優的中繼行點的同時,利用節點區域性位置資訊,將訊息逐層地向外擴散,避免了訊息的回傳,並且進一步限制中繼節點或攜帶的訊息的複製能力,控制了訊息冗餘的程度。同時,LPHU的平均跳數最少,表明其路由策略更加高效,降低了訊息的投遞耗費。並且相比於Epidemic和 Prophet, LPHU在訊息傳輸的平均時延上也能夠取得一定的優勢。
(2)不同訊息生存週期下的路由表現
與Epidemic和Prophet不同,LPHU限制了中繼節點上的訊息的複製能力。因此,即使訊息的生存週期在不斷增加,LPHU仍然能夠避免生成過多的冗餘訊息。此外,LPHU同樣可以取得令人 滿意的傳輸時延,儘管相對於Prophet沒有絕對的優勢。LPHU 可以高效地應對訊息生存週期的增加,其路由效能更加穩定。
(3)不同訊息生成時間間隔下的效能表現
Prophet利用節點間相遇的歷史資訊來選擇更優的中繼節點, 一定程度上控制了訊息冗餘,因而其路由效能要優於Epidemic,但仍然要弱於 LPHU。 LPHU通過限制中繼節點攜帶的訊息副本的複製能力,有效避免生成過多的冗餘訊息副本,從而提高了網路資源的利用效率。此外,LPHU藉助節點的區域性位置資訊和歷史效用資訊,選擇更優的中繼節點,並控制訊息副本的擴散方向,以此獲得了更好的路由效能。
基於鄰居節點位置的時間片輪轉路由演算法
- 動機及網路模型假設
減少資源消耗最直接有效的方法是減少網路中訊息副本的數量,但增加訊息投遞率的最直接的方法卻是增加訊息副本的數量。因此如何在低資源消耗和高訊息投遞率之間取得更好的平衡成為提高容遲網路路由效能的關鍵。大部分學者都在嘗試通過藉助額外的輔助資訊、捕獲網路拓撲變化、引入擺渡節點等方式來獲得更好的效能表現。雖提高了路由效率,但不可避免的增加了路由的複雜性,並且這些資訊的可靠性和可獲得性也會降低路由的通用性與實用性。
有文獻證明源節點將訊息的多個副本傳送到不同的中繼節點可以增強網路的通訊能力,節點的移動性可以增加網路的吞吐率。
提出了“時間片”的概念來充分利用單副本路由和多副本路由各自的優勢。以時間片作為週期,在每個週期內完成多副本策略與單副本策略的一次輪轉:
基於鄰居節點位置的時間片輪轉路由演算法 (time-slice based hybrid routing, TSH):
(1)每個節點只能實時獲得自己的位置資訊,無法捕獲網路拓撲或者其他額外資訊。
(2)通過廣播位置資訊,在節點相遇時可以捕獲一跳鄰居的位置資訊。位置資訊的大小相對於網路中訊息副本來說可以忽略,且其傳播距離有限,只能在節點本身的通訊範圍內。
(3)每個訊息根據所處時間片的位置,各自獨立進行路由選擇。訊息成功傳遞後,目的節點廣播確認訊息來清除還存在於網路內的冗餘訊息副本。
2. 路由演算法描述
(1)計算一跳鄰居之間最大角度
通過廣播位置資訊,當前節點可以獲取其所有一跳鄰居的位置資訊。計算任意兩個節點和當前節點形成的夾角,選取最大的夾角和形成該最大夾角的鄰居組合。
(2)多副本策略
1、當最大角大於等於2/3兀時,選擇形成該最大夾角的兩個節點作為訊息的中繼節點;鄰居節點隨機分佈,選擇最大角的兩個節點可以讓訊息副本的分佈方向更廣,獲得更大的覆蓋面積。
2、當最大角少於2/3兀時,則優先選擇最遠的節點作為中繼節點:鄰居節點分佈集中,選擇兩個中繼節點會加劇資訊冗餘,而只選擇一個離當前節點最遠的點可以很好地平衡訊息冗餘和投遞率。
優點:多副本策略不需要捕獲網路拓撲知識,只需要利用一跳鄰居節點的位置資訊,資訊的可靠性和可獲得性都非常高,提高了路由的可靠性,同時減少了路由發現的複雜性,不需要藉助額外的輔助資訊,因而不會限制路由的應用場景,具有更好的通用性;在中繼節點的選擇上綜合考慮方向分佈和距離分佈的優勢做出優化,儘量選擇較少較優的節點,在不影響訊息投遞率的情況下進一步減少了資源消耗。
(3)單副本策略
主要完成任務: ①尋找最終的目的節點;
②將訊息快速傳遞到更遠的新區域;
③檢測到訊息成功傳遞後,刪除訊息副本來重新整理快取。
3.模擬實驗
TSH的核心思想是改變時間片的劃分,從而改變每個時間片內多副本策略所佔的時間,可以更加靈活地控制負載和投遞率之間的平衡。
(1)改變節點快取空間大小。TSH具有很高的投遞率和較低的負載率,並且路由效能穩定,在網路資源缺乏和充裕兩種情況下都可以取得令人滿意的路由效能,因而具有更好的通用性和實用性。
(2)改變訊息生存週期。First Contact和Binary Spraj & Wait只適用於訊息生存週期非常長的應用場景。Epidemic的只適用於訊息生存週期很短的網路。TSH 可以始終維持較高的訊息投遞率和相對較低的負載率,因而其適用範圍受訊息生存週期長短的限制較弱,具有更好的通用,但其在訊息生存週期不太長的情況下可以取得最好的路由效能。
(3)不同時間片劃分的TSH。在節點移動性弱的網路中,當網路資源受限、負載能力有限時,將每個時間片內多副本策略所佔時間比減少到50%以內,可以獲得更高的投遞率和令人滿意的路由效能,而當快取資源充裕和網路負載能力較強時,將多副本策略所佔時間比增加到50%以上,可以獲得更高的投遞率和更好的路由效能。
基於一跳鄰居的地理路由演算法
-
動機及網路模型假設
標準的分散式路由演算法分為距離向量(DV)、路徑向量(PV)和連結狀態(LS) 三類。但是它們需要獲得多於一跳的鄰居資訊,然而由於網路拓撲頻繁割裂及較高的端到端時延,往往導致收集到的鄰居資訊過時。
提出一種新的路由策略(geographical routing protocol based on one-hop information, GRONE),只依靠節點一跳鄰居的位置資訊做出路由選擇。
需要解決的一個問題是如何在提高路由效能與降低傳輸成本之間取得更好的平衡。
假設:
(1)路由演算法對任何節點的移動路徑的有效性不作假設。
(2)訊息的副本數量由某種方法來控制,避免引起廣播風暴。
(3)不使用特殊受控節點和事先部署的基礎設施,以此來確保整個網路的移動自組性。
(4)不作與全域性拓撲知識相關的假設,因此我們的路由演算法在真實場景中更為實用。 -
關鍵問題
(1)雖然較遠的節點會暫時增加訊息的覆蓋範圍, 但如果覆蓋區域在開始時不均勻,結果將會變得越來越不均勻,從而使演算法的平均效能退化。所以要讓覆蓋區域更接近一個圓。此外為了增加訊息的覆蓋範圍,源節點、中繼節點將訊息沿著遠離源節點的方向傳播。S是訊息的源節點,S中心的大圓表示訊息的覆蓋區域,我們做與直線SM垂直的線,因此得到了A和B和所在位置的向量。
(2)此外當方向決定時,選擇一個更遠的中繼節點可以降低訊息覆蓋範圍的重合度, 進而更加有效地利用網路資源。
-
基於效用函式的節點選擇策略
(1)無法獲知關於目的節點的資訊,例如距離或方向等。唯一最大化與目的節點接觸概率的方法是將訊息儘可能地均勻分佈。
(2)為了使訊息分佈均勻,節點的下一跳選擇應該參考它的對等節點的選擇。而獲知對等節點選擇的唯一方法是猜測它最可能選擇的方向。
(3)使訊息均勻分佈的明智方法是讓每個節點都選擇與預期方向最近的節點,正如上面計算的兀/4。
(4)GRONE也預先定義一個效用函式,並基於定義的效用選擇下一跳中繼節點。
結果:當位於相同方向時,更遠的中繼節點會帶來更大的效用值。同時當 距離相同時,與期望方向越相似則效用值越高。因此U由中繼節點的方向和距離所決定。 -
k階訊息冗餘度(K-MRD)
假設N是包含一個或多個節點的集合,並且所有節點持有訊息,我們定義k階訊息冗餘度k-MRD,並用S表示,其取值等於N中k個節點的覆蓋面積之和。 -
詳細的路由協議
保管傳輸:當節點接收到來自另一個節點的保管傳輸,該節點成為該bundle的保管者,這意味著該節點將永久的儲存bundle的副本訊息,直到保管責任被解除,這確保了逐條傳輸的可靠性。以此加強端到端的可靠傳輸。節點是否接受訊息並進行保管取決於該節點的當前資源、路由情況、訊息大小、剩餘生存時間和優先順序、安全情況及本地策略限制等。
GRONE中的兩個複製策略:單一複製和基於效用的複製。每個 節點首先需要逐個檢查它攜帶的訊息,並傳送所有可以傳送的訊息。對於剩餘的消 息,節點會採用兩種複製策略中的一種來進行保管傳輸。假設N是當前做出決策的節點,N將首先檢查它的鄰居表,當只有一個活動的鄰居時採用單一複製策略 然而當有多個鄰居節點存在時,將會利用基於效用的複製策略,因此避免了訊息在網路中的洪泛。
鄰居表的更新過程和訊息冗餘處理機制。它們都依賴於節點之間交換的“Hello”訊息。容遲網路中節點攜帶的能量有限,我們應當充分利用每個 “Hello”訊息,因此我們將訊息冗餘處理機制繫結到“Hello”訊息上。而我們傾向於從複製任務中分離出冗餘處理機制,所以訊息還應該被傳遞給距離N小於R/2的節點。
“Hello”訊息可以幫助一個節點將自身資訊通知其他的鄰居節點,因此我們讓每個節點通過交換“Hello”訊息來彼此維持一個鄰居表。
- 模擬實驗
結果:GRONE 的投遞率和Epidemic —樣高。但是GRONE的負載率比Epidemic 低很多,因為GRONE釆用了基於效用函式的複製機制,並在一定程度上減少了不必要的轉發操作。此外,訊息冗餘處理機制也幫助GRONE減少了訊息副本數量。當訊息間隔增加時,兩個協議的負載率都減少,這是因為網路產生的訊息越少,中繼操作越少。同時增加快取空間是解決高負載率的一個好方法。當節點移動速度提高時,負載率也會提高。當整個網路的連通性加強時,GRONE的負載率要遠低於Epidemic。
相關文章
- esp32筆記[17]-顯示網路延遲筆記
- iOS學習筆記14 網路(三)WebViewiOS筆記WebView
- VMware中三種網路模式(快速筆記)模式筆記
- 路由筆記路由筆記
- Flutter 高效自學筆記(三)——網路請求Flutter筆記
- vue學習筆記(七)---- vue中的路由Vue筆記路由
- vue筆記-6 vue中router路由 路由引數的傳遞 巢狀路由Vue筆記路由巢狀
- 【筆記】Android 網路筆記Android
- 3BLUE1BROWN 神經網路三講筆記神經網路筆記
- 網路層筆記(1)筆記
- 路由相關筆記路由筆記
- 在Linux中,如何設定網路路由?Linux路由
- 小白計算機網路學習筆記(更新中)計算機網路筆記
- 乙太網交換機中的網路延遲是什麼呢?
- 前端面試筆記 – 網路前端面試筆記
- 【筆記/模板】網路流初步筆記
- 網路流學習筆記筆記
- 【學習筆記】網路流筆記
- 網路流練習筆記筆記
- 不出網(小迪網路安全筆記~筆記
- 在Ubuntu中檢視網路路由表的方法Ubuntu路由
- 基於WSN網路的定向步幻影路由演算法matlab模擬路由演算法Matlab
- 下面是一個基於PowerShell的示例指令碼,定期檢測網路延遲並根據延遲的變化手動更新路由表。此示例透過使用 Test-Connection 命令檢測網路延遲,並根據延遲值來決定是否更新路由表。指令碼路由
- Linux 筆記分享十八:網路配置Linux筆記
- Linux 筆記分享十九:網路命令Linux筆記
- 網路協議課堂筆記協議筆記
- python網路爬蟲筆記(一)Python爬蟲筆記
- 計算機網路中關於路由器的作用計算機網路路由器
- 網路傳輸的大小端-計算機網路複習筆記計算機網路筆記
- 家庭路由/閘道器 網路配置折騰日記路由
- 網路延遲對事務的影響
- 《謝謝你遲到》學習筆記筆記
- 網路中IP是怎樣選路的?選路原理及簡單的路由表路由
- 反SPA的後端路由三條路線後端路由
- 趣談網路協議筆記(1)協議筆記
- 5.3 使用tensorflow搭建GoogLeNet網路 筆記Go筆記
- 計算機網路(王道考研筆記)計算機網路筆記
- 計算機網路 - 課程筆記計算機網路筆記