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