本發(fā)明屬于通信技術(shù)領(lǐng)域,涉及一種鏈路恢復(fù)方法,具體涉及一種HWMP先驗(yàn)樹路由模式的鏈路恢復(fù)方法,可用于無(wú)線Mesh網(wǎng)絡(luò)WMN(Wireless Mesh Network)中,對(duì)先驗(yàn)樹路由中斷開的鏈路進(jìn)行快速修復(fù)。
背景技術(shù):
WMN是一種無(wú)線多跳網(wǎng),其具有高帶寬、易部署、健壯性強(qiáng)等特點(diǎn)?;旌蠠o(wú)線Mesh協(xié)議HWMP是WMN網(wǎng)絡(luò)使用的默認(rèn)路由協(xié)議,由先驗(yàn)樹路由模式和按需路由模式共同組成。先驗(yàn)樹路由模式是利用周期性廣播的Proactive PREQ幀或Proactive RANN幀建立或更新普通節(jié)點(diǎn)到根節(jié)點(diǎn)的樹狀路由。其中,根節(jié)點(diǎn)負(fù)責(zé)維護(hù)網(wǎng)絡(luò)中的路由信息,網(wǎng)絡(luò)中的其它節(jié)點(diǎn)均屬于普通節(jié)點(diǎn)。普通節(jié)點(diǎn)與根節(jié)點(diǎn)通信時(shí),普通節(jié)點(diǎn)選擇鏈路度量最小的節(jié)點(diǎn)作為其父節(jié)點(diǎn),鏈路度量次小的作為其備用父節(jié)點(diǎn),當(dāng)樹狀路由中的鏈路發(fā)生斷開時(shí),普通節(jié)點(diǎn)和根節(jié)點(diǎn)之間將無(wú)法正常通信,需對(duì)斷開鏈路進(jìn)行修復(fù)。
當(dāng)先驗(yàn)樹路由模式下的普通節(jié)點(diǎn)到根節(jié)點(diǎn)鏈路斷開時(shí),目前主要是通過(guò)HWMP協(xié)議默認(rèn)修復(fù)方法和在普通節(jié)點(diǎn)到根節(jié)點(diǎn)間建立多路徑的方法對(duì)斷開鏈路進(jìn)行修復(fù)。其中,現(xiàn)有HWMP協(xié)議中默認(rèn)是通過(guò)周期性廣播Proactive PREQ幀或Proactive RANN幀對(duì)斷開鏈路進(jìn)行修復(fù),而大多數(shù)鏈路修復(fù)方法采用的均是周期性廣播Proactive RANN幀,例如,Sampaio,S.;Soutp,P.;Vasques,F.:A review of scalability and topological stability issues in IEEE 802.11s wireless mesh networks deploymants.Int.J.Commun.Syst.(2015)doi:10.1002/dac.2929,該文章公開了一種改變廣播周期值修復(fù)斷開鏈路的方法,在先驗(yàn)樹路由建立完成后,根節(jié)點(diǎn)周期性廣播Proactive RANN幀對(duì)樹路由進(jìn)行維護(hù),當(dāng)鏈路斷開時(shí),周期性廣播的Proactive RANN幀對(duì)其進(jìn)行修復(fù),通過(guò)減小RANN幀的廣播間隔,雖然可以降低斷開鏈路恢復(fù)時(shí)延,但同時(shí)會(huì)使得網(wǎng)絡(luò)負(fù)載急劇增加,增大了路徑維護(hù)開銷。Yun Hu,Weiqing He,Shoubao Yang,Yuan Zhou.“Multi-gateway multi-path routing protocol for 802.11s WMN,”Wireless and Mobile Computing,Networking and Communications(WiMob),11-13Oct.2010,pp.308-315,該文章公開了一種在普通節(jié)點(diǎn)到根節(jié)點(diǎn)間建立多條路徑來(lái)修復(fù)斷開鏈路的方法。其通過(guò)一種多網(wǎng)關(guān)多路徑協(xié)議MGMP,在先驗(yàn)樹狀路由基礎(chǔ)上利用樹狀結(jié)構(gòu)在普通節(jié)點(diǎn)和根節(jié)點(diǎn)之間建立了多條路徑,從而數(shù)據(jù)包可在多條路徑上同時(shí)進(jìn)行傳輸。雖然該改進(jìn)協(xié)議建立在HWMP的先驗(yàn)樹路由之上,能在一定程度上提高鏈路的穩(wěn)定性,減小網(wǎng)絡(luò)負(fù)載量。但是,建立多條路徑時(shí),必然消耗一段時(shí)間,造成鏈路恢復(fù)時(shí)延增加,而且需要額外的空間存儲(chǔ)已建立的多路徑信息,這也就要求每個(gè)節(jié)點(diǎn)需要有足夠大小的存儲(chǔ)空間,有較強(qiáng)的外在約束條件;同時(shí)該鏈路恢復(fù)方法因針對(duì)不同的場(chǎng)景做出調(diào)整時(shí)需要較長(zhǎng)時(shí)間,適用范圍有限。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)存在的缺陷,提出了一種HWMP先驗(yàn)樹路由模式的鏈路恢復(fù)方法,用于解決現(xiàn)有技術(shù)存在的不能兼顧路徑維護(hù)開銷小和路徑恢復(fù)時(shí)延短的技術(shù)問題。
為實(shí)現(xiàn)上述目的,本發(fā)明采取的技術(shù)方案,包括如下步驟:
(1)根節(jié)點(diǎn)周期性廣播RANN;普通節(jié)點(diǎn)依據(jù)HWMP路徑選擇算法,比較收到的多個(gè)RANN幀的路由度量值A(chǔ)LM的大小,將最小路由度量值A(chǔ)LM的RANN幀的發(fā)送地址保存為父節(jié)點(diǎn)的MAC地址,將小于m倍最小路由度量值A(chǔ)LM的RANN幀的發(fā)送地址,按照路由度量值A(chǔ)LM由小到大的順序,保存為備用父節(jié)點(diǎn)的MAC地址,其中,m為整數(shù),且2≤m≤4;
(2)普通節(jié)點(diǎn)通過(guò)其保存的父節(jié)點(diǎn)MAC地址,向根節(jié)點(diǎn)發(fā)送PREQ幀,建立普通節(jié)點(diǎn)與根節(jié)點(diǎn)之間的樹狀路由;
(3)當(dāng)前普通節(jié)點(diǎn)向根節(jié)點(diǎn)單播數(shù)據(jù)包,并判斷是否接收到父節(jié)點(diǎn)回復(fù)的ACK,若是,父節(jié)點(diǎn)將數(shù)據(jù)發(fā)送到根節(jié)點(diǎn),否則,執(zhí)行步驟(4);
(4)修復(fù)當(dāng)前普通節(jié)點(diǎn)到根節(jié)點(diǎn)的斷開鏈路,包括備用父節(jié)點(diǎn)法、本地鏈路法和重新建立路由樹法,實(shí)現(xiàn)步驟為:
4a)利用備用父節(jié)點(diǎn)法,對(duì)當(dāng)前普通節(jié)點(diǎn)到根節(jié)點(diǎn)的斷開鏈路進(jìn)行修復(fù):
當(dāng)前普通節(jié)點(diǎn)判斷其保存的備用父節(jié)點(diǎn)MAC地址是否為空,若是,執(zhí)行步驟4b),否則,依次通過(guò)其保存的備用父節(jié)點(diǎn)建立到達(dá)根節(jié)點(diǎn)的鏈路,并判斷是否能收到其備用父節(jié)點(diǎn)回復(fù)的ACK,若是,修復(fù)結(jié)束,否則,執(zhí)行步驟4b);
4b)利用本地鏈路法,對(duì)當(dāng)前普通節(jié)點(diǎn)到根節(jié)點(diǎn)的斷開鏈路進(jìn)行修復(fù),實(shí)現(xiàn)步驟如下:
4b1)當(dāng)前普通節(jié)點(diǎn)廣播PREQ幀,該P(yáng)REQ幀中的TTL值設(shè)為n,目的地址設(shè)為當(dāng)前普通節(jié)點(diǎn)的父節(jié)點(diǎn)MAC地址,Per Target Flags中的TO和RF均設(shè)為0,其中,n為整數(shù),且1≤n≤10;
4b2)鄰居節(jié)點(diǎn)根據(jù)收到的PREQ幀,判斷其是否有到達(dá)目的地址的可用路徑,若是,回復(fù)PREP幀到當(dāng)前普通節(jié)點(diǎn),并執(zhí)行步驟4b3),否則,鄰居節(jié)點(diǎn)對(duì)PREQ幀中的TTL值進(jìn)行判斷,若TTL值大于0,更新PREQ幀并將其廣播到目的地址,若TTL等于0,執(zhí)行步驟4c);
4b3)當(dāng)前普通節(jié)點(diǎn)收到PREP幀后更新路徑信息,修復(fù)結(jié)束;
4c)利用重新建立路由樹法,對(duì)當(dāng)前普通節(jié)點(diǎn)到根節(jié)點(diǎn)的斷開鏈路進(jìn)行修復(fù),實(shí)現(xiàn)步驟如下:
4c1)當(dāng)前普通節(jié)點(diǎn)廣播PERR幀,該P(yáng)ERR幀中的目的地址設(shè)為當(dāng)前普通節(jié)點(diǎn)的MAC地址;
4c2)根節(jié)點(diǎn)收到PERR幀后,向當(dāng)前普通節(jié)點(diǎn)回復(fù)Proactive PREQ幀,其中Proactive PREQ幀中的目的MAC地址設(shè)為之前收到的PERR幀中的目的地址,F(xiàn)lags標(biāo)識(shí)中的Proactive PREP設(shè)為1,Per Target Flags中的TO設(shè)為1;
4c3)根節(jié)點(diǎn)收到當(dāng)前普通節(jié)點(diǎn)回復(fù)的Proactive PREP幀,更新路徑信息,修復(fù)結(jié)束;
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
1.本發(fā)明由于在修復(fù)當(dāng)前普通節(jié)點(diǎn)到父節(jié)點(diǎn)的斷開鏈路時(shí),將斷開鏈路的修復(fù)分為備用父節(jié)點(diǎn)法、本地鏈路法和重新建立路由樹法,每一種方法都在盡量維護(hù)原協(xié)議中的內(nèi)容或只做稍微的修改,以避免帶來(lái)額外的開銷,與現(xiàn)有技術(shù)采用的方法相比,在降低路徑維護(hù)開銷的同時(shí)減小了路徑恢復(fù)時(shí)延,從而提升了網(wǎng)絡(luò)的整體性能。
2.本發(fā)明由于在修復(fù)當(dāng)前普通節(jié)點(diǎn)到父節(jié)點(diǎn)的斷開鏈路時(shí),備用父節(jié)點(diǎn)法設(shè)置了m值做為普通節(jié)點(diǎn)選擇備用父節(jié)點(diǎn)的參考依據(jù),本地鏈路法設(shè)置了n值做為限定普通節(jié)點(diǎn)廣播PREQ幀的范圍,且m和n值是可隨不同應(yīng)用場(chǎng)景而改變的變量,與現(xiàn)有技術(shù)采用的方法相比,適用于更廣的應(yīng)用場(chǎng)景,在不同的場(chǎng)景下設(shè)置不同的m和n值,可進(jìn)一步提高鏈路恢復(fù)方法的性能。
附圖說(shuō)明
圖1為本發(fā)明的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖;
圖2為本發(fā)明的實(shí)現(xiàn)流程框圖;
圖3為本發(fā)明中備用父節(jié)點(diǎn)法的實(shí)現(xiàn)流程框圖;
圖4為本發(fā)明中本地鏈路法的實(shí)現(xiàn)流程框圖;
圖5為本發(fā)明中重新建立路由樹法的實(shí)現(xiàn)流程框圖。
具體實(shí)施方式
以下結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
參照?qǐng)D1,節(jié)點(diǎn)A到節(jié)點(diǎn)G共同組成一個(gè)具有樹路由形式的無(wú)線Mesh網(wǎng)絡(luò),其中,節(jié)點(diǎn)A為根節(jié)點(diǎn),其它節(jié)點(diǎn)均為普通節(jié)點(diǎn),普通節(jié)點(diǎn)和根節(jié)點(diǎn)之間通過(guò)樹路由建立的路徑進(jìn)行相互通信。
參照?qǐng)D2,本發(fā)明包括如下步驟:
步驟1,根節(jié)點(diǎn)周期性廣播RANN幀。
HWMP協(xié)議可通過(guò)兩種機(jī)制建立先驗(yàn)式樹狀路由:周期性廣播Proactive RANN幀或Proactive PREQ幀,本實(shí)施例采用Proactive RANN幀:
步驟1a,根節(jié)點(diǎn)A周期性廣播RANN幀;
步驟1b,普通節(jié)點(diǎn)H收到來(lái)自不同路徑的多個(gè)RANN幀,比較收到的多個(gè)RANN幀的路由度量值A(chǔ)LM的大小,將最小路由度量值A(chǔ)LM的RANN幀的發(fā)送地址保存為父節(jié)點(diǎn)的MAC地址,將小于m倍最小路由度量值A(chǔ)LM的RANN幀的發(fā)送地址,按照路由度量值A(chǔ)LM由小到大的順序,保存為備用父節(jié)點(diǎn)的MAC地址,其中,m為整數(shù),且2≤m≤4。實(shí)際應(yīng)用中,m可根據(jù)不同的場(chǎng)景作出不同的調(diào)整,以盡量短的時(shí)間恢復(fù)斷開鏈路,進(jìn)而體現(xiàn)出本鏈路恢復(fù)方法的優(yōu)越性。
步驟2,普通節(jié)點(diǎn)H通過(guò)其保存的父節(jié)點(diǎn)MAC地址,向根節(jié)點(diǎn)A發(fā)送PREQ幀,以建立普通節(jié)點(diǎn)與根節(jié)點(diǎn)之間的樹狀路由:
步驟2a,根節(jié)點(diǎn)A收到普通節(jié)點(diǎn)H發(fā)送的PREQ幀后,表明建立了反向路徑;
步驟2b,根節(jié)點(diǎn)A沿反向路徑回復(fù)PREP幀到普通節(jié)點(diǎn)H;
步驟2c,普通節(jié)點(diǎn)H收到PREP幀后,便建立起了普通節(jié)點(diǎn)H到根節(jié)點(diǎn)A之間的先驗(yàn)式鏈路。類似的,通過(guò)上述步驟也可建立起其它普通節(jié)點(diǎn)到根節(jié)點(diǎn)之間的鏈路,從而建立了普通節(jié)點(diǎn)與根節(jié)點(diǎn)之間的樹狀路由。
步驟3,當(dāng)前普通節(jié)點(diǎn)向根節(jié)點(diǎn)單播數(shù)據(jù)包,并判斷是否接收到父節(jié)點(diǎn)的ACK,若是,父節(jié)點(diǎn)將數(shù)據(jù)包發(fā)送到根節(jié)點(diǎn),此時(shí),如果當(dāng)前普通節(jié)點(diǎn)的父節(jié)點(diǎn)正是根節(jié)點(diǎn),父節(jié)點(diǎn)便直接處理接收到的數(shù)據(jù)包而不再進(jìn)行轉(zhuǎn)發(fā),如果當(dāng)前普通節(jié)點(diǎn)的父節(jié)點(diǎn)不是根節(jié)點(diǎn),父節(jié)點(diǎn)將接收到的數(shù)據(jù)包轉(zhuǎn)發(fā)到根節(jié)點(diǎn);否則,執(zhí)行步驟4;
步驟4,修復(fù)當(dāng)前普通節(jié)點(diǎn)到根節(jié)點(diǎn)的斷開鏈路,包括備用父節(jié)點(diǎn)法、本地鏈路法和重新建立路由樹法,實(shí)現(xiàn)步驟為:
參照?qǐng)D3:
步驟4a,利用備用父節(jié)點(diǎn)法,對(duì)當(dāng)前普通節(jié)點(diǎn)到根節(jié)點(diǎn)的斷開鏈路進(jìn)行修復(fù):
步驟4a1,當(dāng)前普通節(jié)點(diǎn)H判斷其保存的備用父節(jié)點(diǎn)MAC地址是否為空,若是,表明當(dāng)前普通節(jié)點(diǎn)H沒有可用的備用父節(jié)點(diǎn),執(zhí)行步驟4b,否則,執(zhí)行步驟4a2;
步驟4a2,依次通過(guò)其保存的備用父節(jié)點(diǎn)向根節(jié)點(diǎn)A發(fā)送PREQ幀,以建立到達(dá)根節(jié)點(diǎn)的鏈路,直到無(wú)可用的備用父節(jié)點(diǎn)為止,同時(shí)判斷當(dāng)前普通節(jié)點(diǎn)是否能收到其備用父節(jié)點(diǎn)回復(fù)的ACK,若是,執(zhí)行步驟4a3到步驟4a5,進(jìn)行鏈路修復(fù),否則,執(zhí)行步驟4b;
步驟4a3,普通節(jié)點(diǎn)H的備用父節(jié)點(diǎn)轉(zhuǎn)發(fā)PREQ幀到根節(jié)點(diǎn)A;
步驟4a4,根節(jié)點(diǎn)收到PREQ幀后,更新路徑信息并向斷開鏈路節(jié)點(diǎn)H回復(fù)PREP;
步驟4a5,普通節(jié)點(diǎn)H收到PREP幀,表明普通節(jié)點(diǎn)H到根節(jié)點(diǎn)A的新鏈路建立完成,修復(fù)結(jié)束;
參照?qǐng)D4:
步驟4b,利用本地鏈路法,對(duì)當(dāng)前普通節(jié)點(diǎn)到根節(jié)點(diǎn)的斷開鏈路進(jìn)行修復(fù),實(shí)現(xiàn)步驟如下:
步驟4b1,當(dāng)前普通節(jié)點(diǎn)H廣播PREQ幀,該P(yáng)REQ幀中的TTL值設(shè)為n,目的地址設(shè)為當(dāng)前普通節(jié)點(diǎn)的父節(jié)點(diǎn)MAC地址,Per Target Flags中的TO和RF均設(shè)為0,其中,n為整數(shù),且1≤n≤10。實(shí)際應(yīng)用中,n可根據(jù)不同的場(chǎng)景設(shè)為不同大小的值,以避免因廣播PREQ幀造成網(wǎng)絡(luò)負(fù)載的急劇增加,使得本鏈路恢復(fù)方法在減小斷開鏈路恢復(fù)時(shí)延的同時(shí)兼顧了網(wǎng)絡(luò)負(fù)載的大小;
步驟4b2,鄰居節(jié)點(diǎn)根據(jù)收到的PREQ幀,判斷其是否有到達(dá)目的地址的可用路徑,若是,回復(fù)PREP幀到當(dāng)前普通節(jié)點(diǎn)H,并執(zhí)行步驟4b3,否則,鄰居節(jié)點(diǎn)對(duì)PREQ幀中的TTL值進(jìn)行判斷,若TTL值大于0,更新PREQ幀并將其廣播到目的地址,若TTL等于0,執(zhí)行步驟4c;
步驟4b3,當(dāng)前普通節(jié)點(diǎn)H收到PREP幀后更新路徑信息,修復(fù)結(jié)束;
參照?qǐng)D5:
步驟4c,利用重新建立路由樹法,對(duì)當(dāng)前普通節(jié)點(diǎn)到根節(jié)點(diǎn)的斷開鏈路進(jìn)行修復(fù),實(shí)現(xiàn)步驟如下:
步驟4c1,當(dāng)前普通節(jié)點(diǎn)廣播PERR幀,該P(yáng)ERR幀中的目的地址設(shè)為當(dāng)前普通節(jié)點(diǎn)H的MAC地址;
步驟4c2,根節(jié)點(diǎn)A收到PERR幀后,向當(dāng)前普通節(jié)點(diǎn)回復(fù)Proactive PREQ幀,其中Proactive PREQ幀中的目的MAC地址設(shè)為之前收到的PERR幀中的目的地址,F(xiàn)lags標(biāo)識(shí)中的Proactive PREP設(shè)為1,Per Target Flags中的TO設(shè)為1;
步驟4c3,根節(jié)點(diǎn)A收到當(dāng)前普通節(jié)點(diǎn)回復(fù)的Proactive PREP幀,表明根節(jié)點(diǎn)A到當(dāng)前普通節(jié)點(diǎn)的正向路徑建立完成,更新路徑信息,修復(fù)結(jié)束;
以上描述僅是本發(fā)明的一個(gè)具體實(shí)例,顯然對(duì)于本領(lǐng)域的專業(yè)人員來(lái)說(shuō),在了解了本發(fā)明內(nèi)容和原理后,都可能在不背離本發(fā)明原理、結(jié)構(gòu)的情況下,進(jìn)行形式和細(xì)節(jié)上的各種修正和改變,但是這些基于本發(fā)明思想的修正和改變?nèi)栽诒景l(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。