亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于剩余帶寬的毫米波網(wǎng)絡(luò)多路徑回傳路由方法與流程

文檔序號:11158186閱讀:542來源:國知局
本發(fā)明涉及通信
技術(shù)領(lǐng)域
,尤其是一種毫米波微小區(qū)網(wǎng)絡(luò)的回傳路由方法。
背景技術(shù)
:毫米波通信技術(shù)用于拓展5G移動(dòng)通信系統(tǒng)的傳輸帶寬在業(yè)界已經(jīng)達(dá)成共識。大規(guī)模MIMO技術(shù)助力毫米波通信提升5G蜂窩網(wǎng)絡(luò)頻譜效率,而毫米波的高路損、易衰落等特性決定其傳輸方式為視距(LineofSight,LOS)傳播方式,這也使得其覆蓋范圍低至50m-100m的范圍內(nèi)。因此,5G蜂窩網(wǎng)絡(luò)中產(chǎn)生了毫米波微小區(qū)的概念。這種超密集部署的毫米波微小區(qū)網(wǎng)絡(luò)對于滿足提升網(wǎng)絡(luò)性能的需求有諸多裨益,此時(shí)最關(guān)鍵的問題是如何將微小區(qū)基站的用戶數(shù)據(jù)回傳至核心網(wǎng)絡(luò),即回傳問題成為最大的挑戰(zhàn)。目前在回傳方法的設(shè)計(jì)中,一種方案是利用光纖的方式將各毫米波微小區(qū)基站直接連接至核心網(wǎng)絡(luò),該方案雖然能夠在數(shù)據(jù)傳輸?shù)目煽啃院蛯?shí)時(shí)性方面表現(xiàn)出顯著優(yōu)勢,但其實(shí)施難度和建設(shè)代價(jià)都讓業(yè)界難以接受,在本發(fā)明中將該類方案稱為“全光纖回傳”方案;另一種方案是利用毫米波無線通信在大部分微小區(qū)基站間進(jìn)行數(shù)據(jù)傳輸,而在少數(shù)毫米波微小區(qū)基站上利用光纖通信的方式連接至核心網(wǎng)絡(luò),所有未連接光纖的微小區(qū)基站通過毫米波無線多跳中繼的方式將數(shù)據(jù)傳輸至連接光纖的微小區(qū)基站,在本發(fā)明中將該類方案稱為“光纖/毫米波混合回傳”方案,光纖/毫米波混合回傳方案不但在一定程度上能夠保證數(shù)據(jù)傳輸質(zhì)量,而且在實(shí)現(xiàn)代價(jià)上也有突出優(yōu)勢,因此該方案成為5G毫米波微小區(qū)網(wǎng)絡(luò)中的潛在回傳方案。但在這種光纖/毫米波混合回傳方案中,如何將全網(wǎng)數(shù)據(jù)通過無線多跳的方式匯聚至連接光纖的微小區(qū)基站是實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)年P(guān)鍵問題。具體的問題主要有:路徑建立、路徑維護(hù)、路徑拆除等。技術(shù)實(shí)現(xiàn)要素:為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提出了一種基于剩余帶寬的多徑多匯回傳路由方法,利用動(dòng)態(tài)源路由原理進(jìn)行路徑發(fā)現(xiàn)和路徑維護(hù),并完成:1)當(dāng)源節(jié)點(diǎn)(即發(fā)起路徑建立流程的毫米波微小區(qū)基站)檢測到當(dāng)前路由路徑的帶寬不能夠滿足本節(jié)點(diǎn)所承擔(dān)的回傳負(fù)載時(shí),發(fā)起路由發(fā)現(xiàn)流程;2)當(dāng)已建立的某個(gè)路徑路由生存時(shí)間小于門限值時(shí),對該路徑進(jìn)行預(yù)約及維護(hù);3)當(dāng)源節(jié)點(diǎn)檢測到當(dāng)前路由路徑的帶寬超過本節(jié)點(diǎn)所承擔(dān)的回傳負(fù)載對應(yīng)的門限值時(shí),拆除一條路由路徑。另外,本發(fā)明不需要各節(jié)點(diǎn)存儲全網(wǎng)的路徑信息,僅需要存儲其鄰居節(jié)點(diǎn)的信息即可。本發(fā)明中,當(dāng)毫米波蜂窩回傳網(wǎng)絡(luò)中的所有基站完成加電啟動(dòng)、波束掃描、波束對準(zhǔn)以及相鄰節(jié)點(diǎn)發(fā)現(xiàn)等一系列與入網(wǎng)相關(guān)的初始化工作之后,將在節(jié)點(diǎn)路由層依次執(zhí)行下述實(shí)施步驟:步驟1.創(chuàng)建用于存儲鄰居節(jié)點(diǎn)信息和路由信息的鄰節(jié)點(diǎn)表和路由表,其中鄰節(jié)點(diǎn)表如下表所示:其中,NbrID為鄰居節(jié)點(diǎn)表節(jié)點(diǎn)序列號,Nbr_Addr為鄰節(jié)點(diǎn)地址號,BH_BW_LEFT為鄰節(jié)點(diǎn)回傳鏈路剩余總帶寬,NBR_LINK_BW_LEFT(NeighborhoodLinkBandwidthLeft)為與該鄰節(jié)點(diǎn)所有回傳鏈路上的剩余帶寬,Self_Sector_Links為與該鄰節(jié)點(diǎn)在某扇區(qū)中相連的所有回傳鏈路數(shù);路由表如下表所示:PathIDDestination_PathnoValidBWLefttimeStamps/PathRealloc12其中,PathID為路徑ID號,Destination_Pathno為路徑目的端指定的序列號,設(shè)置為RREP包中的PATHNO,Valid表示該路徑目前是否有效可用的標(biāo)示位,BW為該路徑的帶寬,該值設(shè)置為RREP包中的BH_BW_REQ,Lefttime為該路徑的有效生存時(shí)間,初始化為T,Stamps/Path為該路徑上所有節(jié)點(diǎn)的ID/地址,realloc為擴(kuò)展路由表信息預(yù)留字段;設(shè)置鄰節(jié)點(diǎn)發(fā)現(xiàn)計(jì)時(shí)器Nbr_Timer之后轉(zhuǎn)入步驟2,否則繼續(xù)停留在步驟1建立節(jié)點(diǎn)的鄰節(jié)點(diǎn)表和路由表;步驟2.判斷鄰節(jié)點(diǎn)發(fā)現(xiàn)計(jì)時(shí)器Nbr_Timer是否超時(shí),如果Nbr_Timer超時(shí)則轉(zhuǎn)步驟3,否則轉(zhuǎn)步驟4;步驟3.創(chuàng)建用于鄰節(jié)點(diǎn)間帶寬信息交互的信令包HELLO,具體的包格式及字段劃分如下:TYPESEQNOSADABH_BW_LEFTNBR_LINK_BW_LEFT其中,TYPE表示HELLO包的類型標(biāo)志位,本發(fā)明設(shè)為0;SEQNO(SequenceNumber)表示此HELLO信令包的序列號,SA(SourceAddress)表示此HELLO信令包的源地址,DA(DestinationAddress)表示此HELLO信令包的目的端地址,即鄰居節(jié)點(diǎn)地址,BH_BW_LEFT(BackhaulBandwidth)表示本節(jié)點(diǎn)所有回傳路徑總的剩余帶寬,當(dāng)節(jié)點(diǎn)無回傳路徑路由時(shí),該值設(shè)為0,NBR_LINK_BW_LEFT表示與該鄰節(jié)點(diǎn)的所有回傳鏈路上的剩余帶寬;向所有鄰節(jié)點(diǎn)發(fā)送HELLO包,并重置鄰節(jié)點(diǎn)發(fā)現(xiàn)計(jì)時(shí)器Nbr_Timer,之后轉(zhuǎn)入步驟2,否則繼續(xù)停留在步驟3建立HELLO信令包并向鄰節(jié)點(diǎn)發(fā)送;步驟4.路由表檢查與維護(hù)通過步驟4.1的計(jì)算檢查是否需要建立新的路徑,通過步驟4.2計(jì)算檢查是否需要拆除某條路徑,通過步驟4.3檢查路由表中是否有超過有效時(shí)間失效的路徑;步驟4.1:判斷節(jié)點(diǎn)當(dāng)前所有路徑的帶寬之和與回傳負(fù)載BW_LOAD的關(guān)系,如則確定回傳請求帶寬其中α為權(quán)重因子,取值范圍為[0,1],S為扇區(qū)個(gè)數(shù),B為波束個(gè)數(shù),S和B均取非負(fù)整數(shù),轉(zhuǎn)入步驟6開啟路由發(fā)現(xiàn),否則時(shí)轉(zhuǎn)步驟4.2;步驟4.2:如果則從路由表中隨機(jī)選擇一條帶寬小于α×BW_LOAD的路徑,產(chǎn)生路徑刪除信令包RDEL,具體包格式及字段劃分如下:TYPEPATHNOSADABH_BW_REQSTAMP_NUMSTAMP1…STAMPn其中TYPE表示RDEL包類型標(biāo)志位,本發(fā)明中設(shè)為3,PATHNO表示根據(jù)路由的目的節(jié)點(diǎn)所確定的路徑序列號,SA表示發(fā)送端地址,DA表示接收端地址,BH_BW_REQ表示待刪除路徑上的帶寬,即原RREQ中的剩余帶寬請求值,STAMP_NUM表示待刪除路徑中的所有節(jié)點(diǎn)數(shù),STAMP1到STAMPn分別表示待刪除路徑上第1到第n個(gè)中間節(jié)點(diǎn)的地址;節(jié)點(diǎn)找出自己路由表中Destination_Pathno為PATHNO所包含的Stamps/Path,復(fù)制在刪除信令包RDEL的STAMP域內(nèi)并向下一跳鄰節(jié)點(diǎn)發(fā)送,更新節(jié)點(diǎn)回傳鏈路剩余帶寬信息,即找出鄰居節(jié)點(diǎn)表中Nbr_Addr為RDEL中STAMP2的NBR_LINK_BW_LEFT和BH_BW_LEFT,NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT+BH_BW_REQ,BH_BW_LEFT=BH_BW_LEFT+BH_BW_REQ,同時(shí)刪除路由表中該條路徑信息,否則轉(zhuǎn)入步驟4.3;步驟4.3:查找鄰居節(jié)點(diǎn)表中NbrAddr和路由表STAMP域中相同的條目,對比鄰居節(jié)點(diǎn)表中的NBR_LINK_BW_LEFT和路由表中的BW,若NBR_LINK_BW_LEFT>BW,則找出路由表中Valid=0的路由條目,當(dāng)路由路徑剩余生存時(shí)間小于門限時(shí),設(shè)置Valid=1;否則查找路由表中路徑valid=0且其剩余生存時(shí)間小于門限的條目,產(chǎn)生該路徑的路徑刪除信令包RDEL并發(fā)送,刪除路由表中該條路徑信息,更新鏈路剩余帶寬信息,以釋放該條路徑,否則轉(zhuǎn)入步驟5;步驟5.如果節(jié)點(diǎn)接收到數(shù)據(jù)包則判斷接收到的數(shù)據(jù)包的類型,則做出如下處理:首先判斷該包是否是來自本節(jié)點(diǎn)上層,如果是則轉(zhuǎn)步驟5.1,否則數(shù)據(jù)包是下層提交至路由層的,進(jìn)而判斷如果接收到的是HELLO信令包則轉(zhuǎn)步驟5.2,如果接收到的是路由信息請求信令包RREQ,則轉(zhuǎn)入步驟5.3;數(shù)據(jù)包處理結(jié)束后,轉(zhuǎn)步驟2;信令包RREQ具體包格式及字段劃分如下:TYPESEQNOSADATTLBH_BW_REQSTAMP_NUMSTAMP1…STAMPn其中,TYPE表示RREQ包的類型標(biāo)志位,本發(fā)明中設(shè)為1,SEQNO表示該RREQ包序列號,SA表示產(chǎn)生此RREQ源節(jié)點(diǎn)地址,DA表示此RREQ包要到達(dá)的目的節(jié)點(diǎn)地址;TTL(TimeToLive)為包生存周期,表示該RREQ剩余可轉(zhuǎn)發(fā)跳數(shù),初始值設(shè)為15,BH_BW_REQ表示該RREQ所尋找路徑要滿足的請求帶寬,STAMP_NUM表示該RREQ包已尋找到的路徑節(jié)點(diǎn)數(shù),表示該域后面還有相應(yīng)地到達(dá)目的節(jié)點(diǎn)時(shí)已經(jīng)過的STAMP_NUM個(gè)中間節(jié)點(diǎn)的地址,源節(jié)點(diǎn)設(shè)置該域值為0,最大值設(shè)置為15,超過15則表示為路徑不可達(dá),STAMPn表示該RREQ包已尋找到的路徑上第n個(gè)中間節(jié)點(diǎn)的地址;如果接收到路由信息應(yīng)答信令包RREP,則轉(zhuǎn)入步驟5.4,信令包RREP具體包格式及字段劃分如下:TYPEPATHNOSADABH_BW_REQSTAMP_NUMSTAMP1…STAMPn其中,TYPE表示RREP包類型標(biāo)志位,本發(fā)明中設(shè)為2,PATHNO表示根據(jù)路由的目的節(jié)點(diǎn)所確定的路徑序列號,SA表示發(fā)送端地址,即原路徑請求的目的節(jié)點(diǎn)地址,也即網(wǎng)關(guān)節(jié)點(diǎn)地址,DA表示接收端地址,即原路徑請求的源節(jié)點(diǎn)地址,也即相應(yīng)RREQ的源地址,BH_BW_REQ表示該RREP包應(yīng)答的路徑帶寬,即原RREQ中的剩余帶寬請求值,STAMP_NUM表示該RREP包路徑中的所有節(jié)點(diǎn)數(shù),表示該域后面還有STAMP_NUM個(gè)中間節(jié)點(diǎn)的地址,源節(jié)點(diǎn)設(shè)置STAMP_NUM為0,STAMPn表示該RREP包已尋找到的路徑上第n個(gè)中間節(jié)點(diǎn)的地址;如果收到的是鏈路刪除信令包RDEL,則轉(zhuǎn)入步驟5.5,之后轉(zhuǎn)入步驟2,否則繼續(xù)停留在步驟5進(jìn)行包處理;步驟5.1:根據(jù)回傳數(shù)據(jù)速率要求,從路由表中滿足帶寬需求的路由路徑中隨機(jī)選擇一條,在包頭中加上相應(yīng)的路徑組成路由數(shù)據(jù)包RDAT進(jìn)行數(shù)據(jù)發(fā)送,如果不存在這樣的路徑,則緩存數(shù)據(jù)等待路由表更新,緩存超時(shí)則丟棄該數(shù)據(jù)包,數(shù)據(jù)包RDAT具體包格式及字段劃分如下:TYPESEQNOSADABH_BW_REQSTAMP_NUMSTAMP1…STAMPnDATALOAD其中,TYPE表示路由包類型標(biāo)志位,本發(fā)明設(shè)為4,SEQNO表示路由數(shù)據(jù)包的序列號,SA表示發(fā)送端地址,DA表示接收端地址,BH_BW_REQ表示數(shù)據(jù)傳輸帶寬,STAMP_NUM表示待刪除路徑中的所有節(jié)點(diǎn)數(shù),STAMPn表示待刪除路徑上第n個(gè)中間節(jié)點(diǎn)的地址,DATALOAD表示回傳數(shù)據(jù)負(fù)載;步驟5.2:根據(jù)HELLO包中SA,用HELLO包中的BH_BW_LEFT和NBR_LINK_BW_LEFT替換鄰節(jié)點(diǎn)表NbrAddr和HELLO包中SA相同的條目對應(yīng)的BH_BW_LEFT和NBR_LINK_BW_LEFT,隨后銷毀該HELLO包;步驟5.3:將RREQ轉(zhuǎn)發(fā)至收到此RREQ包的節(jié)點(diǎn)的鄰節(jié)點(diǎn)稱為inNbr,將RREQ由收到此RREQ包的節(jié)點(diǎn)轉(zhuǎn)發(fā)至下一跳的鄰節(jié)點(diǎn)稱為outNbr,當(dāng)收到RREQ的節(jié)點(diǎn)收到RREQ之后,判斷RREQ中的目的地址域DA是否為本節(jié)點(diǎn)的地址,如果本節(jié)點(diǎn)為RREQ的目的節(jié)點(diǎn),則執(zhí)行以下步驟:1)TTL檢查:判斷如果TTL≥0則繼續(xù)執(zhí)行步驟2),否則丟棄該包;2)路由環(huán)路檢查:判斷該節(jié)點(diǎn)是否已經(jīng)在此RREQ包的STAMP域中,如果不存在則繼續(xù)執(zhí)行步驟3),否則丟棄該包;3)產(chǎn)生RREP包:產(chǎn)生一個(gè)空RREP包后,將產(chǎn)生空RREP包的節(jié)點(diǎn)的自身地址填入RREP的SA,將RREQ中的SA填寫為RREP的DA,將TYPE填寫為2,此處TYPE為區(qū)別包類型的數(shù)字,可設(shè)置其他數(shù)字,但不能與其他包類型的數(shù)字重疊,將RREQ的STAMP域反向后寫入RREP中的STAMP域,將RREQ中的BH_BW_REQ值寫入RREP中的BH_BW_REQ域;4)向STAMP域中的下一跳節(jié)點(diǎn)發(fā)送RREP包;如果本節(jié)點(diǎn)不是RREQ的目的節(jié)點(diǎn),則依次執(zhí)行以下內(nèi)容:1)判斷包中TTL值,如果TTL=0,丟棄該包,否則執(zhí)行2);2)檢查STAMPn域是否包含本節(jié)點(diǎn)ID,如果包含則丟棄該包,否則,執(zhí)行3);3)如果路由表不為空,比較路由表中BW和RREQ中的BH_BW_REQ,若BW>BH_BW_REQ,則按照路由表中有效valid=1且Lefttime最大的原則選擇一條滿足帶寬的路徑,將該路徑組成RREP并向RREQ源節(jié)點(diǎn)發(fā)送,更新鄰居節(jié)點(diǎn)表中NbrAddr為inNbr條目的BH_BW_LEFT=BH_BW_LEFT-BH_BW_REQ、NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT-BH_BW_REQ,否則,執(zhí)行4);4)確定可轉(zhuǎn)發(fā)RREQ包的鄰節(jié)點(diǎn)集合:NBRS={鄰節(jié)點(diǎn)表中Nbr_LinkBw_Left>BH_BW_REQ的所有鄰節(jié)點(diǎn)}–{STAMP域中本節(jié)點(diǎn)的鄰節(jié)點(diǎn)inNbr},如果NBRS為空,則丟棄該RREQ包,轉(zhuǎn)入步驟2;如果NBRS不為空,則更新鄰節(jié)點(diǎn)表中NbrAddr為inNbr的條目的剩余帶寬信息:NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT-BH_BW_REQ,同時(shí)設(shè)置計(jì)時(shí)器timer(RREQ.SEQNO,inNbr_LinkBw_Left,BH_BW_REQ,T)的有效時(shí)間為T,超時(shí)則重置鄰居節(jié)點(diǎn)表中NbrAddr為inNbr的路由條目的剩余帶寬信息:NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT+BH_BW_REQ),其中計(jì)時(shí)器timer(RREQ.SEQNO,inNbr_LinkBw_Left,BH_BW_REQ,T)為收到RREQ序列號為SEQNO、請求帶寬為BH_BW_REQ且發(fā)送此包的節(jié)點(diǎn)鏈路剩余帶寬為inNbr_LinkBw_Left時(shí)設(shè)置的有效時(shí)長為T定時(shí)器,即該定時(shí)器有四個(gè)屬性:標(biāo)記RREQ序列號、標(biāo)記發(fā)送該包的剩余帶寬、標(biāo)記請求帶寬、標(biāo)記該計(jì)時(shí)器的有效時(shí)間T;隨后更新TTL=TTL-1,并向節(jié)點(diǎn)集NBRS中的每一個(gè)鄰節(jié)點(diǎn)outNbr發(fā)送RREQ,同時(shí)更新鄰節(jié)點(diǎn)表中NbrAddr為outNbr的條目的回傳鏈路剩余帶寬信息:NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT-BH_BW_REQ,并設(shè)置計(jì)時(shí)器timer(RREQ.SEQNO,outNbr_LinkBw_Left,BH_BW_REQ,T)的有效時(shí)間為T(計(jì)時(shí)器timer(RREQ.SEQNO,outNbr_LinkBw_Left,BH_BW_REQ,T)超時(shí)則重置鄰居節(jié)點(diǎn)表中NbrAddr為outNbr的剩余帶寬信息,即:NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT+BH_BW_REQ));步驟5.4:令轉(zhuǎn)發(fā)來RREP包的鄰節(jié)點(diǎn)為outNbr,RREP包STAMP域中指定的本節(jié)點(diǎn)的下一跳鄰節(jié)點(diǎn)為inNbr,當(dāng)節(jié)點(diǎn)收到RREP信令包之后,查看信令包的目的地址,如果目的地址是本節(jié)點(diǎn),則執(zhí)行1),否則執(zhí)行2);1)將RREP包中的路徑添加到路由表中,查找標(biāo)識為DA.SEQNO的計(jì)時(shí)器:如果計(jì)時(shí)器timer(RREQ.SEQNO,Nbr_LinkBw_Left,BH_BW_REQ,T)尚未超時(shí),則取消計(jì)時(shí)器timer(RREQ.SEQNO,Nbr_LinkBw_Left,BH_BW_REQ,T),并設(shè)置Valid=1;如果計(jì)時(shí)器timer(RREQ.SEQNO,Nbr_LinkBw_Left,BH_BW_REQ,T)超時(shí),并且鄰居節(jié)點(diǎn)表中NbrAddr為outNbr的NBR_LINK_BW_LEFT滿足NBR_LINK_BW_LEFT-BH_BW_REQ≥0,則NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT-BH_BW_REQ,并設(shè)置Valid=1,否則,設(shè)置Valid=0;2)查找計(jì)時(shí)器timer(RREQ.SEQNO,outNbr_LinkBw_Left,BH_BW_REQ,T),并取消該計(jì)時(shí)器;查找計(jì)時(shí)器timer(RREQ.SEQNO,inNbr_LinkBw_Left,BH_BW_REQ,T),如果計(jì)時(shí)器timer(RREQ.SEQNO,inNbr_LinkBw_Left,BH_BW_REQ,T)未超時(shí),則取消該計(jì)時(shí)器,根據(jù)STAMP域中的指定路徑,將RREP包轉(zhuǎn)發(fā)給下一跳鄰節(jié)點(diǎn)inNbr;否則,將RREP包中的路徑添加到本節(jié)點(diǎn)的路由表中,更新BH_BW_LEFT=BH_BW_LEFT+BH_BW_REQ;步驟5.5:轉(zhuǎn)發(fā)來RDEL包的鄰節(jié)點(diǎn)為outNbr,RDEL包中指定路徑下一跳的鄰節(jié)點(diǎn)為inNbr,當(dāng)節(jié)點(diǎn)收到RDEL信令包之后,查看目的地址,如果目的地址是本節(jié)點(diǎn)則執(zhí)行1),否則執(zhí)行2);1)讀取RDEL中的BH_BW_REQ,更新鄰居節(jié)點(diǎn)表中的鏈路剩余帶寬信息:BH_BW_LEFT=BH_BW_LEFT+BH_BW_REQ,在路由表中刪除PATHNO的回傳路徑條目,然后銷毀該數(shù)據(jù)包;2)更新鄰節(jié)點(diǎn)表中NbrAddr為inNbr和outNbr條目的NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT+BH_BW_REQ;根據(jù)RDEL包中指定的路徑,轉(zhuǎn)發(fā)給下一個(gè)鄰節(jié)點(diǎn)inNbr;步驟6.節(jié)點(diǎn)根據(jù)回傳請求帶寬BH_BW_REQ,進(jìn)入路由發(fā)現(xiàn)流程而依次執(zhí)行步驟1)和步驟2),之后轉(zhuǎn)入步驟2,否則繼續(xù)停留在步驟6進(jìn)入路由發(fā)現(xiàn),所述的步驟1)和步驟2)如下:1)確定可發(fā)送路由信息請求包RREQ的鄰節(jié)點(diǎn)集合NBRS:NBRS={鄰節(jié)點(diǎn)表中BH_BW_LEFT>BH_BW_REQ且NBR_LINK_BW_LEFT>BH_BW_REQ的所有鄰節(jié)點(diǎn)}+{鄰節(jié)點(diǎn)表中BH_BW_LEFT=0且NBR_LINK_BW_LEFT>BH_BW_REQ的所有鄰節(jié)點(diǎn)},之后執(zhí)行2);2)節(jié)點(diǎn)向鄰節(jié)點(diǎn)集NBRS中的每一個(gè)鄰節(jié)點(diǎn)發(fā)送RREQ,之后更新NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT-BH_BW_REQ與鄰節(jié)點(diǎn)的回傳鏈路剩余帶寬NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT-BH_BW_REQ,后續(xù)HELLO包中使用更新后的NBR_LINK_BW_LEFT進(jìn)行發(fā)送;設(shè)置計(jì)時(shí)器timer(RREQ.SEQNO,Nbr_LinkBw_Left,BH_BW_REQ,T),超時(shí)時(shí)間為T,當(dāng)計(jì)時(shí)器timer(RREQ.SEQNO,Nbr_LinkBw_Left,BH_BW_REQ,T)超時(shí)時(shí),重置NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT+BH_BW_REQ,表示從該鄰節(jié)點(diǎn)發(fā)送出去的RREQ包被丟棄。本發(fā)明的有益效果是由于采用源路由的方法,解決了毫米波微小區(qū)網(wǎng)絡(luò)中的分布式回傳路由問題,因此提升了回傳網(wǎng)絡(luò)性能;僅需將程序加載到各個(gè)節(jié)點(diǎn),流程簡單,實(shí)現(xiàn)容易,可在支持的固件中實(shí)現(xiàn),同時(shí)也可以實(shí)現(xiàn)在驅(qū)動(dòng)程序中;相對于傳統(tǒng)的表驅(qū)動(dòng)路由協(xié)議降低網(wǎng)絡(luò)信令開銷,并提高網(wǎng)絡(luò)傳輸吞吐量;由于各個(gè)節(jié)點(diǎn)不需要存儲和維護(hù)全網(wǎng)節(jié)點(diǎn)的路徑,相對于傳統(tǒng)的按需路由協(xié)議大幅降低了網(wǎng)絡(luò)端到端時(shí)延,提高了網(wǎng)絡(luò)性能;本發(fā)明是一種分布式的路由方式,無須中心控制節(jié)點(diǎn)及全網(wǎng)實(shí)時(shí)同步。附圖說明圖1是本發(fā)明的總體流程圖,其中,HELLO是用于鄰節(jié)點(diǎn)間進(jìn)行剩余帶寬信息交互的路由信令包,RREQ(RouteRequest)是用于請求建立滿足剩余帶寬條件回傳路徑的路由信息請求信令包,RREP(RouteResponse)是用來應(yīng)答建立滿足剩余帶寬條件回傳路徑的路由信息應(yīng)答信令包,RDEL(RouteDelete)是用于刪除某條源路由的回傳路徑刪除信令包,DATA是來自上層的數(shù)據(jù)包,RDAT(RouteData)是DATA添加源路徑的路由數(shù)據(jù)包。圖2是實(shí)施實(shí)例中的節(jié)點(diǎn)設(shè)置場景圖。具體實(shí)施方式下面結(jié)合附圖和實(shí)施例對本發(fā)明進(jìn)一步說明。在毫米波蜂窩回傳網(wǎng)絡(luò)中,一般微基站均部署在靜止的較高的建筑物或物體之上,微基站之間的毫米波鏈路較為穩(wěn)定,不易被阻擋。因此,毫米波蜂窩回傳網(wǎng)可被看作是靜態(tài)的無線網(wǎng)絡(luò)。本發(fā)明稱毫米波回傳網(wǎng)絡(luò)中連接光纖的微基站節(jié)點(diǎn)為“網(wǎng)關(guān)節(jié)點(diǎn)”,稱未連接光纖的微基站節(jié)點(diǎn)為普通的“無線節(jié)點(diǎn)”。假設(shè)在網(wǎng)絡(luò)中有N個(gè)無線節(jié)點(diǎn)和M個(gè)網(wǎng)關(guān)節(jié)點(diǎn),每個(gè)無線節(jié)點(diǎn)可劃分為S個(gè)扇區(qū),每個(gè)扇區(qū)中由B個(gè)波束(具體的N/M/S/B值,根據(jù)具體的毫米波回傳網(wǎng)絡(luò)拓?fù)?、以及毫米波微基站的具體規(guī)格確定)。當(dāng)無線節(jié)點(diǎn)某一扇區(qū)的波束與其相鄰節(jié)點(diǎn)進(jìn)行數(shù)據(jù)通信時(shí),其另一扇區(qū)的波束可同時(shí)與其他相鄰節(jié)點(diǎn)進(jìn)行數(shù)據(jù)通信??紤]到回傳網(wǎng)中可能存在多個(gè)網(wǎng)關(guān)節(jié)點(diǎn),且無線節(jié)點(diǎn)之間可能存在多條毫米波鏈路,本發(fā)明提出了一種基于剩余帶寬的多徑回傳路由方法,旨在超密集部署毫米波微小區(qū)網(wǎng)絡(luò)中,解決5G毫米波微小區(qū)密集部署場景中的數(shù)據(jù)回傳問題。本發(fā)明屬于源路由,即由源節(jié)點(diǎn)負(fù)責(zé)建立、維護(hù)以及拆除路由路徑,主要包括:鄰節(jié)點(diǎn)間帶寬信息交互、路由建立拆除檢測及鄰節(jié)點(diǎn)表和路由表的維護(hù)、路由發(fā)現(xiàn)三個(gè)部分。1.鄰節(jié)點(diǎn)帶寬信息的交互:相鄰節(jié)點(diǎn)通過路由信令包的交互,完善填充各自建立的鄰居節(jié)點(diǎn)表,實(shí)現(xiàn)全網(wǎng)節(jié)點(diǎn)的帶寬信息交互的初始化和維護(hù);2.路由建立、拆除檢測及鄰節(jié)點(diǎn)表和路由表的維護(hù)更新:根據(jù)基站具體的回傳負(fù)載量判斷是否進(jìn)行路由建立或拆除,并檢測和維護(hù)鄰居節(jié)點(diǎn)表和路由表。3.路由發(fā)現(xiàn)階段:各個(gè)節(jié)點(diǎn)通過路由控制信令包的交互傳輸,實(shí)現(xiàn)各毫米波微小區(qū)基站間相互協(xié)作地建立多條到達(dá)網(wǎng)關(guān)節(jié)點(diǎn)的回傳路徑。本發(fā)明可以在無線網(wǎng)卡中通過固件實(shí)現(xiàn),或?qū)崿F(xiàn)在無線網(wǎng)卡的驅(qū)動(dòng)程序之中。下面結(jié)合實(shí)例對本發(fā)明的實(shí)現(xiàn)進(jìn)行詳細(xì)的說明,其中圖1是本發(fā)明的總體流程圖。本發(fā)明具體實(shí)施步驟如下:步驟1.創(chuàng)建用于存儲鄰居節(jié)點(diǎn)信息和路由信息的鄰節(jié)點(diǎn)表和路由表,其中鄰節(jié)點(diǎn)表如下表所示:其中,NbrID為鄰居節(jié)點(diǎn)表節(jié)點(diǎn)序列號,Nbr_Addr為鄰節(jié)點(diǎn)地址號,BH_BW_LEFT為鄰節(jié)點(diǎn)回傳鏈路剩余總帶寬,NBR_LINK_BW_LEFT(NeighborhoodLinkBandwidthLeft)為與該鄰節(jié)點(diǎn)所有回傳鏈路上的剩余帶寬,Self_Sector_Links為與該鄰節(jié)點(diǎn)在某扇區(qū)中相連的所有回傳鏈路數(shù);路由表如下表所示:PathIDDestination_PathnoValidBWLefttimeStamps/PathRealloc12其中,PathID為路徑ID號,Destination_Pathno為路徑目的端指定的序列號,設(shè)置為RREP包中的PATHNO,Valid表示該路徑目前是否有效可用的標(biāo)示位,BW為該路徑的帶寬,該值設(shè)置為RREP包中的BH_BW_REQ,Lefttime為該路徑的有效生存時(shí)間,初始化為T,Stamps/Path為該路徑上所有節(jié)點(diǎn)的ID/地址,realloc為擴(kuò)展路由表信息預(yù)留字段;設(shè)置鄰節(jié)點(diǎn)發(fā)現(xiàn)計(jì)時(shí)器Nbr_Timer之后轉(zhuǎn)入步驟2,否則繼續(xù)停留在步驟1建立節(jié)點(diǎn)的鄰節(jié)點(diǎn)表和路由表;步驟2.判斷鄰節(jié)點(diǎn)發(fā)現(xiàn)計(jì)時(shí)器Nbr_Timer是否超時(shí),如果Nbr_Timer超時(shí)則轉(zhuǎn)步驟3,否則轉(zhuǎn)步驟4;步驟3.創(chuàng)建用于鄰節(jié)點(diǎn)間帶寬信息交互的信令包HELLO,具體的包格式及字段劃分如下:TYPESEQNOSADABH_BW_LEFTNBR_LINK_BW_LEFT其中,TYPE表示HELLO包的類型標(biāo)志位,本發(fā)明設(shè)為0;SEQNO(SequenceNumber)表示此HELLO信令包的序列號,SA(SourceAddress)表示此HELLO信令包的源地址,DA(DestinationAddress)表示此HELLO信令包的目的端地址,即鄰居節(jié)點(diǎn)地址,BH_BW_LEFT(BackhaulBandwidth)表示本節(jié)點(diǎn)所有回傳路徑總的剩余帶寬,當(dāng)節(jié)點(diǎn)無回傳路徑路由時(shí),該值設(shè)為0,NBR_LINK_BW_LEFT表示與該鄰節(jié)點(diǎn)的所有回傳鏈路上的剩余帶寬;向所有鄰節(jié)點(diǎn)發(fā)送HELLO包,并重置鄰節(jié)點(diǎn)發(fā)現(xiàn)計(jì)時(shí)器Nbr_Timer,之后轉(zhuǎn)入步驟2,否則繼續(xù)停留在步驟3建立HELLO信令包并向鄰節(jié)點(diǎn)發(fā)送;步驟4.路由表檢查與維護(hù)通過步驟4.1的計(jì)算檢查是否需要建立新的路徑,通過步驟4.2計(jì)算檢查是否需要拆除某條路徑,通過步驟4.3檢查路由表中是否有超過有效時(shí)間失效的路徑;步驟4.1:判斷節(jié)點(diǎn)當(dāng)前所有路徑的帶寬之和與回傳負(fù)載BW_LOAD的關(guān)系,如則確定回傳請求帶寬其中α為權(quán)重因子,取值范圍為[0,1],S為扇區(qū)個(gè)數(shù),B為波束個(gè)數(shù),S和B均取非負(fù)整數(shù),轉(zhuǎn)入步驟6開啟路由發(fā)現(xiàn),否則時(shí)轉(zhuǎn)步驟4.2;步驟4.2:如果則從路由表中隨機(jī)選擇一條帶寬小于α×BW_LOAD的路徑,產(chǎn)生路徑刪除信令包RDEL,具體包格式及字段劃分如下:TYPEPATHNOSADABH_BW_REQSTAMP_NUMSTAMP1…STAMPn其中TYPE表示RDEL包類型標(biāo)志位,本發(fā)明中設(shè)為3,PATHNO表示根據(jù)路由的目的節(jié)點(diǎn)所確定的路徑序列號,SA表示發(fā)送端地址,DA表示接收端地址,BH_BW_REQ表示待刪除路徑上的帶寬,即原RREQ中的剩余帶寬請求值,STAMP_NUM表示待刪除路徑中的所有節(jié)點(diǎn)數(shù),STAMP1到STAMPn分別表示待刪除路徑上第1到第n個(gè)中間節(jié)點(diǎn)的地址;節(jié)點(diǎn)找出自己路由表中Destination_Pathno為PATHNO所包含的Stamps/Path,復(fù)制在刪除信令包RDEL的STAMP域內(nèi)并向下一跳鄰節(jié)點(diǎn)發(fā)送,更新節(jié)點(diǎn)回傳鏈路剩余帶寬信息,即找出鄰居節(jié)點(diǎn)表中Nbr_Addr為RDEL中STAMP2的NBR_LINK_BW_LEFT和BH_BW_LEFT,NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT+BH_BW_REQ,BH_BW_LEFT=BH_BW_LEFT+BH_BW_REQ,同時(shí)刪除路由表中該條路徑信息,否則轉(zhuǎn)入步驟4.3;步驟4.3:查找鄰居節(jié)點(diǎn)表中NbrAddr和路由表STAMP域中相同的條目,對比鄰居節(jié)點(diǎn)表中的NBR_LINK_BW_LEFT和路由表中的BW,若NBR_LINK_BW_LEFT>BW,則找出路由表中Valid=0的路由條目,當(dāng)路由路徑剩余生存時(shí)間小于門限時(shí),設(shè)置Valid=1;否則查找路由表中路徑valid=0且其剩余生存時(shí)間小于門限的條目,產(chǎn)生該路徑的路徑刪除信令包RDEL并發(fā)送,刪除路由表中該條路徑信息,更新鏈路剩余帶寬信息,以釋放該條路徑,否則轉(zhuǎn)入步驟5;步驟5.如果節(jié)點(diǎn)接收到數(shù)據(jù)包則判斷接收到的數(shù)據(jù)包的類型,則做出如下處理:首先判斷該包是否是來自本節(jié)點(diǎn)上層,如果是則轉(zhuǎn)步驟5.1,否則數(shù)據(jù)包是下層提交至路由層的,進(jìn)而判斷如果接收到的是HELLO信令包則轉(zhuǎn)步驟5.2,如果接收到的是路由信息請求信令包RREQ,則轉(zhuǎn)入步驟5.3;數(shù)據(jù)包處理結(jié)束后,轉(zhuǎn)步驟2;信令包RREQ具體包格式及字段劃分如下:TYPESEQNOSADATTLBH_BW_REQSTAMP_NUMSTAMP1…STAMPn其中,TYPE表示RREQ包的類型標(biāo)志位,本發(fā)明中設(shè)為1,SEQNO表示該RREQ包序列號,SA表示產(chǎn)生此RREQ源節(jié)點(diǎn)地址,DA表示此RREQ包要到達(dá)的目的節(jié)點(diǎn)地址;TTL(TimeToLive)為包生存周期,表示該RREQ剩余可轉(zhuǎn)發(fā)跳數(shù),初始值設(shè)為15,BH_BW_REQ表示該RREQ所尋找路徑要滿足的請求帶寬,STAMP_NUM表示該RREQ包已尋找到的路徑節(jié)點(diǎn)數(shù),表示該域后面還有相應(yīng)地到達(dá)目的節(jié)點(diǎn)時(shí)已經(jīng)過的STAMP_NUM個(gè)中間節(jié)點(diǎn)的地址,源節(jié)點(diǎn)設(shè)置該域值為0,最大值設(shè)置為15,超過15則表示為路徑不可達(dá),STAMPn表示該RREQ包已尋找到的路徑上第n個(gè)中間節(jié)點(diǎn)的地址;如果接收到路由信息應(yīng)答信令包RREP,則轉(zhuǎn)入步驟5.4,信令包RREP具體包格式及字段劃分如下:TYPEPATHNOSADABH_BW_REQSTAMP_NUMSTAMP1…STAMPn其中,TYPE表示RREP包類型標(biāo)志位,本發(fā)明中設(shè)為2,PATHNO表示根據(jù)路由的目的節(jié)點(diǎn)所確定的路徑序列號,SA表示發(fā)送端地址,即原路徑請求的目的節(jié)點(diǎn)地址,也即網(wǎng)關(guān)節(jié)點(diǎn)地址,DA表示接收端地址,即原路徑請求的源節(jié)點(diǎn)地址,也即相應(yīng)RREQ的源地址,BH_BW_REQ表示該RREP包應(yīng)答的路徑帶寬,即原RREQ中的剩余帶寬請求值,STAMP_NUM表示該RREP包路徑中的所有節(jié)點(diǎn)數(shù),表示該域后面還有STAMP_NUM個(gè)中間節(jié)點(diǎn)的地址,源節(jié)點(diǎn)設(shè)置STAMP_NUM為0,STAMPn表示該RREP包已尋找到的路徑上第n個(gè)中間節(jié)點(diǎn)的地址;如果收到的是鏈路刪除信令包RDEL,則轉(zhuǎn)入步驟5.5,之后轉(zhuǎn)入步驟2,否則繼續(xù)停留在步驟5進(jìn)行包處理;步驟5.1:根據(jù)回傳數(shù)據(jù)速率要求,從路由表中滿足帶寬需求的路由路徑中隨機(jī)選擇一條,在包頭中加上相應(yīng)的路徑組成路由數(shù)據(jù)包RDAT進(jìn)行數(shù)據(jù)發(fā)送,如果不存在這樣的路徑,則緩存數(shù)據(jù)等待路由表更新,緩存超時(shí)則丟棄該數(shù)據(jù)包,數(shù)據(jù)包RDAT具體包格式及字段劃分如下:TYPESEQNOSADABH_BW_REQSTAMP_NUMSTAMP1…STAMPnDATALOAD其中,TYPE表示路由包類型標(biāo)志位,本發(fā)明設(shè)為4,SEQNO表示路由數(shù)據(jù)包的序列號,SA表示發(fā)送端地址,DA表示接收端地址,BH_BW_REQ表示數(shù)據(jù)傳輸帶寬,STAMP_NUM表示待刪除路徑中的所有節(jié)點(diǎn)數(shù),STAMPn表示待刪除路徑上第n個(gè)中間節(jié)點(diǎn)的地址,DATALOAD表示回傳數(shù)據(jù)負(fù)載;步驟5.2:根據(jù)HELLO包中SA,用HELLO包中的BH_BW_LEFT和NBR_LINK_BW_LEFT替換鄰節(jié)點(diǎn)表NbrAddr和HELLO包中SA相同的條目對應(yīng)的BH_BW_LEFT和NBR_LINK_BW_LEFT,隨后銷毀該HELLO包;步驟5.3:將RREQ轉(zhuǎn)發(fā)至收到此RREQ包的節(jié)點(diǎn)的鄰節(jié)點(diǎn)稱為inNbr,將RREQ由收到此RREQ包的節(jié)點(diǎn)轉(zhuǎn)發(fā)至下一跳的鄰節(jié)點(diǎn)稱為outNbr,當(dāng)收到RREQ的節(jié)點(diǎn)收到RREQ之后,判斷RREQ中的目的地址域DA是否為本節(jié)點(diǎn)的地址,如果本節(jié)點(diǎn)為RREQ的目的節(jié)點(diǎn),則執(zhí)行以下步驟:1)TTL檢查:判斷如果TTL≥0則繼續(xù)執(zhí)行步驟2),否則丟棄該包;2)路由環(huán)路檢查:判斷該節(jié)點(diǎn)是否已經(jīng)在此RREQ包的STAMP域中,如果不存在則繼續(xù)執(zhí)行步驟3),否則丟棄該包;3)產(chǎn)生RREP包:產(chǎn)生一個(gè)空RREP包后,將產(chǎn)生空RREP包的節(jié)點(diǎn)的自身地址填入RREP的SA,將RREQ中的SA填寫為RREP的DA,將TYPE填寫為2,此處TYPE為區(qū)別包類型的數(shù)字,可設(shè)置其他數(shù)字,但不能與其他包類型的數(shù)字重疊,將RREQ的STAMP域反向后寫入RREP中的STAMP域,將RREQ中的BH_BW_REQ值寫入RREP中的BH_BW_REQ域;4)向STAMP域中的下一跳節(jié)點(diǎn)發(fā)送RREP包;如果本節(jié)點(diǎn)不是RREQ的目的節(jié)點(diǎn),則依次執(zhí)行以下內(nèi)容:1)判斷包中TTL值,如果TTL=0,丟棄該包,否則執(zhí)行2);2)檢查STAMPn域是否包含本節(jié)點(diǎn)ID,如果包含則丟棄該包,否則,執(zhí)行3);3)如果路由表不為空,比較路由表中BW和RREQ中的BH_BW_REQ,若BW>BH_BW_REQ,則按照路由表中有效valid=1且Lefttime最大的原則選擇一條滿足帶寬的路徑,將該路徑組成RREP并向RREQ源節(jié)點(diǎn)發(fā)送,更新鄰居節(jié)點(diǎn)表中NbrAddr為inNbr條目的BH_BW_LEFT=BH_BW_LEFT-BH_BW_REQ、NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT-BH_BW_REQ,否則,執(zhí)行4);4)確定可轉(zhuǎn)發(fā)RREQ包的鄰節(jié)點(diǎn)集合:NBRS={鄰節(jié)點(diǎn)表中Nbr_LinkBw_Left>BH_BW_REQ的所有鄰節(jié)點(diǎn)}–{STAMP域中本節(jié)點(diǎn)的鄰節(jié)點(diǎn)inNbr},如果NBRS為空,則丟棄該RREQ包,轉(zhuǎn)入步驟2;如果NBRS不為空,則更新鄰節(jié)點(diǎn)表中NbrAddr為inNbr的條目的剩余帶寬信息:NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT-BH_BW_REQ,同時(shí)設(shè)置計(jì)時(shí)器timer(RREQ.SEQNO,inNbr_LinkBw_Left,BH_BW_REQ,T)的有效時(shí)間為T,超時(shí)則重置鄰居節(jié)點(diǎn)表中NbrAddr為inNbr的路由條目的剩余帶寬信息:NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT+BH_BW_REQ),其中計(jì)時(shí)器timer(RREQ.SEQNO,inNbr_LinkBw_Left,BH_BW_REQ,T)為收到RREQ序列號為SEQNO、請求帶寬為BH_BW_REQ且發(fā)送此包的節(jié)點(diǎn)鏈路剩余帶寬為inNbr_LinkBw_Left時(shí)設(shè)置的有效時(shí)長為T定時(shí)器,即該定時(shí)器有四個(gè)屬性:標(biāo)記RREQ序列號、標(biāo)記發(fā)送該包的剩余帶寬、標(biāo)記請求帶寬、標(biāo)記該計(jì)時(shí)器的有效時(shí)間T;隨后更新TTL=TTL-1,并向節(jié)點(diǎn)集NBRS中的每一個(gè)鄰節(jié)點(diǎn)outNbr發(fā)送RREQ,同時(shí)更新鄰節(jié)點(diǎn)表中NbrAddr為outNbr的條目的回傳鏈路剩余帶寬信息:NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT-BH_BW_REQ,并設(shè)置計(jì)時(shí)器timer(RREQ.SEQNO,outNbr_LinkBw_Left,BH_BW_REQ,T)的有效時(shí)間為T(計(jì)時(shí)器timer(RREQ.SEQNO,outNbr_LinkBw_Left,BH_BW_REQ,T)超時(shí)則重置鄰居節(jié)點(diǎn)表中NbrAddr為outNbr的剩余帶寬信息,即:NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT+BH_BW_REQ));步驟5.4:令轉(zhuǎn)發(fā)來RREP包的鄰節(jié)點(diǎn)為outNbr,RREP包STAMP域中指定的本節(jié)點(diǎn)的下一跳鄰節(jié)點(diǎn)為inNbr,當(dāng)節(jié)點(diǎn)收到RREP信令包之后,查看信令包的目的地址,如果目的地址是本節(jié)點(diǎn),則執(zhí)行1),否則執(zhí)行2);1)將RREP包中的路徑添加到路由表中,查找標(biāo)識為DA.SEQNO的計(jì)時(shí)器:如果計(jì)時(shí)器timer(RREQ.SEQNO,Nbr_LinkBw_Left,BH_BW_REQ,T)尚未超時(shí),則取消計(jì)時(shí)器timer(RREQ.SEQNO,Nbr_LinkBw_Left,BH_BW_REQ,T),并設(shè)置Valid=1;如果計(jì)時(shí)器timer(RREQ.SEQNO,Nbr_LinkBw_Left,BH_BW_REQ,T)超時(shí),并且鄰居節(jié)點(diǎn)表中NbrAddr為outNbr的NBR_LINK_BW_LEFT滿足NBR_LINK_BW_LEFT-BH_BW_REQ≥0,則NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT-BH_BW_REQ,并設(shè)置Valid=1,否則,設(shè)置Valid=0;2)查找計(jì)時(shí)器timer(RREQ.SEQNO,outNbr_LinkBw_Left,BH_BW_REQ,T),并取消該計(jì)時(shí)器;查找計(jì)時(shí)器timer(RREQ.SEQNO,inNbr_LinkBw_Left,BH_BW_REQ,T),如果計(jì)時(shí)器timer(RREQ.SEQNO,inNbr_LinkBw_Left,BH_BW_REQ,T)未超時(shí),則取消該計(jì)時(shí)器,根據(jù)STAMP域中的指定路徑,將RREP包轉(zhuǎn)發(fā)給下一跳鄰節(jié)點(diǎn)inNbr;否則,將RREP包中的路徑添加到本節(jié)點(diǎn)的路由表中,更新BH_BW_LEFT=BH_BW_LEFT+BH_BW_REQ;步驟5.5:轉(zhuǎn)發(fā)來RDEL包的鄰節(jié)點(diǎn)為outNbr,RDEL包中指定路徑下一跳的鄰節(jié)點(diǎn)為inNbr,當(dāng)節(jié)點(diǎn)收到RDEL信令包之后,查看目的地址,如果目的地址是本節(jié)點(diǎn)則執(zhí)行1),否則執(zhí)行2);1)讀取RDEL中的BH_BW_REQ,更新鄰居節(jié)點(diǎn)表中的鏈路剩余帶寬信息:BH_BW_LEFT=BH_BW_LEFT+BH_BW_REQ,在路由表中刪除PATHNO的回傳路徑條目,然后銷毀該數(shù)據(jù)包;2)更新鄰節(jié)點(diǎn)表中NbrAddr為inNbr和outNbr條目的NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT+BH_BW_REQ;根據(jù)RDEL包中指定的路徑,轉(zhuǎn)發(fā)給下一個(gè)鄰節(jié)點(diǎn)inNbr;步驟6.節(jié)點(diǎn)根據(jù)回傳請求帶寬BH_BW_REQ,進(jìn)入路由發(fā)現(xiàn)流程而依次執(zhí)行步驟1)和步驟2),之后轉(zhuǎn)入步驟2,否則繼續(xù)停留在步驟6進(jìn)入路由發(fā)現(xiàn),所述的步驟1)和步驟2)如下:1)確定可發(fā)送路由信息請求包RREQ的鄰節(jié)點(diǎn)集合NBRS:NBRS={鄰節(jié)點(diǎn)表中BH_BW_LEFT>BH_BW_REQ且NBR_LINK_BW_LEFT>BH_BW_REQ的所有鄰節(jié)點(diǎn)}+{鄰節(jié)點(diǎn)表中BH_BW_LEFT=0且NBR_LINK_BW_LEFT>BH_BW_REQ的所有鄰節(jié)點(diǎn)},之后執(zhí)行2);2)節(jié)點(diǎn)向鄰節(jié)點(diǎn)集NBRS中的每一個(gè)鄰節(jié)點(diǎn)發(fā)送RREQ,之后更新NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT-BH_BW_REQ與鄰節(jié)點(diǎn)的回傳鏈路剩余帶寬NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT-BH_BW_REQ,后續(xù)HELLO包中使用更新后的NBR_LINK_BW_LEFT進(jìn)行發(fā)送;設(shè)置計(jì)時(shí)器timer(RREQ.SEQNO,Nbr_LinkBw_Left,BH_BW_REQ,T),超時(shí)時(shí)間為T,當(dāng)計(jì)時(shí)器timer(RREQ.SEQNO,Nbr_LinkBw_Left,BH_BW_REQ,T)超時(shí)時(shí),重置NBR_LINK_BW_LEFT=NBR_LINK_BW_LEFT+BH_BW_REQ,表示從該鄰節(jié)點(diǎn)發(fā)送出去的RREQ包被丟棄。實(shí)施例如圖2所示,假設(shè)網(wǎng)絡(luò)中共有5個(gè)節(jié)點(diǎn),其中節(jié)點(diǎn)1節(jié)點(diǎn)2、節(jié)點(diǎn)3是無線節(jié)點(diǎn),每個(gè)無線節(jié)點(diǎn)分為三個(gè)扇區(qū),每扇區(qū)120度,分別編號sector1、2、3,每個(gè)扇區(qū)有兩個(gè)毫米波回傳鏈路,且回傳鏈路初始化帶寬為2Gbit/s,節(jié)點(diǎn)4、節(jié)點(diǎn)5是網(wǎng)關(guān)節(jié)點(diǎn),節(jié)點(diǎn)地址為0。為方便描述,實(shí)施例中假設(shè)相鄰兩節(jié)點(diǎn)間存在1個(gè)毫米波鏈路,且在同一扇區(qū),實(shí)際中相鄰兩節(jié)點(diǎn)間毫米波鏈路數(shù)可不同,且鏈路可不在同一個(gè)扇區(qū)中。1、相鄰節(jié)點(diǎn)間的帶寬信息交互由于相鄰節(jié)點(diǎn)間的帶寬信息交互流程一致,且均是周期性的,設(shè)完成一個(gè)HELLO包的交互為一個(gè)周期,為簡化描述,實(shí)施例在該部分僅對節(jié)點(diǎn)1、節(jié)點(diǎn)2一個(gè)周期內(nèi)的交互流程加以描述。此外,流程實(shí)例假定毫米波鏈路上信息發(fā)送和接收的調(diào)度是能夠保證的,實(shí)例中網(wǎng)絡(luò)所有節(jié)點(diǎn)完成與入網(wǎng)相關(guān)的初始化工作之后,具體實(shí)施步驟如下:步驟1.1:節(jié)點(diǎn)1、節(jié)點(diǎn)2創(chuàng)建用于存儲鄰居節(jié)點(diǎn)信息和路由信息的鄰節(jié)點(diǎn)表和路由表并初始化鄰節(jié)點(diǎn)發(fā)現(xiàn)計(jì)時(shí)器Nbr_Timer,之后轉(zhuǎn)入步驟2。步驟1.2:節(jié)點(diǎn)1、節(jié)點(diǎn)2的鄰節(jié)點(diǎn)發(fā)現(xiàn)計(jì)時(shí)器Nbr_Timer達(dá)到超時(shí)時(shí)間NbrHelloTime,之后轉(zhuǎn)入步驟3。步驟1.3:節(jié)點(diǎn)1創(chuàng)建HELLO信令包向節(jié)點(diǎn)2發(fā)送并重置鄰節(jié)點(diǎn)發(fā)現(xiàn)計(jì)時(shí)器Nbr_Timer。節(jié)點(diǎn)2創(chuàng)建HELLO信令包向節(jié)點(diǎn)1發(fā)送并重置鄰節(jié)點(diǎn)發(fā)現(xiàn)計(jì)時(shí)器Nbr_Timer,之后進(jìn)入步驟5,節(jié)點(diǎn)1、節(jié)點(diǎn)2創(chuàng)建HELLO時(shí)各字段的填充情況如下所示,表1(a)為節(jié)點(diǎn)1創(chuàng)建的HELLO包,表1(b)為節(jié)點(diǎn)2創(chuàng)建的HELLO包,TYPESEQNOSADABH_BW_LEFT=6GbBH_LINKS_BW_LEFT=2Gb表1(a)TYPESEQNOSADABH_BW_LEFT=6GbBH_LINKS_BW_LEFT=2Gb表1(b)步驟1.4:節(jié)點(diǎn)1、節(jié)點(diǎn)2收到包后判斷包的類型(TYPE=0)為HELLO包,根據(jù)HELLO包的帶寬信息更新鄰節(jié)點(diǎn)表,節(jié)點(diǎn)1、節(jié)點(diǎn)2的更新后的鄰節(jié)點(diǎn)表內(nèi)容如表2(a)、表2(b)所示,其中表2(a)為節(jié)點(diǎn)1鄰節(jié)點(diǎn)表更新,表2(b)為節(jié)點(diǎn)2鄰節(jié)點(diǎn)表更新。NbrNbr_AdBH_BW_LENbr_LinkBw_LSelf_Sector_Lin126Gbps2Gbps1…表2(a)NbrNbr_AdBH_BW_LENbr_LinkBw_LSelf_Sector_Lin116Gbps2Gbps1…es表2(b)2、路由建立及維護(hù)流程通過相鄰節(jié)點(diǎn)間的帶寬信息交互,各個(gè)節(jié)點(diǎn)已經(jīng)建立起了完整的鄰節(jié)點(diǎn)表;在為簡化描述,實(shí)例描述中以建立及維護(hù)節(jié)點(diǎn)1到節(jié)點(diǎn)4和節(jié)點(diǎn)5的路徑為例,即以節(jié)點(diǎn)1為發(fā)起路徑建立的源節(jié)點(diǎn),節(jié)點(diǎn)4、節(jié)點(diǎn)5為數(shù)據(jù)處理的目的節(jié)點(diǎn),節(jié)點(diǎn)地址均為0,其余節(jié)點(diǎn)均為中間節(jié)點(diǎn);2.1源節(jié)點(diǎn)-發(fā)送RREQ步驟2.1.1:假設(shè)節(jié)點(diǎn)1檢測到小區(qū)回傳負(fù)載BW_LOAD=4Gbps,且路由表為空,即確定回傳帶寬BH_BW_REQ=0.5×|0-4|=2Gbps,進(jìn)入路由發(fā)起流程,轉(zhuǎn)入步驟2.1.2;步驟2.1.2:節(jié)點(diǎn)1根據(jù)回傳請求帶寬BH_BW_REQ,進(jìn)入路由發(fā)現(xiàn)流程而依次執(zhí)行1)、2),之后轉(zhuǎn)入步驟1.2,否則繼續(xù)停留在步驟2.1.2進(jìn)行路由發(fā)現(xiàn)。1)節(jié)點(diǎn)1從鄰節(jié)點(diǎn)表中找出BH_BW_LEFT>BH_BW_REQ并且Nbr_LinkBw_Left>BH_BW_REQ的節(jié)點(diǎn),確定可發(fā)送RREQ的節(jié)點(diǎn)集合NBRS={2,3},RREQ各項(xiàng)填充如表3(a)、表3(b)所示之后執(zhí)行2);其中表3(a)為節(jié)點(diǎn)1產(chǎn)生發(fā)往鄰節(jié)點(diǎn)2的RREQ包,表3(b)為節(jié)點(diǎn)1產(chǎn)生發(fā)往鄰節(jié)點(diǎn)3的RREQ包;TYPESEQNOSADATTL=BH_BW_REQ=2GbSTAMP1表3(a)TYPESEQNOSADATTL=BH_BW_REQ=2GbSTAMP1表3(b)2)節(jié)點(diǎn)1向節(jié)點(diǎn)2、節(jié)點(diǎn)3在各自的毫米波鏈路上發(fā)送RREQ,之后在鄰居節(jié)點(diǎn)表和路由表中更新與節(jié)點(diǎn)2、節(jié)點(diǎn)3回傳鏈路上的回傳帶寬。設(shè)置計(jì)時(shí)器timer(RREQ.SEQNO=1,Nbr_LinkBw_Left=0,BH_BW_REQ=2,T=75ms),timer(RREQ.SEQNO=2,Nbr_LinkBw_Left=0,BH_BW_REQ=2,T=75ms);2.2中間節(jié)點(diǎn)—接收RREQ步驟2.2.1:節(jié)點(diǎn)2、3收到包后判斷包類型(TYPE=1)為RREQ,判斷包中目的地址不是自己,依次執(zhí)行:1)判斷包中TTL=15,執(zhí)行2)。2)檢查STAMPn域不包含本節(jié)點(diǎn),執(zhí)行3);3)節(jié)點(diǎn)2、節(jié)點(diǎn)3查找路由表沒有到目的節(jié)點(diǎn)且BH_BW_LEFT≥BH_BW_REQ的鏈路,節(jié)點(diǎn)2找出滿帶寬需求的鄰居節(jié)點(diǎn)集合NBRS={4},節(jié)點(diǎn)3找出滿帶寬需求的鄰居節(jié)點(diǎn)集合NBRS={5};節(jié)點(diǎn)2設(shè)置計(jì)時(shí)器timer(RREQ.SEQNO=1,Nbr_LinkBw_Left=0,BH_BW_REQ=2,T=70ms),節(jié)點(diǎn)3設(shè)置計(jì)時(shí)器timer(RREQ.SEQNO=2,Nbr_LinkBw_Left=0,BH_BW_REQ=2,T=70ms);節(jié)點(diǎn)2、節(jié)點(diǎn)3處理后的轉(zhuǎn)發(fā)RREQ包內(nèi)容如表4(a)、表4(b)所示,節(jié)點(diǎn)2、3更新帶寬信息后的鄰節(jié)點(diǎn)表如表5(a)、表5(b)所示;其中表4(a)為節(jié)點(diǎn)2轉(zhuǎn)發(fā)的RREQ包,表4(b)節(jié)點(diǎn)3轉(zhuǎn)發(fā)的RREQ包;表5(a)為節(jié)點(diǎn)2更新帶寬信息后的鄰節(jié)點(diǎn)表,表5(b)為節(jié)點(diǎn)3更新帶寬信息后的鄰節(jié)點(diǎn)表;表4(a)表4(b)NbrNbr_AdBH_BW_LENbr_LinkBw_LSelf_Sector_Lin112Gbps0Gbps1244Gbps0Gbps1表5(a)NbrNbr_AdBH_BW_LENbr_LinkBw_LSelf_Sector_Lin112Gbps0Gbps1254Gbps0Gbps1表5(b)2.3目的節(jié)點(diǎn)—接收RREQ節(jié)點(diǎn)4收到節(jié)點(diǎn)2的RREQ包,在經(jīng)過TTL、路由環(huán)路檢查后根據(jù)RREQ生成RREP包,并根據(jù)RREQ中STAMP域中的路徑,向下一跳節(jié)點(diǎn)發(fā)送RREP,同時(shí)更新路由表信息。節(jié)點(diǎn)5收到節(jié)點(diǎn)3的RREQ包,在經(jīng)過TTL、路由環(huán)路檢查后根據(jù)RREQ生成RREP包,并根據(jù)RREQ中STAMP域中的路徑,向下一跳節(jié)點(diǎn)發(fā)送RREP,同時(shí)更新路由表信息;節(jié)點(diǎn)4、節(jié)點(diǎn)5產(chǎn)生的RREP包內(nèi)容如表6(a)、表6(b)所示;節(jié)點(diǎn)4、節(jié)點(diǎn)5更新帶寬信息后的鄰節(jié)點(diǎn)表如表7(a)、表7(b)所示,更新后的路由表如表8(a)、表8(b)所示;其中,表6(a)為節(jié)點(diǎn)4產(chǎn)生的RREP包,表6(b)為節(jié)點(diǎn)5產(chǎn)生的RREP包,表7(a)為節(jié)點(diǎn)4更新帶寬信息后的鄰節(jié)點(diǎn)表,表7(b)為節(jié)點(diǎn)5更新帶寬信息后的鄰節(jié)點(diǎn)表,表8(a)為節(jié)點(diǎn)4更新后的路由表,表8(b)為節(jié)點(diǎn)5更新后的路由表;表6(a)表6(b)NbrINbr_AdBH_BW_LENbr_LinkBw_LSelf_Sector_Lin124Gbps0Gbps1…表7(a)NbrIDNbr_AdBH_BW_LENbr_LinkBw_LSelf_Sector_Lin134Gbps0Gbps1…表7(b)PathDestination_PathValBWLefttiStamps/PaReallo11_112Gb10s0/2/1…表8(a)PathDestination_PathValBWLefttiStamps/PaReallo11_112Gb10s0/3/1…表8(b)2.4中間節(jié)點(diǎn)—接收RREP節(jié)點(diǎn)2、節(jié)點(diǎn)3查找到目的節(jié)點(diǎn)1的計(jì)時(shí)器timer(RREQ.SEQNO=1,Nbr_LinkBw_Left=0,BH_BW_REQ=2,T=70ms),timer(RREQ.SEQNO=2,Nbr_LinkBw_Left=0,BH_BW_REQ=2,T=70ms),計(jì)時(shí)器未超時(shí),因此取消該計(jì)時(shí)器。根據(jù)STAMP域中的指定路徑,將RREP包轉(zhuǎn)發(fā)給下一跳鄰節(jié)點(diǎn);2.5源節(jié)點(diǎn)—接收RREP步驟2.5.1:源節(jié)點(diǎn)1收到RREP包之后,將RREP包中的路徑添加到路由表中;節(jié)點(diǎn)1更新后的路由表如表9所示:PathDestination_PathValBWLefttiStamps/PaReallo10_112Gb10s1/3/020_212Gb10s1/2/0表9步驟2.5.2:源節(jié)點(diǎn)1查找標(biāo)識為DA.SEQNO(0.1,0.2)的計(jì)時(shí)器,此時(shí)計(jì)時(shí)器timer(RREQ.SEQNO=1,Nbr_LinkBw_Left=0,BH_BW_REQ=2,T=75ms),timer(RREQ.SEQNO=2,Nbr_LinkBw_Left=0,BH_BW_REQ=2,T=75ms),尚未超時(shí),則取消計(jì)時(shí)器,并設(shè)置Valid=1;從發(fā)送緩存中取出發(fā)送數(shù)據(jù)在包頭中添加路由并按路由發(fā)送數(shù)據(jù)。步驟2.5.3:當(dāng)源節(jié)點(diǎn)1檢測到當(dāng)前路由路徑的帶寬超過本節(jié)點(diǎn)所承擔(dān)的回傳負(fù)載對應(yīng)的門限值時(shí),需要拆除其到節(jié)點(diǎn)4的路由路徑,此時(shí)產(chǎn)生RDEL包,發(fā)送至下一跳節(jié)點(diǎn)。節(jié)點(diǎn)1產(chǎn)生的RDEL包如表10所示:表102.6中間節(jié)點(diǎn)—接收RDEL步驟2.6.1:節(jié)點(diǎn)2更新鄰節(jié)點(diǎn)表中inNbr.linkBw.left=inNbr.linkBw.left+BH_BW_REQ,outNbr.linkBw.left=outNbr.linkBw.left+BH_BW_REQ;更新后的鄰居節(jié)點(diǎn)表如表11所示:NbrNbr_AdBH_BW_LENbr_LinkBw_LSelf_Sector_Lin114Gbps2Gbps1206Gbps2Gbps1…表11步驟2.6.2:根據(jù)DEL_PATH_PKT包中指定的路徑,轉(zhuǎn)發(fā)給下一個(gè)鄰節(jié)點(diǎn)。2.7目的節(jié)點(diǎn)—接收RDEL節(jié)點(diǎn)4刪除PATHNO的回傳路徑條目,然后刪除該包。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1