1.一種HWMP先驗樹路由模式的鏈路恢復方法,包括如下步驟:
(1)根節(jié)點周期性廣播RANN;普通節(jié)點依據(jù)HWMP路徑選擇算法,比較收到的多個RANN幀的路由度量值A(chǔ)LM的大小,將最小路由度量值A(chǔ)LM的RANN幀的發(fā)送地址保存為父節(jié)點的MAC地址,將小于m倍最小路由度量值A(chǔ)LM的RANN幀的發(fā)送地址,按照路由度量值A(chǔ)LM由小到大的順序,保存為備用父節(jié)點的MAC地址,其中,m為整數(shù),且2≤m≤4;
(2)普通節(jié)點通過其保存的父節(jié)點MAC地址,向根節(jié)點發(fā)送PREQ幀,建立普通節(jié)點與根節(jié)點之間的樹狀路由;
(3)當前普通節(jié)點向根節(jié)點單播數(shù)據(jù)包,并判斷是否接收到父節(jié)點回復的ACK,若是,父節(jié)點將數(shù)據(jù)發(fā)送到根節(jié)點,否則,執(zhí)行步驟(4);
(4)修復當前普通節(jié)點到根節(jié)點的斷開鏈路,包括備用父節(jié)點法、本地鏈路法和重新建立路由樹法,實現(xiàn)步驟為:
4a)利用備用父節(jié)點法,對當前普通節(jié)點到根節(jié)點的斷開鏈路進行修復:
當前普通節(jié)點判斷其保存的備用父節(jié)點MAC地址是否為空,若是,執(zhí)行步驟4b),否則,依次通過其保存的備用父節(jié)點建立到達根節(jié)點的鏈路,并判斷是否能收到其備用父節(jié)點回復的ACK,若是,修復結(jié)束,否則,執(zhí)行步驟4b);
4b)利用本地鏈路法,對當前普通節(jié)點到根節(jié)點的斷開鏈路進行修復,實現(xiàn)步驟如下:
4b1)當前普通節(jié)點廣播PREQ幀,該PREQ幀中的TTL值設(shè)為n,目的地址設(shè)為當前普通節(jié)點的父節(jié)點MAC地址,Per Target Flags中的TO和RF均設(shè)為0,其中,n為整數(shù),且1≤n≤10;
4b2)鄰居節(jié)點根據(jù)收到的PREQ幀,判斷其是否有到達目的地址的可用路徑,若是,回復PREP幀到當前普通節(jié)點,并執(zhí)行步驟4b3),否則,鄰居節(jié)點對PREQ幀中的TTL值進行判斷,若TTL值大于0,更新PREQ幀并將其廣播到目的地址,若TTL等于0,執(zhí)行步驟4c);
4b3)當前普通節(jié)點收到PREP幀后更新路徑信息,修復結(jié)束;
4c)利用重新建立路由樹法,對當前普通節(jié)點到根節(jié)點的斷開鏈路進行修復,實現(xiàn)步驟如下:
4c1)當前普通節(jié)點廣播PERR幀,該PERR幀中的目的地址設(shè)為當前普通節(jié)點的MAC地址;
4c2)根節(jié)點收到PERR幀后,向當前普通節(jié)點回復Proactive PREQ幀,其中Proactive PREQ幀中的目的MAC地址設(shè)為之前收到的PERR幀中的目的地址,F(xiàn)lags標識中的Proactive PREP設(shè)為1,Per Target Flags中的TO設(shè)為1;
4c3)根節(jié)點收到當前普通節(jié)點回復的Proactive PREP幀,更新路徑信息,修復結(jié)束。