一種基于網絡編碼的p2p流媒體數(shù)據(jù)調度方法
【專利摘要】本發(fā)明公開了一種基于網絡編碼的P2P流媒體數(shù)據(jù)調度方法,其步驟為:(1)種子節(jié)點對要傳輸?shù)臄?shù)據(jù)塊進行網絡編碼;(2)種子節(jié)點向下游節(jié)點發(fā)送編碼數(shù)據(jù)塊的數(shù)據(jù)段,當下游節(jié)點接收到的編碼數(shù)據(jù)塊數(shù)與需要接收的數(shù)據(jù)段中的編碼數(shù)據(jù)塊數(shù)之差達到預先定制的閾值時,下游節(jié)點通知種子節(jié)點停止推送該數(shù)據(jù)段編碼數(shù)據(jù)塊,轉為向種子節(jié)點定制所需的數(shù)據(jù)塊。本發(fā)明的技術方案,在數(shù)據(jù)傳輸過程中,利用預先定制閾值,當一個節(jié)點充當種子節(jié)點給其下游節(jié)點發(fā)送數(shù)據(jù)時,下游節(jié)點的數(shù)據(jù)段所需的編碼數(shù)據(jù)塊將要接收完成時,通知它的種子節(jié)點停止向它推送該數(shù)據(jù)段編碼數(shù)據(jù)塊,轉為向它的種子節(jié)點定制所需的編碼數(shù)據(jù)塊,有效減少了冗余編碼數(shù)據(jù)塊的產生。
【專利說明】—種基于網絡編碼的P2P流媒體數(shù)據(jù)調度方法
【技術領域】
[0001]本發(fā)明屬于計算機網絡流媒體數(shù)據(jù)的傳輸【技術領域】,具體來說是一種基于網絡編碼的P2P流媒體數(shù)據(jù)調度方法。
【背景技術】
[0002]近年來,隨著互聯(lián)網技術的發(fā)展,對等網絡P2P流媒體直播系統(tǒng)得到了廣泛應用,P2P流媒體數(shù)據(jù)服務是一項擴展性好、性價比高的服務,P2P技術與流媒體技術的結合,促進了網絡多媒體應用的發(fā)展。P2P思想融入到流媒體應用后,充分發(fā)揮了以往被忽略的眾多個人計算機(端節(jié)點)的作用,通過讓節(jié)點緩存一部分媒體數(shù)據(jù),實施一部分服務器功能,使服務器分散化,減輕了服務器的負載以及對局部網絡帶寬的高要求和高消耗。
[0003]傳統(tǒng)的通信網絡傳送數(shù)據(jù)的方式是存儲轉發(fā),即除了數(shù)據(jù)的發(fā)送節(jié)點和接收節(jié)點以外的節(jié)點只負責路由,而不對數(shù)據(jù)內容做任何處理,中間節(jié)點扮演著轉發(fā)器的角色。長期以來,人們普遍認為在中間節(jié)點上對傳輸?shù)臄?shù)據(jù)進行加工不會有任何收益,然而RAhlswede等人在2000年提出的網絡編碼理論徹底推翻了這種傳統(tǒng)觀點。網絡編碼的工作原理是把不同的信息轉化成位數(shù)更小的“痕跡”,然后在目標節(jié)點進行演繹還原,這樣就不必反復傳輸或者復制全部信息了,痕跡可以在多個中間節(jié)點間的多條路徑上反復傳遞,然后再被送往最終的目的端點。這種方式不需要額外的容量和路由,只需把信息的痕跡轉換成位流即可,而這種轉換現(xiàn)有的網絡基礎設施是完全支持的。應用網絡編碼,可以解決傳統(tǒng)路由、跨層設計等技術無法解決的問題,提高網絡性能,網絡編碼在無線網絡中的應用可以提高網絡的吞吐量,尤其是組播吞吐量,可以減少數(shù)據(jù)包的傳播次數(shù),降低無線發(fā)送能耗,當網絡部分節(jié)點或鏈路失效時采用隨機網絡編碼,最終在目的節(jié)點仍然能恢復原始數(shù)據(jù),增強網絡的容錯性和魯棒性。
[0004]P2P網絡中的每一個節(jié)點既可以向它的鄰居節(jié)點請求缺失的數(shù)據(jù)塊,也可以充當數(shù)據(jù)資源服務者的提供者。P2P流媒體技術取得成功得益于基于數(shù)據(jù)調度策略的應用,調度策略的選擇對提高視頻服務質量、降低服務器負載和增強對節(jié)點動態(tài)的適應能力等方面有著巨大的影響?,F(xiàn)行技術常采用的一些數(shù)據(jù)調度策略包括:隨機調度、循環(huán)調度和最少數(shù)據(jù)調度等方式。其中,隨機調度是通過隨機的選擇P2P網絡中的節(jié)點,向該節(jié)點調度所需的流媒體數(shù)據(jù),該方式容易造成節(jié)點收到過多冗余的編碼數(shù)據(jù)塊,消耗過多的節(jié)點帶寬;循環(huán)調度方法是通過某一標準,例如節(jié)點能力或路由信息,將所有節(jié)點進行排序,以循環(huán)方式向排序后節(jié)點調度流媒體數(shù)據(jù),該方法雖然考慮了節(jié)點自身的能力,但未考慮網絡狀態(tài);最少數(shù)據(jù)優(yōu)先調度方法是以數(shù)據(jù)資源為標準,首先調度P2P網絡中較少的流媒體數(shù)據(jù),確保能夠獲取資源稀少的流媒體數(shù)據(jù),這種方法雖然能夠獲取資源稀少的流媒體數(shù)據(jù),卻不能保證將要播出的數(shù)據(jù)及時送達,容易造成播放的不順暢,影響服務質量。如何對上述幾種流媒體數(shù)據(jù)的調度方法進行改進,是P2P網絡傳輸?shù)囊粋€重要研究方向。
【發(fā)明內容】
[0005]本發(fā)明的目的是為了解決現(xiàn)有的P2P流媒體推拉隨機隨機調度方式在系統(tǒng)整體吞吐量、播放延遲等方面存在的不足,容易產生大量的冗余數(shù)據(jù)的缺陷,提出一種改進性基于網絡編碼的P2P流媒體數(shù)據(jù)調度方法。實現(xiàn)上述目的本發(fā)明的技術方案為,一種基于網絡編碼的P2P流媒體數(shù)據(jù)調度方法,該方法步驟為:(I)種子節(jié)點對要傳輸?shù)臄?shù)據(jù)塊進行網絡編碼成為編碼數(shù)據(jù)塊;(2)種子節(jié)點向下游節(jié)點發(fā)送編碼數(shù)據(jù)塊的數(shù)據(jù)段,當下游節(jié)點接收到的編碼數(shù)據(jù)塊數(shù)與需要接收的數(shù)據(jù)段中的編碼數(shù)據(jù)塊數(shù)差達到預先定制的閾值時,下游節(jié)點通知種子節(jié)點停止推送該數(shù)據(jù)段編碼數(shù)據(jù)塊,轉為向它的種子節(jié)點定制所需的編碼數(shù)據(jù)塊。步驟(1)中的網絡編碼采用稀疏編碼策略來實現(xiàn),這樣可以縮短編碼時間,保證解碼的成功率。稀疏編碼策略實現(xiàn)網絡編碼的過程為:將數(shù)據(jù)段分為η個數(shù)據(jù)塊[b1; b2, b3,…,bn],每個數(shù)據(jù)塊大小為k字節(jié),種子節(jié)點在一個有限域中獨立的隨機選擇一組編碼系數(shù)[Cl,C2, C3,…cm],其中m = n,然后從其緩存的所有數(shù)據(jù)塊中隨機選擇m個數(shù)據(jù)
m
塊[bpi,bp2, bp3,…,bpJ,生成一個k字節(jié)的編碼塊X,X =.V ,其中m/n為編碼密度,一個種子節(jié)點在其緩存區(qū)域中擁有不少于α.η個編碼數(shù)據(jù)塊時,便編碼生成新的數(shù)據(jù)塊,這里0〈α ^ 10當節(jié)點收到η個數(shù)據(jù)塊X時,便開始解碼過程,首先它把η個編碼數(shù)據(jù)塊的η維系數(shù)向量組成一個ηΧη矩陣Α,矩陣A中的每一行代表一個編碼數(shù)據(jù)塊的η維系數(shù)向量。然后就可以解碼出原數(shù)據(jù)塊Kb = A-1X^在數(shù)據(jù)傳輸過程中,利用預先定制閾值,當一個節(jié)點充當種子節(jié)點給其下游節(jié)點發(fā)送數(shù)據(jù)時,下游節(jié)點某個數(shù)據(jù)段所需的編碼數(shù)據(jù)塊將要接收完成時,通知它的種子節(jié)點停止向它推送該數(shù)據(jù)段編碼數(shù)據(jù)塊,轉為向它的種子節(jié)點定制所需的編碼數(shù)據(jù)塊,從而有效減少了冗余編碼數(shù)據(jù)塊的產生。
[0006]上述方法中 ,下游節(jié)點向種子節(jié)點定制所需的編碼數(shù)據(jù)塊是把數(shù)據(jù)段中缺少的數(shù)據(jù)塊數(shù)進行等分,隨機選擇與數(shù)據(jù)塊劃分份數(shù)相同個數(shù)的種子節(jié)點,分別向它們發(fā)送定制請求和緩存映射(BM)實現(xiàn)分配定制任務。該過程的具體步驟是:(a)種子節(jié)點從下游節(jié)點接收緩存映射(BM),判斷下游節(jié)點的數(shù)據(jù)段是否滿足定制閾值;若沒有,執(zhí)行(b);若有執(zhí)行(c) ;(b)采用推送策略,種子節(jié)點從下游節(jié)點缺少的數(shù)據(jù)段中,隨機選擇一個數(shù)據(jù)段進行編碼生成一個數(shù)據(jù)塊,然后進行發(fā)送;(C)種子節(jié)點檢查是否收到相應的定制請求,若沒收到,執(zhí)行⑷;若收到,執(zhí)行(e) ;(d)在不滿足定制閾值和不完整的數(shù)據(jù)段中,采用推送策略,隨機選擇一個數(shù)據(jù)段,生成一個新的編碼數(shù)據(jù)塊進行發(fā)送;(e)根據(jù)該數(shù)據(jù)段的定制請求發(fā)送數(shù)據(jù),發(fā)送的數(shù)據(jù)塊數(shù)由定制請求決定。
[0007]本申請所提出的方法通過對要傳輸?shù)臄?shù)據(jù)塊進行稀疏編碼策略的網絡編碼縮短了編碼時間,保證解碼的成功率;在數(shù)據(jù)傳輸過程中,通過引入定制閾值,當一個節(jié)點充當種子節(jié)點給其下游節(jié)點發(fā)送數(shù)據(jù)時,下游節(jié)點某個數(shù)據(jù)段所需的編碼數(shù)據(jù)塊將要接收完成時,通知它的種子節(jié)點停止向其推送數(shù)據(jù)段編碼數(shù)據(jù)塊,轉為向它的種子節(jié)點定制所需的編碼數(shù)據(jù)塊,從而有效減少了冗余編碼數(shù)據(jù)塊的產生。
【專利附圖】
【附圖說明】
[0008]圖1是本發(fā)明中的下游節(jié)點接收定制數(shù)據(jù)塊示例圖;
[0009]圖2是種子節(jié)點向下游節(jié)點發(fā)送數(shù)據(jù)塊的具體過程。
【具體實施方式】
[0010]下面對本發(fā)明的技術方案進行具體描述,如圖1所示為本發(fā)明所述的下游節(jié)點接收定制數(shù)據(jù)塊示例圖,節(jié)點1、節(jié)點2同時為節(jié)點3的種子節(jié)點,數(shù)據(jù)段劃分為10塊,定制閾值為2,也就是當數(shù)據(jù)段缺少數(shù)據(jù)塊數(shù)為2時,節(jié)點轉為定制數(shù)據(jù)。首先,節(jié)點1、2采用推送策略向節(jié)點3傳送數(shù)據(jù),當節(jié)點3接收到8個數(shù)據(jù)塊后,還有2個數(shù)據(jù)塊未被接收,這時滿足定制閾值,節(jié)點3向節(jié)點1、2發(fā)送緩存映射BM,通知它們停止推送數(shù)據(jù),同時節(jié)點3對未接收的數(shù)據(jù)塊進行劃分,劃分成兩份(1,1),向節(jié)點1、2分別定制I個數(shù)據(jù)塊,節(jié)點1、2接收到定制請求后,根據(jù)定制請求的信息,向節(jié)點3發(fā)送數(shù)據(jù),所有數(shù)據(jù)在推送前都是經過稀疏編碼策略進行編碼后的網絡編碼數(shù)據(jù)段,從而縮短編碼時間,保證解碼的成功率。
[0011]圖2是種子節(jié)點向下游節(jié)點發(fā)送數(shù)據(jù)塊的具體過程,如圖所示,(a)種子節(jié)點從下游節(jié)點接收緩存映射(BM),判斷下游節(jié)點的數(shù)據(jù)段是否滿足定制閾值;若沒有,執(zhí)行(b);若有執(zhí)行(c) ;(b)采用推送策略,種子節(jié)點從下游節(jié)點缺少的數(shù)據(jù)段中,隨機選擇一個數(shù)據(jù)段進行編碼生成一個數(shù)據(jù)塊,然后進行發(fā)送;(c)種子節(jié)點檢查是否收到相應的定制請求,若沒收到,執(zhí)行⑷;若收到,執(zhí)行(e) ;(d)在不滿足定制閾值和不完整的數(shù)據(jù)段中,采用推送策略,隨機選擇一個數(shù)據(jù)段,生成一個新的編碼數(shù)據(jù)塊進行發(fā)送;(e)根據(jù)該數(shù)據(jù)段的定制請求發(fā)送數(shù)據(jù),發(fā)送的數(shù)據(jù)塊數(shù)由定制請求決定。
[0012]本發(fā)明的技術方案,在數(shù)據(jù)傳輸過程中,利用預先定制閾值,當一個節(jié)點充當種子節(jié)點給其下游節(jié)點發(fā)送數(shù)據(jù)時,下游節(jié)點某個數(shù)據(jù)段所需的編碼數(shù)據(jù)塊將要接收完成時,通知它的種子節(jié)點停止向它推送該數(shù)據(jù)段編碼數(shù)據(jù)塊,轉為向它的種子節(jié)點定制所需的編碼數(shù)據(jù)塊,從而有效減少了冗余編碼數(shù)據(jù)塊的產生。
[0013]上述技術方案僅體現(xiàn)了本發(fā)明技術方案的優(yōu)選技術方案,本【技術領域】的技術人員對其中某些部分所可能做出的一些變動均體現(xiàn)了本發(fā)明的原理,屬于本發(fā)明的保護范圍之內。
【權利要求】
1.一種基于網絡編碼的P2P流媒體數(shù)據(jù)調度方法,其特征在于,該方法步驟為:(1)種子節(jié)點對要傳輸?shù)臄?shù)據(jù)塊進行網絡編碼成為編碼數(shù)據(jù)塊;(2)種子節(jié)點向下游節(jié)點發(fā)送編碼數(shù)據(jù)塊的數(shù)據(jù)段,當下游節(jié)點接收到的編碼數(shù)據(jù)塊數(shù)與需要接收的數(shù)據(jù)段中的編碼數(shù)據(jù)塊數(shù)之差達到預先定制的閾值時,下游節(jié)點通知種子節(jié)點停止推送該數(shù)據(jù)段編碼數(shù)據(jù)塊,轉為向它的種子節(jié)點定制所需的編碼數(shù)據(jù)塊。
2.根據(jù)權利要求1所述的基于網絡編碼的P2P流媒體數(shù)據(jù)調度方法,其特征在于,步驟(I)中采用稀疏編碼策略實現(xiàn)網絡編碼。
3.根據(jù)權利要求1所述的基于網絡編碼的P2P流媒體數(shù)據(jù)調度方法,其特征在于,步驟(2)中,下游節(jié)點向種子節(jié)點定制所需的編碼數(shù)據(jù)塊是把數(shù)據(jù)段中缺少的數(shù)據(jù)塊數(shù)進行等分,隨機選擇與數(shù)據(jù)塊劃分份數(shù)相同個數(shù)的種子節(jié)點,分別向它們發(fā)送定制請求和緩存映射(BM)實現(xiàn)分配定制任務。
4.根據(jù)權利要求2所述的基于網絡編碼的P2P流媒體數(shù)據(jù)調度方法,其特征在于,稀疏編碼策略實現(xiàn)網絡編碼的過程為:將數(shù)據(jù)段分為η個數(shù)據(jù)塊[bi,b2,b3,…,bn],每個數(shù)據(jù)塊大小為k字節(jié),種子節(jié)點在一個有限域中獨立的隨機選擇一組編碼系數(shù)[Cl,C2, C3,…cm],其中m g n,然后從其緩存的所有數(shù)據(jù)塊中隨機選擇m個數(shù)據(jù)塊[I^bLbp3,…,bpm],生成
一個k字節(jié)的編碼塊X,
,其中m/n為編碼密度,一個種子節(jié)點在其緩存區(qū)域中擁有不少于α.η個編碼數(shù)據(jù)塊時,便編碼生成新的數(shù)據(jù)塊,這里0〈α ( I。
5.根據(jù)權利要求1或3所述的基于網絡編碼的P2P流媒體數(shù)據(jù)調度方法,其特征在于,步驟(2)中的種子節(jié)點向下游節(jié)點發(fā)送數(shù)據(jù)段的具體過程如下:(a)種子節(jié)點從下游節(jié)點接收緩存映射(BM),判斷下游節(jié)點的數(shù)據(jù)段是否滿足定制閾值;若沒有,執(zhí)行(b);若有執(zhí)行(c) ;(b)采用推送策略,種子節(jié)點從下游節(jié)點缺少的數(shù)據(jù)段中,隨機選擇一個數(shù)據(jù)段進行編碼生成一個數(shù)據(jù)塊,然后進行發(fā)送;(C)種子節(jié)點檢查是否收到相應的定制請求,若沒收到,執(zhí)行⑷;若收到,執(zhí)行(e) ;(d)在不滿足定制閾值和不完整的數(shù)據(jù)段中,采用推送策略,隨機選擇一個數(shù)據(jù)段,生成一個新的編碼數(shù)據(jù)塊進行發(fā)送;(e)根據(jù)該數(shù)據(jù)段的定制請求發(fā)送數(shù)據(jù),發(fā)送的數(shù)據(jù)塊數(shù)由定制請求決定。
【文檔編號】H04L29/08GK104079661SQ201410334296
【公開日】2014年10月1日 申請日期:2014年7月14日 優(yōu)先權日:2014年7月14日
【發(fā)明者】邵宗翰 申請人:昆明聯(lián)誠科技股份有限公司