專利名稱:一種基于主從結(jié)構(gòu)多跳網(wǎng)絡(luò)的多路徑分段路由方法
技術(shù)領(lǐng)域:
本發(fā)明屬于網(wǎng)絡(luò)路由中繼技術(shù)領(lǐng)域,具體涉及一種基于主從結(jié)構(gòu)多跳網(wǎng)絡(luò)的多路徑分段路由方法。
背景技術(shù):
基于主從結(jié)構(gòu)的多跳網(wǎng)絡(luò)是由集中器節(jié)點(diǎn)和諸多終端節(jié)點(diǎn)構(gòu)成的自治網(wǎng)絡(luò)系統(tǒng)。 其中集中器節(jié)點(diǎn)主要負(fù)責(zé)管理網(wǎng)絡(luò)和收集信息,終端節(jié)點(diǎn)負(fù)責(zé)采集信息兼具路由轉(zhuǎn)發(fā)功能。主從結(jié)構(gòu)的多跳網(wǎng)絡(luò)兼具了自組網(wǎng)便于組網(wǎng)的特性和基礎(chǔ)設(shè)施網(wǎng)便于管理的特性,為應(yīng)用于物聯(lián)網(wǎng)的協(xié)同工作系統(tǒng)提供了一種有效的解決途徑,是一種可以廣泛應(yīng)用于無(wú)線自組織局域網(wǎng)(Wireless LAN, WLAN)、無(wú)線傳感網(wǎng)(Wireless Sensor Network, WSN)和電力線載波網(wǎng)絡(luò)(Power Line Communication, PLC)等多跳中繼傳輸?shù)木W(wǎng)絡(luò)組織架構(gòu)。圖1所示了主從結(jié)構(gòu)多跳網(wǎng)絡(luò)在電力線載波領(lǐng)域的應(yīng)用場(chǎng)景,其中集中器通過(guò)電力線載波網(wǎng)絡(luò)對(duì)上百臺(tái)電表實(shí)施網(wǎng)絡(luò)管理和數(shù)據(jù)收集。在面向應(yīng)用的主從結(jié)構(gòu)多跳無(wú)線網(wǎng)絡(luò)或電力線載波網(wǎng)絡(luò)中,組網(wǎng)時(shí)由于競(jìng)爭(zhēng)共享信道產(chǎn)生的碰撞、信號(hào)衰減、噪音干擾及信道干擾等因素,使得信號(hào)沿距離大規(guī)模衰減,實(shí)際帶寬遠(yuǎn)遠(yuǎn)小于理論值,通信方式通常為半雙工方式,隱蔽終端暴露終端問(wèn)題凸顯,傳統(tǒng)的固定路由方法很難解決上述情況所帶來(lái)的技術(shù)難題。針對(duì)上述問(wèn)題,在主從結(jié)構(gòu)多跳電力線載波網(wǎng)絡(luò)領(lǐng)域,具有代表性的現(xiàn)有解決方案為 REMPLI (Real-time Energy Management via Powerlines and Internet)方案禾口 PRIME(PoweRline Intelligent Metering Evolution)方案。REMPLI項(xiàng)目始于2003年,主要針對(duì)窄帶電力線接入。它提供了兩種路由方法采用動(dòng)態(tài)源路由協(xié)議方式和采用單頻網(wǎng)(Single Frequency Network, SFN)方式。REMPLI項(xiàng)目論證了 SFN方式優(yōu)于未經(jīng)優(yōu)化的動(dòng)態(tài)源路由協(xié)議。然而由于SFN方式的每次數(shù)據(jù)傳輸都采用廣播方法,每一次的廣播過(guò)程都需要多數(shù)節(jié)點(diǎn)的多次參與,從而使得節(jié)點(diǎn)能耗顯著增加,對(duì)于臨近集中器的節(jié)點(diǎn),該技術(shù)缺陷表現(xiàn)得尤為明顯。PRIME項(xiàng)目通過(guò)將節(jié)點(diǎn)分為集中器,交換節(jié)點(diǎn)和終端節(jié)點(diǎn)三類,使用地址分配標(biāo)識(shí)不同的節(jié)點(diǎn),建立和維護(hù)樹(shù)形的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。PRIME標(biāo)準(zhǔn)從主從多跳本身可構(gòu)成的樹(shù)形組織結(jié)構(gòu)出發(fā),組建了樹(shù)形網(wǎng)絡(luò)。然而考慮到若臨近樹(shù)根的網(wǎng)絡(luò)節(jié)點(diǎn)信號(hào)環(huán)境發(fā)生變化,即有可能影響到以此為第一級(jí)中繼的大片節(jié)點(diǎn)的通信和組網(wǎng),從而破壞已建成的樹(shù)形網(wǎng)絡(luò)拓?fù)?,?dǎo)致大量額外的控制開(kāi)銷。在MANETs (移動(dòng)無(wú)線自組網(wǎng))領(lǐng)域,采用多路徑的路由協(xié)議是保障網(wǎng)絡(luò)可靠傳輸?shù)慕鉀Q方案。多路徑路由協(xié)議主要使用多路徑算法發(fā)現(xiàn)多條路徑,斷路發(fā)生時(shí)使用一條備份路徑來(lái)取代中斷路徑,從而達(dá)到自動(dòng)修復(fù)斷路,不必重新發(fā)起路由請(qǐng)求的功能;進(jìn)而增加網(wǎng)絡(luò)穩(wěn)定性,減少路由開(kāi)銷。其中 AOMDV(Ad hoc On-demand Multipath Distance Vector) 是AODV (Ad hoc On-demand Distance Vector)的多路徑擴(kuò)展,它維護(hù)多條路徑,然而其流量分布不超過(guò)一條路徑,只是在主路徑失敗時(shí)才利用;路由存儲(chǔ)和轉(zhuǎn)發(fā)主要依靠本地轉(zhuǎn)發(fā)■SMR(Split Multipath Routing) ^X^t DSR(Dynamic Source Routing)白勺 /“皿,
通過(guò)目的節(jié)點(diǎn)為每個(gè)路由請(qǐng)求發(fā)現(xiàn)兩條路徑一條是最短路徑,另一條是最大非交叉路徑; 主要研究建立和維持最大化非交叉路徑,負(fù)載被分布到每個(gè)會(huì)話的兩條路徑中。SMR的路由存儲(chǔ)和轉(zhuǎn)發(fā)主要依靠數(shù)據(jù)包中攜帶全段的源路由實(shí)現(xiàn)。使用多跳的路由傳輸方式中,路由存儲(chǔ)和轉(zhuǎn)發(fā)技術(shù)是關(guān)鍵??紤]到網(wǎng)絡(luò)帶寬有限, MAC層爭(zhēng)用的情況下,要保證網(wǎng)絡(luò)中的數(shù)據(jù)包盡量不被沖突,則所發(fā)送的數(shù)據(jù)包不宜過(guò)長(zhǎng), 單純使用全段源路由存儲(chǔ)和轉(zhuǎn)發(fā)的DSR和SMR方案使得數(shù)據(jù)包中有效載荷過(guò)少,數(shù)據(jù)傳輸缺乏效率;單純使用本地轉(zhuǎn)發(fā)表存儲(chǔ)和轉(zhuǎn)發(fā)的AODV和AOMDV方案使得臨近集中器節(jié)點(diǎn)的中間節(jié)點(diǎn)維護(hù)的轉(zhuǎn)發(fā)表數(shù)量巨大,不利于網(wǎng)絡(luò)節(jié)點(diǎn)的部署和實(shí)施。
發(fā)明內(nèi)容
本發(fā)明提供了一種基于主從結(jié)構(gòu)多跳網(wǎng)絡(luò)的多路徑分段路由方法,解決了現(xiàn)有主從結(jié)構(gòu)多跳網(wǎng)絡(luò)路由技術(shù)所存在的上述技術(shù)缺陷,增加了網(wǎng)絡(luò)的吞吐率,保證了網(wǎng)絡(luò)的魯棒性和穩(wěn)定性。一種基于主從結(jié)構(gòu)多跳網(wǎng)絡(luò)的多路徑分段路由方法,包括如下步驟(1)源節(jié)點(diǎn)構(gòu)造PREQ(路由請(qǐng)求包),并向其周圍節(jié)點(diǎn)廣播PREQ ;中間節(jié)點(diǎn)收到 PREQ后,向其周圍節(jié)點(diǎn)選擇性廣播PREQ,直至多份PREQ經(jīng)過(guò)不同路徑到達(dá)目的節(jié)點(diǎn);所述的源節(jié)點(diǎn)和目的節(jié)點(diǎn)分別為集中器節(jié)點(diǎn)和終端節(jié)點(diǎn)或終端節(jié)點(diǎn)和集中器節(jié)點(diǎn);(2)目的節(jié)點(diǎn)收到多份PREQ后,根據(jù)PREQ的全路由段對(duì)PREQ進(jìn)行無(wú)環(huán)路篩選,并將篩選后保留的PREQ存儲(chǔ)于本地緩存;(3)對(duì)保留的PREQ的全路由段進(jìn)行區(qū)域劃分某一全路由段中,將距離集中器節(jié)點(diǎn)小于區(qū)域跳數(shù)的中間節(jié)點(diǎn)劃分為Rl區(qū);將距離集中器節(jié)點(diǎn)等于區(qū)域跳數(shù)的中間節(jié)點(diǎn)劃分為B區(qū);將距離集中器節(jié)點(diǎn)大于區(qū)域跳數(shù)的中間節(jié)點(diǎn)劃分為R2區(qū);(4)目的節(jié)點(diǎn)根據(jù)保留的PREQ的全路由段構(gòu)造對(duì)應(yīng)的PREP(路由回復(fù)包),并將 PREP按其全路由段單播回傳至源節(jié)點(diǎn);回傳過(guò)程中,Rl區(qū)節(jié)點(diǎn)記錄其自身到集中器節(jié)點(diǎn)的路由段信息;R2區(qū)節(jié)點(diǎn)記錄其自身分別到終端節(jié)點(diǎn)和集中器節(jié)點(diǎn)的正向路由信息和反向路由信息;B區(qū)節(jié)點(diǎn)記錄其自身到集中器節(jié)點(diǎn)的路由段信息以及其自身到終端節(jié)點(diǎn)的正向路由信息;終端節(jié)點(diǎn)記錄其自身到集中器節(jié)點(diǎn)的反向路由信息;(5)源節(jié)點(diǎn)收到多份PREP后,將所有PREP的全路由段存儲(chǔ)于本地緩存,并以最優(yōu)全路由段作為數(shù)據(jù)發(fā)送的默認(rèn)路徑;若源節(jié)點(diǎn)為集中器節(jié)點(diǎn),源節(jié)點(diǎn)根據(jù)默認(rèn)路徑構(gòu)造PDATA(數(shù)據(jù)包),源節(jié)點(diǎn)和Rl 區(qū)節(jié)點(diǎn)將PDATA按其RlB區(qū)路由段逐跳通過(guò)Rl區(qū)發(fā)送至B區(qū)節(jié)點(diǎn),B區(qū)節(jié)點(diǎn)和R2區(qū)節(jié)點(diǎn)按各自的正向路由信息將PDATA逐跳通過(guò)R2區(qū)發(fā)送至目的節(jié)點(diǎn);若源節(jié)點(diǎn)為終端節(jié)點(diǎn),源節(jié)點(diǎn)構(gòu)造PDATA,源節(jié)點(diǎn)和R2區(qū)節(jié)點(diǎn)按各自的反向路由信息將PDATA逐跳通過(guò)R2區(qū)發(fā)送至B區(qū)節(jié)點(diǎn);B區(qū)節(jié)點(diǎn)根據(jù)其自身到集中器節(jié)點(diǎn)的路由段信息設(shè)定PDATA的RlB區(qū)路由段,B區(qū)節(jié)點(diǎn)和Rl區(qū)節(jié)點(diǎn)將PDATA按其RlB區(qū)路由段逐跳通過(guò)Rl區(qū)發(fā)送至目的節(jié)點(diǎn);(6)當(dāng)最優(yōu)全路由段發(fā)生斷路時(shí),斷路發(fā)現(xiàn)節(jié)點(diǎn)根據(jù)其所在區(qū)域以及數(shù)據(jù)流向選擇使用路由信息修復(fù)全路由段或構(gòu)造PERR(路由維護(hù)包)向其上游節(jié)點(diǎn)發(fā)送PERR ;上游節(jié)點(diǎn)接收PERR,并根據(jù)其所在區(qū)域以及數(shù)據(jù)流向選擇使用路由信息修復(fù)全路由段或向其上游節(jié)點(diǎn)轉(zhuǎn)發(fā)PERR,直至源節(jié)點(diǎn)收到PERR ;源節(jié)點(diǎn)收到PERR后,刪除本地緩存中的最優(yōu)全路由段,并選擇本地緩存中的其他全路由段作為數(shù)據(jù)發(fā)送的默認(rèn)路徑,執(zhí)行步驟(5);若本地緩存中無(wú)其他全路由段,重復(fù)步驟(1)至(5)。優(yōu)選的技術(shù)方案中,所述的步驟( 中,對(duì)PREQ進(jìn)行無(wú)環(huán)路篩選采用拓?fù)渑判蚍ǎ?br>
算法速度快,可靠性高。所述的步驟(1)中,選擇性廣播PREQ為當(dāng)中間節(jié)點(diǎn)首次收到某一路徑的PREQ 時(shí),中間節(jié)點(diǎn)記錄該P(yáng)REQ的Hops (跳數(shù))和上一跳節(jié)點(diǎn)地址,并廣播該P(yáng)REQ ;當(dāng)中間節(jié)點(diǎn)非首次收到某一路徑的PREQ時(shí),若該P(yáng)REQ的Hops小于或等于中間節(jié)點(diǎn)已記錄的Hops且該P(yáng)REQ的上一跳節(jié)點(diǎn)地址與中間節(jié)點(diǎn)對(duì)應(yīng)記錄的不同,則廣播該P(yáng)REQ,否則,丟棄該P(yáng)REQ ; 廣播PREQ時(shí),中間節(jié)點(diǎn)將自身的地址添加到PREQ的全路由段尾部。所述的區(qū)域跳數(shù)為實(shí)際經(jīng)驗(yàn)值,其根據(jù)多跳網(wǎng)絡(luò)的規(guī)模而定。所述的RlB區(qū)路由段為Rl區(qū)和B區(qū)的路由段。所述的最優(yōu)全路由段為目的節(jié)點(diǎn)最先收到的PREQ的全路由段。所述的正向路由信息為某一全路由段中當(dāng)前節(jié)點(diǎn)背離集中器節(jié)點(diǎn)的下一跳節(jié)點(diǎn)地址;所述的反向路由信息為某一全路由段中當(dāng)前節(jié)點(diǎn)去往集中器節(jié)點(diǎn)的下一跳節(jié)點(diǎn)地址。本發(fā)明的有益技術(shù)效果為(1)本發(fā)明通過(guò)建立和維護(hù)源節(jié)點(diǎn)和目的節(jié)點(diǎn)的多條路由路徑,使得在默認(rèn)路徑出現(xiàn)斷路時(shí)快速切換到備用路徑,從而保障數(shù)據(jù)的可靠傳輸,并減少路由重建頻率,減少路由開(kāi)銷。(2)本發(fā)明通過(guò)采用以距離集中器節(jié)點(diǎn)一定區(qū)域跳數(shù)作為劃分的網(wǎng)絡(luò)分區(qū)方法, 僅B區(qū)和R2區(qū)記錄本地轉(zhuǎn)發(fā)表信息,從而避免了主從結(jié)構(gòu)多跳網(wǎng)絡(luò)中靠近集中器的終端節(jié)點(diǎn)本地轉(zhuǎn)發(fā)表規(guī)模過(guò)大。(3)本發(fā)明中PDATA數(shù)據(jù)包中路由段僅攜帶RlB路由信息,通過(guò)R2區(qū)時(shí)依靠本地轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā),增加了數(shù)據(jù)包中有效載荷比重,提高了數(shù)據(jù)傳遞率。(4)本發(fā)明中發(fā)生路由斷路時(shí)引入了本地使用備份路由信息快速修復(fù)斷路路由段的機(jī)制,使得在短時(shí)間內(nèi)修復(fù)斷路路由成為可能。
圖1為主從結(jié)構(gòu)多跳網(wǎng)絡(luò)的典型應(yīng)用場(chǎng)景示意圖。圖2為PREQ/PREP的報(bào)文格式示意圖。圖3為PDATA的報(bào)文格式示意圖。圖4為PERR的報(bào)文格式示意圖。圖5為本發(fā)明多路徑分段路由方法的步驟流程示意圖。圖6為本發(fā)明方法中路由建立的流程示意圖。圖7為本發(fā)明方法中數(shù)據(jù)發(fā)送的流程示意圖。
圖8為本發(fā)明方法中路由修復(fù)維護(hù)的流程示意圖。
具體實(shí)施例方式為了更為具體地描述本發(fā)明,下面結(jié)合附圖及具體實(shí)施方式
對(duì)本發(fā)明的多路徑分段路由方法進(jìn)行詳細(xì)說(shuō)明。如圖5所示,一種基于主從結(jié)構(gòu)多跳網(wǎng)絡(luò)的多路徑分段路由方法,包括如下步驟(1)源節(jié)點(diǎn)發(fā)送路由請(qǐng)求。如圖6所示,當(dāng)源節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),若源節(jié)點(diǎn)為集中器節(jié)點(diǎn),首先檢查本地“目的節(jié)點(diǎn)-B區(qū)節(jié)點(diǎn)映射表”和“至RlB區(qū)節(jié)點(diǎn)路由表”,若源節(jié)點(diǎn)為終端節(jié)點(diǎn),則查找“反向路由轉(zhuǎn)發(fā)表”;查看源節(jié)點(diǎn)是否有到達(dá)目的節(jié)點(diǎn)的路由信息。如果已找到相應(yīng)路由信息,則轉(zhuǎn)入數(shù)據(jù)發(fā)送階段;如果沒(méi)有相應(yīng)的路由信息,說(shuō)明沒(méi)有到目的節(jié)點(diǎn)的路由,于是發(fā)起路由請(qǐng)求。構(gòu)造并廣播PREQ,同時(shí)設(shè)置PREQ定時(shí)器?!澳康墓?jié)點(diǎn)-B區(qū)節(jié)點(diǎn)映射表”提供集中器節(jié)點(diǎn)到達(dá)目的節(jié)點(diǎn)的多跳路由路徑上可供選擇B區(qū)節(jié)點(diǎn)地址,“至RlB區(qū)節(jié)點(diǎn)路由表”提供集中器節(jié)點(diǎn)達(dá)指定Rl區(qū)節(jié)點(diǎn)或B區(qū)節(jié)點(diǎn)的全段路由信息。源節(jié)點(diǎn)構(gòu)造PREQ,并向其周圍節(jié)點(diǎn)廣播PREQ ;如圖2所示,PREQ包含類型域、源節(jié)點(diǎn)地址、目的節(jié)點(diǎn)地址、ID號(hào)、全路由段和Hops。其中PREQ的類型域?yàn)?X01,全路由段用于存放路由過(guò)程中經(jīng)過(guò)節(jié)點(diǎn)的地址,Hops記錄PREQ從源節(jié)點(diǎn)到達(dá)當(dāng)前節(jié)點(diǎn)時(shí)所經(jīng)歷的路
由跳數(shù)。中間節(jié)點(diǎn)收到PREQ后,向其周圍節(jié)點(diǎn)選擇性廣播PREQ 當(dāng)中間節(jié)點(diǎn)首次收到某一路徑的PREQ時(shí),中間節(jié)點(diǎn)將該P(yáng)REQ的Hops和上一跳節(jié)點(diǎn)地址記錄至本地PREQ表中,并廣播該P(yáng)REQ ;當(dāng)中間節(jié)點(diǎn)非首次收到某一路徑的PREQ時(shí),若該P(yáng)REQ的Hops小于或等于中間節(jié)點(diǎn)已記錄的Hops且該P(yáng)REQ的上一跳節(jié)點(diǎn)地址與中間節(jié)點(diǎn)對(duì)應(yīng)記錄的不同,則廣播該 PREQ,否則,丟棄該P(yáng)REQ ;廣播PREQ時(shí),中間節(jié)點(diǎn)將自身的地址添加到PREQ的全路由段尾部。PREQ表記錄中間節(jié)點(diǎn)已收到的PREQ中的Hops跳數(shù)信息和上一跳節(jié)點(diǎn)地址,并保持一段生存時(shí)間precLtimer,到時(shí)后清除相應(yīng)表項(xiàng)。多份PREQ經(jīng)過(guò)不同路徑到達(dá)目的節(jié)點(diǎn);源節(jié)點(diǎn)和目的節(jié)點(diǎn)分別為集中器節(jié)點(diǎn)和終端節(jié)點(diǎn)或終端節(jié)點(diǎn)和集中器節(jié)點(diǎn)。(2)目的節(jié)點(diǎn)接收路由請(qǐng)求,并進(jìn)行無(wú)環(huán)路篩選。如圖6所示,目的節(jié)點(diǎn)收到多份PREQ后,目的節(jié)點(diǎn)查看PREQ的全路由段和ID號(hào), 確認(rèn)是否是首次收到,若非首次收到,目的節(jié)點(diǎn)丟棄該P(yáng)REQ ;若是首次收到,目的節(jié)點(diǎn)根據(jù) PREQ的全路由段采用拓?fù)渑判蚍椒▽?duì)PREQ進(jìn)行無(wú)環(huán)路篩選,并將篩選后保留的PREQ存儲(chǔ)于本地PREQ緩存表中。目的節(jié)點(diǎn)在收到源節(jié)點(diǎn)發(fā)來(lái)的PREQ后設(shè)置定時(shí)器pi^p_timer,prep_timer時(shí)間內(nèi),目的節(jié)點(diǎn)可以繼續(xù)接受其他篩選合格的PREQ,并存儲(chǔ)于本地PREQ緩存表中;超時(shí)后,目的節(jié)點(diǎn)不再接收早于當(dāng)前PREQ的ID的PREQ。若目的節(jié)點(diǎn)為集中器節(jié)點(diǎn),目的節(jié)點(diǎn)將收到的PREQ的全路由段分解至本地“目的節(jié)點(diǎn)-B區(qū)節(jié)點(diǎn)映射表”和“至RlB區(qū)節(jié)點(diǎn)路由表”中;若目的節(jié)點(diǎn)為終端節(jié)點(diǎn),則僅需依照PREQ的全路由段記錄其自身到集中器節(jié)點(diǎn)的反向路由信息至本地“反向路由轉(zhuǎn)發(fā)表”中。(3)對(duì)篩選后的全路由段進(jìn)行區(qū)域劃分。對(duì)保留的PREQ的全路由段進(jìn)行區(qū)域劃分某一全路由段中,將距離集中器節(jié)點(diǎn)小于區(qū)域跳數(shù)(R0UTE_IN_PKT_C0UNT)的中間節(jié)點(diǎn)劃分為Rl區(qū);將距離集中器節(jié)點(diǎn)等于區(qū)域跳數(shù)的中間節(jié)點(diǎn)劃分為B區(qū);將距離集中器節(jié)點(diǎn)大于區(qū)域跳數(shù)的中間節(jié)點(diǎn)劃分為R2區(qū);其中R0UTE_IN_PKT_C0UNT為根據(jù)網(wǎng)絡(luò)規(guī)模自定義的常量參數(shù)。(4)目的節(jié)點(diǎn)發(fā)送路由回復(fù),中間節(jié)點(diǎn)存儲(chǔ)路由信息。如圖6所示,目的節(jié)點(diǎn)依次讀取本地PREQ緩存表中的PREQ,根據(jù)PREQ的全路由段構(gòu)造對(duì)應(yīng)的PREP (PREP的報(bào)文格式與PREQ的相同,PREP的類型域?yàn)?X0》,并將PREP按其全路由段單播回傳至源節(jié)點(diǎn);回傳過(guò)程中,中間節(jié)點(diǎn)收到PREP后,讀取PREP的全路由段并在本地存儲(chǔ)路由信息。其中,Rl區(qū)節(jié)點(diǎn)記錄其自身到集中器節(jié)點(diǎn)的路由段信息至本地“至集中器節(jié)點(diǎn)路由表” 中;R2區(qū)節(jié)點(diǎn)記錄其自身分別到終端節(jié)點(diǎn)和集中器節(jié)點(diǎn)的正向路由信息和反向路由信息至本地“正向路由轉(zhuǎn)發(fā)表”和“反向路由轉(zhuǎn)發(fā)表”中;B區(qū)節(jié)點(diǎn)記錄其自身到集中器節(jié)點(diǎn)的路由段信息至本地“至集中器節(jié)點(diǎn)路由表”中,記錄其自身到終端節(jié)點(diǎn)的正向路由信息至本地 “正向路由轉(zhuǎn)發(fā)表”中。(5)源節(jié)點(diǎn)接收路由回復(fù),并向目標(biāo)節(jié)點(diǎn)發(fā)送數(shù)據(jù)。當(dāng)源節(jié)點(diǎn)收到PREP后,若源節(jié)點(diǎn)為集中器節(jié)點(diǎn),則提取PREP的全路由段和目的地址,然后添加相應(yīng)路由信息至本地“目的節(jié)點(diǎn)-B區(qū)節(jié)點(diǎn)映射表”和“至RlB區(qū)節(jié)點(diǎn)路由表” 中;若源節(jié)點(diǎn)為終端節(jié)點(diǎn),則記錄其自身到集中器節(jié)點(diǎn)的反向路由信息至本地“反向路由轉(zhuǎn)發(fā)表”中;當(dāng)源節(jié)點(diǎn)的定時(shí)器超時(shí)卻沒(méi)有收到相應(yīng)的PREP,若此時(shí)還沒(méi)達(dá)到最大PREQ重發(fā)次數(shù),源節(jié)點(diǎn)則重新發(fā)起路由請(qǐng)求過(guò)程。源節(jié)點(diǎn)收到多份PREP后,將所有PREP的全路由段存儲(chǔ)于本地緩存,并以最優(yōu)全路由段作為數(shù)據(jù)發(fā)送的默認(rèn)路徑;最優(yōu)全路由段為目的節(jié)點(diǎn)最先收到的PREQ的全路由段。如圖7所示,若源節(jié)點(diǎn)為集中器節(jié)點(diǎn),源節(jié)點(diǎn)根據(jù)默認(rèn)路徑構(gòu)造PDATA(將最優(yōu)全路由段中距集中器節(jié)點(diǎn)最近的R0UTE_IN_PKT_C0UNT個(gè)地址復(fù)制到PDATA中的RlB區(qū)路由段中,將RouteHops設(shè)為R0UTE_IN_PKT_C0UNT),源節(jié)點(diǎn)和Rl區(qū)節(jié)點(diǎn)將PDATA按其RlB區(qū)路由段逐跳通過(guò)Rl區(qū)發(fā)送至B區(qū)節(jié)點(diǎn),B區(qū)節(jié)點(diǎn)和R2區(qū)節(jié)點(diǎn)按各自的正向路由信息將PDATA 逐跳通過(guò)R2區(qū)發(fā)送至目的節(jié)點(diǎn);若源節(jié)點(diǎn)為終端節(jié)點(diǎn),源節(jié)點(diǎn)構(gòu)造PDATA (將PDATA中的RouteHops設(shè)為0,R1B區(qū)路由段設(shè)為空),源節(jié)點(diǎn)和R2區(qū)節(jié)點(diǎn)按各自的反向路由信息將PDATA逐跳通過(guò)R2區(qū)發(fā)送至 B區(qū)節(jié)點(diǎn);B區(qū)節(jié)點(diǎn)查找本地“至集中器節(jié)點(diǎn)路由表”,根據(jù)其自身到集中器節(jié)點(diǎn)的路由段信息設(shè)定PDATA的RouteHops為R0UTE_IN_PKT_C0UNT,再將至集中器節(jié)點(diǎn)路由表中的對(duì)應(yīng)的 R0UTE_IN_PKT_C0UNT個(gè)地址填入PDATA的RlB區(qū)路由段中,B區(qū)節(jié)點(diǎn)和Rl區(qū)節(jié)點(diǎn)將PDATA 按其RlB區(qū)路由段逐跳通過(guò)Rl區(qū)發(fā)送至目的節(jié)點(diǎn);如圖3所示,PDATA包含類型域、源節(jié)點(diǎn)地址、目的節(jié)點(diǎn)地址、ID號(hào)、RlB區(qū)路由段、 Payload和RouteHops。其中PDATA的類型域?yàn)?X04,Payload區(qū)為上層傳來(lái)的有效數(shù)據(jù)信息,RouteHops為數(shù)據(jù)包RlB區(qū)路由段的長(zhǎng)度信息。當(dāng)路由段長(zhǎng)度不為O時(shí),RlB區(qū)路由段記錄的是集中器節(jié)點(diǎn)到達(dá)相應(yīng)B區(qū)節(jié)點(diǎn)的全段路由信息。
(6)多路徑修復(fù)維護(hù)全路由段。當(dāng)最優(yōu)全路由段中兩節(jié)點(diǎn)間的鏈路斷開(kāi)或某中間節(jié)點(diǎn)失效時(shí),斷路發(fā)現(xiàn)節(jié)點(diǎn)需要根據(jù)其所在區(qū)域以及數(shù)據(jù)流向使用路由信息修復(fù)全路由段;如果無(wú)法對(duì)全路由段進(jìn)行修復(fù),則需要向上游節(jié)點(diǎn)發(fā)送PERR。如圖4所示,PERR包含類型域、源節(jié)點(diǎn)地址、目的節(jié)點(diǎn)地址、ID號(hào)、斷路發(fā)現(xiàn)節(jié)點(diǎn)地址、斷路節(jié)點(diǎn)地址、RlB區(qū)路由段和RouteHops。其中PERR的類型域?yàn)?X08,斷路發(fā)現(xiàn)節(jié)點(diǎn)地址和斷路節(jié)點(diǎn)地址可準(zhǔn)確定位斷路的鏈路。如圖8所示,當(dāng)數(shù)據(jù)流向?yàn)榧衅鞴?jié)點(diǎn)到終端節(jié)點(diǎn)時(shí),當(dāng)斷路發(fā)生在Rl區(qū)內(nèi)時(shí),由斷路發(fā)現(xiàn)節(jié)點(diǎn)構(gòu)造PERR并直接向源節(jié)點(diǎn)發(fā)送PERR ;當(dāng)斷路發(fā)生在R2區(qū)內(nèi)時(shí),斷路發(fā)現(xiàn)節(jié)點(diǎn)首先嘗試使用本地“正向路由轉(zhuǎn)發(fā)表”尋找別的中間節(jié)點(diǎn)建立鏈接,若“正向路由轉(zhuǎn)發(fā)表”已無(wú)可用路徑,則構(gòu)造PERR并按照本地 “反向路由轉(zhuǎn)發(fā)表”發(fā)送PERR至上游節(jié)點(diǎn);上游節(jié)點(diǎn)收到PERR后重復(fù)上述本地修復(fù)操作,直至B區(qū)節(jié)點(diǎn);當(dāng)PERR到達(dá)B區(qū)節(jié)點(diǎn),B區(qū)節(jié)點(diǎn)首先查找本地“正向路由轉(zhuǎn)發(fā)表”尋找別的中間節(jié)點(diǎn)建立鏈接,若“正向路由轉(zhuǎn)發(fā)表”已無(wú)可用路徑,則按照本地“至集中器節(jié)點(diǎn)路由表” 中的路由段信息,向源節(jié)點(diǎn)直接發(fā)送PERR。當(dāng)數(shù)據(jù)流向?yàn)榻K端節(jié)點(diǎn)到集中器節(jié)點(diǎn)時(shí),當(dāng)斷路發(fā)生在Rl區(qū)內(nèi)時(shí),由斷路發(fā)現(xiàn)節(jié)點(diǎn)構(gòu)造PERR并直接向B區(qū)節(jié)點(diǎn)發(fā)送PERR ;若PERR到達(dá)B區(qū)節(jié)點(diǎn),由B區(qū)節(jié)點(diǎn)查找本地“正向路由轉(zhuǎn)發(fā)表”轉(zhuǎn)發(fā)PERR至源節(jié)點(diǎn);當(dāng)斷路發(fā)生在R2區(qū)內(nèi)時(shí),斷路發(fā)現(xiàn)節(jié)點(diǎn)首先查找本地“反向路由轉(zhuǎn)發(fā)表”尋找別的中間節(jié)點(diǎn)建立鏈接,若“反向路由轉(zhuǎn)發(fā)表”已無(wú)可用路徑,則構(gòu)造PERR并按照本地“正向路由轉(zhuǎn)發(fā)表”發(fā)送PERR至上游節(jié)點(diǎn);上游節(jié)點(diǎn)收到PERR后重復(fù)上述本地修復(fù)操作,直至源節(jié)點(diǎn)。源節(jié)點(diǎn)收到PERR后,刪除本地緩存中的最優(yōu)全路由段,并選擇本地緩存中的其他全路由段作為數(shù)據(jù)發(fā)送的默認(rèn)路徑,執(zhí)行步驟(5);若本地緩存中無(wú)其他全路由段,重復(fù)步驟(1)至(5)。
權(quán)利要求
1.一種基于主從結(jié)構(gòu)多跳網(wǎng)絡(luò)的多路徑分段路由方法,包括如下步驟(1)源節(jié)點(diǎn)構(gòu)造PREQ,并向其周圍節(jié)點(diǎn)廣播PREQ;中間節(jié)點(diǎn)收到PREQ后,向其周圍節(jié)點(diǎn)選擇性廣播PREQ,直至多份PREQ經(jīng)過(guò)不同路徑到達(dá)目的節(jié)點(diǎn);所述的源節(jié)點(diǎn)和目的節(jié)點(diǎn)分別為集中器節(jié)點(diǎn)和終端節(jié)點(diǎn)或終端節(jié)點(diǎn)和集中器節(jié)點(diǎn);(2)目的節(jié)點(diǎn)收到多份PREQ后,根據(jù)PREQ的全路由段對(duì)PREQ進(jìn)行無(wú)環(huán)路篩選,并將篩選后保留的PREQ存儲(chǔ)于本地緩存;(3)對(duì)保留的PREQ的全路由段進(jìn)行區(qū)域劃分某一全路由段中,將距離集中器節(jié)點(diǎn)小于區(qū)域跳數(shù)的中間節(jié)點(diǎn)劃分為Rl區(qū);將距離集中器節(jié)點(diǎn)等于區(qū)域跳數(shù)的中間節(jié)點(diǎn)劃分為B 區(qū);將距離集中器節(jié)點(diǎn)大于區(qū)域跳數(shù)的中間節(jié)點(diǎn)劃分為R2區(qū);(4)目的節(jié)點(diǎn)根據(jù)保留的PREQ的全路由段構(gòu)造對(duì)應(yīng)的PREP,并將PREP按其全路由段單播回傳至源節(jié)點(diǎn);回傳過(guò)程中,Rl區(qū)節(jié)點(diǎn)記錄其自身到集中器節(jié)點(diǎn)的路由段信息;R2區(qū)節(jié)點(diǎn)記錄其自身分別到終端節(jié)點(diǎn)和集中器節(jié)點(diǎn)的正向路由信息和反向路由信息;B區(qū)節(jié)點(diǎn)記錄其自身到集中器節(jié)點(diǎn)的路由段信息以及其自身到終端節(jié)點(diǎn)的正向路由信息;終端節(jié)點(diǎn)記錄其自身到集中器節(jié)點(diǎn)的反向路由信息;(5)源節(jié)點(diǎn)收到多份PREP后,將所有PREP的全路由段存儲(chǔ)于本地緩存,并以最優(yōu)全路由段作為數(shù)據(jù)發(fā)送的默認(rèn)路徑;若源節(jié)點(diǎn)為集中器節(jié)點(diǎn),源節(jié)點(diǎn)根據(jù)默認(rèn)路徑構(gòu)造PDATA,源節(jié)點(diǎn)和Rl區(qū)節(jié)點(diǎn)將PDATA 按其RlB區(qū)路由段逐跳通過(guò)Rl區(qū)發(fā)送至B區(qū)節(jié)點(diǎn),B區(qū)節(jié)點(diǎn)和R2區(qū)節(jié)點(diǎn)按各自的正向路由信息將PDATA逐跳通過(guò)R2區(qū)發(fā)送至目的節(jié)點(diǎn);若源節(jié)點(diǎn)為終端節(jié)點(diǎn),源節(jié)點(diǎn)構(gòu)造PDATA,源節(jié)點(diǎn)和R2區(qū)節(jié)點(diǎn)按各自的反向路由信息將PDATA逐跳通過(guò)R2區(qū)發(fā)送至B區(qū)節(jié)點(diǎn);B區(qū)節(jié)點(diǎn)根據(jù)其自身到集中器節(jié)點(diǎn)的路由段信息設(shè)定PDATA的RlB區(qū)路由段,B區(qū)節(jié)點(diǎn)和Rl區(qū)節(jié)點(diǎn)將PDATA按其RlB區(qū)路由段逐跳通過(guò)Rl 區(qū)發(fā)送至目的節(jié)點(diǎn);(6)當(dāng)最優(yōu)全路由段發(fā)生斷路時(shí),斷路發(fā)現(xiàn)節(jié)點(diǎn)根據(jù)其所在區(qū)域以及數(shù)據(jù)流向選擇使用路由信息修復(fù)全路由段或構(gòu)造PERR向其上游節(jié)點(diǎn)發(fā)送PERR ;上游節(jié)點(diǎn)接收PERR,并根據(jù)其所在區(qū)域以及數(shù)據(jù)流向選擇使用路由信息修復(fù)全路由段或向其上游節(jié)點(diǎn)轉(zhuǎn)發(fā)PERR,直至源節(jié)點(diǎn)收到PERR ;源節(jié)點(diǎn)收到PERR后,刪除本地緩存中的最優(yōu)全路由段,并選擇本地緩存中的其他全路由段作為數(shù)據(jù)發(fā)送的默認(rèn)路徑,執(zhí)行步驟(5);若本地緩存中無(wú)其他全路由段,重復(fù)步驟 (1)至⑶。
2.根據(jù)權(quán)利要求1所述的基于主從結(jié)構(gòu)多跳網(wǎng)絡(luò)的多路徑分段路由方法,其特征在于所述的步驟(1)中,選擇性廣播PREQ為當(dāng)中間節(jié)點(diǎn)首次收到某一路徑的PREQ時(shí),中間節(jié)點(diǎn)記錄該P(yáng)REQ的Hops和上一跳節(jié)點(diǎn)地址,并廣播該P(yáng)REQ ;當(dāng)中間節(jié)點(diǎn)非首次收到某一路徑的PREQ時(shí),若該P(yáng)REQ的Hops小于或等于中間節(jié)點(diǎn)已記錄的Hops且該P(yáng)REQ的上一跳節(jié)點(diǎn)地址與中間節(jié)點(diǎn)對(duì)應(yīng)記錄的不同,則廣播該P(yáng)REQ,否則,丟棄該P(yáng)REQ ;廣播PREQ時(shí),中間節(jié)點(diǎn)將自身的地址添加到PREQ的全路由段尾部。
3.根據(jù)權(quán)利要求1所述的基于主從結(jié)構(gòu)多跳網(wǎng)絡(luò)的多路徑分段路由方法,其特征在于所述的步驟O)中,對(duì)PREQ進(jìn)行無(wú)環(huán)路篩選采用拓?fù)渑判蚍ā?br>
4.根據(jù)權(quán)利要求1所述的基于主從結(jié)構(gòu)多跳網(wǎng)絡(luò)的多路徑分段路由方法,其特征在于所述的最優(yōu)全路由段為目的節(jié)點(diǎn)最先收到的PREQ的全路由段。
5.根據(jù)權(quán)利要求1所述的基于主從結(jié)構(gòu)多跳網(wǎng)絡(luò)的多路徑分段路由方法,其特征在于所述的正向路由信息為某一全路由段中當(dāng)前節(jié)點(diǎn)背離集中器節(jié)點(diǎn)的下一跳節(jié)點(diǎn)地址; 所述的反向路由信息為某一全路由段中當(dāng)前節(jié)點(diǎn)去往集中器節(jié)點(diǎn)的下一跳節(jié)點(diǎn)地址。
全文摘要
本發(fā)明公開(kāi)了一種基于主從結(jié)構(gòu)多跳網(wǎng)絡(luò)的多路徑分段路由方法,包括(1)源節(jié)點(diǎn)發(fā)送路由請(qǐng)求;(2)目的節(jié)點(diǎn)接收路由請(qǐng)求,并進(jìn)行無(wú)環(huán)路篩選;(3)對(duì)篩選后的全路由段進(jìn)行區(qū)域劃分;(4)目的節(jié)點(diǎn)發(fā)送路由回復(fù),中間節(jié)點(diǎn)存儲(chǔ)路由信息;(5)源節(jié)點(diǎn)接收路由回復(fù),并向目標(biāo)節(jié)點(diǎn)發(fā)送數(shù)據(jù);(6)多路徑修復(fù)維護(hù)全路由段。本發(fā)明通過(guò)建立和維護(hù)源節(jié)點(diǎn)至目的節(jié)點(diǎn)的多條路由路徑,使得在默認(rèn)路徑出現(xiàn)斷路時(shí)快速切換到備用路徑,從而保障數(shù)據(jù)的可靠傳輸,并減少路由重建頻率,減少路由開(kāi)銷;同時(shí)通過(guò)對(duì)全路由段進(jìn)行區(qū)域劃分,避免了主從結(jié)構(gòu)多跳網(wǎng)絡(luò)中靠近集中器的節(jié)點(diǎn)本地轉(zhuǎn)發(fā)表規(guī)模過(guò)大,增加了數(shù)據(jù)包中有效載荷比重,提高了數(shù)據(jù)傳遞率。
文檔編號(hào)H04L12/56GK102255807SQ20111018937
公開(kāi)日2011年11月23日 申請(qǐng)日期2011年7月7日 優(yōu)先權(quán)日2011年7月7日
發(fā)明者丁雪麗, 于強(qiáng), 倪笑園, 徐元欣, 李永佳, 楊碩, 梁書(shū)成, 潘立波, 章翠枝, 陳淑敏 申請(qǐng)人:浙江大學(xué)