一種利用成對流間網絡編碼機會的數據流時延保障策略的制作方法
【技術領域】
[0001] 本發明涉及一種利用成對流間網絡編碼機會的數據流時延保障策略,屬于通信領 域協議設計領域。當數據流間存在成對流間編碼能力時,采用本方法,能夠在保證數據流差 異性時延約束的情況下,盡可能的提高網絡吞吐量。 技術背景
[0002] 無線網狀網(WMN)技術由于其無需基礎架構的特點,能夠提供低價、廣覆蓋的網 絡,被越來越多的用于學校、商場、步行街等室內外應用場景中。然而無線網絡的抗干擾性 差、鏈路不穩定的缺點,又使得其難以支持對服務質量要求較高的應用。如今多媒體應用與 無線網絡的結合越來越緊密,他們對無線通信服務質量要求高,通常有差異性的時延、優 先級的需求。網絡編碼技術,能夠很好地結合無線網天然的廣播特性,利用網絡的大量冗余 信息,對數據包編碼后集中發送。這一技術被證明能夠有效地減少數據流轉發次數,提高網 絡的吞吐量。是保障無線網絡中多媒體應用通信質量有效解決方案。其中流間網絡編碼還 具有編碼開銷小,解碼時延短等優點。本文將主要研究流間網絡編碼,討論有效降低數據流 時延的調度策略。流間編碼的基本原理是中間節點對多個來自不同數據流的分組進行編碼 并一次轉發。編碼機會依賴于數據流之間的拓撲關系。
[0003] 本發明主要討論無線網絡中可編碼數據流的調度問題,當多條業務流存在不同的 時延要求時,如何在保證這些時延要求的情況下提高吞吐量。已有的工作或給出了啟發式 算法,研究了編碼數據流端到端時延,或只研究成對編碼,沒有考慮到數據流差異性的時延 要求。而我們的研究考慮的數據流條件多,編碼結構全,提供的解決方案也更完善。
【發明內容】
[0004] 本發明的目的是:討論無線網絡中可編碼數據流的調度問題,當多條業務流存在 不同的時延要求時,如何在保證這些時延要求的情況下提高吞吐量。
[0005] 為了實現上述目的,本發明的技術方案是:
[0006] -種利用成對流間網絡編碼機會的數據流時延調度方法,其特征是包括以下步 驟:
[0007] 1)建數據流隊列緩存IP層到達分組;分組緩存,在IP層與MAC層之間實現中間 層協議,緩存IP層到達的分組,為每條數據流建立虛擬隊列,發掘數據流間成對編碼機會。
[0008] 2)統計隊列信息,在每個調度時長(區間)開始時統計數據流信息,包括每個隊列 中數據包個數、權重、時延以及數據流成對編碼關系。
[0009] 3)分組調度,利用整數線性規劃方法計算分組的最優發送次序。
[0010] 4)編碼發送,對需要編碼的數據包分組進行編碼,加上編碼頭部后,將數據包按序 發往MAC層接口處;
[0011] 5)結束本輪調度,當本輪調度時間到期后返回步驟1),繼續調度本輪緩存的數據 分組。
[0012] 上述步驟1)利用節點的兩跳鄰居信息來發現成對編碼機會。利用較小的計算成 本,發現較多的編碼機會。
[0013] 上述步驟3)將最大化時延到達之前發送數據分組權重和問題規約為整數線性規 劃問題,并證明可以求出最優發送次序。
[0014] 上述步驟5)劃定的調度時間段長度根據網絡平均時延決定。
[0015] 數據流時延調度方法具體分為3個階段:編碼機會發現,分組調度和分組編碼;
[0016] 階段一:編碼機會發現策略,PTCS的首要模塊是編碼機會發現機制,能夠利用節 點的一跳鄰居信息和兩跳鄰居信息來挖掘數據流間的成對編碼關系;對于先應式路由協 議,每個節點能夠很容易的知道自己的一跳和兩跳鄰居;對于反應式路由協議,讓每個節點 利用Hello報文廣播自己的一跳鄰居信息給鄰居;收到鄰居的Hello報文后,節點就更新自 己的一跳鄰居表和兩跳鄰居表;
[0017] 利用數據流的上下游節點信息以及中間節點的一跳和兩跳鄰居信息來判斷一對 數據流是否存在編碼關系;
[0018] 將中間節點R收到的數據包,分別緩存到為每個數據流建立的隊列中;每條隊列 都要記錄下對應數據流的源節點、目的節點、下一跳地址、權重大小、時延要求、數據包個數 信息,還要保存指向數據包列表的指針;每當一個數據包進入節點R時,首先檢查這個數據 流的隊列是否存在,若隊列存在,直接將該數據包加入隊列中的數據包列表,同時隊列信息 中數據包個數記錄加1 ;若不存在,則為這個數據流新建一個隊列,同時利用隊列信息以及 編碼判斷條件來檢查這條數據流和已入隊的數據流是否存在編碼關系;
[0019] 階段二:分組調度;能根據數據流的編碼關系、權重、時延、隊列長度信息給出一 個最優數據包發送順序;先定義一個調度區間為T個發送時隙,即在這段時間內能發送出 去T個數據包;在每個調度區間的開始,統計隊列中記錄的數據流信息,編碼關系、權重、時 延、隊列長度,對最大化在時延到達之前發送數據包的權重和問題進行形式化;
[0020] 將經過中間結點的數據流分為兩個集合,集合匕中數據流沒有編碼關系,為單流, 集合匕中都是有編碼關系的編碼對;個數為Sk,對于有編碼關系的編碼有序對(i,j),且滿 足i〈j,被成功轉發的編碼數據包個數定義SD1, fjPf,中未被編碼就轉發的數據包叫做 余包,其個數分別定義為民和Ry有R1 ?R,= 〇的性質,即兩者中至少有一個為〇,否則兩 個數據流仍能繼續編碼;
[0021] 通過線性規劃方法給出每個數據流發送的分組個數,按照時延從小到大的順序, 將單個數據包或是編碼數據包移動到中間節點R的發送隊列中,讓數據包等待MAC層的發 送機會;同時清理原來的緩存數據隊列,等待新數據包的到達;每當中間節點取得一個發 送機會,就從發送隊列的最前端取一個數據包發送;在調度區間內到達節點的數據包,經過 IP層的路由后,就被緩存在新的隊列里,在本輪調度結束后,參與下一輪的調度;
[0022] 階段三:分組編碼,PTCS分組調度模塊輸出的發送順序是一系列的數據流中被調 度的數據包個數,這些數據流是單流或編碼流;中間節點按照這個發送順序,從每個數據流 隊列的最前端取出相應個數的數據包發送;如果遇到編碼數據流,則要從一對編碼流中分 別取出數據包進行編碼;稱這兩個數據一個為主編碼包,另一個為從屬編碼包;IP頭部中 保存的是主編碼包的源節點、目的節點、時延信息、權重信息、發送時間;需要給每個數據包 加上一個編碼頭部用于記錄從屬編碼包的信息,稱之為CodeHead,放在IP頭部和MAC頭部 之間;CodeHead的結構中,編碼標識位顯示此數據包是否為編碼包,以及從屬編碼包的源 節點、目的節點、下一跳地址、時延信息、權重信息、發送時間信息;編碼后的數據包和其他 單包一樣按序加入節點的發送端口處,交由MAC層發送;為了接收到編碼數據包,節點需要 打開混雜模式,也就是無線節點利用信道的廣播特性,接受一切能聽到的數據包,包括不是 發送給它自己的;MAC層收到單播數據包,就將數據包移交PTCS層;PTCS層判斷數據包是 否編碼,并對編碼的數據包進行解