一種基于被動偵聽和數據幀調度的無線多跳網絡擁塞控制方法
【專利摘要】本發明公開了一種基于被動偵聽和數據幀調度的無線多跳網絡擁塞控制方法,主要解決無線多跳網絡中節點采用不同媒體訪問控制層協議,導致無法進行統一地逐跳擁塞控制的問題。該方法不依賴特定的媒體訪問控制層機制,不需要發送探測包,節點被動偵聽周圍節點發送的數據幀,統計這些節點的活躍度來量化節點的擁塞狀態。當發送節點已經擁塞,根據接收節點的擁塞狀態,對發送緩存中的數據幀進行調度,避免向已經擁塞的節點發送數據幀,從而提高了網絡吞吐量。
【專利說明】
-種基于被動偵聽和數據順調度的無線多跳網絡擁塞控制 方法
技術領域
[0001] 本發明設及無線網絡通信、擁塞控制技術領域,具體設及一種高適用性的擁塞控 制方法。
【背景技術】
[0002] 當前,無線多跳網絡得到了廣泛的應用,由于網絡中的節點既可W是源節點,又可 W作為轉發節點,節點的密布和大量轉發任務可能造成擁塞發生頻繁,所W擁塞控制對于 提高網絡性能十分重要。傳統的TCP認為網絡中的丟包都是由擁塞引起的,其采用擁塞控制 窗口調節發送速率。然而,無線多跳網絡中某些非網絡擁塞的因素也可能造成丟包,比如信 道質量不穩定,節點的移動性還有數據鏈路層的隱藏終端問題,TCP會對上述因素產生誤 判,而降低源節點的發送速率,造成網絡資源的浪費。
[0003] 為了提高TCP在無線多跳網絡中的性能,一種跨層的逐跳擁塞控制方法semi-TCP 應運而生。Semi-TCP重新分配了傳統TCP的功能,傳輸層只保留可靠性控制,將擁塞控制機 制下放到數據鏈路層。在數據鏈路層實現擁塞控制,可W準確判斷擁塞狀態,及時對擁塞狀 態進行處理,提高網絡的吞吐量。
[0004] 現有的semi-TCP針對不同的MAC機制采用不同的方法。姜勝明提出的基于RTS/CTS 機制的無線多跳網絡擁塞控制方法中,利用nCTS帖攜帶擁塞信息,借助RTS/CTS握手機制進 行擁塞控制。吳泉明提出的一種附帶式跨層設計的無線多跳網絡擁塞控制方法中,利用ACK 確認帖攜帶信息來判斷節點的擁塞程度。但是,上述方法都是針對特定MAC機制完成擁塞控 審IJ,若節點未配置運些協議,將不能發揮semi-TCP的擁塞控制功能。因而需要一種高適用性 的方法獲取擁塞狀態,并且及時進行擁塞控制。
【發明內容】
[0005] 本發明針對現有的逐跳擁塞控制技術需要額外發送探測包或者修改現有mac帖結 構的缺陷和不足,在現有的semi-TCP跨層設計的基礎上,提出一種被動的基于任務調度的 擁塞控制方法。所述方法通過被動偵聽周圍節點的發送情況,量化運些節點的擁塞狀態,同 時根據擁塞狀態,對自身mac緩存隊列的數據帖進行調度,從而減緩擁塞的程度。
[0006] 本發明通過如下技術方案實現:
[0007] 1、一種基于被動偵聽與數據帖調度的擁塞控制方法,所述方法包括方法(1)基于 被動偵聽無需探測包的節點擁塞狀態量化方法,和方法(2)基于數據帖調度的擁塞控制方 法:
[000引方法(1)基于被動偵聽無需探測包的節點擁塞狀態量化方法,所述方法節點偵聽 周圍節點發送的數據帖,統計運些節點的活躍度來量化節點的擁塞狀態,所述活躍度表示 偵聽到的節點在單位時間內發送數據的能力大小,其包括W下步驟:
[0009] (1.1)節點A正常發送數據帖的同時,也被動偵聽周圍節點發送的數據帖,解析運 些數據帖,得到運些數據帖的發送節點地址,在固定時間τ內,每收到相同發送節點如節點B 的數據帖,Nb(a)加1,Nb(a)指的是T時間內節點A偵聽到節點B發送數據帖的個數,其初始值為 0,一般場景下,T取10s;
[0010] (1.2)節點A統計最近m個T時間內收到節點B的數據帖個數分別為{Nb[ 1 ],…,Nb
[m]}(A),并計算其均值1?),其中Nb[1]指最近一次完整T時間內統計的值,一般情況下,m = 5;
[0011] (1.3)節點A計算最近一個T時間內,偵聽到的周圍節點發送數據帖次數的均值 馬;石= 〇VbU]+WcU] +…)/n,其中η為最近一次T時間內偵聽且正確解析數據帖的節點 個數;
[0012] (1 .4)節點A估計的節點Β的擁塞量化值Θβ(α) = (rihB(A)+rUB(A))/2,其中 WksW =Wb陽/馬品,即節點蝴對于自身歷史的活躍程度,口rew =~B ?1]/咕品),即節點B 當前相對于其他節點的活躍程度;
[0013] (1.5)若目6〉1,則認為節點8處于非擁塞狀態,若目6£(0.5,1),則認為節點8處于半 擁塞狀態,若Θβ<0.5,則認為節點Β處于擁塞狀態;
[0014] 方法(2)基于數據帖調度的擁塞控制方法,該方法中發送節點根據W下步驟對數 據帖進行調度管理:
[0015] (2.1)若當前發送節點A已經擁塞,則判斷當前待發送的數據帖的接收節點Β的擁 塞狀態,若節點B處于非擁塞狀態,則節點A直接發送數據帖,若節點B處于半擁塞狀態,則節 點A退避t ime_backof f時間再發送,其中t ime_backof f為發送一次數據帖的時間,若節點B 處于擁塞狀態,則節點A取消此次信道競爭,執行(2.2);
[0016] (2.2)發送節點檢查此數據帖的擁塞計數,擁塞計數指每當數據帖競爭信道時其 接收節點處于擁塞狀態的次數,若擁塞計數大于或等于節點預設的擁塞闊值,則節點A將此 數據帖返回給網絡層,若擁塞計數小于擁塞闊值,將此數據帖移至隊列中第POS的位置,節 點擁塞計數加1,并且令隊列中下一個數據帖開始競爭信道。其中,擁塞闊值等于緩存隊列 最大長度,POS為當前隊列長度對2取整值。
[0017] 相對于現有技術,本發明具有如下優點和有益效果:
[0018] 1、在擁塞狀態的判斷上,現有技術依賴于特定的MAC機制,比如修改RTS/CTS帖結 構或者修改ACK帖結構。若節點配置的MAC層協議并未采用上述機制,就無法實現逐跳的擁 塞控制。本發明不基于特定的MAC協議,也不依賴發送探測包獲取擁塞狀態,而是被動偵聽 周圍的節點,解析運些節點發送的數據帖,分析一段時間內節點的活躍程度,從而得出運些 節點的擁塞狀態。所W本發明具有更廣的通用性。
[0019] 2、在擁塞控制的方法上,現有技術中節點根據收到的MAC層控制帖(CTS帖或者ACK 帖)所攜帶的擁塞信息,決定自身的行為,從而完成擁塞控制。本發明不需要控制帖傳遞擁 塞信息,從而可W更有效地將擁塞控制集成在發送端。本發明提出的利用緩存調度方法進 行擁塞控制,增加了 MAC數據帖競爭信道的效率,避免因接收節點已經擁塞卻仍向其發送數 據帖而造成的信道資源浪費,進一步提高了網絡吞吐率。
[0020] 3、若某節點長時間處于擁塞狀態,W其為接收節點的數據帖多次競爭信道被拒絕 而滯后,從而造成在緩存的滯留時間甚至超過了其生命周期。此時,繼續允許該數據帖滯留 在緩存中是對資源的浪費。本發明規定當該數據帖的擁塞計數大于闊值,必須將其退回給 網絡層,等待網絡層的安排。
[0021] 4、本發明利用被動偵聽所獲得周圍節點的擁塞狀態,不僅可W用于MAC層的擁塞 控制,亦可W傳達至網絡層,利用此信息可W輔助路由選路,避開發生擁塞的節點。
【附圖說明】
[0022] 圖1為節點維護數據的表格
[0023] 圖2為擁塞節點進行數據帖調度的流程
[0024] 圖3為數據帖調度的示意圖 具體實施方案
[0025] 為使本發明的目的和技術方案更加清晰,下面結合附圖對本發明的原理和具體步 驟進行描述:
[00%] 1、利用活躍度表示擁塞狀態的原理說明如下:
[0027] 對于擁有相同緩存大小的節點,固定時間內發送的數據帖越多,即活躍度越大,說 明其處理緩存中數據帖的能力越大,其釋放自身擁塞的能力越大,進而可W認為其發生擁 塞的可能性越小,W此來作為量化擁塞的判據。則發送節點自身已經擁塞的情況下,選擇不 易發生擁塞的接收節點發送數據包,從而避免擁塞的發生。
[0028] 本發明中節點的擁塞狀態由兩個因素決定,一是考慮到網絡狀態的延續性,提出 節點相對于自身歷史的活躍度,二是考慮到其他節點處理擁塞的能力,提出節點當前相對 于其他節點的活躍度。
[0029] 2、對周圍節點擁塞狀態的獲取和量化,結合圖1說明其具體步驟:
[0030] (1)每個T時間內,節點A通過解析數據帖得到發送節點地址。若該節點B地址已在 列表中,則將flag置為1。若節點B地址不在列表中,則將節點站日入地址列表,為其開辟數據 空間,將flag置為l,Flag用來表示在T時間內,確認收到對應節點發送的數據帖。同時,節點 A每收到來自節點B發送的一個數據帖,將Nb[0]加1。
[003。 (2)節點A計算而;):=:(Λ'β山+Λ/β問 + …+ 斯和晦而二巧 ixy.l]w/n, 其中i指由節點A偵聽的在T時間內flag為1的節點,η為運些節點的個數。分別計算 巧 &〇〇=馬[1](4)/而;),巧r =Wb[1](4)/N^^^)。
[003^ (3)最后得到節點B的擁塞量化值0B(A) = (rih巧r)/2。若Θβ(α)〉1,令stat_cong = 0;若 白B(A) E (0.5,1),令s1:at_cong = 1,若目B(A)<0.5,令stat_cong = 2。
[003引(4)每次T時間后,節點需更新自身數據。W節點B為例,令Nb山=Nb[0],W此類推, 直到NB[m]=NB[m-:L],同時令Nb[0]=0,所有節點的置為0。
[0034] 3、結合圖2說明本節點利用數據帖調度進行擁塞控制的流程:
[0035] (1)節點A先判斷自身的擁塞狀態,方式如下:如果當前緩存內的數據帖個數即隊 列長度NCTh,節點A判定自身處在非擁塞的狀態,正常發送數據帖;如果當前緩存內的數據 帖個數N〉化,節點A判定自身處在擁塞狀態,執行(2);
[0036] (2)節點A判斷當前待發送的數據帖的接收節點B的擁塞狀態,若節點B的stat_ cong = 0即B處于非擁塞狀態,則節點A競爭信道,發送數據帖;若節點B的stat_con = l即B處 于半擁塞狀態,則節點A退避t ime_backof f時間再發送,其中t ime_backof f為發送一次數據 帖的時間;若節點B的stat_con = 2即B處于擁塞狀態,則節點A取消此次信道競爭,執行(3);
[0037] (3)若count_cong含擁塞闊值th_cong,則節點A將此數據帖返回給網絡層,等待重 新進入緩存;若。〇11]11:_(3〇]1旨<1:11_(3〇叫,則節點取消運個數據帖的發送,如圖3所示,將此數據 帖移至隊列第pos的位置,pos =陽/2],同時擁塞計數count_cong加1,令隊列下一個數據帖 開始競爭信道。
【主權項】
1. 一種基于被動偵聽與數據幀調度的無線多跳網絡擁塞控制方法,其特征在于包括方 法(1)基于被動偵聽無需探測包的節點擁塞狀態量化方法,和方法(2)基于數據幀調度的擁 塞控制方法: 方法(1)基于被動偵聽無需探測包的節點擁塞狀態量化方法,所述方法中節點偵聽周 圍節點發送的數據幀,統計這些節點的活躍度來量化節點的擁塞狀態,所述活躍度指聽到 的節點在單位時間內發送數據的能力大小,其包括以下步驟: (1.1) 節點A正常發送數據幀的同時,也被動偵聽周圍節點發送的數據幀,解析這些數 據幀,得到這些數據幀的發送節點地址,在固定時間T內,每收到相同發送節點如節點B的數 據幀,Nb(a)加1,Nb(a)指的是T時間內節點A偵聽到節點B發送數據幀的個數,其初始值為0,一 般場景下,T取10s; (1.2) 節點A統計最近m個T時間內收到節點B的數據幀個數分別為{Nb[1],…,NB[m]}(A), 并計算其均值,其中N B[ 1 ]指最近一次完整T時間內統計的值,一般情況下,m=5; (1.3) 節點A計算最近一個T時間內,偵聽到的周圍節點發送數據幀次數的均值 = (%[l]+iVc[l] +…)/n,其中η為最近一次T時間內偵聽且正確解析數據幀的節點 個數; (1 · 4 )節點Α估計的節點Β的擁塞量化值θ β ( a ) = ( η h β ( a ) + η r β ( a ) ) / 2,其中 .⑷,即節點B相對于自身歷史的活躍程度,偶即 節點Β當前相對于其他節點的活躍程度; (1.5)若ΘΒ>1,則認為節點Β處于非擁塞狀態,若ΘΒΕ (〇. 5,1),則認為節點Β處于半擁塞 狀態,若ΘΒ〈0.5,則認為節點B處于擁塞狀態; 方法(2)基于數據幀調度的擁塞控制方法,所述方法中發送節點根據以下步驟對數據 幀進行調度管理: (2.1) 若當前發送節點Α已經擁塞,則判斷當前待發送的數據幀的接收節點Β的擁塞狀 態,若節點B處于非擁塞狀態,則節點A直接發送數據幀,若節點B處于半擁塞狀態,則節點A 退避time_backoff時間再發送,其中time_backoff為發送一次數據幀的時間,若節點B處于 擁塞狀態,則節點A取消此次信道競爭,執行(2.2); (2.2) 發送節點檢查此數據幀的擁塞計數,擁塞計數指每當數據幀競爭信道時其接收 節點處于擁塞狀態的次數,若擁塞計數大于或等于節點預設的擁塞閾值,則節點A將此數據 幀返回給網絡層,若擁塞計數小于擁塞閾值,將此數據幀移至隊列中第pos的位置,節點擁 塞計數加1,并且令隊列中下一個數據幀開始競爭信道,其中,擁塞閾值等于緩存隊列最大 長度,pos為當前隊列長度對2取整值。
【文檔編號】H04W28/02GK105873126SQ201610242975
【公開日】2016年8月17日
【申請日】2016年4月19日
【發明人】楊愷健, 姜勝明, 錢彥臻, 吳世東
【申請人】上海海事大學