一種流媒體播放中客戶端選擇cdn服務(wù)節(jié)點的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及流媒體直播或點播中的CDN技術(shù)領(lǐng)域,且特別涉及一種流媒體播放中客戶端選擇CDN服務(wù)節(jié)點的方法。
【背景技術(shù)】
[0002]CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。其基本思路是盡可能避開互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內(nèi)容傳輸?shù)母臁⒏€(wěn)定。通過在網(wǎng)絡(luò)各處放置節(jié)點服務(wù)器所構(gòu)成的在現(xiàn)有的互聯(lián)網(wǎng)基礎(chǔ)之上的一層智能虛擬網(wǎng)絡(luò),CDN系統(tǒng)能夠?qū)崟r地根據(jù)網(wǎng)絡(luò)流量和各節(jié)點的連接、負(fù)載狀況以及到用戶的距離和響應(yīng)時間等綜合信息將用戶的請求重新導(dǎo)向離用戶最近的服務(wù)節(jié)點上。其目的是使用戶可就近取得所需內(nèi)容,解決Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶訪問網(wǎng)站的響應(yīng)速度。
[0003]隨著互聯(lián)網(wǎng)的發(fā)展,利用網(wǎng)絡(luò)進(jìn)行流媒體直播或點播逐漸成為一種趨勢,慢慢融入到人們的日常生活中,在工作、學(xué)習(xí)以及娛樂等各個方面形成熱點,無論是視頻會議、在線教育還是網(wǎng)絡(luò)電視、視頻網(wǎng)站都應(yīng)用的越來越廣泛。流媒體(Stream Media)是指采用流式傳輸?shù)姆绞皆贗nternet/Intranet播放的媒體格式,如音頻、視頻或多媒體文件。流媒體在播放前不需要下載整個文件,只將開始部分內(nèi)容存入內(nèi)存,在計算機中對數(shù)據(jù)包進(jìn)行緩存并使流媒體數(shù)據(jù)正確地輸出,可以邊下載邊觀看。其原理是把向用戶傳輸?shù)亩嗝襟w文件按照播出時間順序分為不同的片段,然后依次把這些片段發(fā)給用戶,連續(xù)播放這些片段就形成了連續(xù)的聲音和圖像。
[0004]流式傳輸主要指將整個音頻和視頻及三維媒體等多媒體文件經(jīng)過特定的壓縮方式解析成一個個壓縮包,由視頻服務(wù)器向用戶計算機順序或?qū)崟r傳送。在采用流式傳輸方式的系統(tǒng)中,用戶不必像采用下載方式那樣等到整個文件全部下載完畢,而是只需經(jīng)過幾秒或者幾十秒的啟動延時即可再用戶的計算機上利用解壓設(shè)備對壓縮的多媒體文件解壓后進(jìn)行播放和觀看。此時多媒體文件的剩余部分將在后臺的服務(wù)器內(nèi)繼續(xù)下載。與單純的下載方式相比,這種對多媒體文件邊下載邊播放的流式傳輸方式不僅使啟動時間大幅度地縮短,而且對系統(tǒng)緩存容量的需求也大大降低,極大地減少用戶用在等待的時間。目前,流媒體技術(shù)已經(jīng)廣泛應(yīng)用在互聯(lián)網(wǎng)領(lǐng)域中。
[0005]流媒體類業(yè)務(wù)一般是服務(wù)器到客戶端或客戶端到客戶端的業(yè)務(wù)服務(wù)架構(gòu),視音頻編解碼是服務(wù)器和客戶端的重要功能之一,視音頻編解碼需要耗費大量的服務(wù)器/客戶端軟件和硬件資源,目前的服務(wù)器或客戶端難以承受如此大的并發(fā)請求。流媒體業(yè)務(wù)如果直接在當(dāng)前的IP網(wǎng)上運營會產(chǎn)生一系列的問題,如:帶寬和QoS難以保證;廣播型業(yè)務(wù)耗費大量的骨干網(wǎng)絡(luò)帶寬,并對源點構(gòu)成極大的壓力等。一旦流媒體業(yè)務(wù)用戶量和業(yè)務(wù)量加大,就會對現(xiàn)有網(wǎng)絡(luò)的流量流向造成很大的沖擊,甚至?xí)沟矛F(xiàn)有網(wǎng)絡(luò)無法保證常規(guī)業(yè)務(wù)的運營。
[0006]CDN技術(shù)的發(fā)展,為寬帶流媒體應(yīng)用提供了最佳的解決方案。CDN是構(gòu)建在網(wǎng)絡(luò)之上的內(nèi)容分發(fā)網(wǎng)絡(luò),依靠部署在各地的邊緣服務(wù)器,通過中心平臺的負(fù)載均衡、內(nèi)容分發(fā)、調(diào)度等功能模塊,使用戶就近獲取所需內(nèi)容,降低網(wǎng)絡(luò)擁塞,提高用戶訪問響應(yīng)速度和命中率。CDN利用全局負(fù)載均衡技術(shù)將用戶的訪問指向離用戶最近的工作正常的流媒體服務(wù)器上,由流媒體服務(wù)器直接響應(yīng)用戶的請求。服務(wù)器中如果沒有用戶要訪問的內(nèi)容,會根據(jù)配置自動從原服務(wù)器抓取相應(yīng)的內(nèi)容并提供給用戶。
[0007]在判斷和⑶N之間鏈路的質(zhì)量時,由于是通過已流逝時間的播放情況來衡量,并不能完整反映整個CDN服務(wù)節(jié)點使用的生命周期內(nèi),客戶端與CDN之間的鏈路情況;所以需要對CDN服務(wù)節(jié)點的切換行為進(jìn)行抑制,以免使得CDN服務(wù)節(jié)點切換過于頻繁。
【發(fā)明內(nèi)容】
[0008]本發(fā)明提出一種流媒體播放中客戶端選擇CDN服務(wù)節(jié)點的方法,根據(jù)當(dāng)前播放狀態(tài)對客戶端所連接的CDN服務(wù)節(jié)點進(jìn)行切換或?qū)磳⑶袚Q的行為進(jìn)行抑制,避免CDN服務(wù)節(jié)點切換過于頻繁,保證流媒體播放的流暢性,提高用戶體驗。
[0009]為了達(dá)到上述目的,本發(fā)明提出一種流媒體播放中客戶端選擇CDN服務(wù)節(jié)點的方法,包括下列步驟:
[0010]當(dāng)連續(xù)設(shè)定時間內(nèi)無數(shù)據(jù)可播時,對客戶端所連接的CDN服務(wù)節(jié)點進(jìn)行切換;
[0011 ]當(dāng)在設(shè)定窗口期內(nèi)有設(shè)定比例時間無法播放時,對客戶端所連接的CDN服務(wù)節(jié)點進(jìn)行切換;
[0012]當(dāng)客戶端緩存數(shù)據(jù)有設(shè)定時間可以播放時,對CDN服務(wù)節(jié)點即將切換的行為進(jìn)行抑制;
[0013]當(dāng)客戶端所連接的CDN服務(wù)節(jié)點到目前為止的生命周期內(nèi)有50%以上的時間可以播放時,對CDN服務(wù)節(jié)點即將切換的行為進(jìn)行抑制。
[0014]進(jìn)一步的,所述無數(shù)據(jù)可播的連續(xù)設(shè)定時間為I?5s,此后對客戶端所連接的⑶N服務(wù)節(jié)點進(jìn)行切換。
[00?5 ]進(jìn)一步的,所述設(shè)定窗口期為在1?20 s內(nèi),判斷在該時間范圍內(nèi)有多少時間無法播放。
[0016]進(jìn)一步的,所述窗口期的設(shè)定比例時間為30 %?50 %,當(dāng)出現(xiàn)以上比例時間范圍無法播放時,對客戶端所連接的CDN服務(wù)節(jié)點進(jìn)行切換。
[0017]進(jìn)一步的,所述客戶端緩存數(shù)據(jù)可以播放的設(shè)定時間為大于等于5秒時,對CDN月艮務(wù)節(jié)點即將切換的行為進(jìn)行抑制。
[0018]進(jìn)一步的,所述⑶N服務(wù)節(jié)點的生命周期中以500ms為一個樣本點,1000個樣本點為生命周期最大值。
[0019]進(jìn)一步的,該方法還包括將生命周期最長的CDN服務(wù)節(jié)點設(shè)置為最好節(jié)點,每次進(jìn)行CDN服務(wù)節(jié)點切換時都判斷其是否為最好節(jié)點,若當(dāng)前使用節(jié)點即為最好節(jié)點,則不對客戶端所連接的CDN服務(wù)節(jié)點進(jìn)行切換。
[0020]進(jìn)一步的,所述對客戶端所連接的CDN服務(wù)節(jié)點進(jìn)行切換是通過當(dāng)前可切換CDN列表進(jìn)行切換操作,切換時從當(dāng)前可切換CDN列表中摘出列表中第一個CDN服務(wù)節(jié)點,并打開該CDN服務(wù)節(jié)點。
[0021 ]進(jìn)一步的,所述對客戶端所連接的CDN服務(wù)節(jié)點進(jìn)行切換采用CDN輪流機制,輪流次數(shù)設(shè)定為N次。
[0022]進(jìn)一步的,所述對客戶端所連接的CDN服務(wù)節(jié)點進(jìn)行切換采用冗余連接的方式進(jìn)行,即在發(fā)現(xiàn)需要進(jìn)行切換時,對于舊的CDN服務(wù)節(jié)點事先不進(jìn)行任何處理和操作,另行開啟一條與待使用CDN服務(wù)節(jié)點的連接,當(dāng)該CDN服務(wù)節(jié)點與客戶端之間握手成功后,且收到數(shù)據(jù)時,舊的CDN服務(wù)節(jié)點再被關(guān)閉。
[0023]本發(fā)明提出的一種流媒體播放中客戶端選擇CDN服務(wù)節(jié)點的方法,根據(jù)當(dāng)前播放狀態(tài)判斷是否需要對客戶端所連接的CDN服務(wù)節(jié)點進(jìn)行切換或?qū)η袚Q進(jìn)行抑制,在解決客戶端播放流暢性問題的同時避免對客戶端所連接的CDN服務(wù)節(jié)點切換操作過于頻繁,保證流媒體播放的流暢性,提高用戶體驗。
【附圖說明】
[0024]圖1所示為本發(fā)明較佳實施例的客戶端選擇CDN服務(wù)節(jié)點的方法流程圖。
【具體實施方式】
[0025]以下結(jié)合附圖給出本發(fā)明的【具體實施方式】,但本發(fā)明不限于以下的實施方式。根據(jù)下面說明和權(quán)利要求書,本發(fā)明的優(yōu)點和特征將更清楚。需說明的是,附圖均采用非常簡化的形式且均使用非精準(zhǔn)的比率,僅用于方便、明晰地輔助說明本發(fā)明實施例的目的。
[0026]請參考圖1,圖1所示為本發(fā)明較佳實施例的客戶端選擇CDN服務(wù)節(jié)點的方法流程圖。本發(fā)明提出一種流媒體播放中客戶端選擇CDN服務(wù)節(jié)點的方法,包括下列步驟:
[0027]步驟SlOO:當(dāng)連續(xù)設(shè)定時間內(nèi)無數(shù)據(jù)可播時,對客戶端所連接的CDN服務(wù)節(jié)點進(jìn)行切換;
[0028]步驟S200:當(dāng)在設(shè)定窗口期內(nèi)有設(shè)定比例時間無法播放時,對客戶端所連接的CDN服務(wù)節(jié)點進(jìn)行切換;
[0029]步驟S300:當(dāng)客戶端緩存數(shù)據(jù)有設(shè)定時間可以播放時,對CDN服務(wù)節(jié)點即將切換的行為進(jìn)彳丁抑制;
[0030]步驟S400:當(dāng)客戶端所連接的⑶N服務(wù)節(jié)點到目前為止的生命周期內(nèi)有50%以上的時間可以播放時,對CDN服務(wù)節(jié)點即將切換的行為進(jìn)行抑制。
[0031]當(dāng)前播放點之前已經(jīng)流逝的N秒內(nèi),如果確實是一直在丟包,并且沒有任何數(shù)據(jù)包被正確的播放出來,可以認(rèn)為客戶端和當(dāng)前這個CDN服務(wù)節(jié)點之間鏈路質(zhì)量很差或CDN沒有(及時)拿到數(shù)據(jù)。根據(jù)本發(fā)明較佳實施例,所述無數(shù)據(jù)可播的連續(xù)設(shè)定時間為I?5s,此后對客戶端所連接的CDN服務(wù)節(jié)點進(jìn)行切換。
[0032]當(dāng)前播放點之前的窗口時間內(nèi),出現(xiàn)間斷性的丟包,當(dāng)區(qū)域內(nèi)丟失可播時長率(計算公式:總丟的包的可播時長/區(qū)域內(nèi)總的可播時長)大于等于容忍最大丟包率時,這是認(rèn)為客戶端和CDN服務(wù)節(jié)點之間的鏈路是不穩(wěn)定的,那么應(yīng)該更換CDN服務(wù)節(jié)點嘗試解決。
[0033]根據(jù)本發(fā)明較佳實施例,所述設(shè)定窗口期為在10?20s內(nèi),判斷在該時間范圍內(nèi)有多少時間無法播放。所述窗口期的設(shè)定比例時間為30 %?50 %,當(dāng)出現(xiàn)以上比例時間無法播放時,對客戶端所連接的CDN服務(wù)節(jié)點進(jìn)行切換。
[0034]在判斷客戶端和⑶N之間鏈路的質(zhì)量時,由于是通過已流逝時間的播放情況來衡量,并不能完整反映整個CDN服務(wù)節(jié)點使用的生命周期內(nèi),客戶端與CDN之間的鏈路情況;所以需要對CDN服務(wù)節(jié)點的切換行為進(jìn)行抑制,以免使得CDN服務(wù)節(jié)點切換過于頻繁。
[0035]CDN服務(wù)節(jié)點切換的抑制是建立在,客戶端本地播放點與數(shù)據(jù)提供方的最新播放點之間存在時差,而這段時差恰好可以納入作為抑制CDN服務(wù)節(jié)點切換的依據(jù);因為這段時間差內(nèi)剛好可以視為是播放前的一段數(shù)據(jù)緩沖。
[0036]當(dāng)判斷發(fā)現(xiàn)需要進(jìn)行CDN切換時,CDN切換抑制開始工作:檢查緩存區(qū)中當(dāng)前播放點之后有多少數(shù)據(jù)量可播(數(shù)據(jù)可以播放多少時間),當(dāng)這個時間大于某給設(shè)定時間大小時,這時CDN切換抑制將會生效(抑制CDN切換這個行為的進(jìn)行),當(dāng)CDN抑制流程標(biāo)記打開時CDN切換抑制才有效。
[0037]根據(jù)本發(fā)明較佳實施例,所述客戶端緩存數(shù)據(jù)可以播放的設(shè)定時間為大于等于5秒時,對CDN服務(wù)節(jié)點即將切換的行為進(jìn)行抑制。
[0038]在CDN抑制機制中,由于是通過本地緩存(緩沖)中待播數(shù)據(jù)的可播時長去衡量是否需要進(jìn)行