新四季網

基於擁塞控制的無線多跳網多播方法

2023-05-16 09:00:11 1

專利名稱:基於擁塞控制的無線多跳網多播方法
技術領域:
本發明涉及一種基於擁塞控制的無線多跳網多播方法,屬於無線網絡技術領域。
背景技術:
無線多跳網是近年來興起的一種新型網絡結構,處於這種網絡中的節點除了具有數據包的發送和接收功能外還負責網絡的組織、維護以及網絡中數據包的路由。典型的無線多跳網絡包括無線傳感網、無線自組網等。由於多跳以及無線信道的固有特性,無線多跳網中節點的拓撲結構始終處於動態變化中,尤其在移動場景中(如移動自組網),這種動態變化的拓撲給數據包的多播帶來了很大挑戰,如何在無線多跳網中實現數據包的多播分發已經成為近年來的研究熱點。一般而言,利用構造多播樹的方法可以實現有效的多播,如MA0DV,但是,由於構造以及維護多播樹需要耗費的大量的網絡資源,尤其在無線環境中,這種資源的耗費在很大程度上抑制了網絡整體性能的提升,甚至降低網絡性能。特別是在多個多播組共存的情況下,這種性能下降趨勢尤為明顯。基於網格(mesh)結構的無線多跳網多播路由協議雖然規避了複雜的網絡維護機制,典型的如PUMA,但是其在數據分組投遞時的盲目性,使網絡的總體開銷大大增加,同時節點的能耗也隨之增大。這兩種多播路由機制都無法達到或者逼近最大流最小割定理所確定的網絡最大傳輸容量。2000, R.Alshwede提出的網絡編碼理論,推翻了傳統路由機制所採用的數據分組存儲轉發模式。通過允許中間節點對數據分組進行編碼操作,網絡編碼大大提高了網絡的吞吐量,並能達到理論的最大傳輸容量。但是,由於網絡拓撲的動態變化,確定編碼參數的網絡編碼並不能很好的適應當前網絡狀況,反而會使網絡中的數據包傳輸性能顯著惡化。除此以外,如果發送節點缺少對編碼包發送速率的控制機制,在惡化的網絡性能情況下,始終保持恆定的發送速率會使網絡中的數據包衝突顯著增多,從而出現惡性循環。相對於無編碼操作的多播機制,傳統的網絡編碼還帶來了額外的緩存數據分組的延時,限制了它在對實時性有一定要求的業務中的應用。基於以上討論,我們需要一種能夠根據當前網絡狀況,自適應選擇發送節點數據包發送速率即編碼參數的機制,用以適應動態的網絡環境。同時這種網絡應該能夠滿足業務對可靠性、吞吐量以及實時性的要求。

發明內容
本發明所要解決的技術問題是提供一種能夠自適應選擇發送參數、協調發送速率,儘可能緩解由於無線環境下的多播所產生的數據包衝突,提高網絡的整體可靠性與吞吐量的基於擁塞控制的無線多跳網多播方法。本發明採用下列技術方案解決上述技術問題:本發明設計了一種基於擁塞控制的無線多跳網多播方法,包括如下具體步驟:步驟(I):構建數據分發所需的mesh型網絡,所述mesh型網絡中包括發送節點、接收節點、中間節點和核心節點,並對構建的mesh型網絡進行功能性維護;步驟(2):在步驟(I)構建的mesh型網絡中,發送節點周期性發送網絡狀態探測包來獲取mesh網絡的各項狀況信息,並對獲取的各項狀況信息進行評估,並將評估結果轉換為參數的形式;步驟(3):發送節點根據接收到的評估結果自適應選擇網絡編碼的編碼參數,並動態調整編碼參數,同時,發送節點根據核心節點所提供網絡衝突情況改變發送窗口大小,並將處於發送窗口中的數據包編碼後傳輸至中間節點;步驟(4):所述中間節點對接收到的編碼包進行二次編碼操作,並將二次編碼操作後的編碼包發送至接收節點,接收節點在接收到足夠多的編碼包時,通過編碼的逆操作恢復出原始數據包。作為本發明的一種優化方法:所述步驟(I)包括如下具體處理:步驟(11):在網絡初始狀態下,將最先申明加入多播組的接收節點將自己標記為核心節點;步驟(12):核心節點構造MA控制包,核心節點按照自身信息填充MA控制包各欄位的控制信息,從而構造一個MA控制包,初始狀態下,核心節點構造的MA控制包具有如下內容:MA序號為0,核心節點ID即為本身節點號,到核心節點跳數為0,父節點ID為本身節點號,mesh節點標誌為True,節點位置坐標為本身坐標,核心節點將構造完成的MA控制包廣播至網絡中,核心節點的所有鄰居節點將收到該MA控制包,其中,MA序號定義為全局性序號;步驟(13):鄰居節點作為接收節點接收到MA控制包後解析其中所包含的控制信息,若該接收節點是第一次收到MA控制包,則按照該MA控制包所包含的控制信息構建鄰居節點信息表,鄰居節點信息表記錄了該接收節點所有鄰居節點的ID、核心節點節點號、該接收節點的所有鄰居節點距離核心節點跳數、所有鄰居節點的mesh節點標誌是否為True和所有鄰居節點的位置坐標,並轉而執行步驟(16);若該接收節點不是第一次收到MA控制包,繼續執行步驟(14);步驟(14):判斷收到的MA控制包是否有效:通過該MA控制包所包含的MA序號判斷該MA控制包是否過時,對於同一鄰居節點發送過來的MA控制包,擁有最大MA序號的認為是有效的,並繼續執行步驟(15);否則,直接丟棄該MA控制包並轉而執行步驟(13);步驟(15):利用本次所收到的MA控制包中的控制信息更新現存的鄰居節點信息表,即用本次接收到的MA控制包中的控制欄位覆蓋現存的鄰居節點信息表中的對應內容;步驟(16):步驟(13)中的接收節點從自己的鄰居節點信息表中選擇距離核心節點跳數最少的一個鄰居節點作為自己的父節點,若出現跳數相同情況,則以坐標位置計算出的離自身物理距離較近的鄰居節點作為父節點,該節點本身距離核心節點的跳數為所選擇父節點距離核心節點跳數值加1,若該節點也準備加入多播組,則置mesh節點標誌位為True,否則,檢索整個鄰居節點信息表,尋找是否出現以該節點作為父節點,mesh節點標誌為True並且距離核心節點跳數大於該節點的鄰居節點,若在鄰居節點信息表中發現同時符合該三個條件的節點,則認為該節點有一個子mesh節點,此時該節點作為子mesh節點的父節點,也將自己標記為mesh節點,否則,mesh節點標誌為False,在這裡我們將非接收節點的mesh節點稱為mesh網絡中的中間節點,最後依據以上討論獲得的信息,該節點構造出一個新的MA控制包,並廣播給自己的鄰居節點,各鄰居節點按照步驟(11)至步驟(16)的方法進行處理,從而完成了 mesh型網絡的功能性維護。作為本發明的一種優化方法:所述步驟(2)包括如下具體步驟:步驟(21):發送節點緩存的狀態信息擁有一個時戳,記錄了上一次獲取網絡狀態信息的時間點,發送節點在本地緩存中檢查上一次獲得的網絡狀態信息上的時戳,如果時戳所記錄的時間點與當前時間間隔超過T。,則轉向步驟(22);否則,直接將所檢查到的網絡狀態信息輸出,其中,T0定義為發送節點所緩存的網絡狀態信息的過時時間;步驟(22):發送節點發送狀態請求控制包Squwy到步驟(I)中構建的mesh網絡中去,以請求其反饋發送節點所需的網絡狀態信息,Squwy包含一個時戳欄位,記錄發送節點發送該控制包時的時間點,mesh網絡中的所有中間節點對該控制包進行轉發,而接收節點對該控制包Squea7進行響應,具體包括如下處理:步驟(221):接收節點收到控制包Squwy後,首先判定自己是否是核心節點,如果不是核心節點則轉至步驟(222);否則,轉至步驟(223);步驟(222):接收節點根據控制包Squwy中的時戳信息計算接收到該控制包時的延時ti;同時將該延時信息ti通過S_OTt控制消息發送至核心節點,Sreport控制消息包含上述延時信息ti外還擁有一個標記接收節點序號的欄位,用以區分不同的接收節點狀態信息;步驟(223):核心節點從本地緩存中檢索接收節點狀態信息,如果該核心節點所維護的網絡中的所有接收節點均通過S_OTt反饋了其節點狀態信息,即mesh網絡中的接收節點數目與收到的不同節點序號的S_OTt控制信息的個數相同,則轉至步驟(225);否則,順序執行步驟(224);步驟(224):核心節進入等待狀態,等待一段時間後轉至步驟(212),其中,等待時間為發送節點連續發送兩個編 碼包的時間間隔;步驟(225):核心節點通過所獲取的各接收節點的狀態i e M,通過如下處理選取一個反饋參考點:a:核心節點通過所獲取的信息計算各接收節點收到發送節點發送的Squwy控制信息的平均延時,S卩E(ti;i e Μ);b:以該平均值為起點,向\增大或者減小的方向進行搜索,第一次遇到的值即作為反饋參考延時,其所對應的節點r即選為反饋參考點;c:核心節點通過發送一個簡單通知信息至所選擇的反饋參考點,以通知其被選擇成為反饋參考點;步驟(23):將核心節點所確定的反饋參考延時信息tK,通過Supdate控制包反饋到發送節點,Supdate控制包除了包含參考延時信息&外,還包含mesh網絡的接收節點的平均鄰
居節點個數$其計算公式為: =|x;ri s2,由於核心節點維護著整個mesh網絡,通過其
丄N η,S
擁有的各接收節點的位置信息(Xi,yi) ;i e M,計算獲得S的值,最終,核心節點反饋給核心節點的信息包括參考延時信息tK和mesh網絡的接收節點的平均鄰居節點個數兄,其中,S定義為覆蓋所有接收節點的最小面積。作為本發明的一種優化方法:所述步驟(3)包括如下具體處理:
步驟(301):通過參數乂來確定最佳編碼長度L ;步驟(302):發送節點根據核心節點反饋的mesh網絡狀態調整發送窗口大小,並通過mesh網絡反饋自身信息供發送節點調整發送速率,具體包括如下處理:步驟(3021):發送節點初始狀態下設置發送窗口 W大小為4,並對處於窗口內的數據包進行編碼發送;步驟(3022):由步驟(225)所選擇的反饋參考點在成功恢復出某一數據塊的所有原始數據包後,計算出從發送節點發出這些數據包到反饋參考點恢復出這些數據包的延時,即用成功恢復出原始數據包時的時間減去收到關於這個數據塊的第一個編碼包的時間;步驟(3023):構造Smrort控制包,將計算出的延時通過該控制包匯報給核心節點,通過該最優路徑將SMpOTt控制包投遞至核心節點;步驟(3024):核心節點接收到反饋參考點發送過來的Smrort控制包後,將該控制包通過發送節點到達核心節點的最優路徑的反向路徑反饋給發送節點;步驟(3025):發送節點接收到核心節點發送過來的S_OTt控制包後重新計算發送窗口 W的大小,具體計算過程如下:A:將Sreport控制包從核心節點到達發送節點的延時加上Smrort控制包中記錄的參考反饋點成功解碼一個數據塊的延時在本發明定義為mesh網絡中的往返時間,記作RTT ;
W WB:令Z//其中ΚΤΤι_為發送節點按照步驟Α)計算hase
出來的歷史最小RTT,初始狀態下RTTbase等於發送節點收到的第一個反饋時所計算出來的RTT,因此,發送節點在第一次收到反饋時無需重新計算發送窗口 W的大小;C:若 diff ( O,則 RTTbase=RTT ;若 diff〈l,則令 W=W++ ;若 diff>3,則令 W=W-;其餘情況下W保持不變;步驟(3026):利用步驟(3025)計算出的W值調整發送窗口的大小,此外,發送窗口的調整過程將被周期性地觸發以實現窗口能夠根據網絡狀況實時調整;步驟(303):發送參數以及發送窗口選擇完畢後,發送節點將利用所選參數組織數據包的編碼發送,具體包括如下處理:步驟(3031):讀取待發送數據,並對數據進行分組打包,依次賦予每個數據包一個序號和其所屬的數據塊編號,數據塊編號通過數據包序號模編碼長度L獲得,將所獲得的數據塊編號和數據包序號放入包頭,令IDmt等於當前處理的數據包所屬的數據塊的編號;步驟(3032):將獲得數據包存入發送節點本地的待編碼隊列;步驟(304):對步驟(303)構造的待編碼隊列中的數據包進行網絡編碼操作,具體步驟如下:步驟(3041):檢索本地待發送隊列,查找是否有數據塊編號等於IDeunent的編碼包,若不存在繼續執行步驟3042),反之轉至步驟3043);步驟(3042):隨機 生成一個有限域中的數%,設Ptl為當前數據包,則編碼包
Ql-e0.Po ;步驟(3043):假設本地待編碼隊列中存在η個數據塊編號為IDmt的編碼包:
PT= {Po, Pi, P2, - - - , pj隨機生成一個有限域中的η維隨機向量E=Ietl, θ1; e2,..., en},用隨機向量與數據包進行線性組合即可得到編碼包C=E.P ;步驟(3044):參與編碼的隨機向量稱為編碼向量,將編碼向量加入到所得的編碼包的包頭;步驟(305):判斷發送窗口是否就緒,具體判斷過程如下:步驟(3051):計算IDuppe,=W+IDaek,初始狀態下IDaek的值為_1,意味著尚未收到任何數據塊的反饋消息;步驟(3052):當IDeunent ( IDupper時,說明發送節點存在可供數據塊IDeunent發送使用的窗口,即發送窗口就緒;若發送窗口尚未就緒,將步驟(304)獲得的編碼包存入待發送隊列,然後回到步驟(303)繼續讀取待發送數據,待編碼隊列有一個最大長度限制,當發送窗口長時間不能就緒,待編碼隊列達到最大長度限制時,發送節點將不再讀取待發送數據,而是進入等待發送窗口就緒狀態;步驟(306):將步驟(304)所獲得的編碼包以及待發送隊列中的所有編碼包發送到mesh網絡中去,同時刪除待發送隊列和待編碼隊列中的對應編碼包和數據包。作為本發明的一種優化方法:所述步驟(4)包括如下具體處理:步驟(400):接收節點檢查收到的步驟(306)中的編碼包的編碼向量,確定編碼長度L,L為I時轉至步驟(404);否則,繼續執行步驟(401);步驟(401):該節點從本地緩存中找出數據塊編號和所收到的編碼包一致的所有編碼包的編碼向量,若所收到編碼包的編碼向量與找出的本地緩存中的所有相關編碼向量線性無關,則認為該收到的編碼包包含新信息,並繼續執行步驟(402);若檢查結果表明新收到的編碼包不包含任何新信息,則直接丟棄,等待接收下一個編碼包,重複執行本步驟;步驟(402):將該編碼包存入接收節點的本地緩存中;步驟(403):判斷接收到的編碼包的序號是否為偶數,若為偶數繼續執行步驟(404);否則直接結束,等待接收下一個編碼包,重複執行本步驟;步驟(404):將本地緩存中數據塊編號和所收到的編碼包一致的所有編碼包進行二次編碼,用一組對應維度的有限域中的隨機向量將每個編碼包進行線性組合併將參與編碼的隨機向量加入到該編碼包的包頭中;步驟(405):將編碼包發送到mesh網絡中去,mesh網絡中的接收節點接收該編碼包;步驟(406):若該節點不是接收節點,則直接結束操作;如果該節點是接收節點則繼續執行步驟(407);步驟(407):找出上述接收節點的本地緩存中數據塊編號和所收到的編碼包一致的所有編碼包,連同所收到的編碼包,將他們的編碼向量組成編碼矩陣;步驟(408):在這些編碼包中找出原始數據包信息量最大的一個,定義一個編碼包的原始數據包信息量為參與該編碼包編碼過程的原始數據包個數;步驟(409):若步驟(407)確定的編碼矩陣的秩大於步驟(408)獲得的最大原始數據報信息量,則確定出現解碼機會,並繼續執行步驟(410);否則該接收節點繼續等待接收下一個編碼包並轉而執行步驟(407);
步驟(410):通過高斯消元法和公式P=K1 *C從編碼包中恢復出原始數據包,其中,C定義為參與解碼過程的編碼包所組成的向量,E定義為這些編碼包包頭中所包含的編碼向量組成的編碼矩陣,P即為恢復出的原始數據包。本發明與現有技術相比具有如下優點:1.本發明能夠根據當前網絡對於發送節點所分發的數據包的接收狀況,動態調整發送窗口的大小,減小了無線環境下多播分發數據包所產生衝突,從而提高了數據包分發的成功率;2.本發明在網絡狀態不足以支撐的場景下,這種退化可以避免盲目採用網絡編碼帶來的性能惡化;3.本發明採用部分網絡編碼技術,在提高吞吐量的同時將延時及解碼複雜度限制在一個可以接受的範圍內。


圖1為Mesh網絡構建過程;圖2為網絡狀態信息查詢過程;圖3為網絡狀態信息收集及反饋過程;圖4為核心節點與發送端的互動處理過程;圖5為發送端處理過程;圖6為中間及接收節點處理過程。
具體實施例方式下面結合附圖對本發明做進一步的具體說明:本發明設計了一種基於擁塞控制的無線多跳網多播方法,包括如下具體步驟:步驟(I):構建數據分發所需的mesh型網絡,所述mesh型網絡中包括發送節點、接收節點、中間節點和核心節點,並對構建的mesh型網絡進行功能性維護;步驟(2):在步驟(I)構建的mesh型網絡中,發送節點周期性發送網絡狀態探測包來獲取mesh網絡的各項狀況信息,並對獲取的各項狀況信息進行評估,並將評估結果轉換為參數的形式;步驟(3):發送節點根據接收到的評估結果自適應選擇網絡編碼的編碼參數,並動態調整編碼參數,同時,發送節點根據核心節點所提供網絡衝突情況改變發送窗口大小,並將處於發送窗口中的數據包編碼後傳輸至中間節點;步驟(4):所述中間節點對接收到的編碼包進行二次編碼操作,並將二次編碼操作後的編碼包發送至接收端,接收端在接收到足夠多的編碼包時,通過編碼的逆操作恢復出原始數據包。作為本發明的一種優化方法:如圖1所示,所述步驟(I)包括如下具體處理:步驟(11):在網絡初始狀態下,將最先申明加入多播組的接收節點將自己標記為核心節點;步驟(12):核心節點構造MA控制包,核心節點按照自身信息填充MA控制包各欄位的控制信息,從而構造一個MA控制包,初始狀態下,核心節點構造的MA控制包具有如下內容:MA序號為O,核心節點ID即為本身節點號,到核心節點跳數為O,父節點ID為本身節點號,mesh節點標誌為True,節點位置坐標為本身坐標,核心節點將構造完成的MA控制包廣播至網絡中,核心節點的所有鄰居節點將收到該MA控制包,其中,MA序號定義為全局性序號;步驟(13):鄰居節點作為接收節點接收到MA控制包後解析其中所包含的控制信息,若該接收節點是第一次收到MA控制包,則按照該MA控制包所包含的控制信息構建鄰居節點信息表,鄰居節點信息表記錄了該接收節點所有鄰居節點的ID、核心節點節點號、該接收節點的所有鄰居節點距離核心節點跳數、所有鄰居節點的mesh節點標誌是否為True和所有鄰居節點的位置坐標,並轉而執行步驟(16);若該接收節點不是第一次收到MA控制包,繼續執行步驟(14);步驟(14):判斷收到的MA控制包是否有效:通過該MA控制包所包含的MA序號判斷該MA控制包是否過時,對於同一鄰居節點發送過來的MA控制包,擁有最大MA序號的認為是有效的,並繼續執行步驟(15);否則,直接丟棄該MA控制包並轉而執行步驟(13);步驟(15):利用本次所收到的MA控制包中的控制信息更新現存的鄰居節點信息表,即用本次接收到的MA控制包中的控制欄位覆蓋現存的鄰居節點信息表中的對應內容;步驟(16):步驟(13)中的接收節點從自己的鄰居節點信息表中選擇距離核心節點跳數最少的一個鄰居節點作為自己的父節點,若出現跳數相同情況,則以坐標位置計算出的離自身物理距離較近的鄰居節點作為父節點,該節點本身距離核心節點的跳數為所選擇父節點距離核心節點跳數值加1,若該節點也準備加入多播組,則置mesh節點標誌位為True,否則,檢索整個鄰居節點信息表,尋找是否出現以該節點作為父節點,mesh節點標誌為True並且距離核心節點跳數大於該節點的鄰居節點,若在鄰居節點信息表中發現同時符合該三個條件的節點,則認為該節點有一個子me sh節點,此時該節點作為子me sh節點的父節點,也將自己標記為mesh節點,否則,mesh節點標誌為False,在這裡我們將非接收節點的mesh節點稱為mesh網絡中的中間節點,最後依據以上討論獲得的信息,該節點構造出一個新的MA控制包,並廣播給自己的鄰居節點,各鄰居節點按照步驟(11)至步驟(16)的方法進行處理,從而完成了 mesh型網絡的功能性維護。作為本發明的一種優化方法:如圖2所示,所述步驟(2)包括如下具體步驟:步驟(21):發送節點緩存的狀態信息擁有一個時戳,記錄了上一次獲取網絡狀態信息的時間點,發送節點在本地緩存中檢查上一次獲得的網絡狀態信息上的時戳,如果時戳所記錄的時間點與當前時間間隔超過T。,則轉向步驟(22);否則,直接將所檢查到的網絡狀態信息輸出,其中,T0定義為發送節點所緩存的網絡狀態信息的過時時間;步驟(22):發送節點發送狀態請求控制包Squwy到步驟(I)中構建的mesh網絡中去,以請求其反饋發送節點所需的網絡狀態信息,Squwy包含一個時戳欄位,記錄發送節點發送該控制包時的時間點,mesh網絡中的所有中間節點對該控制包進行轉發,而接收節點對該控制包Squea7進行響應,如圖3所示,具體包括如下處理:步驟(221):接收節點收到控制包Squwy後,首先判定自己是否是核心節點,如果不是核心節點則轉至步驟(222);否則,轉至步驟(223);步驟(222):接收節點根據控制包Squwy中的時戳信息計算接收到該控制包時的延時ti;同時將該延時信息ti通過S_OTt控制消息發送至核心節點,Sreport控制消息包含上述延時信息ti外還擁有一個標記接收節點序號的欄位,用以區分不同的接收節點狀態信息;步驟(223):核心節點從本地緩存中檢索接收節點狀態信息,如果該核心節點所維護的網絡中的所有接收節點均通過S_OTt反饋了其節點狀態信息,即mesh網絡中的接收節點數目與收到的不同節點序號的S_OTt控制信息的個數相同,則轉至步驟(225);否則,順序執行步驟(224);步驟(224):核心節進入等待狀態,等待一段時間後轉至步驟(212),其中,等待時間為發送節點連續發送兩個編碼包的時間間隔;步驟(225):核心節點通過所獲取的各接收節點的狀態i e M,通過如下處理選取一個反饋參考點:a:核心節點通過所獲取的信息計算各接收節點收到發送節點發送的Squwy控制信息的平均延時,S卩E(ti;i e Μ);b:以該平均值為起點,向ti增大或者減小的方向進行搜索,第一次遇到的值即作為反饋參考延時,其所對應的節點r即選為反饋參考點;c:核心節點通過發送一個簡單通知信息至所選擇的反饋參考點,以通知其被選擇成為反饋參考點;步驟(23):將核心節點所確定的反饋參考延時信息tK,通過Supdate控制包反饋到發送節點,Supdate控制包除了包含參考延時信息&外,還包含mesh網絡的接收節點的平均鄰
居節點個數&其計算公式為:瓦由於核心節點維護著整個mesh網絡,通過其
η,ο
擁有的各接收節點的位置信息(Xi,yi) ;i e M,計算獲得S的值,最終,核心節點反饋給核心節點的信息包括參考延時信息tK和mesh網絡的接收節點的平均鄰居節點個數瓦,其中,S定義為覆蓋所有接收節點的最小面積。作為本發明的一種優化方法:所述步驟(3)包括如下具體處理:步驟(301):通過參數V未確定最佳編碼長度L ;步驟(302):發送節點根據核心節點反饋的mesh網絡狀態調整發送窗口大小,並通過mesh網絡反饋自身信息供發送節點調整發送速率,具體包括如下處理:步驟(3021):發送節點初始狀態下設置發送窗口 W大小為4,並對處於窗口內的數據包進行編碼發送;步驟(3022):由步驟(225)所選擇的反饋參考點在成功恢復出某一數據塊的所有原始數據包後,計算出從發送節點發出這些數據包到反饋參考點恢復出這些數據包的延時,即用成功恢復出原始數據包時的時間減去收到關於這個數據塊的第一個編碼包的時間;步驟(3023):構造Smrort控制包,將計算出的延時通過該控制包匯報給核心節點,通過該最優路徑將SMpOTt控制包投遞至核心節點;步驟(3024):核心節點接收到反饋參考點發送過來的Smrort控制包後,將該控制包通過發送節點到達核心節點的最優路徑的反向路徑反饋給發送節點;步驟(3025):發送節點接收到核心節點發送過來的S_OTt控制包後重新計算發送窗口 W的大小,具體計算過程如下:
A:將Sreport控制包從核心節點到達發送節點的延時加上S,epOTt控制包中記錄的參考反饋點成功解碼一個數據塊的延時在本發明定義為mesh網絡中的往返時間,記作RTT ;
B:令
權利要求
1.一種基於擁塞控制的無線多跳網多播方法,其特徵在於,包括如下具體步驟: 步驟(I):構建數據分發所需的mesh型網絡,所述mesh型網絡中包括發送節點、接收節點、中間節點和核心節點,並對構建的mesh型網絡進行功能性維護; 步驟(2):在步驟(I)構建的mesh型網絡中,發送節點周期性發送網絡狀態探測包來獲取mesh網絡的各項狀況信息,並對獲取的各項狀況信息進行評估,並將評估結果轉換為參數的形式; 步驟(3):發送節點根據接收到的評估結果自適應選擇網絡編碼的編碼參數,並動態調整編碼參數,同時,發送節點根據核心節點所提供網絡衝突情況改變發送窗口大小,並將處於發送窗口中的數據包編碼後傳輸至中間節點; 步驟(4):所述中間節點對接收到的編碼包進行二次編碼操作,並將二次編碼操作後的編碼包發送至接收節 點,接收節點在接收到足夠多的編碼包時,通過編碼的逆操作恢復出原始數據包。
2.根據權利要求1所述的一種基於擁塞控制的無線多跳網多播方法,其特徵在於,所述步驟(I)包括如下具體處理: 步驟(11):在網絡初始狀態下,將最先申明加入多播組的接收節點將自己標記為核心節點; 步驟(12):核心節點構造MA控制包,核心節點按照自身信息填充MA控制包各欄位的控制信息,從而構造一個MA控制包,初始狀態下,核心節點構造的MA控制包具有如下內容:MA序號為O,核心節點ID即為本身節點號,到核心節點跳數為O,父節點ID為本身節點號,mesh節點標誌為True,節點位置坐標為本身坐標,核心節點將構造完成的MA控制包廣播至網絡中,核心節點的所有鄰居節點將收到該MA控制包,其中,MA序號定義為全局性序號; 步驟(13):鄰居節點作為接收節點接收到MA控制包後解析其中所包含的控制信息,若該接收節點是第一次收到MA控制包,則按照該MA控制包所包含的控制信息構建鄰居節點信息表,鄰居節點信息表記錄了該接收節點所有鄰居節點的ID、核心節點節點號、該接收節點的所有鄰居節點距離核心節點跳數、所有鄰居節點的mesh節點標誌是否為True和所有鄰居節點的位置坐標,並轉而執行步驟(16);若該接收節點不是第一次收到MA控制包,繼續執行步驟(14); 步驟(14):判斷收到的MA控制包是否有效:通過該MA控制包所包含的MA序號判斷該MA控制包是否過時,對於同一鄰居節點發送過來的MA控制包,擁有最大MA序號的認為是有效的,並繼續執行步驟(15);否則,直接丟棄該MA控制包並轉而執行步驟(13); 步驟(15):利用本次所收到的MA控制包中的控制信息更新現存的鄰居節點信息表,SP用本次接收到的MA控制包中的控制欄位覆蓋現存的鄰居節點信息表中的對應內容; 步驟(16):步驟(13)中的接收節點從自己的鄰居節點信息表中選擇距離核心節點跳數最少的一個鄰居節點作為自己的父節點,若出現跳數相同情況,則以坐標位置計算出的離自身物理距離較近的鄰居節點作為父節點,該節點本身距離核心節點的跳數為所選擇父節點距離核心節點跳數值加1,若該節點也準備加入多播組,則置mesh節點標誌位為True,否貝1J,檢索整個鄰居節點信息表,尋找是否出現以該節點作為父節點,mesh節點標誌為True並且距離核心節點跳數大於該節點的鄰居節點,若在鄰居節點信息表中發現同時符合該三個條件的節點,則認為該節點有一個子mesh節點,此時該節點作為子mesh節點的父節點,也將自己標記為mesh節點,否則,mesh節點標誌為False,在這裡我們將非接收節點的mesh節點稱為mesh網絡中的中間節點,最後依據以上討論獲得的信息,該節點構造出一個新的MA控制包,並廣播給自己的鄰居節點,各鄰居節點按照步驟(11)至步驟(16 )的方法進行處理,從而完成了 mesh型網絡的功能性維護。
3.根據權利要求2所述的一種基於擁塞控制的無線多跳網多播方法,其特徵在於,所述步驟(2)包括如下具體步驟: 步驟(21):發送節點緩存的狀態信息擁有一個時戳,記錄了上一次獲取網絡狀態信息的時間點,發送節點在本地緩存中檢查上一次獲得的網絡狀態信息上的時戳,如果時戳所記錄的時間點與當前時間間隔超過T。,則轉向步驟(22);否則,直接將所檢查到的網絡狀態信息輸出,其中,T0定義為發送節點所緩存的網絡狀態信息的過時時間; 步驟(22):發送節點發送狀態請求控制包Squwy到步驟(I)中構建的mesh網絡中去,以請求其反饋發送節點所需的網絡狀態信息,Squery包含一個時戳欄位,記錄發送節點發送該控制包時的時間點,mesh網絡中的所有中間節點對該控制包進行轉發,而接收節點對該控制包Squea7進行響應,具體包括如下處理: 步驟(221):接收節點收到控制包Squwy後,首先判定自己是否是核心節點,如果不是核心節點則轉至步驟(222);否則,轉至步驟(223); 步驟(222):接收節點根據控制包Squwy中的時戳信息計算接收到該控制包時的延時ti;同時將該延時信息\通過S_OTt控制消息發送至核心節點,S_OTt控制消息包含上述延時信息\外還擁有一個標記接收節點序號的欄位,用以區分不同的接收節點狀態信息; 步驟(223):核心節點從本地緩存中檢索接收節點狀態信息,如果該核心節點所維護的網絡中的所有接收節點均通過S_OTt反饋了其節點狀態信息,即mesh網絡中的接收節點數目與收到的不同節點序號的S_OTt控制信息的個數相同,則轉至步驟(225);否則,順序執行步驟(224); 步驟(224):核心節進入等待狀態,等待一段時間後轉至步驟(212),其中,等待時間為發送節點連續發送兩個編碼包的時間間隔; 步驟(225):核心節點通過所獲取的各接收節點的狀態i e M,通過如下處理選取一個反饋參考點: a:核心節點通過所獲取的信息計算各接收節點收到發送節點發送的Squwy控制信息的平均延時,即E(ti;i e M); b:以該平均值為起點,向\增大或者減小的方向進行搜索,第一次遇到的值即作為反饋參考延時,其所對應的節點r即選為反饋參考點; c:核心節點通過發送一個簡單通知信息至所選擇的反饋參考點,以通知其被選擇成為反饋參考點; 步驟(23):將核心節點所確定的反饋參考延時信息tK,通過Supdate控制包反饋到發送節點,Supdate控制包除了包含參考延時信息tK外,還包含mesh網絡的接收節點的平均鄰居節點個數&其計算公式為
4.根據權利要求3所述的一種基於擁塞控制的無線多跳網多播方法,其特徵在於,所述步驟(3)包括如下具體處理: 步驟(301):通過參數瓦來確定最佳編碼長度L ; 步驟(302):發送節點根據核心節點反饋的mesh網絡狀態調整發送窗口大小,並通過mesh網絡反饋自身信息供發送節點調整發送速率,具體包括如下處理: 步驟(3021):發送節點初始狀態下設置發送窗口 W大小為4,並對處於窗口內的數據包進行編碼發送; 步驟(3022):由步驟(225)所選擇的反饋參考點在成功恢復出某一數據塊的所有原始數據包後,計算出從發送節點發出這些數據包到反饋參考點恢復出這些數據包的延時,即用成功恢復出原始數據包時的時間減去收到關於這個數據塊的第一個編碼包的時間; 步驟(3023):構造Smrort控制包,將計算出的延時通過該控制包匯報給核心節點,通過該最優路徑將S_OTt控制包投遞至核心節點; 步驟(3024):核心節點接收到反饋參考點發送過來的Smrort控制包後,將該控制包通過發送節點到達核心節點的最優路徑的反向路徑反饋給發送節點; 步驟(3025):發送節點接收到核心節點發送過來的Smrort控制包後重新計算發送窗口W的大小,具體計算過程如下: A:將SMpOTt控制包從核心節點到達發送節點的延時加上Smrort控制包中記錄的參考反饋點成功解碼一個數據塊的延時在本發明定義為mesh網絡中的往返時間,記作RTT ; B 令
5.根據權利要求4所述的一種基於擁塞控制的無線多跳網多播方法,其特徵在於,所述步驟(4)包括如下具體處理: 步驟(400):接收節點檢查收到的步驟(306)中的編碼包的編碼向量,確定編碼長度L,L為I時轉至步驟(404);否則,繼續執行步驟(401); 步驟(401):接收節點從本地緩存中找出數據塊編號和所收到的編碼包一致的所有編碼包的編碼向量,若所收到編碼包的編碼向量與找出的本地緩存中的所有相關編碼向量線性無關,則認為該收到的編碼包包含新信息,並繼續執行步驟(402);若檢查結果表明新收到的編碼包不包含任何新信息,則直接丟棄,等待接收下一個編碼包,重複執行本步驟;步驟(402):將該編碼包存入接收節點的本地緩存中; 步驟(403):判斷接收到的編碼包的序號是否為偶數,若為偶數繼續執行步驟(404);否則直接結束,等待接收下一個編碼包,重複執行本步驟; 步驟(404):將本地緩存中數據塊編號和所收到的編碼包一致的所有編碼包進行二次編碼,用一組對應維度的有限域中的隨機向量將每個編碼包進行線性組合併將參與編碼的隨機向量加入到該編碼包的包頭中; 步驟(405):將編碼包發送到mesh網絡中去,mesh網絡中的接收節點接收該編碼包;步驟(406):若該節點不是接收節點,則直接結束操作;如果該節點是接收節點則繼續執行步驟(407); 步驟(407):找出上述接收節點的本地緩存中數據塊編號和所收到的編碼包一致的所有編碼包,連同所收到的編碼包,將他們的編碼向量組成編碼矩陣; 步驟(408):在這些編碼包中找出原始數據包信息量最大的一個,定義一個編碼包的原始數據包信息量為參與該編碼包編碼過程的原始數據包個數; 步驟(409):若步驟(407)確定的編碼矩陣的秩大於步驟(408)獲得的最大原始數據報信息量,則確定出現解碼機會,並繼續執行步驟(410);否則該接收節點繼續等待接收下一個編碼包並轉而執行步驟(407);步驟(410):通過高斯消元法和公式P=E-1.C從編碼包中恢復出原始數據包,其中,C定義為參與解碼過程的編碼包所組成的向量,E定義為這些編碼包包頭中所包含的編碼向量組成的編碼矩陣,P即為恢復出的原 始數據包。
全文摘要
本發明公開了一種基於擁塞控制的無線多跳網多播方法,包括mesh網絡的構建及維護、網絡狀態的獲取及更新方法、核心節點與發送端之間的協調和中間節點及接收端的處理等步驟;本發明所設計的基於擁塞控制的無線多跳網多播方法能夠自適應選擇發送參數、協調發送速率,儘可能緩解由於無線環境下的多播所產生的數據包衝突,提高網絡的整體可靠性與吞吐量。
文檔編號H04W28/04GK103209435SQ20131008397
公開日2013年7月17日 申請日期2013年3月15日 優先權日2013年3月15日
發明者譚國平, 彭新華, 倪新洋, 譚林風, 劉修泉 申請人:河海大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀