本發(fā)明涉及基于TDMA的移動自組織網(wǎng)絡(luò)中無沖突接入信道的時隙分配的
技術(shù)領(lǐng)域:
,具體涉及一種滿足實時數(shù)據(jù)帶寬需求的時隙分配方法。
背景技術(shù):
:移動自組織網(wǎng)絡(luò)是由節(jié)點通過無線鏈路連接組成的自治系統(tǒng),在無需建立固定基礎(chǔ)設(shè)施的情況下即可進(jìn)行無線通信。在通信過程中,節(jié)點作為移動終端不僅發(fā)送數(shù)據(jù),同時充當(dāng)路由器中繼來自其他節(jié)點的數(shù)據(jù)。近年來,在移動自組織網(wǎng)絡(luò)中不再滿足于提供盡最大努力交付方式的數(shù)據(jù)傳輸,伴隨實時移動多媒體應(yīng)用在居民生活中的普及程度越來越高,滿足用戶傳輸實時多媒體數(shù)據(jù)的需求變得越來越重要,關(guān)于在移動自組織網(wǎng)絡(luò)中提供QoS保障通信成為研究的重點課題。信道接入和路由協(xié)議對移動自組織網(wǎng)絡(luò)提供QoS保障起到至關(guān)重要的作用。在移動自組織網(wǎng)絡(luò)中無線信道資源緊缺,如何使網(wǎng)絡(luò)節(jié)點公平且高效地通過信道接入網(wǎng)絡(luò),減少分組碰撞而產(chǎn)生沖突是MAC協(xié)議的關(guān)鍵任務(wù),MAC協(xié)議能否高效運行決定移動自組織網(wǎng)絡(luò)的整體性能。使用TDMA是一種有效提高網(wǎng)絡(luò)吞吐量和降低分組時延的信道接入技術(shù),通過將信道資源進(jìn)行分時使用,網(wǎng)絡(luò)節(jié)點在預(yù)約時隙內(nèi)進(jìn)行無沖突數(shù)據(jù)傳輸,較好地解決競爭類MAC協(xié)議高數(shù)據(jù)沖突的問題,但是需要引入有效的時隙分配算法。在移動自組織網(wǎng)絡(luò)中,由于能耗限制使得無線節(jié)點的傳輸范圍有限,源節(jié)點到目標(biāo)節(jié)點的路由長度會超過一跳距離,分組需要路由中繼節(jié)點進(jìn)行轉(zhuǎn)發(fā),使得網(wǎng)絡(luò)具有多跳路由特性。無線節(jié)點以無法預(yù)知的方式加入、離開網(wǎng)絡(luò),節(jié)點之間建立的通信鏈路可能會斷開或進(jìn)行重新連接。在這樣的網(wǎng)絡(luò)環(huán)境下為實時數(shù)據(jù)提供QoS保障,同樣需要有效路由協(xié)議提供支持。按需響應(yīng)式AODV路由協(xié)議,使網(wǎng)絡(luò)節(jié)點在進(jìn)行數(shù)據(jù)發(fā)送或作為路由中繼節(jié)點前,無需維護(hù)相應(yīng)路由信息進(jìn)而減少路由控制信息的傳輸,更有效地提高網(wǎng)絡(luò)資源的利用率。實時數(shù)據(jù)有著最小的帶寬需求,若不能滿足實時數(shù)據(jù)的帶寬需求,則到達(dá)目標(biāo)節(jié)點的實時數(shù)據(jù)將變?yōu)闊o用。在移動自組織網(wǎng)絡(luò)中,為滿足實時數(shù)據(jù)的帶寬需求,需要建立一條有足夠帶寬資源的路由。本發(fā)明的重點是保證實時數(shù)據(jù)的帶寬需求,在基于TDMA的移動自組織網(wǎng)絡(luò)中,路由帶寬通過路由各鏈路分配到的時隙個數(shù)進(jìn)行計算,而節(jié)點時隙狀態(tài)信息保存在TDMA協(xié)議,為滿足實時數(shù)據(jù)的帶寬需求,需要在AODV和TDMA協(xié)議之間加入一個有效的時隙分配算法。目前大多數(shù)基于AODV和TDMA協(xié)議滿足實時數(shù)據(jù)帶寬需求的跨層設(shè)計方案采用的時隙分配算法主要分為兩類:基于逐跳的時隙分配算法和基于端到端的時隙分配算法。文獻(xiàn)[TimeSlotAssignmentforMaximumBandwidthinaMobileAdHocNetwork]屬于端到端的時隙分配算法,在路由建立過程中收集路由所有節(jié)點的時隙狀態(tài)信息,在目標(biāo)節(jié)點對路由各鏈路可用時隙進(jìn)行分配,需要記錄大量的時隙狀態(tài)信息會對路由控制包產(chǎn)生較大存儲開銷,只在目標(biāo)節(jié)點進(jìn)行時隙分配會對目標(biāo)節(jié)點產(chǎn)生較大處理開銷。文獻(xiàn)[AnOn-DemandQoSRoutingProtocolwithTDMA-basedBandwidthReservationinMobileAdHocNetworks]屬于逐跳時隙分配算法,在路由建立過程中經(jīng)過每一個節(jié)點采用時隙分配規(guī)則分配鏈路可用時隙,忽略當(dāng)前鏈路時隙分配對路由后續(xù)兩跳鏈路造成的干擾,降低路由建立的成功率,間接影響時隙資源的空間復(fù)用率和網(wǎng)絡(luò)性能?;谥鹛臅r隙分配方案在路由建立過程中經(jīng)過每一個節(jié)點采用時隙分配規(guī)則分配鏈路可用時隙,由于隱藏終端現(xiàn)象的存在,這種方案忽略當(dāng)前鏈路時隙分配對路由后續(xù)兩跳鏈路造成的干擾,降低路由建立的成功率,間接影響時隙資源的空間復(fù)用率和網(wǎng)絡(luò)性能?;诙说蕉说臅r隙分配方案在路由建立過程中收集路由所有節(jié)點的時隙狀態(tài)信息,在目標(biāo)節(jié)點對路由各鏈路可用時隙進(jìn)行分配,需要記錄大量的時隙狀態(tài)信息會對路由控制包產(chǎn)生較大存儲開銷,只在目標(biāo)節(jié)點進(jìn)行路由各節(jié)點的時隙分配會對目標(biāo)節(jié)點產(chǎn)生較大處理開銷。技術(shù)實現(xiàn)要素:本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中的上述缺陷,提供一種滿足實時數(shù)據(jù)帶寬需求的時隙分配方法,該時隙分配方法基于TDMA的移動自組織網(wǎng)絡(luò)滿足實時數(shù)據(jù)的帶寬需求,在路由建立過程中以三跳鏈路為單位進(jìn)行時隙分配,在三跳鏈路范圍內(nèi)對每一跳鏈路可用時隙集合的時隙進(jìn)行干擾程度統(tǒng)計,統(tǒng)計每個時隙在三跳鏈路范圍內(nèi)出現(xiàn)的次數(shù),在三跳鏈路范圍內(nèi)分配時隙時,選擇可用時隙集合元素最少的鏈路,在該鏈路分配干擾程度最小的時隙。相對于逐跳時隙分配算法,可以考慮當(dāng)前鏈路時隙分配對后續(xù)兩跳鏈路造成的干擾,提高時隙的空間復(fù)用率。相對于端到端時隙分配算法,可以有效減小路由控制包的存儲開銷和目標(biāo)節(jié)點進(jìn)行路由各鏈路時隙分配產(chǎn)生的處理開銷。此外,相對于大部分方案采用數(shù)組的方式在路由控制包記錄節(jié)點集合的時隙狀態(tài)信息,本發(fā)明提出一種輕量級存儲方法,通過使用二進(jìn)制整數(shù)記錄節(jié)點時隙集合,減小路由控制包記錄時隙信息的存儲開銷。同時提出一種在TDMA協(xié)議區(qū)分路由控制包和實時數(shù)據(jù)包進(jìn)行處理的方法,避免數(shù)據(jù)包隊列阻塞引起的時隙資源利用率下降的問題。通過以上三點主要優(yōu)化和改進(jìn),在滿足實時數(shù)據(jù)帶寬需求的同時,提升網(wǎng)絡(luò)的整體性能。本發(fā)明的目的可以通過采取如下技術(shù)方案達(dá)到:一種滿足實時數(shù)據(jù)帶寬需求的時隙分配方法,所述時隙分配方法包括下列步驟:S1、源節(jié)點u通過廣播Request包的方式發(fā)起路由建立過程,路由的連續(xù)三跳鏈路由四個節(jié)點組成,使用所述Request包記錄路由信息,在Request包定義字段index表示當(dāng)前節(jié)點在路由最新一段未分配鏈路中的序號,定義字段N為節(jié)點在路由中的序號,令N=0和index=0;S2、在所述Request包中定義數(shù)組free記錄路由最新一段未分配鏈路中各節(jié)點的可用時隙集合,將源節(jié)點u的可用時隙集合記錄到free[index=0]中,將所述Request包廣播到源節(jié)點的鄰居節(jié)點w;S3、鄰居節(jié)點w接收到所述Request包,判斷是否已經(jīng)接收所述Request包,若已經(jīng)接收所述Request包,則丟棄不做額外處理,否則執(zhí)行步驟S4的操作;S4、更新字段N=N+1、index=index+1,將當(dāng)前鄰居節(jié)點w的可用時隙集合記錄到數(shù)組free[index]中;S5、判斷當(dāng)前鄰居節(jié)點w是否為路由目標(biāo)節(jié)點,若當(dāng)前鄰居節(jié)點w是目標(biāo)節(jié)點,進(jìn)行路由最后一段鏈路的時隙分配,執(zhí)行步驟S6的操作;若當(dāng)前鄰居節(jié)點w是到達(dá)目標(biāo)節(jié)點的中繼節(jié)點,通過所述Request包index字段的值判斷是否需要執(zhí)行三跳鏈路時隙分配算法,若index的值不等于3,繼續(xù)廣播所述Request包到節(jié)點w的鄰居節(jié)點,執(zhí)行步驟S3的操作;若index的值等于3,在節(jié)點w執(zhí)行步驟S7的操作;S6、進(jìn)行路由最后一段未分配鏈路的時隙分配,根據(jù)所述Request包記錄的信息,計算當(dāng)前路由最新一段未分配鏈路的鏈路數(shù)hops和各鏈路的可用時隙集合保存在數(shù)組link,執(zhí)行步驟S9的重復(fù)時隙去重操作,執(zhí)行步驟S10的三跳鏈路時隙分配算法,若最后一段鏈路時隙分配成功,則建立滿足實時數(shù)據(jù)帶寬需求的路由,否則路由建立失?。籗7、進(jìn)行路由當(dāng)前一段未分配鏈路的時隙分配,根據(jù)所述Request包記錄的信息,計算當(dāng)前路由最新一段未分配鏈路的鏈路數(shù)hops和各鏈路的可用時隙集合保存在數(shù)組link,執(zhí)行步驟S9的重復(fù)時隙去重操作,執(zhí)行步驟S10的三跳鏈路時隙分配算法,若當(dāng)前一段鏈路時隙分配成功,執(zhí)行步驟S8的操作,否則當(dāng)前一段鏈路時隙分配失敗,路由建立失敗,停止繼續(xù)廣播所述Request包;S8、當(dāng)前一段鏈路的鏈路數(shù)為3,將當(dāng)前一段鏈路第二跳和第三跳鏈路的時隙分配結(jié)果保存在所述Request包的assign數(shù)組用于下一段未分配鏈路的重復(fù)時隙去重操作,將所述Request包字段index的值重置為0,即index=0,將當(dāng)前節(jié)點的可用時隙集合記錄到free[index=0]中,將所述Request包廣播到當(dāng)前節(jié)點的鄰居節(jié)點,執(zhí)行步驟S3的操作;S9、重復(fù)時隙去重操作,在所述Request包定義數(shù)組assign記錄上一段三跳鏈路最后兩跳鏈路的時隙分配結(jié)果,數(shù)組assign的長度為2,當(dāng)序號為N的節(jié)點是路由的目標(biāo)節(jié)點,執(zhí)行包含目標(biāo)節(jié)點的最后一段未分配鏈路的重復(fù)時隙去重操作,否則序號為N的節(jié)點是到達(dá)路由目標(biāo)節(jié)點的中繼節(jié)點,執(zhí)行當(dāng)前一段未分配鏈路的重復(fù)時隙去重操作;S10、進(jìn)行三跳鏈路時隙分配,假設(shè)路由的帶寬需求為r個時隙,定義數(shù)組allocate保存最新一段未分配鏈路各鏈路分配的時隙集合,針對數(shù)組link,對每一跳鏈路可用時隙集合的時隙進(jìn)行干擾程度統(tǒng)計,每個時隙的干擾程度factor為該時隙在三跳鏈路范圍內(nèi)出現(xiàn)的次數(shù),在三跳鏈路范圍內(nèi)分配時隙,選擇可用時隙集合元素最少的鏈路L,在鏈路L分配干擾程度factor最小的時隙S,將時隙S保存在allocate[L]對應(yīng)的時隙集合,為使路由連續(xù)三跳鏈路分配不相交的時隙集合,在鏈路L分配時隙S后,需要在當(dāng)前一段鏈路各鏈路的可用時隙集合link中將時隙S移除,若能使當(dāng)前一段鏈路各鏈路均分配到r個時隙,則返回當(dāng)前一段鏈路時隙分配成功,將當(dāng)前一段鏈路各鏈路的時隙分配結(jié)果保存在當(dāng)前節(jié)點,否則返回當(dāng)前一段鏈路時隙分配失敗。進(jìn)一步地,所述執(zhí)行包含目標(biāo)節(jié)點的最后一段未分配鏈路的重復(fù)時隙去重操作具體為:對于所述Request包字段N的值,當(dāng)運行三跳鏈路時隙分配算法的節(jié)點序號N的值大于3,表示當(dāng)前一段需要分配時隙的鏈路不是路由的第一段鏈路,執(zhí)行l(wèi)ink[0]=link[0]-assign[0]-assign[1],表示當(dāng)前一段鏈路的第一跳鏈路的可用時隙集合不能與上一段鏈路的第二跳和第三跳鏈路的分配時隙集合相交;若hops的值大于等于2,表示當(dāng)前一段鏈路的鏈路數(shù)多于兩跳,對于當(dāng)前一段鏈路的第二跳鏈路,執(zhí)行l(wèi)ink[1]=link[1]-assign[1],表示當(dāng)前一段鏈路的第二跳鏈路的可用時隙集合不能與上一段鏈路第三跳鏈路的分配時隙集合相交。進(jìn)一步地,所述執(zhí)行當(dāng)前一段未分配鏈路的重復(fù)時隙去重操作具體為:對于所述Request包字段N的值,當(dāng)運行三跳鏈路時隙分配算法的節(jié)點序號N的值大于3,表示當(dāng)前一段需要分配時隙的鏈路不是路由的第一段鏈路,并且當(dāng)前一段鏈路的鏈路數(shù)為3,當(dāng)前一段鏈路的第一跳鏈路的可用時隙集合不能與上一段鏈路的第二跳和第三跳鏈路的分配時隙集合相交,執(zhí)行l(wèi)ink[0]=link[0]-assign[0]-assign[1],對于當(dāng)前一段鏈路的第二跳鏈路,執(zhí)行l(wèi)ink[1]=link[1]-assign[1],表示當(dāng)前一段鏈路的第二跳鏈路的可用時隙集合不能與上一段鏈路第三跳鏈路的分配時隙集合相交。進(jìn)一步地,所述步驟S1中使用AODV協(xié)議進(jìn)行路由建立,使用TDMA協(xié)議訪問無線信道,使用IFQ隊列緩存數(shù)據(jù)包,使用全向天線使得在一個時隙內(nèi)只能發(fā)送或者接收數(shù)據(jù)。進(jìn)一步地,節(jié)點的時隙狀態(tài)信息保存在TDMA協(xié)議。進(jìn)一步地,節(jié)點的時隙分為數(shù)據(jù)幀時隙和控制幀時隙,在所述控制幀時隙只能發(fā)送路由控制包,在所述數(shù)據(jù)幀時隙只能發(fā)送實時數(shù)據(jù)包,并且所述數(shù)據(jù)幀時隙只服務(wù)于指定的實時數(shù)據(jù)流。進(jìn)一步地,所述TDMA協(xié)議加入兩個FIFO數(shù)據(jù)包緩存隊列,包括實時數(shù)據(jù)包緩存隊列和路由控制包緩存隊列,所述TDMA協(xié)議的每個發(fā)送時隙均從IFq隊列取出一個數(shù)據(jù)包,根據(jù)數(shù)據(jù)包的類型存入相應(yīng)緩存隊列,當(dāng)需要進(jìn)行數(shù)據(jù)發(fā)送時,根據(jù)發(fā)送時隙的類別從相應(yīng)緩存隊列中取出數(shù)據(jù)包,在所述控制幀時隙,從所述路由控制包緩存隊列中取出一個路由控制包進(jìn)行發(fā)送,在所述數(shù)據(jù)幀時隙,根據(jù)數(shù)據(jù)幀時隙服務(wù)的數(shù)據(jù)流在所述實時數(shù)據(jù)包緩存隊列中取出相應(yīng)實時數(shù)據(jù)包進(jìn)行發(fā)送。進(jìn)一步地,所述節(jié)點的時隙狀態(tài)信息在路由控制包保存時采用輕量級存儲方法,通過使用二進(jìn)制整數(shù)記錄節(jié)點時隙集合。進(jìn)一步地,所述數(shù)組free的長度為4。進(jìn)一步地,所述干擾程度factor的取值為1、2或3。本發(fā)明相對于現(xiàn)有技術(shù)具有如下的優(yōu)點及效果:(1)本發(fā)明采用基于三跳鏈路的時隙分配算法,相對于端到端式時隙分配算法,可以有效減小路由控制包記錄時隙狀態(tài)信息產(chǎn)生的存儲開銷和目標(biāo)節(jié)點運行算法對路由各節(jié)點進(jìn)行時隙分配產(chǎn)生的處理開銷。(2)本發(fā)明采用基于三跳鏈路的時隙分配算法,相對于逐跳式時隙分配算法,可以考慮當(dāng)前鏈路時隙分配對后續(xù)兩跳鏈路造成的干擾,保證路由中連續(xù)三跳鏈路分配不相交的時隙集合,提高時隙的空間復(fù)用率。(3)本發(fā)明的實現(xiàn)通過以下改進(jìn)對現(xiàn)有方案進(jìn)行優(yōu)化,通過將節(jié)點可用時隙集合轉(zhuǎn)化為二進(jìn)制整形數(shù),減少在路由控制包中使用數(shù)組記錄時隙狀態(tài)信息產(chǎn)生的存儲開銷。在TDMA協(xié)議提出區(qū)分路由控制包和實時數(shù)據(jù)包進(jìn)行處理的方法,避免數(shù)據(jù)包隊列阻塞引起的時隙資源利用率下降的問題,真正發(fā)揮多時隙數(shù)據(jù)傳輸?shù)膬?yōu)勢。附圖說明圖1是本發(fā)明公開的一種滿足實時數(shù)據(jù)帶寬需求的時隙分配方法的流程圖;圖2是具有8個時隙的時隙圖;圖3是時隙集合{1,2}轉(zhuǎn)為整形數(shù)0x03的過程圖;圖4是整形數(shù)0x03轉(zhuǎn)化為時隙集合{1,2}的過程圖。具體實施方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。實施例三跳鏈路時隙分配算法在路由建立過程中使用,本發(fā)明的路由層采用AODV協(xié)議,AODV協(xié)議可建立無環(huán)路由的特性使得路由中每一個節(jié)點具有一個唯一遞增的序號,根據(jù)這個序號可以判斷節(jié)點距離路由源節(jié)點的跳數(shù),三跳鏈路時隙分配算法根據(jù)這個序號在路由建立過程中以三跳鏈路為單位進(jìn)行時隙分配。時隙分配的最終目標(biāo)是使路由中連續(xù)三跳鏈路分配的時隙集合的交集為空集,路由各節(jié)點可以在分配的時隙進(jìn)行數(shù)據(jù)的無沖突傳輸。下面結(jié)合附圖1中本發(fā)明公開的一種滿足實時數(shù)據(jù)帶寬需求的時隙分配方法的流程圖,具體說明本發(fā)明的方案,該方案的實現(xiàn)包括以下步驟:S1、源節(jié)點u需要發(fā)送實時數(shù)據(jù)到目標(biāo)節(jié)點v,若源節(jié)點u的路由表沒有記錄到達(dá)目標(biāo)節(jié)點v的路由表項。源節(jié)點u通過廣播Request包的方式發(fā)起路由建立過程,路由的連續(xù)三跳鏈路由四個節(jié)點組成,使用Request包記錄路由信息,在Request包定義字段index表示當(dāng)前節(jié)點在路由最新一段未分配鏈路中的序號,定義字段N為節(jié)點在路由中的序號,令N=0和index=0,執(zhí)行步驟S2的操作。S2、源節(jié)點u的時隙狀態(tài)信息保存在TDMA協(xié)議,在Request包中定義數(shù)組free記錄路由最新一段未分配鏈路中各節(jié)點的可用時隙集合,數(shù)組free的長度為4,將源節(jié)點u的可用時隙集合記錄到free[index=0]中。將Request包廣播到源節(jié)點的鄰居節(jié)點w,執(zhí)行步驟S3的操作。S3、鄰居節(jié)點w接收到Request包,判斷是否已經(jīng)接收該Request包,若已經(jīng)接收該Request包,則丟棄不做額外處理。否則在第一次接收該Request包后,執(zhí)行步驟S4的操作。S4、更新字段N=N+1、index=index+1,將當(dāng)前鄰居節(jié)點w的可用時隙集合記錄到數(shù)組free[index]中,執(zhí)行步驟S5的操作。S5、判斷當(dāng)前鄰居節(jié)點w是否為路由目標(biāo)節(jié)點,若當(dāng)前鄰居節(jié)點w是目標(biāo)節(jié)點,進(jìn)行路由最后一段鏈路的時隙分配,執(zhí)行步驟S6的操作。否則當(dāng)前鄰居節(jié)點w是到達(dá)目標(biāo)節(jié)點的中繼節(jié)點,通過Request包index字段的值判斷是否需要執(zhí)行三跳鏈路時隙分配算法,若index的值不等于3,表示當(dāng)前未分配時隙的鏈路數(shù)不足三跳,繼續(xù)廣播該Request包到節(jié)點w的鄰居節(jié)點,執(zhí)行步驟S3的操作。否則index的值等于3,需要在節(jié)點w執(zhí)行步驟S7的操作。S6、進(jìn)行路由最后一段未分配鏈路的時隙分配:根據(jù)Request包記錄的信息,計算當(dāng)前路由最新一段未分配鏈路的鏈路數(shù)hops和各鏈路的可用時隙集合保存在數(shù)組link。執(zhí)行步驟S9的重復(fù)時隙去重操作,執(zhí)行步驟S12的三跳鏈路時隙分配算法,若最后一段鏈路時隙分配成功,則建立滿足實時數(shù)據(jù)帶寬需求的路由,否則路由建立失敗。S7、進(jìn)行路由當(dāng)前一段未分配鏈路的時隙分配:根據(jù)Request包記錄的信息,計算當(dāng)前路由最新一段未分配鏈路的鏈路數(shù)hops和各鏈路的可用時隙集合保存在數(shù)組link。執(zhí)行步驟S9的重復(fù)時隙去重操作,執(zhí)行步驟S10的三跳鏈路時隙分配算法,若當(dāng)前一段鏈路時隙分配成功,執(zhí)行步驟S8的操作,否則當(dāng)前一段鏈路時隙分配失敗,路由建立失敗,停止繼續(xù)廣播該Request包。S8、當(dāng)前一段鏈路的鏈路數(shù)為3,將當(dāng)前一段鏈路第二跳和第三跳鏈路的時隙分配結(jié)果保存在Request包的assign數(shù)組用于下一段未分配鏈路的重復(fù)時隙去重操作,將Request包字段index的值重置為0,即index=0。將當(dāng)前節(jié)點的可用時隙集合記錄到free[index=0]中。將Request包廣播到當(dāng)前節(jié)點的鄰居節(jié)點,執(zhí)行步驟S3的操作。S9、重復(fù)時隙去重操作:三跳鏈路時隙分配算法需要保證路由連續(xù)三跳鏈路時隙分配結(jié)果的集合交集為空集,而且在路由建立過程中三跳鏈路時隙分配算法需要在目標(biāo)節(jié)點和序號N是3的倍數(shù)的節(jié)點執(zhí)行,并且包含目標(biāo)節(jié)點的最后一段鏈路的鏈路數(shù)不一定為3。對于路由中不是第一段三跳鏈路需要執(zhí)行重復(fù)時隙去重操作,重復(fù)時隙去重操作的具體步驟為:在Request包定義數(shù)組assign記錄上一段三跳鏈路最后兩跳鏈路的時隙分配結(jié)果,數(shù)組assign的長度為2。當(dāng)序號為N的節(jié)點是路由的目標(biāo)節(jié)點,執(zhí)行包含目標(biāo)節(jié)點的最后一段未分配鏈路的重復(fù)時隙去重操作,否則序號為N的節(jié)點是到達(dá)路由目標(biāo)節(jié)點的中繼節(jié)點,執(zhí)行當(dāng)前一段未分配鏈路的重復(fù)時隙去重操作。其中,所述執(zhí)行包含目標(biāo)節(jié)點的最后一段未分配鏈路的重復(fù)時隙去重操作具體為:對于Request包字段N的值,當(dāng)運行三跳鏈路時隙分配算法的節(jié)點序號N的值大于3,表示當(dāng)前一段需要分配時隙的鏈路不是路由的第一段鏈路,執(zhí)行l(wèi)ink[0]=link[0]-assign[0]-assign[1],表示當(dāng)前一段鏈路的第一跳鏈路的可用時隙集合不能與上一段鏈路的第二跳和第三跳鏈路的分配時隙集合相交。若hops的值大于等于2,表示當(dāng)前一段鏈路的鏈路數(shù)多于兩跳,對于當(dāng)前一段鏈路的第二跳鏈路,執(zhí)行l(wèi)ink[1]=link[1]-assign[1],表示當(dāng)前一段鏈路的第二跳鏈路的可用時隙集合不能與上一段鏈路第三跳鏈路的分配時隙集合相交。其中,所述執(zhí)行當(dāng)前一段未分配鏈路的重復(fù)時隙去重操作具體為:對于Request包字段N的值,當(dāng)運行三跳鏈路時隙分配算法的節(jié)點序號N的值大于3,表示當(dāng)前一段需要分配時隙的鏈路不是路由的第一段鏈路,并且當(dāng)前一段鏈路的鏈路數(shù)為3,當(dāng)前一段鏈路的第一跳鏈路的可用時隙集合不能與上一段鏈路的第二跳和第三跳鏈路的分配時隙集合相交。執(zhí)行l(wèi)ink[0]=link[0]-assign[0]-assign[1],對于當(dāng)前一段鏈路的第二跳鏈路,執(zhí)行l(wèi)ink[1]=link[1]-assign[1],表示當(dāng)前一段鏈路的第二跳鏈路的可用時隙集合不能與上一段鏈路第三跳鏈路的分配時隙集合相交。S10、三跳鏈路時隙分配算法:注意hops的取值可能為1、2、3,當(dāng)hops不等于3也不會影響在三跳范圍內(nèi)進(jìn)行時隙分配。假設(shè)路由的帶寬需求為r個時隙,定義數(shù)組allocate保存最新一段未分配鏈路各鏈路分配的時隙集合。針對數(shù)組link,對每一跳鏈路可用時隙集合的時隙進(jìn)行干擾程度統(tǒng)計,每個時隙的干擾程度factor為該時隙在三跳鏈路范圍內(nèi)出現(xiàn)的次數(shù),factor的取值可能為1、2、3。在三跳鏈路范圍內(nèi)分配時隙,選擇可用時隙集合元素最少的鏈路L,在鏈路L分配干擾程度factor最小的時隙S,將時隙S保存在allocate[L]對應(yīng)的時隙集合。為使路由連續(xù)三跳鏈路分配不相交的時隙集合,在鏈路L分配時隙S后,需要在當(dāng)前一段鏈路各鏈路的可用時隙集合link中將時隙S移除。若能使當(dāng)前一段鏈路各鏈路均分配到r個時隙,則返回當(dāng)前一段鏈路時隙分配成功,將當(dāng)前一段鏈路各鏈路的時隙分配結(jié)果保存在當(dāng)前節(jié)點,否則返回當(dāng)前一段鏈路時隙分配失敗。為了能在NS2中進(jìn)行本發(fā)明的模擬仿真,需要通過表1中參數(shù)對移動自組織網(wǎng)絡(luò)的節(jié)點進(jìn)行配置:表1.NS2網(wǎng)絡(luò)模擬參數(shù)配置表參數(shù)名參數(shù)值參數(shù)說明val(chan)Channel/WirelessChannel物理信道類型:無線信道val(prop)Propagation/TwoRayGround無線傳輸模型:TwoRayGroundval(netif)Phy/WirelessPhy網(wǎng)絡(luò)接口類型:無線物理層val(mac)Mac/TdmaMAc層:Tdmaval(ifq)Queue/DropTail/PriQueue接口隊列類型:IFQ隊列val(II)LL邏輯鏈路層類型:LL層val(ant)Antenna/OmniAntenna天線模型:全向天線val(ifqlen)100網(wǎng)絡(luò)接口隊列大?。?00val(rp)AODV無線路由協(xié)議:AODVval(nn)16節(jié)點數(shù)目:16val(x)1000仿真區(qū)域長度1000mval(y)1000仿真區(qū)域?qū)挾?000mval(stop)100.0設(shè)定模擬時間100s(1)使用AODV協(xié)議進(jìn)行路由建立,使用TDMA協(xié)議訪問無線信道,使用IFQ隊列緩存數(shù)據(jù)包,使用全向天線使得在一個時隙內(nèi)只能發(fā)送或者接收數(shù)據(jù)。(2)節(jié)點的時隙分為兩種,數(shù)據(jù)幀時隙和控制幀時隙。在控制幀時隙只能發(fā)送路由控制包,在數(shù)據(jù)幀時隙只能發(fā)送實時數(shù)據(jù)包,并且數(shù)據(jù)幀時隙只服務(wù)于指定的實時數(shù)據(jù)流。(3)在1000m乘1000m的仿真區(qū)域內(nèi)有16個節(jié)點,為使網(wǎng)絡(luò)各節(jié)點可以進(jìn)行路由控制包的無沖突傳輸,使節(jié)點的控制幀時隙個數(shù)等于16。(4)網(wǎng)絡(luò)模擬中在路由建立過程使用三跳鏈路時隙分配算法,進(jìn)行路由各節(jié)點的時隙分配,并將時隙分配結(jié)果保存在運行算法的節(jié)點。(5)網(wǎng)絡(luò)模擬中在路由應(yīng)答的過程,在保存有時隙分配結(jié)果的節(jié)點,將結(jié)果信息記錄在應(yīng)答包,進(jìn)行該段鏈路各節(jié)點的時隙預(yù)留。(6)在建立一條滿足帶寬需求的路由后,源節(jié)點開始傳輸實時數(shù)據(jù)到目標(biāo)節(jié)點。在路由建立失敗超時后,源節(jié)點重新發(fā)起路由建立的請求。本發(fā)明提出輕量級的存儲方法記錄節(jié)點時隙的狀態(tài)信息,利用定義相應(yīng)二進(jìn)制整數(shù)的方法進(jìn)行時隙狀態(tài)信息的記錄。首先需要定義時隙表,表中的各項數(shù)值定義如下:假設(shè)節(jié)點共有N個時隙需要記錄,則序號為1的時隙在表中的值為0x01,序號為N的時隙在表中的值為0x01左移N位后的數(shù)值。(一)時隙的存儲方式(1)時隙集合轉(zhuǎn)化為整形數(shù):將時隙集合中每項時隙對應(yīng)時隙表中的數(shù)值進(jìn)行按位或運算,得到的結(jié)果即為節(jié)點時隙集合對應(yīng)的整形數(shù)。(2)整形數(shù)轉(zhuǎn)化為時隙集合:對時隙表中的各項數(shù)值進(jìn)行一次遍歷,當(dāng)遍歷到某一項數(shù)值時,將整形數(shù)與該數(shù)值進(jìn)行按位與運算,若運算結(jié)果等于該數(shù)值,將該數(shù)值對應(yīng)的時隙序號加入到集合當(dāng)中。通過對時隙表進(jìn)行一次遍歷得到整形數(shù)對應(yīng)的時隙集合。通過圖2具有8個時隙的時隙表進(jìn)行說明,圖2為具有8個時隙的時隙圖,圖3為時隙集合{1,2}轉(zhuǎn)為整形數(shù)0x03的過程圖,圖4為整形數(shù)0x03轉(zhuǎn)化為時隙集合{1,2}的過程圖。(二)區(qū)分實時數(shù)據(jù)包和路由控制包進(jìn)行處理NS2的TDMA協(xié)議在每個發(fā)送時隙會從IFQ隊列取出一個數(shù)據(jù)包,然后阻塞IFQ隊列,直到成功發(fā)送取出的數(shù)據(jù)包后再從IFQ隊列取出下一個待發(fā)送的數(shù)據(jù)包。當(dāng)出現(xiàn)以下三種情形將使TDMA協(xié)議的部分時隙處于阻塞狀態(tài),白白浪費發(fā)送時隙對應(yīng)的無線信道資源。(1)節(jié)點在控制幀時隙取出實時數(shù)據(jù)包。(2)節(jié)點在數(shù)據(jù)幀時隙取出路由控制包。(3)節(jié)點在數(shù)據(jù)幀時隙取出不屬于該時隙服務(wù)數(shù)據(jù)流的實時數(shù)據(jù)包。為了避免這三種情形對時隙資源的浪費和真正發(fā)揮多時隙數(shù)據(jù)傳輸?shù)膬?yōu)勢,需要對原生的TDMA協(xié)議做相應(yīng)修改,具體做法是在TDMA協(xié)議加入兩個FIFO數(shù)據(jù)包緩存隊列,包括實時數(shù)據(jù)包緩存隊列和路由控制包緩存隊列。TDMA協(xié)議的每個發(fā)送時隙均從IFq隊列取出一個數(shù)據(jù)包,根據(jù)數(shù)據(jù)包的類型存入相應(yīng)緩存隊列。當(dāng)需要進(jìn)行數(shù)據(jù)發(fā)送時,根據(jù)發(fā)送時隙的類別從相應(yīng)緩存隊列中取出數(shù)據(jù)包。(1)控制幀發(fā)送時隙,從路由控制包緩存隊列中取出一個路由控制包進(jìn)行發(fā)送。(2)數(shù)據(jù)幀發(fā)送時隙,根據(jù)數(shù)據(jù)幀時隙服務(wù)的數(shù)據(jù)流在實時數(shù)據(jù)包緩存隊列中取出相應(yīng)實時數(shù)據(jù)包進(jìn)行發(fā)送。綜上所述,本實施例針對TDMA網(wǎng)絡(luò)的時隙分配問題,公開了一種滿足實時數(shù)據(jù)帶寬需求的時隙分配方法,該方法包括:一種三跳鏈路時隙分配算法,在路由建立過程中以三跳鏈路為單位進(jìn)行時隙分配,在三跳鏈路范圍內(nèi)對每一跳鏈路可用時隙集合的時隙進(jìn)行干擾程度統(tǒng)計,統(tǒng)計每個時隙在三跳鏈路范圍內(nèi)出現(xiàn)的次數(shù),在三跳鏈路范圍內(nèi)分配時隙時,選擇可用時隙集合元素最少的鏈路,在該鏈路分配干擾程度最小的時隙;一種在路由控制包保存時隙狀態(tài)信息的輕量級存儲方法,通過使用二進(jìn)制整數(shù)記錄節(jié)點時隙集合,減小路由控制包由于記錄時隙信息產(chǎn)生的存儲開銷;一種在TDMA協(xié)議區(qū)分路由控制包和實時數(shù)據(jù)包進(jìn)行處理的方法,避免數(shù)據(jù)包隊列阻塞引起的時隙資源利用率下降的問題。通過本發(fā)明提出方案的優(yōu)化和改進(jìn)滿足實時數(shù)據(jù)的帶寬需求,從而提升網(wǎng)絡(luò)的整體性能。上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁1 2 3