網狀路由協議 – BATMAN-Advanced 之 OGM 封包

Bycodeant

網狀路由協議 – BATMAN-Advanced 之 OGM 封包

目前BATMAN Advanced在新版本(2.6.38以後)的Linux內核已成為一個標準模組,BATMAN的設計目標是為了可以建置一個大型的網路,為了減少路由訊息封包所帶來的負擔,它只使用了一個名為Originator Messages(OGMs)的封包來進行路由資訊的建立。

透過廣播與再廣播OGMs的方式交換路由資訊,以傳輸品質(Transmission Quality,簡稱TQ)做為路徑選擇的依據,TQ值的計算必須先取得接收品質(Receive Quality,簡稱RQ)與回聲品質(Echo Quality,簡稱EQ)這二個參考數值。我們先假設一情境,即Node A與Node B互為彼此的Best Hop,而步驟1與步驟3可同時進行,步驟2與步驟4可同時進行,則其路由資訊的建立步驟如下圖:

 batman-adv-ogm

1.    各網路節點以廣播的方式定期發送路由訊息封包即OGMs封包,其內容包含發送端位址,轉發節點位址,存活時間(Time To Live,簡稱TTL)值和序列號(Sequence Number),附近的鄰近節點計算已收到的OGMs封包數量作為RQ值,如圖的步驟1及步驟3。

2.   檢查每個路由的資訊,選擇最好的單跳節點(Best Hop Neighbor)。

3.    將最好的單跳節點傳送過來的OGMs封包進行再廣播,原始的OGMs封包發送節點透過接收到的再廣播OGMs數量可以得到EQ,如圖的步驟2及步驟4。

4.    如果EQ值大於RQ,則TQ = max(TQ);如果RQ值大於EQ,則TQ = max(TQ)× EQ ÷ RQ。

About the author

codeant administrator

Leave a Reply