切換CDN服務(wù)節(jié)點,其中存在判斷錯誤的情況。因為即將播放的數(shù)據(jù)情況是有限的,無法準確的反映整個CDN服務(wù)節(jié)點使用生命周期中CDN服務(wù)節(jié)點和客戶端之間的鏈路情況,所以需要增加一種方式來判斷CDN服務(wù)節(jié)點使用生命周期內(nèi),客戶端和CDN服務(wù)節(jié)點之間鏈路質(zhì)量的大概情況。
[0039]所述⑶N服務(wù)節(jié)點的生命周期中以500ms為一個樣本點,1000個樣本點為生命周期最大值。
[0040]失效原則:當客戶端和CDN之間的鏈路質(zhì)量不穩(wěn)定時,這時CDN切換抑制不應(yīng)該發(fā)生作用,應(yīng)該進行嘗試切換CDN。
[0041]抑制失效工作流程:統(tǒng)計多VP當前使用的CDN服務(wù)節(jié)點正確收到數(shù)據(jù)可播放時長(收到正確包的數(shù)量)與丟失數(shù)據(jù)可播時長(丟失包數(shù)量)。容忍丟失可播時長率〉當前丟失可播時長/(當前正確收到數(shù)據(jù)總的可播放時長+當前丟失數(shù)據(jù)總的可播放時長)時,CDN月艮務(wù)節(jié)點切換抑制機制被使能,否則去使能。當CDN抑制流程標記打開時,CDN切換抑制才有效。
[0042]根據(jù)本發(fā)明較佳實施例,該方法還包括將生命周期最長的CDN服務(wù)節(jié)點設(shè)置為最好節(jié)點,每次進行CDN服務(wù)節(jié)點切換時都判斷其是否為最好節(jié)點,若當前使用節(jié)點即為最好節(jié)點,則不對客戶端所連接的CDN服務(wù)節(jié)點進行切換。初始化時,最好節(jié)點被設(shè)置成NULL。當出現(xiàn)一次主動切換時,必然會有某個CDN服務(wù)節(jié)點被選出來作為最好節(jié)點。當出現(xiàn)某個CDN服務(wù)節(jié)點主動關(guān)閉和客戶端之間的連接,那么將不會進行“最好節(jié)點”的選擇,因為失去比較最好節(jié)點的意義了。
[0043]多VP中會有兩張⑶N列表,一張是當前可切換⑶N列表,另一張是QueryVP返回的⑶N列表;在多VP運行之初,兩張表內(nèi)容一模一樣。
[0044]所述對客戶端所連接的CDN服務(wù)節(jié)點進行切換是通過當前可切換CDN列表進行切換操作,切換時從當前可切換CDN列表中摘出列表中第一個CDN服務(wù)節(jié)點,并打開該CDN服務(wù)節(jié)點。當要打開一個新的CDN服務(wù)節(jié)點時,會檢查當前可用列表是否為空,如果為空,那么就停止多VP自身的工作,不對CDN服務(wù)節(jié)點進行切換、打開和關(guān)閉(無論現(xiàn)在是否有CDN正在使用,如果當前沒有VP正在使用的話,連接調(diào)度會來打開一個CDN服務(wù)節(jié)點);如果不為空,則從當前可切換CDN列表中摘出列表中第一個CDN服務(wù)節(jié)點,并打開該CDN服務(wù)節(jié)點。
[0045]當主動發(fā)現(xiàn)某個CDN服務(wù)節(jié)點質(zhì)量不佳需要淘汰時,那么可能會遇到如下幾種情況:
[0046]首先會看一下可可切換⑶N列表是否為空,如果為空;那么再進行“最好節(jié)點”的比較,這個CDN服務(wù)節(jié)點是否和之前比較出來最好的那個CDN服務(wù)節(jié)點是否為同一個,如果是,那多VP停止工作,并繼續(xù)使用該CDN服務(wù)節(jié)點不進行任何除此之外的任何其他操作。如果當前可用列表不為空時,那么會繼續(xù)做“最好節(jié)點”的比較。之后從可用列表中摘出第一個CDN服務(wù)節(jié)點,再打開該CDN服務(wù)節(jié)點。
[0047]在切換流程中,程序一般反復(fù)執(zhí)行以上流程,直到“最好節(jié)點”也已經(jīng)被使用過,并且該節(jié)點的播放質(zhì)量不佳時,切換流程就到此為止,并且多VP將會停止和切換相關(guān)的功能。
[0048]由于一般切換流程中存在一個弊端,也就是當時用到“最好節(jié)點”時,如果由于意外的情況,該CDN服務(wù)節(jié)點主動關(guān)閉了和客戶端之間的連接,那么客戶端將在短暫的時間內(nèi)無任何CDN服務(wù)節(jié)點使用,并且該意外情況也有可能是臨時現(xiàn)象,或個別現(xiàn)象。因此需要使用CDN輪流機制來給CDN “第二次”機會。輪流機制同時為了避免在切換CDN時,造成對某個或某些⑶N的重復(fù)使用,導(dǎo)致無法公平的評價客戶端鏈路情況。
[0049]所述對客戶端所連接的CDN服務(wù)節(jié)點進行切換采用CDN輪流機制,輪流次數(shù)設(shè)定為N次。當CDN切換輪流達到N次時,CDN將不進行任何輪流。對于需要淘汰CDN時,將不會做任何事情(即不關(guān)閉該CDN,也不會切換一個新的CDN)。當輪流次數(shù)達到最大值時,對于由于CDN方主動關(guān)閉,那么多VP什么都不做,這時整個下載調(diào)度將沒有連接任何VP,直到下一輪連接調(diào)度周期來時,才有可能會打開一個CDN。
[0050]多VP的開關(guān)是一個內(nèi)部維護的狀態(tài),主要用于控制樣本點的采集與否,通過樣本點的統(tǒng)計情況來影響多VP是否對VP進行切換。當多VP被關(guān)閉時,樣本點將不會收集。否則會被收集并進行統(tǒng)計分析。當多VP位于切換中,多VP的開關(guān)將會關(guān)閉。切換中的狀態(tài)解釋:當需要切換VP時,走冗余切換流程,當冗余切換中舊的VP未關(guān)閉之前,多VP的就屬于切換中。如果當前有且僅有一個VP正在使用,則不屬于切換中。
[0051 ] VP被分為兩類,一類是VPP串中攜帶的CDN域名,這個被稱作URL_VP。另一類是Query VP返回的⑶N域名/IP。當Query VP返回的⑶N列表為空時,整個下載調(diào)度,會使用VPP串中的⑶附也址;當QueryVP返回的⑶N不為空時,VPP串中的⑶附也址對整個下載調(diào)度不可見。
[0052]只有QueryVP返回的⑶N列表對多VP來說才是可見的,當QueryVP返回的列表為空時,多VP無法得知還有VPP串中的CDN可是進行使用。因此連接調(diào)度會在調(diào)度周期到來時,進行判斷QueryVP返回是否為空列表;如果是,那么連接調(diào)度負責(zé)打開該VP(URL_VP),此時多VP功能處于關(guān)閉,且無論與該VP之間鏈路質(zhì)量如何,都不會進行切換。
[0053]根據(jù)本發(fā)明較佳實施例,所述對客戶端所連接的CDN服務(wù)節(jié)點進行切換采用冗余連接的方式進行,即在發(fā)現(xiàn)需要進行切換時,對于舊的CDN服務(wù)節(jié)點事先不進行任何處理和操作,另行開啟一條與待使用CDN服務(wù)節(jié)點的連接,當該CDN服務(wù)節(jié)點與客戶端之間握手成功后,且收到數(shù)據(jù)時,舊的CDN服務(wù)節(jié)點再被關(guān)閉。
[0054]本發(fā)明提出的一種流媒體播放中客戶端選擇CDN服務(wù)節(jié)點的方法,根據(jù)當前播放狀態(tài)判斷是否需要對客戶端所連接的CDN服務(wù)節(jié)點進行切換或?qū)η袚Q進行抑制,在解決客戶端播放流暢性問題的同時避免對客戶端所連接的CDN服務(wù)節(jié)點切換操作過于頻繁,保證流媒體播放的流暢性,提高用戶體驗。
[0055]雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明。本發(fā)明所屬技術(shù)領(lǐng)域中具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當可作各種的更動與潤飾。因此,本發(fā)明的保護范圍當視權(quán)利要求書所界定者為準。
【主權(quán)項】
1.一種流媒體播放中客戶端選擇CDN服務(wù)節(jié)點的方法,其特征在于,包括下列步驟: 當連續(xù)設(shè)定時間內(nèi)無數(shù)據(jù)可播時,對客戶端所連接的CDN服務(wù)節(jié)點進行切換; 當在設(shè)定窗口期內(nèi)有設(shè)定比例時間無法播放時,對客戶端所連接的CDN服務(wù)節(jié)點進行切換; 當客戶端緩存數(shù)據(jù)有設(shè)定時間可以播放時,對CDN服務(wù)節(jié)點即將切換的行為進行抑制; 當客戶端所連接的CDN服務(wù)節(jié)點到目前為止的生命周期內(nèi)有50 %以上的時間可以播放時,對CDN服務(wù)節(jié)點即將切換的行為進行抑制。2.根據(jù)權(quán)利要求1所述的客戶端選擇CDN服務(wù)節(jié)點的方法,其特征在于,所述無數(shù)據(jù)可播的連續(xù)設(shè)定時間為I?5s,此后對客戶端所連接的CDN服務(wù)節(jié)點進行切換。3.根據(jù)權(quán)利要求1所述的客戶端選擇CDN服務(wù)節(jié)點的方法,其特征在于,所述設(shè)定窗口期為在1?20s內(nèi),判斷在該時間范圍內(nèi)有多少時間無法播放。4.根據(jù)權(quán)利要求1所述的客戶端選擇CDN服務(wù)節(jié)點的方法,其特征在于,所述窗口期的設(shè)定比例時間為30 %?50 %,當出現(xiàn)以上比例時間無法播放時,對客戶端所連接的CDN服務(wù)節(jié)點進行切換。5.根據(jù)權(quán)利要求1所述的客戶端選擇CDN服務(wù)節(jié)點的方法,其特征在于,所述客戶端緩存數(shù)據(jù)可以播放的設(shè)定時間為大于等于5秒時,對CDN服務(wù)節(jié)點即將切換的行為進行抑制。6.根據(jù)權(quán)利要求1所述的客戶端選擇CDN服務(wù)節(jié)點的方法,其特征在于,所述CDN服務(wù)節(jié)點的生命周期中以500ms為一個樣本點,1000個樣本點為生命周期最大值。7.根據(jù)權(quán)利要求1所述的客戶端選擇CDN服務(wù)節(jié)點的方法,其特征在于,該方法還包括將生命周期最長的CDN服務(wù)節(jié)點設(shè)置為最好節(jié)點,每次進行CDN服務(wù)節(jié)點切換時都判斷其是否為最好節(jié)點,若當前使用節(jié)點即為最好節(jié)點,則不對客戶端所連接的CDN服務(wù)節(jié)點進行切換。8.根據(jù)權(quán)利要求1所述的客戶端選擇CDN服務(wù)節(jié)點的方法,其特征在于,所述對客戶端所連接的CDN服務(wù)節(jié)點進行切換是通過當前可切換CDN列表進行切換操作,切換時從當前可切換CDN列表中摘出列表中第一個CDN服務(wù)節(jié)點,并打開該CDN服務(wù)節(jié)點。9.根據(jù)權(quán)利要求1所述的客戶端選擇CDN服務(wù)節(jié)點的方法,其特征在于,所述對客戶端所連接的CDN服務(wù)節(jié)點進行切換采用CDN輪流機制,輪流次數(shù)設(shè)定為N次。10.根據(jù)權(quán)利要求1所述的客戶端選擇CDN服務(wù)節(jié)點的方法,其特征在于,所述對客戶端所連接的CDN服務(wù)節(jié)點進行切換采用冗余連接的方式進行,即在發(fā)現(xiàn)需要進行切換時,對于舊的CDN服務(wù)節(jié)點事先不進行任何處理和操作,另行開啟一條與待使用CDN服務(wù)節(jié)點的連接,當該CDN服務(wù)節(jié)點與客戶端之間握手成功后,且收到數(shù)據(jù)時,舊的CDN服務(wù)節(jié)點再被關(guān)閉。
【專利摘要】本發(fā)明提出一種流媒體播放中客戶端選擇CDN服務(wù)節(jié)點的方法,包括下列步驟:當連續(xù)設(shè)定時間內(nèi)無數(shù)據(jù)可播時,對客戶端所連接的CDN服務(wù)節(jié)點進行切換;當在設(shè)定窗口期內(nèi)有設(shè)定比例時間無法播放時,對客戶端所連接的CDN服務(wù)節(jié)點進行切換;當客戶端緩存數(shù)據(jù)有設(shè)定時間可以播放時,對CDN服務(wù)節(jié)點即將切換的行為進行抑制;當客戶端所連接的CDN服務(wù)節(jié)點到目前為止的生命周期內(nèi)有50%以上的時間可以播放時,對CDN服務(wù)節(jié)點即將切換的行為進行抑制。本發(fā)明提出的應(yīng)用于流媒體播放中客戶端選擇CDN服務(wù)節(jié)點的方法,根據(jù)當前播放狀態(tài)對客戶端所連接的CDN服務(wù)節(jié)點進行切換或?qū)η袚Q進行抑制,避免CDN服務(wù)節(jié)點切換過于頻繁,保證流媒體播放的流暢性,提高用戶體驗。
【IPC分類】H04L29/06, H04L29/08
【公開號】CN105450675
【申請?zhí)枴緾N201610049049
【發(fā)明人】虞陸平, 聶大鵬, 臺躍華, 林肖瓊, 熊濤, 祝亮
【申請人】杭州施強網(wǎng)絡(luò)科技有限公司
【公開日】2016年3月30日
【申請日】2016年1月25日