本發明涉及無線通信領域,特別是涉及一種無線信道資源分配方法。
背景技術:
無線自組織網絡相比較傳統的無線通信網絡,具有可快速組網、對基礎設施要求低和抗毀滅性強的特征,被廣泛應用于軍事通信、救援抗災、智能交通等領域。
類似于tcp/ip協議棧的osi模型,無線自組織網絡的底層協議棧也可以分為物理層(phy)、介質訪問控制層(mac)和網絡層(net),其中mac層負責接入控制及無線資源分配。mac層的協議會直接影響著網絡的時延、吞吐量、信道利用率等性能指標,因此選擇合適的無線信道資源分配方法對網絡的整體性能至關重要。
無線通信網絡的介質訪問控制(mac)協議主要解決節點的接入控制和無線資源分配兩個問題,在接入控制上,主流技術大多采用csma/ca的競爭機制;在信道分配上,對于多信道無線通信網絡,要為不同的通信節點分配合適的信道資源及決定占用信道資源的時間長度。
當前無線信道分配方法多集中在如何為不同通信節點分配信道資源即選擇合適的信道上,而對于通信節點的時域資源如何分配上即占用信道資源的時間長度少有涉及。
現有技術中存在一種預約時隙分配的方法,基于預先劃分好的時隙結構,當無線通信網絡內通信節點數變化或需求變更時采用,其他節點即接收方收到預約時隙請求后,判斷本節點是否占有預約時隙,如果沒有占用,則不作任何處理返回,否則應按照預定算法,計算本節點是否應放棄占有的預約時隙;如果計算結果是應放棄預約時隙,則向請求方回復預約請求,放棄預約時隙,請求方收到回復預約請求后,確認預約成功,完成預約時隙的轉讓;在網內同時存在多個預約請求的情況下,網絡內節點會根據時隙編號的先后順序依次處理。此種分配方式仍需基于預先劃分好的時隙結構,因此網絡中各無線通信節點需要進行時間同步才能正確的使用所預約的時隙,不適用于無需時間同步的無線通信網絡。同時源通信節點的非目標通信節點的鄰居節點收到預約時隙請求都需要向源通信節點回復消息,增加了協商信道上的開銷。
現有技術中還存在一種傳統csma/ca方案,將協商信道與數據信道分開,即假設可用信道有n個,則協商信道選用其中的一個,其余n-1個用作數據信道。傳統csma/ca機制中源通信節點在發送數據前,先在協商信道上發送rts請求無線資源,其中攜帶選用的數據信道及請求占用的時間長度;目標通信節點在接收到rts幀后,為源通信節點在申請的數據信道上分配其申請長度的時隙資源,簡單來說就是申請多長分配多長。此方案中,無線通信節點的數據發送需求是動態變化的,從源通信節點申請資源開始到目標通信節點回復確認消息,源節點可能又產生了新的數據發送需求,此種方式下就需要對新的數據發送需求進行多次申請資源,增加了協商次數,對于整個網絡來說加重了協商信道的負載,同時也增加了協商信道上發生沖突的概率,對于單個通信節點來說不利于通信節點的省電,同時新的數據需求也沒有得到及時滿足即增大了通信時延。
技術實現要素:
發明目的:本發明的目的是提供一種能夠解決現有技術中存在的缺陷的無線信道資源分配方法。
技術方案:本發明所述的無線信道資源分配方法,包括以下步驟:
s1:確定最大符號數;
s2:發送數據前,源節點選擇數據信道,在競爭得到的協商信道上發送rts幀給目標節點,rts幀中攜帶源節點待發送數據的符號數、源節點所能占用信道資源的最大符號數以及源節點要求占用的數據信道;
s3:目標節點以外的其他節點收到rts幀后,分別維護nav1和nav2的信息:nav1信息中,將rts幀中攜帶的源節點要求占用的數據信道置為已占用狀態,占用時間段為本節點收到rts幀時刻起到源節點待發送數據傳輸結束;nav2信息中,將rts幀中攜帶的源節點要求占用的數據信道置為已占用狀態,占用時間段為本節點收到rts幀時刻起到源節點最大符號長度數據傳輸結束;
s4:目標節點收到rts幀后,如果發現源節點要求占用的數據信道的時間段與目標節點自身維護的nav1信息沒有沖突,則目標節點發送cts幀給源節點,cts幀中攜帶源節點待發送數據的符號數、源節點所能占用信道資源的最大符號數以及源節點要求占用的數據信道;
s5:源節點以外的其他節點收到cts幀后,分別維護nav1和nav2的信息:nav1信息中,將cts幀中攜帶的源節點要求占用的數據信道置為已占用狀態,占用時間段為本節點收到cts幀時刻起到源節點待發送數據傳輸結束;nav2信息中,將cts幀中攜帶的源節點要求占用的數據信道置為已占用狀態,占用時間段為本節點收到cts幀時刻起到源節點最大符號長度數據傳輸結束;
s6:源節點收到cts幀后,判斷是否有新的數據要發送給目標節點:如果是,則源節點在最大符號長度范圍內將新的數據與步驟s2中的待發送數據一起打包,并攜帶數據包個數和長度信息發送給目標節點;否則,則直接將步驟s2中的待發送數據發送給目標節點。
進一步,所述步驟s1中,所述最大符號數是預先設置好的。
進一步,所述步驟s1中,所述最大符號數smax根據源節點的數據到達情況的統計信息計算得到,如式(1)所示:
smax=max([prate×lavg×t×100]×lavg,lreq)(1)
式(1)中,prate為統計得到的每秒到達源節點的數據包個數,lavg為統計時間內的平均包長,t為每符號的時間長度,lreq為當前待發送數據的符號位;[]表示向上取整。
進一步,所述步驟s2中,源節點待發送數據的符號數包括目標節點回復ack所占用的符號數。
進一步,所述步驟s2中,源節點根據以下方法選擇數據信道:
s2.1:源節點判斷nav2信息中是否存在未被標記為占用狀態的數據信道:如果是,則隨機選擇一個數據信道;否則,則進行步驟s2.2;
s2.2:源節點判斷nav1信息中是否存在未被標記為占用狀態的數據信道:如果是,則進行步驟s2.3;否則,則取消本次rts幀的發送;
s2.3:判斷nav1信息中未被標記為占用狀態的數據信道是否為多個:如果為多個,則根據以下兩種方式中任意一種選擇出一個數據信道;如果為一個,則直接選擇該數據信道;
方式一:計算待發送數據結束時刻點與nav1信息中各個未被標記為占用狀態的數據信道的結束時刻點之間的距離:如果各個距離不全相等,則選擇最大距離對應的數據信道;否則,隨機選擇一個數據信道;
方式二:計算待發送數據結束時刻點與nav2信息中各個未被標記為占用狀態的數據信道的結束時刻點之間的距離:如果各個距離不全相等,則選擇最小距離對應的數據信道;否則,隨機選擇一個數據信道。
有益效果:與現有技術相比,本發明具有如下的有益效果:
1)通過本發明,無線通信節點的數據發送需求能夠及時得到滿足,減少了協商次數,降低了協商信道上的控制信息開銷,避免網絡負載較大時協商信道因為控制信息較多從而沖突概率較大成為性能瓶頸;
2)網絡負載較輕時,數據包的到達頻率較慢,本發明并沒有造成性能惡化;網絡負載較大時,數據包的到達頻率較快,本發明可以盡可能的利用一次分配的資源,提升了無線通信網絡的吞吐量,減少了通信節點總的發送次數進而降低了通信節點的功耗,同時降低了無線通信網絡整體的通信時延。
附圖說明
圖1為本發明具體實施方式中的無線網絡的拓撲結構圖;
圖2為本發明具體實施方式中的無線通信節點的結構示意圖;
圖3為本發明具體實施方式中的nav信息維護示意圖;
圖4為本發明具體實施方式中的總方法流程圖;
圖5為本發明具體實施方式中的數據信道選擇流程圖。
具體實施方式
下面結合附圖和具體實施方式,對本發明的技術方案作進一步的介紹。
本具體實施方式公開了一種無線信道資源分配方法,如圖4所示,包括以下步驟:
s1:確定最大符號數;
s2:發送數據前,源節點選擇數據信道,在競爭得到的協商信道上發送rts幀給目標節點,rts幀中攜帶源節點待發送數據的符號數、源節點所能占用信道資源的最大符號數以及源節點要求占用的數據信道;源節點待發送數據的符號數包括目標節點回復ack所占用的符號數;
s3:目標節點以外的其他節點收到rts幀后,分別維護nav1和nav2的信息:nav1信息中,將rts幀中攜帶的源節點要求占用的數據信道置為已占用狀態,占用時間段為本節點收到rts幀時刻起到源節點待發送數據傳輸結束;nav2信息中,將rts幀中攜帶的源節點要求占用的數據信道置為已占用狀態,占用時間段為本節點收到rts幀時刻起到源節點最大符號長度數據傳輸結束;
s4:目標節點收到rts幀后,如果發現源節點要求占用的數據信道的時間段與目標節點自身維護的nav1信息沒有沖突,則目標節點發送cts幀給源節點,cts幀中攜帶源節點待發送數據的符號數、源節點所能占用信道資源的最大符號數以及源節點要求占用的數據信道;
s5:源節點以外的其他節點收到cts幀后,分別維護nav1和nav2的信息:nav1信息中,將cts幀中攜帶的源節點要求占用的數據信道置為已占用狀態,占用時間段為本節點收到cts幀時刻起到源節點待發送數據傳輸結束;nav2信息中,將cts幀中攜帶的源節點要求占用的數據信道置為已占用狀態,占用時間段為本節點收到cts幀時刻起到源節點最大符號長度數據傳輸結束;
s6:源節點收到cts幀后,判斷是否有新的數據要發送給目標節點:如果是,則源節點在最大符號長度范圍內將新的數據與步驟s2中的待發送數據一起打包,并攜帶數據包個數和長度信息發送給目標節點;否則,則直接將步驟s2中的待發送數據發送給目標節點。
步驟s1中,最大符號數可采用靜態確定方式或者動態確定方式來確定。
靜態確定方式是將最大符號數預先設置好,這種方式只在節點開機時執行一次。
動態確定方式是根據源節點的數據到達情況的統計信息計算得到最大符號數smax,如式(1)所示:
smax=max([prate×lavg×t×100]×lavg,lreq)(1)
式(1)中,prate為統計得到的每秒到達源節點的數據包個數,lavg為統計時間內的平均包長,t為每符號的時間長度,lreq為當前待發送數據的符號位;[]表示向上取整。這種方式在每次數據發送前都要執行一次。
步驟s2中,源節點根據以下方法選擇數據信道:
s2.1:源節點判斷nav2信息中是否存在未被標記為占用狀態的數據信道:如果是,則隨機選擇一個數據信道;否則,則進行步驟s2.2;
s2.2:源節點判斷nav1信息中是否存在未被標記為占用狀態的數據信道:如果是,則進行步驟s2.3;否則,則取消本次rts幀的發送;
s2.3:判斷nav1信息中未被標記為占用狀態的數據信道是否為多個:如果為多個,則根據以下兩種方式中任意一種選擇出一個數據信道;如果為一個,則直接選擇該數據信道;
方式一:計算待發送數據結束時刻點與nav1信息中各個未被標記為占用狀態的數據信道的結束時刻點之間的距離:如果各個距離不全相等,則選擇最大距離對應的數據信道;否則,隨機選擇一個數據信道;
方式二:計算待發送數據結束時刻點與nav2信息中各個未被標記為占用狀態的數據信道的結束時刻點之間的距離:如果各個距離不全相等,則選擇最小距離對應的數據信道;否則,隨機選擇一個數據信道。
本具體實施方式中的“節點”是“無線通信節點”的簡稱,節點包括無線終端、無線中繼和基站等無線通信設備,結構上可以是單發雙收、雙發雙收和多發多收等多種形式。
下面以一個無線通信網絡為例,對本發明的技術方案作進一步的介紹。
圖1是一個無線通信網絡,其中有6個節點,分別是節點a、節點b、節點c、節點d、節點e和節點f。圖1中相鄰兩個節點之間的連線表示這兩個節點互為鄰居節點。每個節點的結構都如圖2所示,采用全向天線,可以向任意方向發送以及從任意方向接收無線信號。
無線通信網絡中采用設定協商信道的方式,以便快速獲得相鄰節點信道占用情況以及快速完成信道協商過程。圖3是nav信息維護示意圖,圖5是數據信道選擇的流程圖。
實施例1:
假設節點a在某一時刻有5個符號的數據要發送給節點b,則無線信道資源分配方法包括以下步驟:
s1:采用靜態確定方式確定最大符號數為100;
s2:發送數據前,節點a先查詢nav2信息得到有fb、fc、fd共3個數據信道空閑,則在這三個數據信道中隨機選擇信道fd作為數據信道,在競爭得到的協商信道上發送rts幀給節點b,rts幀中攜帶節點a待發送數據的符號數7、節點a所能占用信道資源的最大符號數100以及節點a要求占用的數據信道fd;節點a待發送數據的符號數7包括1個符號的收發轉換、1個符號的ack幀和5個符號的待發送數據;
s3:節點a的一跳鄰居節點e、f收到rts幀后,分別維護nav1和nav2的信息:nav1信息中,將數據信道fd置為已占用狀態,占用時間段t1~t1+6為本節點收到rts幀時刻t1起到節點a待發送數據傳輸結束t1+6;nav2信息中,將rts幀中攜帶的節點a要求占用的數據信道置為已占用狀態,占用時間段t1~t1+99為本節點收到rts幀時刻t1起到節點a最大符號長度數據傳輸結束t1+99;
s4:節點b收到rts幀后,查詢自己維護的數據信道fd的nav1信息發現,t時刻之后fd沒有被其他節點占用,則節點b在協商信道上發送cts幀給節點a,cts幀中攜帶節點a待發送數據的符號數7、節點a所能占用信道資源的最大符號數100以及節點a要求占用的數據信道fd;
s5:節點b的一跳鄰居節點c、d收到cts幀后,分別維護nav1和nav2的信息:nav1信息中,將cts幀中攜帶的節點a要求占用的數據信道fd置為已占用狀態,占用時間段t2~t2+6為本節點收到cts幀時刻t2起到節點a待發送數據傳輸結束t2+6;nav2信息中,將cts幀中攜帶的節點a要求占用的數據信道fd置為已占用狀態,占用時間段t2~t2+99為本節點收到cts幀時刻t2起到節點a最大符號長度數據傳輸結束t2+99;
s6:節點a收到cts幀后,發現有新的兩包數據要發送給節點b,長度分別為10符號和70符號,經過計算可知這三包數據的符號數是小于最大符號數的,因此將新的兩包數據與步驟s2中的待發送數據一起打包,并攜帶數據包個數3、長度信息5符號、10符號、70符號,在數據信道fd上發送給節點b。
實施例2:
假設節點a在某一時刻有5個符號的數據要發送給節點b,則無線信道資源分配方法包括以下步驟:
s1:采用動態確定方式確定最大符號數,將prate=100、lavg=10符號、t=36×10-6秒、lreq=15符號代入式(1)中,計算得到最大符號數smax為40符號;
s2:發送數據前,節點a先查詢nav2信息得到有fb、fc、fd共3個數據信道空閑,則在這三個數據信道中隨機選擇信道fd作為數據信道,在競爭得到的協商信道上發送rts幀給節點b,rts幀中攜帶節點a待發送數據的符號數7、節點a所能占用信道資源的最大符號數40以及節點a要求占用的數據信道fd;節點a待發送數據的符號數7包括1個符號的收發轉換、1個符號的ack幀和5個符號的待發送數據;
s3:節點a的一跳鄰居節點e、f收到rts幀后,分別維護nav1和nav2的信息:nav1信息中,將數據信道fd置為已占用狀態,占用時間段t1~t1+6為本節點收到rts幀時刻t1起到節點a待發送數據傳輸結束t1+6;nav2信息中,將rts幀中攜帶的節點a要求占用的數據信道置為已占用狀態,占用時間段t1~t1+39為本節點收到rts幀時刻t1起到節點a最大符號長度數據傳輸結束t1+39;
s4:節點b收到rts幀后,查詢自己維護的數據信道fd的nav1信息發現,t時刻之后fd沒有被其他節點占用,則節點b在協商信道上發送cts幀給節點a,cts幀中攜帶節點a待發送數據的符號數7、節點a所能占用信道資源的最大符號數40以及節點a要求占用的數據信道fd;
s5:節點b的一跳鄰居節點c、d收到cts幀后,分別維護nav1和nav2的信息:nav1信息中,將cts幀中攜帶的節點a要求占用的數據信道fd置為已占用狀態,占用時間段t2~t2+6為本節點收到cts幀時刻t2起到節點a待發送數據傳輸結束t2+6;nav2信息中,將cts幀中攜帶的節點a要求占用的數據信道fd置為已占用狀態,占用時間段t2~t2+39為本節點收到cts幀時刻t2起到節點a最大符號長度數據傳輸結束t2+39;
s6:節點a收到cts幀后,發現有新的兩包數據要發送給節點b,長度分別為10符號和70符號,經過計算可知這三包數據的符號數是大于最大符號數的,因此只能將第一包數據與步驟s2中的待發送數據一起打包,并攜帶數據包個數2、長度信息5符號、10符號,在數據信道fd上發送給節點b。