亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種節(jié)點下載調(diào)度方法和裝置的制造方法

文檔序號:10539371閱讀:633來源:國知局
一種節(jié)點下載調(diào)度方法和裝置的制造方法
【專利摘要】本發(fā)明涉及一種節(jié)點下載調(diào)度方法和裝置,該方法包括:以節(jié)點所播放的直播流的當前播放頭為基準,設(shè)置滑動窗口,其中,對所述滑動窗口內(nèi)的未下載直播流數(shù)據(jù),優(yōu)先從內(nèi)容分發(fā)網(wǎng)絡CDN服務器下載;對該滑動窗口之后的未下載直播流數(shù)據(jù),優(yōu)先以點對點數(shù)據(jù)傳輸P2P模式從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點下載;設(shè)置篩選標準,以便基于該篩選標準從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點中篩選出優(yōu)選鄰居節(jié)點,并向所述優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù);在直播流的碼率變化的情況下,根據(jù)所述變化調(diào)整該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量的大小、所述滑動窗口的大小、以及所述篩選標準中的一個或多個。
【專利說明】
一種節(jié)點下載調(diào)度方法和裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及互聯(lián)網(wǎng)視頻技術(shù)領(lǐng)域,尤其涉及一種節(jié)點下載調(diào)度方法和裝置。
【背景技術(shù)】
[0002]當前各大視頻網(wǎng)站都在大力發(fā)展直播,業(yè)務范圍非常廣泛,用戶需求也更加多樣化。直播系統(tǒng)中用戶觀看體驗是最為關(guān)鍵的因素,而“流暢率”則是衡量用戶觀看體驗的重要指標。流暢率表征播放的流暢度,其根據(jù)應用場景不同可有不同的定義。例如,流暢率一般可以指所關(guān)注的播放總時長T減去期間發(fā)生卡頓(即播放停滯)的總時長Td所得的差與總時長T的比值。
[0003]不同于點播業(yè)務,由于具備極高的實時性和短時效,直播業(yè)務通?!皶抑粫背霈F(xiàn)短時間請求驟增的情況,造成內(nèi)容分發(fā)網(wǎng)絡(CDN)服務器超負載而無法及時響應,使得客戶端(即節(jié)點)播放出現(xiàn)“卡頓”現(xiàn)象,導致流暢率下降。
[0004]目前解決該問題有幾種方案。一種是為CDN服務器擴容,加大帶寬以保證質(zhì)量。然而這種方案將閑置大量的服務器和帶寬資源。例如直播系統(tǒng)中最高在線人數(shù)峰值可為平時最高在線人數(shù)的數(shù)百倍。然而出現(xiàn)峰值的概率較低,使用該方案卻需為直播系統(tǒng)持續(xù)提供滿足峰值的服務器和帶寬。對于帶寬成本占比較高的視頻網(wǎng)站而言,這種方案所帶來的冗余量過大的服務器和帶寬同樣難以承擔。
[0005]另一種方案是使用點對點數(shù)據(jù)傳輸(S卩P2P)算法來減輕CDN服務器負載,節(jié)省帶寬。P2P算法,就是在觀看該直播節(jié)目的節(jié)點中,選擇具有一定上傳能力的節(jié)點LI(數(shù)據(jù)提供方,或稱為上傳方),為其他節(jié)點L2(數(shù)據(jù)接收方,或稱為下載方)傳送數(shù)據(jù),從而使大量節(jié)點L2減少向CDN服務器請求數(shù)據(jù),降低CDN服務器負載及帶寬壓力。換言之,傳統(tǒng)CDN模式中,所有節(jié)點都直接從⑶N服務器獲取直播數(shù)據(jù),而這種方案采用“⑶N+P2P”模式,根據(jù)傳輸算法的不同,節(jié)點L2有一定比例的數(shù)據(jù)來自節(jié)點LI,如圖1所示。
[0006]這種“CDN+P2P”模式具體來說,就是先對直播流的碼率進行判斷,在碼率較低的情況下(例如標清直播流,碼率約400?600bps),采用P2P模式(即節(jié)點L2有一定比例的數(shù)據(jù)來自節(jié)點LI ),對于碼率較高的情況下(例如高清或超清直播流,碼率約1000bps以上),采用全CDN模式,如圖2所示。
[0007]上述方案在碼率相對較低的標清直播下利用P2P算法可節(jié)省約80%的服務器和帶寬成本(即有總量約80%的直播流在終端之間互相傳輸),并有效提高了流暢率。然而,由于P2P算法針對高碼率直播流不僅節(jié)省帶寬成本較少,反而導致流暢率急劇下降,因此在高碼率直播場景中只能放棄使用P2P模式,而采用CDN模式。因此,在高清直播頻次增加或在線人數(shù)急劇增長時,這種方案仍然會選擇幾乎全部從CDN服務器下載數(shù)據(jù),原有直播系統(tǒng)出現(xiàn)較為嚴重的帶寬負荷過高、CDN服務器無法響應等問題,同樣影響用戶正常觀看。

【發(fā)明內(nèi)容】

[0008]技術(shù)問題
[0009]有鑒于此,本發(fā)明要解決的技術(shù)問題是,在直播流的碼率變化的情況下,節(jié)點如何在保證直播流暢率的同時,節(jié)省CDN服務器和帶寬資源。
[0010]解決方案
[0011]—方面,提出了一種節(jié)點下載調(diào)度方法,該方法包括:以節(jié)點所播放的直播流的當前播放頭為基準,設(shè)置滑動窗口,其中,對所述滑動窗口內(nèi)的未下載直播流數(shù)據(jù),優(yōu)先從內(nèi)容分發(fā)網(wǎng)絡CDN服務器下載;對該滑動窗口之后的未下載直播流數(shù)據(jù),優(yōu)先以點對點數(shù)據(jù)傳輸P2P模式從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點下載;設(shè)置篩選標準,以便基于該篩選標準從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點中篩選出優(yōu)選鄰居節(jié)點,并向所述優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù);在直播流的碼率變化的情況下,根據(jù)所述變化調(diào)整該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量的大小、所述滑動窗口的大小、以及所述篩選標準中的一個或多個。
[0012]另一方面,提出了一種節(jié)點下載調(diào)度裝置,該裝置包括:滑動窗口設(shè)置部件,用于以節(jié)點所播放的直播流的當前播放頭為基準,設(shè)置滑動窗口,其中,對所述滑動窗口內(nèi)的未下載直播流數(shù)據(jù),優(yōu)先從內(nèi)容分發(fā)網(wǎng)絡CDN服務器下載;對該滑動窗口之后的未下載直播流數(shù)據(jù),優(yōu)先以點對點數(shù)據(jù)傳輸P2P模式從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點下載;篩選標準設(shè)置部件,用于設(shè)置篩選標準,以便基于該篩選標準從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點中篩選出優(yōu)選鄰居節(jié)點,并向所述優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù);調(diào)整部件,用于在直播流的碼率變化的情況下,根據(jù)所述變化調(diào)整該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量的大小、所述滑動窗口的大小、以及所述篩選標準中的一個或多個。
[0013]有益效果
[0014]本發(fā)明實施例是基于“⑶N+P2P”的混合模式,但與現(xiàn)有技術(shù)不同的是,本實施例并非簡單地根據(jù)碼率在CDN模式和P2P模式之間切換,也不是僅利用P2P模式進行單一的低碼率直播流的傳輸。本實施例節(jié)點通過設(shè)置滑動窗口,對滑動窗口內(nèi)的未下載直播流數(shù)據(jù),優(yōu)先從⑶N服務器下載;對滑動窗口之后的未下載直播流數(shù)據(jù),優(yōu)先以P2P模式從鄰居節(jié)點下載;又通過設(shè)置的篩選標準篩選出優(yōu)選鄰居節(jié)點,以便向優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù)。在直播流的碼率變化的情況下,根據(jù)所述變化調(diào)整該節(jié)點的單次請求從CDN月艮務器下載的直播流數(shù)據(jù)量的大小、調(diào)整滑動窗口的大小、調(diào)整篩選標準。通過上述技術(shù)手段,節(jié)點能夠利用⑶N和P2P這兩種模式傳輸直播流數(shù)據(jù),并在碼率變化的情況下動態(tài)地在⑶N模式和P2P模式之間進行調(diào)整,在保證了直播流暢率的同時,有效地節(jié)省了⑶N服務器和帶寬資源。
[0015]根據(jù)下面參考附圖對示例性實施例的詳細說明,本發(fā)明的其它特征及方面將變得清楚。
【附圖說明】
[0016]包含在說明書中并且構(gòu)成說明書的一部分的附圖與說明書一起示出了本發(fā)明的示例性實施例、特征和方面,并且用于解釋本發(fā)明的原理。
[0017]圖1示出⑶N+P2P模式的示意圖;
[0018]圖2示出現(xiàn)有技術(shù)中直播流傳輸方法的流程圖;
[0019]圖3示出根據(jù)本發(fā)明一實施例的節(jié)點下載調(diào)度方法的流程圖;
[0020]圖4示出根據(jù)本發(fā)明一實施例的滑動窗口的示意圖;
[0021]圖5示出根據(jù)本發(fā)明一實施例的節(jié)點下載調(diào)度裝置的結(jié)構(gòu)框圖;
[0022]圖6示出根據(jù)本發(fā)明一實施例的另一個節(jié)點下載調(diào)度裝置的結(jié)構(gòu)框圖;
[0023]圖7示出了本發(fā)明的一實施例的一種節(jié)點下載調(diào)度設(shè)備的結(jié)構(gòu)框圖。
【具體實施方式】
[0024]以下將參考附圖詳細說明本發(fā)明的各種示例性實施例、特征和方面。附圖中相同的附圖標記表示功能相同或相似的元件。盡管在附圖中示出了實施例的各種方面,但是除非特別指出,不必按比例繪制附圖。
[0025]在這里專用的詞“示例性”意為“用作例子、實施例或說明性”。這里作為“示例性”所說明的任何實施例不必解釋為優(yōu)于或好于其它實施例。
[0026]另外,為了更好的說明本發(fā)明,在下文的【具體實施方式】中給出了眾多的具體細節(jié)。本領(lǐng)域技術(shù)人員應當理解,沒有某些具體細節(jié),本發(fā)明同樣可以實施。在一些實例中,對于本領(lǐng)域技術(shù)人員熟知的方法、手段、元件和電路未作詳細描述,以便于凸顯本發(fā)明的主旨。
[0027]實施例1
[0028]圖3示出根據(jù)本發(fā)明一實施例的節(jié)點下載調(diào)度方法的流程圖。該實施例可在節(jié)點(客戶端,例如個人計算機PC瀏覽器)執(zhí)行。如圖3所示,該方法主要包括:
[0029]步驟301,以節(jié)點所播放的直播流的當前播放頭為基準,設(shè)置滑動窗口,其中,對所述滑動窗口內(nèi)的未下載直播流數(shù)據(jù),優(yōu)先從內(nèi)容分發(fā)網(wǎng)絡CDN服務器下載;對該滑動窗口之后的未下載直播流數(shù)據(jù),優(yōu)先以點對點數(shù)據(jù)傳輸P2P模式從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點下載;
[0030]步驟302,設(shè)置篩選標準,以便基于該篩選標準從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點中篩選出優(yōu)選鄰居節(jié)點,并向所述優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù);
[0031]步驟303,在直播流的碼率變化的情況下,根據(jù)所述變化調(diào)整該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量的大小、所述滑動窗口的大小、以及所述篩選標準中的一個或多個。
[0032]本發(fā)明實施例是基于“⑶N+P2P”的混合模式,但與現(xiàn)有技術(shù)不同的是,本實施例并非簡單地根據(jù)碼率在CDN模式和P2P模式之間切換,也不是僅利用P2P模式進行單一的低碼率直播流的傳輸。本實施例節(jié)點通過設(shè)置滑動窗口,對滑動窗口內(nèi)的未下載直播流數(shù)據(jù),優(yōu)先從⑶N服務器下載;對滑動窗口之后的未下載直播流數(shù)據(jù),優(yōu)先以P2P模式從鄰居節(jié)點下載;又通過設(shè)置的篩選標準篩選出優(yōu)選鄰居節(jié)點,以便向優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù)。在直播流的碼率變化的情況下,根據(jù)所述變化調(diào)整該節(jié)點的單次請求從CDN月艮務器下載的直播流數(shù)據(jù)量的大小、調(diào)整滑動窗口的大小、調(diào)整篩選標準。通過上述技術(shù)手段,節(jié)點能夠利用⑶N和P2P這兩種模式傳輸直播流數(shù)據(jù),并在碼率變化的情況下動態(tài)地在⑶N模式和P2P模式之間進行調(diào)整,在保證了直播流暢率的同時,有效地節(jié)省了⑶N服務器和帶寬資源。
[0033]設(shè)置滑動窗口
[0034]圖4示出了根據(jù)本發(fā)明一實施例的滑動窗口的示意圖。
[0035]在一個示例中,如圖4所示,可以節(jié)點所播放的直播流的當前位置為播放頭41,以播放頭41為基準,可設(shè)置滑動窗口 42,其中,播放頭41可隨直播流的播放進度而移動,滑動窗口 42可隨播放頭41滑動?;瑒哟翱?42的窗口長度可以為數(shù)據(jù)量(例如20M),也可以為時間量(例如120s),滑動窗口 42中可包含已下載的直播流數(shù)據(jù)43和未下載的直播流數(shù)據(jù)44,對滑動窗口 42內(nèi)的未下載的直播流數(shù)據(jù)44可優(yōu)選從CDN服務器下載?;瑒哟翱?42之后的數(shù)據(jù)可包含已下載的直播流數(shù)據(jù)45和未下載的直播流數(shù)據(jù)46,對滑動窗口 42之后的未下載的直播流數(shù)據(jù)46可優(yōu)先以P2P模式從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點下載。本文所說的“鄰居節(jié)點”,是指對于一個節(jié)點來說,可以與其建立數(shù)據(jù)通信的那些節(jié)點。
[0036]設(shè)置篩選標準
[0037]在一個示例中,節(jié)點可設(shè)置篩選標準,以便基于該篩選標準從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點中篩選出優(yōu)選鄰居節(jié)點,并向所述優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù);其中,所述篩選標準可以由鄰居節(jié)點的播放頭位置、已緩存數(shù)據(jù)長度、響應時間和所述節(jié)點與鄰居節(jié)點之間的傳輸性能指標中的一個或多個來確定。
[0038]以下對確定篩選標準的各個篩選影響因子進行說明:
[0039]I)鄰居節(jié)點的播放頭位置
[0040]例如,如果鄰居節(jié)點的播放頭位置在該節(jié)點的播放頭之后,則該鄰居節(jié)點中已經(jīng)緩存了一部分該節(jié)點所需的直播流數(shù)據(jù),因此可以以“播放頭位置在該節(jié)點的播放頭之后”為篩選標準,從鄰居節(jié)點中篩選出優(yōu)選鄰居節(jié)點;
[0041]2)鄰居節(jié)點的已緩存數(shù)據(jù)長度
[0042]如果鄰居節(jié)點已緩存數(shù)據(jù)長度越大,則該鄰居節(jié)點能提供的直播流數(shù)據(jù)越多,因此可以以“已緩存數(shù)據(jù)長度超過預定閾值”為篩選標準,從鄰居節(jié)點中篩選出優(yōu)選鄰居節(jié)占.V ,
[0043]3)鄰居節(jié)點的響應時間
[0044]不同鄰居節(jié)點由于所處的網(wǎng)絡狀況不同(例如路由跳數(shù)或網(wǎng)絡帶寬不同),對該節(jié)點發(fā)出的請求的響應時間也不相同,響應時間越短,則鄰居節(jié)點響應該節(jié)點發(fā)出的請求的能力越強,因此可以以“響應時間低于預定閾值”為篩選標準,從鄰居節(jié)點中篩選出優(yōu)選鄰居節(jié)點;
[0045]4)節(jié)點與鄰居節(jié)點之間的傳輸性能指標
[0046]該指標反應了節(jié)點與鄰居節(jié)點之間的傳輸性能。傳輸性能指標例如包括丟包率,如果丟包率越高,則節(jié)點從鄰居節(jié)點下載的有效直播流數(shù)據(jù)越少。因此,可以以“傳輸性能指標超過/低于預定閾值”為篩選標準,從鄰居節(jié)點中篩選出優(yōu)選鄰居節(jié)點。
[0047]節(jié)點可根據(jù)直播流播放的實際情況,采用上述篩選影響因子中的一個或多個來確定篩選標準,例如可以選擇鄰居節(jié)點的播放頭位置、已緩存數(shù)據(jù)長度和響應時間作為該節(jié)點的篩選標準。在采用多個篩選影響因子來確定篩選標準時,各個篩選影響因子可根據(jù)需要具有不同的權(quán)重。
[0048]調(diào)整下載調(diào)度
[0049]在一個示例中,節(jié)點可以通過多種方式獲知直播流的碼率變化情況,例如,如果節(jié)點在播放直播流時出現(xiàn)卡頓情況,節(jié)點可依此判斷當前直播流的碼率提高了,又例如,節(jié)點可以接收來自P2P服務器的通知,該通知可包含當前直播流的碼率變化情況。本發(fā)明對節(jié)點獲知直播流的碼率變化情況的方式不作限制。
[0050]以下以碼率從低變高和碼率從高變低兩種情況,分別舉例說明各種示例性的調(diào)整方式。
[0051 ] 1.碼率從低變高
[0052]在一個示例中,在碼率從低變高的情況下,可進行以下操作中的一個或多個:增大該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量、增大所述滑動窗口、以及提高所述的篩選標準。
[0053]舉例而言,在直播流的碼率從低變高的情況下,節(jié)點的直播流數(shù)據(jù)下載負荷會增加,由于單位時間內(nèi)傳輸?shù)臄?shù)據(jù)塊大,節(jié)點與鄰居節(jié)點之間在P2P模式下存在較為嚴重的消息阻塞。此時節(jié)點調(diào)整的主要目標是保證直播流暢率。為了保證直播流暢率,節(jié)點可增大該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量,例如,將單次請求從CDN服務器下載的直播流數(shù)據(jù)量從30M提高到40M,在減少請求次數(shù)的同時,盡快從CDN服務器獲取距離播放頭較近的直播流數(shù)據(jù)量;也可以增大所述滑動窗口,例如將滑動窗口的窗口長度從120s增大至IJ240S,以保證更多地從⑶N服務器獲取距離播放頭較近的直播流數(shù)據(jù)量;也可以提高篩選標準,例如以更高的篩選標準從鄰居節(jié)點之中挑選出播放頭位置在后的、已緩存數(shù)據(jù)長度大的、響應時間快、傳輸性能指標高(例如丟包率低)的優(yōu)選鄰居節(jié)點,并主動向優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù);可以通過提高各篩選影響因子的標準來提高篩選標準,并且,也可以通過增加傳輸性能指標(例如除了丟包率之外,再引入誤碼率等新的傳輸性能指標)來提高篩選標準。
[0054]在一個示例中,在直播流的碼率變化的情況下,節(jié)點可以獲取節(jié)點的當前狀態(tài),在一個示例中,節(jié)點的當前狀態(tài)可包括P2P上傳、P2P下載和卡頓其中之一。其中P2P上傳狀態(tài)表示該節(jié)點作為P2P傳輸中的數(shù)據(jù)提供方(例如圖1中的節(jié)點LI),P2P下載表示該節(jié)點作為P2P傳輸中的數(shù)據(jù)接收方(例如圖1中的節(jié)點L2),卡頓表示該節(jié)點當前播放發(fā)生卡頓。在一個示例中,節(jié)點的當前狀態(tài)可以是節(jié)點根據(jù)其當前傳輸方式(例如上傳或下載)、下載數(shù)據(jù)源(例如節(jié)點LI或CDN服務器)、網(wǎng)絡狀況(例如流暢或阻塞)、與其他節(jié)點的連接狀況(例如連接多少鄰居節(jié)點及各鄰居節(jié)點是否活動)及播放狀況(例如是否卡頓)中的一個或多個來確定的。
[0055]在一個示例中,在碼率從低變高的情況下,可以通過以下方式,針對不同的節(jié)點狀態(tài)進行下載調(diào)度調(diào)整:
[0056]I)如果節(jié)點的當前狀態(tài)為P2P上傳,則可降低該節(jié)點向鄰居節(jié)點以P2P模式發(fā)送直播流數(shù)據(jù)的頻率(也稱為上傳頻率)。在直播流的碼率從低變高的情況下,由于節(jié)點與鄰居節(jié)點之間在P2P模式下存在較為嚴重的消息阻塞,此時,為了減少消息阻塞可降低上傳頻率,以保證有效的P2P模式下的直播流數(shù)據(jù)傳輸。
[0057]2)如果節(jié)點的當前狀態(tài)為P2P下載,則可提高該節(jié)點從⑶N服務器下載的直播流數(shù)據(jù)相對于該節(jié)點從鄰居節(jié)點以P2P模式下載的直播流數(shù)據(jù)的比例,更多的從CDN服務器下載直播流數(shù)據(jù),和/或主動向指定的鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù)。其中,所述的指定的鄰居節(jié)點可以是提高篩選標準后從鄰居節(jié)點中篩選出的優(yōu)選鄰居節(jié)點,也可以是P2P服務器指定的鄰居節(jié)點(所接收到的P2P服務器通知中指定的鄰居節(jié)點),或者兩者都有。
[0058]2.碼率從高變低
[0059]在一個示例中,在碼率從高變低的情況下,可進行以下操作中的一個或多個:減小該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量、減小所述滑動窗口、以及降低所述的篩選標準。
[0060]舉例而言,在直播流的碼率從高變低的情況下,節(jié)點的直播流數(shù)據(jù)下載負荷會減輕,此時節(jié)點調(diào)整的主要目標是更多地節(jié)省CDN服務器帶寬,恢復節(jié)點之間普通的P2P模式下的數(shù)據(jù)傳輸。為此,節(jié)點可以將單次請求從CDN服務器下載的直播流數(shù)據(jù)量例如從40M減少到30M;也可以將滑動窗口的窗口長度例如從240s減小到120s;也可以降低篩選標準以篩選出更多的優(yōu)選鄰居節(jié)點,并向更多的優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù)。
[0061]在一個示例中,在碼率從高變低的情況下,可以通過以下方式,針對不同的節(jié)點狀態(tài)進行下載調(diào)度調(diào)整:
[0062]I)如果節(jié)點的當前狀態(tài)為P2P上傳,則可提高該節(jié)點向鄰居節(jié)點以P2P模式發(fā)送直播流數(shù)據(jù)的頻率(也稱為上傳頻率);在直播流的碼率從高變低的情況下,由于節(jié)點與鄰居節(jié)點之間在P2P模式下的消息阻塞已經(jīng)減輕,此時,節(jié)點可提高上傳頻率,向鄰居節(jié)點以P2P模式發(fā)送更多的直播流數(shù)據(jù)。
[0063]2)如果節(jié)點的當前狀態(tài)為P2P下載,則可降低該節(jié)點從CDN服務器下載的直播流數(shù)據(jù)相對于該節(jié)點從所述鄰居節(jié)點以P2P模式下載直播流數(shù)據(jù)的比例,更多地節(jié)省CDN服務器帶寬資源,和/或向所述鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù);該請求可大范圍針對各類鄰居節(jié)點進行,例如優(yōu)選鄰居節(jié)點以及能夠提供直播流數(shù)據(jù)的其他鄰居節(jié)點。
[0064]3)如果節(jié)點的當前狀態(tài)為卡頓,則可嘗試從鄰居節(jié)點提前以P2P模式下載滑動窗口之后的部分未下載的直播流數(shù)據(jù)。例如,此前,在直播流的碼率較高時,針對在滑動窗口之后離直播頭較近的直播流數(shù)據(jù),節(jié)點已經(jīng)向鄰居節(jié)點發(fā)出了下載請求,在直播流的碼率從高變低的情況下,由于節(jié)點與鄰居節(jié)點之間的消息阻塞已經(jīng)減輕,原先請求的數(shù)據(jù)會逐漸傳輸至該節(jié)點。因此,為了避免下載冗余的直播流數(shù)據(jù),節(jié)點可嘗試提前下載滑動窗口之后離播放頭較遠的部分直播流數(shù)據(jù)。
[0065]調(diào)整數(shù)據(jù)塊閾值
[0066]在一個示例中,在直播流的碼率變化的情況下,還可根據(jù)所述變化調(diào)整所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值。
[0067]舉例而言,應用層的直播流數(shù)據(jù)需要通過傳輸層的UDP(用戶數(shù)據(jù)報協(xié)議)數(shù)據(jù)包進行節(jié)點之間(源節(jié)點與目標節(jié)點之間)的數(shù)據(jù)傳輸,在應用層數(shù)據(jù)塊大于UDP數(shù)據(jù)包中的數(shù)據(jù)長度(例如548字節(jié))的情況下,源節(jié)點需要在傳輸層將應用層的數(shù)據(jù)塊進行拆分,放入到不同的UPD數(shù)據(jù)包中以發(fā)送至目標節(jié)點,目標節(jié)點接收到所有UDP數(shù)據(jù)包后對UDP中的數(shù)據(jù)重新組合,生成應用層數(shù)據(jù)塊,如果發(fā)生UDP數(shù)據(jù)包丟失,則目標節(jié)點無法生成應用層數(shù)據(jù)塊。因此,節(jié)點可設(shè)置與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值,可調(diào)整該閾值,使單次能夠傳輸?shù)臄?shù)據(jù)塊大小與所述的UDP數(shù)據(jù)包中的數(shù)據(jù)長度相匹配,以減少在傳輸層進行數(shù)據(jù)包拆分。
[0068]在一個示例中,在碼率從低變高的情況下,可減小所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值。
[0069]舉例而言,在碼率從低變高的情況下,節(jié)點之間會存在消息阻塞,傳輸丟包率將提高,因此,可以減小該節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值,例如將閾值從1024字節(jié)減小到512字節(jié),通常互聯(lián)網(wǎng)傳輸層的UDP的數(shù)據(jù)長度為548字節(jié),這樣避免了應用層的單次能夠傳輸?shù)臄?shù)據(jù)塊在傳輸層被拆分,以利于節(jié)點之間在P2P模式下進行高效數(shù)據(jù)傳輸。
[0070]在一個示例中,在碼率從高變低的情況下,增大所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值。
[0071]舉例而言,在直播流的碼率從高變低的情況下,節(jié)點之間的消息阻塞已經(jīng)緩解,傳輸丟包率將降低,因此,節(jié)點可增大所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值,例如將閾值從512字節(jié)增大到1024字節(jié),以利于節(jié)點之間在P2P模式下進行高效數(shù)據(jù)傳輸。
[0072]防止誤刪鄰居節(jié)點
[0073]在一個示例中,在直播流的碼率從低變高的情況下,節(jié)點可增大刪除鄰居節(jié)點所基于的鄰居節(jié)點的響應時間上限,以防止誤刪鄰居節(jié)點。舉例而言,在直播流的碼率從低變高的情況下,由于節(jié)點與鄰居節(jié)點之間在P2P模式下存在較為嚴重的消息阻塞,節(jié)點發(fā)送的請求后,鄰居節(jié)點的響應變慢,響應時間變長。為了防止錯誤刪除這部分鄰居節(jié)點,可增大刪除鄰居節(jié)點所基于的鄰居節(jié)點的響應時間上限,例如從原來的3s增大到5s,這樣,相當于考慮到碼率變化可能引起的阻塞,增大了等待鄰居節(jié)點響應的時間,防止誤刪鄰居節(jié)點。
[0074]相應地,在直播流的碼率從高變低的情況下,節(jié)點可減小刪除鄰居節(jié)點所基于的鄰居節(jié)點的響應時間上限,例如恢復到正常上限。
[0075]實施例2
[0076]圖5示出根據(jù)本發(fā)明一實施例的節(jié)點下載調(diào)度裝置500的結(jié)構(gòu)框圖。該裝置可內(nèi)置于節(jié)點中。如圖5所示,該裝置主要包括:
[0077]滑動窗口設(shè)置部件501,用于以節(jié)點所播放的直播流的當前播放頭為基準,設(shè)置滑動窗口,其中,對所述滑動窗口內(nèi)的未下載直播流數(shù)據(jù),優(yōu)先從內(nèi)容分發(fā)網(wǎng)絡CDN服務器下載;對該滑動窗口之后的未下載直播流數(shù)據(jù),優(yōu)先以點對點數(shù)據(jù)傳輸P2P模式從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點下載;
[0078]篩選標準設(shè)置部件502,用于設(shè)置篩選標準,以便基于該篩選標準從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點中篩選出優(yōu)選鄰居節(jié)點,并向所述優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù);
[0079]調(diào)整部件503,用于在直播流的碼率變化的情況下,根據(jù)所述變化調(diào)整該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量的大小、所述滑動窗口的大小、以及所述篩選標準中的一個或多個。
[0080]本發(fā)明實施例是基于“⑶N+P2P”的混合模式,但與現(xiàn)有技術(shù)不同的是,本實施例并非簡單地根據(jù)碼率在CDN模式和P2P模式之間切換,也不是僅利用P2P模式進行單一的低碼率直播流的傳輸。本實施例的裝置通過滑動窗口設(shè)置部件501設(shè)置滑動窗口,對滑動窗口內(nèi)的未下載直播流數(shù)據(jù),優(yōu)先從CDN服務器下載;對滑動窗口之后的未下載直播流數(shù)據(jù),優(yōu)先以P2P模式從鄰居節(jié)點下載;又通過篩選標準設(shè)置部件502設(shè)置的篩選標準篩選出優(yōu)選鄰居節(jié)點,以便向優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù)。在直播流的碼率變化的情況下,調(diào)整部件503根據(jù)所述變化調(diào)整該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量的大小、調(diào)整滑動窗口的大小、調(diào)整篩選標準。通過上述技術(shù)手段,節(jié)點能夠利用CDN和P2P這兩種模式傳輸直播流數(shù)據(jù),并在碼率變化的情況下動態(tài)地在CDN模式和P2P模式之間進行調(diào)整,在保證了直播流暢率的同時,有效地節(jié)省了 CDN服務器和帶寬資源。
[0081]在一個示例中,如圖4所示,滑動窗口設(shè)置部件501可以以所播放的直播流的當前位置為播放頭41,以播放頭41為基準,可設(shè)置滑動窗口42,其中,播放頭41可隨直播流的播放進度而移動,滑動窗口 42可隨播放頭41滑動?;瑒哟翱?42的窗口長度可以為數(shù)據(jù)量(例如20M),也可以為時間量(例如120s),滑動窗口 42中可包含已下載的直播流數(shù)據(jù)43和未下載的直播流數(shù)據(jù)44,對滑動窗口 42內(nèi)的未下載的直播流數(shù)據(jù)44可優(yōu)選從CDN服務器下載?;瑒哟翱?42之后的數(shù)據(jù)可包含已下載的直播流數(shù)據(jù)45和未下載的直播流數(shù)據(jù)46,對滑動窗口 42之后的未下載的直播流數(shù)據(jù)46可優(yōu)先以P2P模式從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點下載。
[0082]在一個示例中,篩選標準設(shè)置部件502可設(shè)置篩選標準,以便基于該篩選標準從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點中篩選出優(yōu)選鄰居節(jié)點,并向所述優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù);其中,所述篩選標準可以由鄰居節(jié)點的播放頭位置、已緩存數(shù)據(jù)長度、響應時間和所述節(jié)點與鄰居節(jié)點之間的傳輸性能指標中的一個或多個來確定。
[0083]對于確定篩選標準的各個篩選影響因子的說明,可參見實施例1的描述,這里不再重述。
[0084]在一個示例中,節(jié)點可以通過多種方式獲知直播流的碼率變化情況,具體可參見實施例1的描述,這里不再重述。
[0085]在一個示例中,在碼率從低變高的情況下,調(diào)整部件503可進行以下操作中的一個或多個:增大該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量、增大所述滑動窗口、以及提高所述的篩選標準。
[0086]舉例而言,在直播流的碼率從低變高的情況下,節(jié)點的直播流數(shù)據(jù)下載負荷會增加,由于單位時間內(nèi)傳輸?shù)臄?shù)據(jù)塊大,節(jié)點與鄰居節(jié)點之間在P2P模式下存在較為嚴重的消息阻塞。此時節(jié)點調(diào)整的主要目標是保證直播流暢率。為了保證直播流暢率,調(diào)整部件503可增大該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量,例如,將單次請求從CDN服務器下載的直播流數(shù)據(jù)量從30M提高到40M,在減少請求次數(shù)的同時,盡快從CDN服務器獲取距離播放頭較近的直播流數(shù)據(jù)量;也可以增大所述滑動窗口,例如將滑動窗口的窗口長度從120s增大到240s,以保證更多地從⑶N服務器獲取距離播放頭較近的直播流數(shù)據(jù)量;也可以提高篩選標準,例如以更高的篩選標準從鄰居節(jié)點之中挑選出播放頭位置在后的、已緩存數(shù)據(jù)長度大的、響應時間快、傳輸性能指標高(例如丟包率低)的優(yōu)選鄰居節(jié)點,并主動向優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù);可以通過提高各篩選影響因子的標準來提高篩選標準,并且,也可以通過增加傳輸性能指標(例如除了丟包率之外,再引入誤碼率等新的傳輸性能指標)來提尚篩選標準。
[0087]在一個示例中,在碼率從高變低的情況下,調(diào)整部件503可進行以下操作中的一個或多個:減小該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量、減小所述滑動窗口、以及降低所述的篩選標準。
[0088]舉例而言,在直播流的碼率從高變低的情況下,節(jié)點的直播流數(shù)據(jù)下載負荷會減輕,此時節(jié)點調(diào)整的主要目標是更多地節(jié)省CDN服務器帶寬,恢復節(jié)點之間普通的P2P模式下的數(shù)據(jù)傳輸。為此,調(diào)整部件503可以將單次請求從CDN服務器下載的直播流數(shù)據(jù)量例如從40M減少到30M;也可以將滑動窗口的窗口長度例如從240s減小到120s;也可以降低篩選標準以篩選出更多的優(yōu)選鄰居節(jié)點,并向更多的優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù)。
[0089]在一個示例中,在直播流的碼率變化的情況下,節(jié)點可以獲取節(jié)點的當前狀態(tài),在一個示例中,節(jié)點的當前狀態(tài)可包括P2P上傳、P2P下載和卡頓其中之一。關(guān)于節(jié)點的狀態(tài)的描述可參見實施例1,此處不再重述。
[0090]圖6示出根據(jù)本發(fā)明一實施例的另一個節(jié)點下載調(diào)度裝置的結(jié)構(gòu)框圖。
[0091 ] 在一個示例中,如圖6所示,節(jié)點下載調(diào)度裝置500還可包括第一調(diào)整部件504,在碼率從低變高的情況下,節(jié)點下載調(diào)度裝置500可以通過第一調(diào)整部件504,針對不同的節(jié)點狀態(tài)進行下載調(diào)度調(diào)整:
[0092]I)如果節(jié)點的當前狀態(tài)為P2P上傳,則可降低該節(jié)點向鄰居節(jié)點以P2P模式發(fā)送直播流數(shù)據(jù)的頻率(也稱為上傳頻率)。在直播流的碼率從低變高的情況下,由于節(jié)點與鄰居節(jié)點之間在P2P模式下存在較為嚴重的消息阻塞,此時,為了減少消息阻塞可降低上傳頻率,以保證有效的P2P模式下的直播流數(shù)據(jù)傳輸。
[0093]2)如果節(jié)點的當前狀態(tài)為P2P下載,則可提高該節(jié)點從⑶N服務器下載的直播流數(shù)據(jù)相對于該節(jié)點從鄰居節(jié)點以P2P模式下載的直播流數(shù)據(jù)的比例,更多的從CDN服務器下載直播流數(shù)據(jù),和/或主動向指定的鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù)。其中,所述的指定的鄰居節(jié)點可以是提高篩選標準后從鄰居節(jié)點中篩選出的優(yōu)選鄰居節(jié)點,也可以是P2P服務器指定的鄰居節(jié)點(所接收到的P2P服務器通知中指定的鄰居節(jié)點),或者兩者都有。
[0094]在一個示例中,如圖6所示,節(jié)點下載調(diào)度裝置500還可包括第二調(diào)整部件505,在碼率從高變低的情況下,節(jié)點下載調(diào)度裝置500可以通過第二調(diào)整部件505,針對不同的節(jié)點狀態(tài)進行下載調(diào)度調(diào)整:
[0095]I)如果節(jié)點的當前狀態(tài)為P2P上傳,則可提高該節(jié)點向鄰居節(jié)點以P2P模式發(fā)送直播流數(shù)據(jù)的頻率(也稱為上傳頻率);在直播流的碼率從高變低的情況下,由于節(jié)點與鄰居節(jié)點之間在P2P模式下的消息阻塞已經(jīng)減輕,此時,節(jié)點可提高上傳頻率,向鄰居節(jié)點以P2P模式發(fā)送更多的直播流數(shù)據(jù)。
[0096]2)如果節(jié)點的當前狀態(tài)為P2P下載,則可降低該節(jié)點從CDN服務器下載的直播流數(shù)據(jù)相對于該節(jié)點從所述鄰居節(jié)點以P2P模式下載直播流數(shù)據(jù)的比例,更多地節(jié)省CDN服務器帶寬資源,和/或向所述鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù);該請求可大范圍針對各類鄰居節(jié)點進行,例如優(yōu)選鄰居節(jié)點以及能夠提供直播流數(shù)據(jù)的其他鄰居節(jié)點。
[0097]3)如果節(jié)點的當前狀態(tài)為卡頓,則可嘗試從鄰居節(jié)點提前以P2P模式下載滑動窗口之后的部分未下載的直播流數(shù)據(jù)。例如,此前,在直播流的碼率較高時,針對在滑動窗口之后離直播頭較近的直播流數(shù)據(jù),節(jié)點已經(jīng)向鄰居節(jié)點發(fā)出了下載請求,在直播流的碼率從高變低的情況下,由于節(jié)點與鄰居節(jié)點之間的消息阻塞已經(jīng)減輕,原先請求的數(shù)據(jù)會逐漸傳輸至該節(jié)點。因此,為了避免下載冗余的直播流數(shù)據(jù),節(jié)點可嘗試提前下載滑動窗口之后離播放頭較遠的部分直播流數(shù)據(jù)。
[0098]在一個示例中,如圖6所示,節(jié)點下載調(diào)度裝置500還可包括閾值調(diào)整部件506,在直播流的碼率變化的情況下,節(jié)點下載調(diào)度裝置500還可通過閾值調(diào)整部件506根據(jù)所述變化調(diào)整所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值。
[0099]對于應用層的直播流數(shù)據(jù)需要通過傳輸層的UDP(用戶數(shù)據(jù)報協(xié)議)數(shù)據(jù)包進行節(jié)點之間(源節(jié)點與目標節(jié)點之間)的數(shù)據(jù)傳輸?shù)拿枋隹蓞⒁妼嵤├?,這里為了簡明,不再重述。閾值調(diào)整部件506可設(shè)置與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值,可調(diào)整該閾值,使單次能夠傳輸?shù)臄?shù)據(jù)塊大小與所述的UDP數(shù)據(jù)包中的數(shù)據(jù)長度相匹配,以減少在傳輸層進行數(shù)據(jù)包拆分。
[0100]在一個示例中,在碼率從低變高的情況下,閾值調(diào)整部件506可減小所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值。
[0101]舉例而言,在碼率從低變高的情況下,節(jié)點之間會存在消息阻塞,傳輸丟包率將提高,因此,閾值調(diào)整部件506可以減小該節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值,例如將閾值從1024字節(jié)減小到512字節(jié),通?;ヂ?lián)網(wǎng)傳輸層的UDP的數(shù)據(jù)長度為548字節(jié),這樣避免了應用層的單次能夠傳輸?shù)臄?shù)據(jù)塊在傳輸層被拆分,以利于節(jié)點之間在P2P模式下進行高效數(shù)據(jù)傳輸。
[0102]在一個示例中,在碼率從高變低的情況下,閾值調(diào)整部件506增大所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值。
[0103]舉例而言,在直播流的碼率從高變低的情況下,節(jié)點之間的消息阻塞已經(jīng)緩解,傳輸丟包率將降低,因此,閾值調(diào)整部件506可增大所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值,例如將閾值從512字節(jié)增大到1024字節(jié),以利于節(jié)點之間在P2P模式下進行高效數(shù)據(jù)傳輸。
[0104]在一個示例中,如圖6所示,節(jié)點下載調(diào)度裝置500還可包括響應時間調(diào)整部件507,在直播流的碼率從低變高的情況下,節(jié)點下載調(diào)度裝置500可通過響應時間調(diào)整部件507增大刪除鄰居節(jié)點所基于的鄰居節(jié)點的響應時間上限,以防止誤刪鄰居節(jié)點。舉例而言,在直播流的碼率從低變高的情況下,由于節(jié)點與鄰居節(jié)點之間在P2P模式下存在較為嚴重的消息阻塞,節(jié)點發(fā)送的請求后,鄰居節(jié)點的響應變慢,響應時間變長。為了防止錯誤刪除這部分鄰居節(jié)點,響應時間調(diào)整部件507可增大刪除鄰居節(jié)點所基于的鄰居節(jié)點的響應時間上限,例如從原來的3s增大到5s,這樣,相當于考慮到碼率變化可能引起的阻塞,增大了等待鄰居節(jié)點響應的時間,防止誤刪鄰居節(jié)點。
[0105]相應地,在直播流的碼率從高變低的情況下,響應時間調(diào)整部件507可減小刪除鄰居節(jié)點所基于的鄰居節(jié)點的響應時間上限,例如恢復到正常上限。
[0106]實施例3
[0107]圖7示出了本發(fā)明的一實施例的一種節(jié)點下載調(diào)度設(shè)備的結(jié)構(gòu)框圖。所述節(jié)點下載調(diào)度設(shè)備1100可以是具備計算能力的主機服務器、個人計算機PC、或者可攜帶的便攜式計算機或終端等。本發(fā)明具體實施例并不對計算節(jié)點的具體實現(xiàn)做限定。
[0?08] 所述節(jié)點下載調(diào)度設(shè)備1100包括處理器(processor)lllO、通信接口(Communicat1ns Interface) 1120、存儲器(memory) 1130和總線1140。其中,處理器1110、通信接口 1120、以及存儲器1130通過總線1140完成相互間的通信。
[0109]通信接口 1120用于與網(wǎng)絡設(shè)備通信,其中網(wǎng)絡設(shè)備包括例如虛擬機管理中心、共享存儲等。
[0110]處理器1110用于執(zhí)行程序。處理器1110可能是一個中央處理器CPU,或者是專用集成電路ASIC(Applicat1n Specific Integrated Circuit),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。
[0111]存儲器1130用于存放文件。存儲器1130可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。存儲器1130也可以是存儲器陣列。存儲器1130還可能被分塊,并且所述塊可按一定的規(guī)則組合成虛擬卷。
[0112]在一種可能的實施方式中,上述程序可為包括計算機操作指令的程序代碼。該程序具體可用于執(zhí)行實施例1中的各步驟。
[0113]本領(lǐng)域普通技術(shù)人員可以意識到,本文所描述的實施例中的各示例性單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件形式來實現(xiàn),取決于技術(shù)方案的特定應用和設(shè)計約束條件。專業(yè)技術(shù)人員可以針對特定的應用選擇不同的方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。
[0114]如果以計算機軟件的形式來實現(xiàn)所述功能并作為獨立的產(chǎn)品銷售或使用時,則在一定程度上可認為本發(fā)明的技術(shù)方案的全部或部分(例如對現(xiàn)有技術(shù)做出貢獻的部分)是以計算機軟件產(chǎn)品的形式體現(xiàn)的。該計算機軟件產(chǎn)品通常存儲在計算機可讀取的非易失性存儲介質(zhì)中,包括若干指令用以使得計算機設(shè)備(可以是個人計算機、服務器、或者網(wǎng)絡設(shè)備等)執(zhí)行本發(fā)明各實施例方法的全部或部分步驟。而前述的存儲介質(zhì)包括U盤、移動硬盤、只讀存儲器(R0M,Read_0nly Memory)、隨機存取存儲器(RAM ,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0115]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應以所述權(quán)利要求的保護范圍為準。
【主權(quán)項】
1.一種節(jié)點下載調(diào)度方法,該方法包括: 以節(jié)點所播放的直播流的當前播放頭為基準,設(shè)置滑動窗口,其中,對所述滑動窗口內(nèi)的未下載直播流數(shù)據(jù),優(yōu)先從內(nèi)容分發(fā)網(wǎng)絡CDN服務器下載;對該滑動窗口之后的未下載直播流數(shù)據(jù),優(yōu)先以點對點數(shù)據(jù)傳輸P2P模式從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點下載; 設(shè)置篩選標準,以便基于該篩選標準從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點中篩選出優(yōu)選鄰居節(jié)點,并向所述優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù); 在直播流的碼率變化的情況下,根據(jù)所述變化調(diào)整該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量的大小、所述滑動窗口的大小、以及所述篩選標準中的一個或多個。2.根據(jù)權(quán)利要求1所述的節(jié)點下載調(diào)度方法,所述方法還包括: 在直播流的碼率變化的情況下,根據(jù)所述變化調(diào)整所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值。3.根據(jù)權(quán)利要求1所述的節(jié)點下載調(diào)度方法,其中,所述篩選標準由鄰居節(jié)點的播放頭位置、已緩存數(shù)據(jù)長度、響應時間和所述節(jié)點與鄰居節(jié)點之間的傳輸性能指標中的一個或多個來確定。4.根據(jù)權(quán)利要求1所述的節(jié)點下載調(diào)度方法,其中,根據(jù)所述變化調(diào)整該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量的大小、所述滑動窗口的大小、以及所述的篩選標準中的一個或多個,包括: 在碼率從低變高的情況下,進行以下操作中的一個或多個:增大該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量、增大所述滑動窗口、以及提高所述的篩選標準。5.根據(jù)權(quán)利要求4所述的節(jié)點下載調(diào)度方法,還包括: 在碼率從低變高的情況下: 如果節(jié)點的當前狀態(tài)為P2P上傳,則降低該節(jié)點向鄰居節(jié)點以P2P模式發(fā)送直播流數(shù)據(jù)的頻率; 如果節(jié)點的當前狀態(tài)為P2P下載,則提高該節(jié)點從CDN服務器下載的直播流數(shù)據(jù)相對于該節(jié)點從鄰居節(jié)點以P2P模式下載的直播流數(shù)據(jù)的比例,和/或主動向指定的鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù)。6.根據(jù)權(quán)利要求5所述的節(jié)點下載調(diào)度方法,其中,所述指定的鄰居節(jié)點包括所述優(yōu)選鄰居節(jié)點和/或P2P服務器指定的鄰居節(jié)點。7.根據(jù)權(quán)利要求2所述的節(jié)點下載調(diào)度方法,其中,根據(jù)所述變化調(diào)整所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值,包括: 在碼率從低變高的情況下,減小所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值。8.根據(jù)權(quán)利要求1所述的節(jié)點下載調(diào)度方法,還包括: 在碼率從低變高的情況下,增大刪除鄰居節(jié)點所基于的鄰居節(jié)點的響應時間上限。9.根據(jù)權(quán)利要求1所述的節(jié)點下載調(diào)度方法,其中,根據(jù)所述變化調(diào)整該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量的大小、所述滑動窗口的大小、以及所述的篩選標準中的一個或多個,包括: 在碼率從高變低的情況下,進行以下操作中的一個或多個:減小該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量、減小所述滑動窗口、以及降低所述的篩選標準。10.根據(jù)權(quán)利要求9所述的節(jié)點下載調(diào)度方法,還包括: 在碼率從高變低的情況下: 如果節(jié)點的當前狀態(tài)為P2P上傳,則提高該節(jié)點向鄰居節(jié)點以P2P模式發(fā)送直播流數(shù)據(jù)的頻率; 如果節(jié)點的當前狀態(tài)為P2P下載,則降低該節(jié)點從CDN服務器下載的直播流數(shù)據(jù)相對于該節(jié)點從所述鄰居節(jié)點以P2P模式下載的直播流數(shù)據(jù)的比例,和/或向鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù); 如果節(jié)點的當前狀態(tài)為卡頓,則嘗試從鄰居節(jié)點提前以P2P模式下載所述滑動窗口之后的部分未下載的直播流數(shù)據(jù)。11.根據(jù)權(quán)利要求2所述的節(jié)點下載調(diào)度方法,其中,根據(jù)所述變化調(diào)整所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值,包括: 在碼率從高變低的情況下,增大所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值。12.根據(jù)權(quán)利要求1所述的節(jié)點下載調(diào)度方法,還包括: 在碼率從高變低的情況下,減小刪除鄰居節(jié)點所基于的鄰居節(jié)點的響應時間上限。13.一種節(jié)點下載調(diào)度裝置,該裝置包括: 滑動窗口設(shè)置部件,用于以節(jié)點所播放的直播流的當前播放頭為基準,設(shè)置滑動窗口,其中,對所述滑動窗口內(nèi)的未下載直播流數(shù)據(jù),優(yōu)先從內(nèi)容分發(fā)網(wǎng)絡CDN服務器下載;對該滑動窗口之后的未下載直播流數(shù)據(jù),優(yōu)先以點對點數(shù)據(jù)傳輸P2P模式從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點下載; 篩選標準設(shè)置部件,用于設(shè)置篩選標準,以便基于該篩選標準從已連接的、能提供直播流數(shù)據(jù)的鄰居節(jié)點中篩選出優(yōu)選鄰居節(jié)點,并向所述優(yōu)選鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù); 調(diào)整部件,用于在直播流的碼率變化的情況下,根據(jù)所述變化調(diào)整該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量的大小、所述滑動窗口的大小、以及所述篩選標準中的一個或多個。14.根據(jù)權(quán)利要求13所述的節(jié)點下載調(diào)度裝置,該裝置還包括: 閾值調(diào)整部件,用于在直播流的碼率變化的情況下,根據(jù)所述變化調(diào)整所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值。15.根據(jù)權(quán)利要求13所述的節(jié)點下載調(diào)度裝置,其中,所述篩選標準由鄰居節(jié)點的播放頭位置、已緩存數(shù)據(jù)長度、響應時間和所述節(jié)點與鄰居節(jié)點之間的傳輸性能指標中的一個或多個來確定。16.根據(jù)權(quán)利要求13所述的節(jié)點下載調(diào)度裝置,其中,根據(jù)所述變化調(diào)整該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量的大小、所述滑動窗口的大小、以及所述的篩選標準中的一個或多個,包括: 在碼率從低變高的情況下,進行以下操作中的一個或多個:增大該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量、增大所述滑動窗口、以及提高所述的篩選標準。17.根據(jù)權(quán)利要求16所述的節(jié)點下載調(diào)度裝置,該裝置還包括:基于節(jié)點當前狀態(tài)的第一調(diào)整部件,用于在碼率從低變高的情況下:如果節(jié)點的當前狀態(tài)為P2P上傳,則降低該節(jié)點向鄰居節(jié)點以P2P模式發(fā)送直播流數(shù)據(jù)的頻率;如果節(jié)點的當前狀態(tài)為P2P下載,則提高該節(jié)點從CDN服務器下載的直播流數(shù)據(jù)相對于該節(jié)點從鄰居節(jié)點以P2P模式下載的直播流數(shù)據(jù)的比例,和/或主動向指定的鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù)。18.根據(jù)權(quán)利要求17所述的節(jié)點下載調(diào)度裝置,其中,所述指定的鄰居節(jié)點包括所述優(yōu)選鄰居節(jié)點和/或P2P服務器指定的鄰居節(jié)點。19.根據(jù)權(quán)利要求14所述的節(jié)點下載調(diào)度裝置,其中,根據(jù)所述變化調(diào)整所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值,包括: 在碼率從低變高的情況下,減小所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值。20.根據(jù)權(quán)利要求13所述的節(jié)點下載調(diào)度裝置,該裝置還包括: 響應時間調(diào)整部件,用于在碼率從低變高的情況下,增大刪除鄰居節(jié)點所基于的鄰居節(jié)點的響應時間上限。21.根據(jù)權(quán)利要求13所述的節(jié)點下載調(diào)度裝置,其中,根據(jù)所述變化調(diào)整該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量的大小、所述滑動窗口的大小、以及所述的篩選標準中的一個或多個,包括: 在碼率從高變低的情況下,進行以下操作中的一個或多個:減小該節(jié)點的單次請求從CDN服務器下載的直播流數(shù)據(jù)量、減小所述滑動窗口、以及降低所述的篩選標準。22.根據(jù)權(quán)利要求21所述的節(jié)點下載調(diào)度裝置,該裝置還包括:基于節(jié)點當前狀態(tài)的第二調(diào)整部件,用于在碼率從高變低的情況下:如果節(jié)點的當前狀態(tài)為P2P上傳,則提高該節(jié)點向鄰居節(jié)點以P2P模式發(fā)送直播流數(shù)據(jù)的頻率;如果節(jié)點的當前狀態(tài)為P2P下載,則降低該節(jié)點從CDN服務器下載的直播流數(shù)據(jù)相對于該節(jié)點從所述鄰居節(jié)點以P2P模式下載的直播流數(shù)據(jù)的比例,和/或向鄰居節(jié)點請求以P2P模式下載直播流數(shù)據(jù);如果節(jié)點的當前狀態(tài)為卡頓,則嘗試從鄰居節(jié)點提前以P2P模式下載所述滑動窗口之后的部分未下載的直播流數(shù)據(jù)。23.根據(jù)權(quán)利要求14所述的節(jié)點下載調(diào)度裝置,其中,根據(jù)所述變化調(diào)整所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值,包括: 在碼率從高變低的情況下,增大所述節(jié)點與鄰居節(jié)點之間基于P2P模式單次能夠傳輸?shù)臄?shù)據(jù)塊大小的閾值。24.根據(jù)權(quán)利要求13所述的節(jié)點下載調(diào)度裝置,該裝置還包括: 響應時間調(diào)整部件,用于在碼率從高變低的情況下,減小刪除鄰居節(jié)點所基于的鄰居節(jié)點的響應時間上限。
【文檔編號】H04N21/238GK105898388SQ201610206227
【公開日】2016年8月24日
【申請日】2016年4月5日
【發(fā)明人】房福志, 潘金亞, 楊敬宇, 姚鍵, 潘柏宇, 王冀
【申請人】合網(wǎng)絡技術(shù)(北京)有限公司, 合一網(wǎng)絡技術(shù)(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1