本發(fā)明涉及無線通信領域,特別是涉及一種自適應無線信道協(xié)商方法。
背景技術:
無線自組織網絡是一種無中心,自組織的無線通信網絡,相比較傳統(tǒng)的無線通信網絡,具有可快速組網、對基礎設施要求低和抗毀滅性強的特征,被廣泛應用于軍事通信、救援抗災、智能交通等領域。
類似于tcp/ip協(xié)議棧的osi模型,無線自組織網絡的底層協(xié)議棧也可以分為物理層(phy)、介質訪問控制層(mac)和網絡層(net),其中mac層負責接入控制及無線資源分配。mac層的協(xié)議會直接影響著網絡的時延、吞吐量、信道利用率等性能指標,因此選擇合適的無線信道資源分配方法對網絡的整體性能至關重要。
無線通信網絡的介質訪問控制(mac)協(xié)議主要解決節(jié)點的接入控制和無線資源分配兩個問題,而解決這兩個問題都需要通信雙發(fā)節(jié)點通過協(xié)商機制來實現。因而,選擇一種高效合理的協(xié)商方法對無線通信網絡來說非常重要。
ieee802.11協(xié)議中的協(xié)商過程采用rts/cts的兩次握手機制。在這種機制中,源通信節(jié)點在進行數據發(fā)送前首先發(fā)送rts幀申請占用無線信道資源,目標通信節(jié)點在收到rts幀后,回復一個cts幀來確認源通信節(jié)點的rts請求。在rts/cts幀中,包含了nav信息,源通信節(jié)點及目標通信節(jié)點的鄰居節(jié)點在接收到rts/cts幀后,會在nav信息中指定的數據信道上,指定的時間段內保持靜默以避免沖突。這種rts/cts兩次握手機制可以在一定程度上解決無線自組織網絡中的隱藏終端問題,缺點是無線通信節(jié)點每次發(fā)送數據前都需進行協(xié)商,從而每次都需要去監(jiān)聽并競爭無線信道,通信效率不高。特別是對于目標通信節(jié)點在收到源通信節(jié)點的rts幀后恰好也有數據要發(fā)送給源通信節(jié)點的場景,目標通信節(jié)點也需要再重新發(fā)起一次協(xié)商過程。
針對ieee802.11協(xié)議的rts/cts兩次握手機制,現有文獻提出來一些改進技術,例如rts/cts/bcts的三次握手機制。在這種機制中前兩次握手過程同ieee802.11協(xié)議類似,不同的是源通信節(jié)點的rts幀中攜帶了一個可用信道列表,目標通信節(jié)點會基于此列表及自身獲取到的時間信道相關信息確定一個選定的數據信道并通過cts幀通信源通信節(jié)點及目標通信節(jié)點的鄰居的節(jié)點。源通信節(jié)點在收到cts幀后回復一個bcts幀,用以通知其鄰居節(jié)點選定的數據信道。這種rts/cts/bcts的三次握手機制,相比ieee802.11協(xié)議的兩次握手機制所做的改進是通過增加一次握手來改善數據信道選擇的合理性,但無線通信節(jié)點每次發(fā)送數據前仍都需要重復這個三次握手的協(xié)商過程,所以也存在通信效率不高的問題。
技術實現要素:
發(fā)明目的:本發(fā)明的目的是提供一種能夠自適應選擇握手次數、有效提高通信效率的自適應無線信道協(xié)商方法。
技術方案:本發(fā)明所述的自適應無線信道協(xié)商方法,包括以下步驟:
s1:發(fā)送數據前,源節(jié)點在競爭得到的協(xié)商信道上發(fā)送rts幀給目標節(jié)點,rts幀中攜帶源節(jié)點待發(fā)送數據符號數以及候選數據信道列表;
s2:目標節(jié)點判斷是否從候選數據信道列表中選擇數據信道:如果是,則在協(xié)商信道上回復cts幀,cts幀中攜帶源節(jié)點待發(fā)送數據符號數和目標節(jié)點選定的數據信道;否則,則直接進行步驟s7;
s3:源節(jié)點收到cts幀后,判斷是否需要回復確認消息:如果需要回復,則進行步驟s4;否則,直接進行步驟s5;
s4:源節(jié)點回復確認消息,確認消息中攜帶源節(jié)點待發(fā)送數據符號數和目標節(jié)點選定的數據信道;
s5:源節(jié)點在選定的數據信道上將待發(fā)送的數據發(fā)送給目標節(jié)點;
s6:目標節(jié)點在選定的數據信道上回復消息給源節(jié)點;
s7:結束。
進一步,所述步驟s6中,目標節(jié)點判斷自身是否需要發(fā)送數據給源節(jié)點:如果需要,則目標節(jié)點將待發(fā)送的數據和ack信息一起組包并發(fā)送給源節(jié)點,否則,則直接將ack信息發(fā)送給源節(jié)點。這樣目標節(jié)點有數據需要發(fā)給源節(jié)點時,就不需要再次競爭協(xié)商信道,有效降低了無線通信網絡參與競爭信道的總次數,降低了公共協(xié)商信道上的沖突概率。
進一步,步驟s6和步驟s7之間還包括步驟s6.5:源節(jié)點判斷是否只收到了ack信息:如果是,則直接進行步驟s7;否則,源節(jié)點回復ack信息給目標節(jié)點,然后進行步驟s7。
進一步,所述步驟s1中的候選數據信道列表包括一個優(yōu)選數據信道和多個備選數據信道。備選數據信道使得目標節(jié)點有選擇的余地,目標節(jié)點可以根據自身獲取的數據信道信息對數據信道進行選擇,而不是非選優(yōu)選數據信道不可,這樣能更合理的選擇數據信道,降低數據信道上的沖突概率,提供無線通信網絡的吞吐量。
進一步,所述步驟s2中,目標節(jié)點通過以下方法判斷是否從候選數據信道列表中選擇數據信道:
s2.1:目標節(jié)點得出自己的候選數據信道列表,其中也包括一個優(yōu)選數據信道和多個備選數據信道;
s2.2:如果目標節(jié)點的候選數據信道列表中與源節(jié)點的候選數據信道列表中沒有相同的數據信道,則目標節(jié)點判定不從源節(jié)點的候選數據信道列表中選擇數據信道;否則,進行步驟s2.3;
s2.3:判斷相同的數據信道是否包括源節(jié)點的優(yōu)選數據信道:如果是,則選擇源節(jié)點的優(yōu)選數據信道作為目標節(jié)點選定的數據信道;否則,隨機選擇一個數據信道作為目標節(jié)點選定的數據信道。
進一步,所述步驟s2中,cts幀還攜帶目標節(jié)點是否有數據發(fā)送給源節(jié)點的標記以及目標節(jié)點待發(fā)送給源節(jié)點的數據符號數;所述步驟s4中,確認消息還攜帶目標節(jié)點是否有數據發(fā)送給源節(jié)點的標記以及目標節(jié)點待發(fā)送給源節(jié)點的數據符號數。
進一步,下列兩個條件只要有一個條件滿足,則源節(jié)點判定需要回復確認消息;如果兩個條件都不滿足,則源節(jié)點判定不需要回復確認消息,直接進行步驟s5:
(1)cts幀中攜帶的選定的數據信道不是源節(jié)點候選數據信道列表中的優(yōu)選數據信道;
(2)cts幀中攜帶的目標節(jié)點是否有數據發(fā)送給源節(jié)點的標記顯示目標節(jié)點有數據發(fā)送給源節(jié)點。
這樣,源節(jié)點就可以根據這兩個條件來判斷是否需要回復確認消息,也即自適應選擇是進行兩次握手還是三次握手,能夠有效降低協(xié)商次數、端到端的通信時延以及公共協(xié)商信道的負擔。
進一步,所述步驟s4中,源節(jié)點在協(xié)商信道或者選定的數據信道上回復確認消息。
進一步,所述步驟s1中,源節(jié)點根據信道質量、信道負載、通信qos傳輸特性來選擇數據信道作為候選數據信道列表中的元素。
有益效果:本發(fā)明公開了一種自適應無線信道協(xié)商方法,源節(jié)點收到cts幀后可以選擇是否回復確認消息,也即能夠自適應選擇握手次數,有效減少了特定場景下的協(xié)商次數,降低了端到端的通信時延,降低了公共協(xié)商信道的負擔。
附圖說明
圖1為本發(fā)明具體實施方式的無線通信網絡的拓撲圖;
圖2為本發(fā)明具體實施方式的無線通信節(jié)點的結構示意圖;
圖3為本發(fā)明具體實施方式的方法流程圖。
具體實施方式
下面結合附圖和具體實施方式對本發(fā)明的技術方案作進一步的介紹。
本具體實施方式公開了一種自適應無線信道協(xié)商方法,如圖3所示,包括以下步驟:
s1:發(fā)送數據前,源節(jié)點監(jiān)聽并競爭協(xié)商信道,在競爭得到的協(xié)商信道上發(fā)送rts幀給目標節(jié)點,rts幀中攜帶源節(jié)點待發(fā)送數據符號數以及候選數據信道列表lsrc;候選數據信道列表lsrc包括一個優(yōu)選數據信道和多個備選數據信道,實際中由于資源有限,備選數據信道的個數最大值限定為7個;源節(jié)點根據信道質量、信道負載、通信qos傳輸特性來選擇數據信道作為候選數據信道列表lsrc中的元素,如果選不出數據信道作為候選數據信道列表中的元素,即候選數據信道列表lsrc為空,則直接進行步驟s7;
s2:目標節(jié)點判斷是否從候選數據信道列表lsrc中選擇數據信道:如果是,則在協(xié)商信道上回復cts幀,cts幀中攜帶源節(jié)點待發(fā)送數據符號數、目標節(jié)點選定的數據信道、目標節(jié)點是否有數據發(fā)送給源節(jié)點的標記fdata以及目標節(jié)點待發(fā)送給源節(jié)點的數據符號數;否則,則直接進行步驟s7;
s3:源節(jié)點收到cts幀后,判斷是否需要回復確認消息confirm:如果需要回復,則進行步驟s4;否則,直接進行步驟s5;
s4:源節(jié)點在協(xié)商信道或者選定的數據信道上回復確認消息confirm,確認消息confirm中攜帶源節(jié)點待發(fā)送數據符號數、目標節(jié)點選定的數據信道、目標節(jié)點是否有數據發(fā)送給源節(jié)點的標記fdata以及目標節(jié)點待發(fā)送給源節(jié)點的數據符號數;
s5:源節(jié)點在選定的數據信道上將待發(fā)送的數據發(fā)送給目標節(jié)點;
s6:目標節(jié)點在選定的數據信道上回復消息給源節(jié)點:目標節(jié)點判斷fdata是否為1:如果為1,也即目標節(jié)點自身需要發(fā)送數據給源節(jié)點,則目標節(jié)點將待發(fā)送的數據和ack信息一起組包并發(fā)送給源節(jié)點;如果為0,則直接將ack信息發(fā)送給源節(jié)點;
s6.5:源節(jié)點判斷是否只收到了ack信息:如果是,則直接進行步驟s7;如果除了ack信息還收到了目標節(jié)點發(fā)來的數據,則源節(jié)點回復ack信息給目標節(jié)點,然后進行步驟s7;
s7:結束。
步驟s2中,如果目標節(jié)點有數據要發(fā)送給源節(jié)點,則fdata置為1;否則,fdata置為0。
步驟s2中,目標節(jié)點通過以下方法判斷是否從候選數據信道列表lsrc中選擇數據信道:
s2.1:目標節(jié)點得出自己的候選數據信道列表ldst,其中也包括一個優(yōu)選數據信道和多個備選數據信道,備選數據信道的個數最大值也限定為7個;
s2.2:如果目標節(jié)點的候選數據信道列表ldst中與源節(jié)點的候選數據信道列表lsrc中沒有相同的數據信道,則目標節(jié)點判定不從源節(jié)點的候選數據信道列表lsrc中選擇數據信道;否則,進行步驟s2.3;
s2.3:判斷相同的數據信道是否包括源節(jié)點的優(yōu)選數據信道:如果是,則選擇源節(jié)點的優(yōu)選數據信道作為目標節(jié)點選定的數據信道;否則,隨機選擇一個數據信道作為目標節(jié)點選定的數據信道。
步驟s3中,源節(jié)點根據以下規(guī)則判斷是否需要回復確認消息confirm:下列兩個條件只要有一個條件滿足,則源節(jié)點判定需要回復確認消息confirm;如果兩個條件都不滿足,則源節(jié)點判定不需要回復確認消息confirm,直接進行步驟s5:
(1)cst幀中攜帶的選定的數據信道不是源節(jié)點候選數據信道列表lsrc中的優(yōu)選數據信道;
(2)cst幀中攜帶的目標節(jié)點是否有數據發(fā)送給源節(jié)點的標記fdata=1,也即表明目標節(jié)點有數據發(fā)送給源節(jié)點。
本具體實施方式中的“節(jié)點”是“無線通信節(jié)點”的簡稱,節(jié)點包括無線終端、無線中繼和基站等無線通信設備,結構上可以是單發(fā)雙收、雙發(fā)雙收和多發(fā)多收等多種形式。
下面以一個實際的無線通信網絡為例,對本發(fā)明的技術方案作進一步的介紹。
圖1是一個無線通信網絡,其中有6個節(jié)點,分別是節(jié)點a、節(jié)點b、節(jié)點c、節(jié)點d、節(jié)點e和節(jié)點f。圖1中相鄰兩個節(jié)點之間的連線表示這兩個節(jié)點互為鄰居節(jié)點。每個節(jié)點的結構都如圖2所示,采用全向天線,可以向任意方向發(fā)送以及從任意方向接收無線信號。
下面對三次握手和兩次握手各舉一實施例進行說明。
實施例1:三次握手
假設某一時刻節(jié)點a有10個符號的數據要發(fā)給節(jié)點b,則按照以下步驟進行自適應無線信道協(xié)商:
s11:發(fā)送數據前,節(jié)點a監(jiān)聽并競爭協(xié)商信道,在競爭得到的協(xié)商信道上發(fā)送rts幀給節(jié)點b申請無線資源,rts幀中攜帶節(jié)點a待發(fā)送數據符號數11以及候選數據信道列表lsrc;候選數據信道列表lsrc包括一個優(yōu)選數據信道fa和兩個備選數據信道fb、fc。其中,節(jié)點a待發(fā)送數據符號數11包含了節(jié)點a本身要發(fā)送的數據符號數10和ack信息的符號數1。
s21:節(jié)點b通過以下方法判斷是否從候選數據信道列表lsrc中選擇數據信道:節(jié)點b得出自己的候選數據信道列表ldst,其中包括一個優(yōu)選數據信道fa和一個備選數據信道fd;由于節(jié)點b的候選數據信道列表ldst中也包含了節(jié)點a的候選數據信道列表lsrc中的優(yōu)選數據信道fa,因此節(jié)點b判定將優(yōu)選數據信道fa作為其選定的數據信道。此外,節(jié)點b此時有8個符號的數據要發(fā)送給節(jié)點a,因此fdata置1。因此,節(jié)點b在協(xié)商信道上回復cts幀,cts幀中攜帶節(jié)點a待發(fā)送數據符號數11、節(jié)點b選定的數據信道fa、節(jié)點b是否有數據發(fā)送給節(jié)點a的標記fdata以及節(jié)點b待發(fā)送給節(jié)點a的數據符號數9。其中,節(jié)點b待發(fā)送數據符號數9包含了節(jié)點b本身要發(fā)送的數據符號數8和ack信息的符號數1。
s31:節(jié)點a收到cts幀后,發(fā)現fdata為1,則判定需要回復確認消息confirm,然后進行步驟s41;
s41:節(jié)點a在協(xié)商信道或者選定的數據信道上回復確認消息confirm,確認消息confirm中攜帶節(jié)點a待發(fā)送數據符號數11、節(jié)點b選定的數據信道fa、節(jié)點b是否有數據發(fā)送給節(jié)點a的標記fdata以及節(jié)點b待發(fā)送給節(jié)點a的數據符號數9;
s51:節(jié)點a在選定的數據信道fa上將待發(fā)送的數據發(fā)送給節(jié)點b;
s61:節(jié)點b在選定的數據信道fa上回復消息給節(jié)點a:節(jié)點b發(fā)現fdata為1,因此將待發(fā)送的數據和ack信息一起組包并發(fā)送給節(jié)點a;
s61.5:節(jié)點a發(fā)現除了ack信息還收到了節(jié)點b發(fā)來的數據,因此節(jié)點a回復ack信息給節(jié)點b,然后進行步驟s71;
s71:結束。
實施例2:兩次握手
假設某一時刻節(jié)點c有20個符號的數據要發(fā)給節(jié)點d,則按照以下步驟進行自適應無線信道協(xié)商:
s12:發(fā)送數據前,節(jié)點c監(jiān)聽并競爭協(xié)商信道,在競爭得到的協(xié)商信道上發(fā)送rts幀給節(jié)點d申請無線資源,rts幀中攜帶節(jié)點c待發(fā)送數據符號數21以及候選數據信道列表lsrc;候選數據信道列表lsrc包括一個優(yōu)選數據信道fd和一個備選數據信道fe。其中,節(jié)點c待發(fā)送數據符號數21包含了節(jié)點c本身要發(fā)送的數據符號數20和ack信息的符號數1。
s22:節(jié)點d通過以下方法判斷是否從候選數據信道列表lsrc中選擇數據信道:節(jié)點d得出自己的候選數據信道列表ldst,其中包括一個優(yōu)選數據信道fa和一個備選數據信道fd;由于節(jié)點c的候選數據信道列表lsrc中的優(yōu)選數據信道是fd,和節(jié)點d的候選數據信道列表ldst中的備選數據信道相同,因此節(jié)點d判定將備選數據信道fd作為其選定的數據信道。此外,節(jié)點d此時沒有數據要發(fā)送給節(jié)點c,因此fdata置0。因此,節(jié)點d在協(xié)商信道上回復cts幀,cts幀中攜帶節(jié)點c待發(fā)送數據符號數21、節(jié)點d選定的數據信道fd以及節(jié)點d是否有數據發(fā)送給節(jié)點c的標記fdata。
s32:節(jié)點c收到cts幀后,發(fā)現fdata為0,并且節(jié)點d選定的數據信道fd剛好是節(jié)點c候選數據信道列表lsrc中的優(yōu)選數據信道,則判定不需要回復確認消息confirm,然后進行步驟s52;
s52:節(jié)點c在選定的數據信道fd上將待發(fā)送的數據發(fā)送給節(jié)點d;
s62:節(jié)點d在選定的數據信道fd上回復消息給節(jié)點c:節(jié)點d發(fā)現fdata為0,因此只將ack信息發(fā)送給節(jié)點c;
s72:結束。