內(nèi)容傳遞網(wǎng)絡(luò)中的自適應(yīng)流式傳輸段文件的碎片整理的制作方法
【專利說明】?jī)?nèi)容傳遞網(wǎng)絡(luò)中的自適應(yīng)流式傳輸段文件的碎片整理
[0001]相關(guān)申請(qǐng)的交叉引用
本申請(qǐng)根據(jù)35 U.S.C.§119(e)要求于2013年6月6日提交的美國(guó)臨時(shí)申請(qǐng)N0.61/831,908的優(yōu)先權(quán)益,通過引用將其公開完整地結(jié)合到本文中。
技術(shù)領(lǐng)域
[0002]本公開涉及通信系統(tǒng)。更具體來說而不是作為限制,本公開的特定實(shí)施例針對(duì)內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)中用于向整個(gè)CDN的服務(wù)器分發(fā)電子內(nèi)容的節(jié)點(diǎn)和方法。
【背景技術(shù)】
[0003]內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)—般通過跨構(gòu)成分發(fā)網(wǎng)絡(luò)的節(jié)點(diǎn)(服務(wù)器)分發(fā)完整文件來進(jìn)行操作。稱作重定向器的中央服務(wù)器操控對(duì)文件的請(qǐng)求,并且通過返回給定文件的不同統(tǒng)一資源標(biāo)識(shí)符(URI)(重定向)來進(jìn)行響應(yīng)。在其他情況下,域名系統(tǒng)(DNS)服務(wù)器可采用文件的URI的給定主機(jī)名的不同IP地址進(jìn)行響應(yīng)。集中管理軟件可基于諸如流行度、網(wǎng)絡(luò)擁塞或其他因素之類的外部數(shù)據(jù)來確定將文件分發(fā)到CDN的邊緣的最佳方式。
[0004]有時(shí)稱作自適應(yīng)比特率流式傳輸?shù)淖赃m應(yīng)流式傳輸是在大多數(shù)應(yīng)用中基于超文本傳輸協(xié)議(HTTP)的技術(shù),該技術(shù)用于通過大型分布式HTTP網(wǎng)絡(luò)來流式傳輸多媒體。媒體源實(shí)時(shí)地檢測(cè)用戶的帶寬和CPU容量,并且使用能夠以多個(gè)比特率對(duì)單個(gè)源視頻進(jìn)行編碼的多速率編碼器相應(yīng)地調(diào)整視頻流的質(zhì)量。這一般對(duì)高端和低端連接引起極小緩沖、快速開始時(shí)間和良好體驗(yàn)。
[0005]更具體來說,以多個(gè)比特率對(duì)源內(nèi)容進(jìn)行編碼,以及不同比特率流中的每個(gè)流被分段為包含時(shí)長(zhǎng)達(dá)數(shù)秒的內(nèi)容的小型段文件。段文件大小能夠根據(jù)特定實(shí)現(xiàn)改變,但是段文件通常處于長(zhǎng)度為2至10秒的范圍中。清單文件向流式傳輸客戶端提供與可用流、其不同的比特率和流的段有關(guān)的信息。當(dāng)開始時(shí),客戶端請(qǐng)求來自最低比特率流的段文件。如果客戶端發(fā)現(xiàn)下載速度大于被下載段文件的比特率,則客戶端將請(qǐng)求來自下一個(gè)更高比特率的段文件。稍后,如果客戶端發(fā)現(xiàn)段文件的下載速度低于該段文件的比特率,并且因此網(wǎng)絡(luò)吞吐量已經(jīng)退化,則客戶端請(qǐng)求更低比特率段文件。
【發(fā)明內(nèi)容】
[0006]由于自適應(yīng)流式傳輸?shù)募軜?gòu)和機(jī)制,當(dāng)客戶端經(jīng)由CDN來訪問自適應(yīng)流式傳輸內(nèi)容時(shí),存在如下大的可能性:在邊緣的服務(wù)器將變?yōu)榉制模?,它們將保存?nèi)容的不完整副本。在CDN的邊緣的節(jié)點(diǎn)(邊緣服務(wù)器)可向客戶端提供一個(gè)或許多單獨(dú)段文件。當(dāng)客戶端向第二邊緣服務(wù)器請(qǐng)求內(nèi)容時(shí),第一邊緣服務(wù)器和第二邊緣服務(wù)器均可保存由關(guān)聯(lián)的清單所引用的段文件的不完整集合。這引起媒體的分片,從而在客戶端嘗試從單個(gè)邊緣服務(wù)器拉取段文件的整個(gè)集合時(shí)引起低效和附加網(wǎng)絡(luò)負(fù)荷。
[0007]當(dāng)邊緣服務(wù)器沒有保存所請(qǐng)求段文件的副本時(shí),它們必須從父節(jié)點(diǎn)、例如區(qū)域服務(wù)器拉取所請(qǐng)求段文件。雖然這一般使父節(jié)點(diǎn)保存所請(qǐng)求段文件的完整副本,但是不保證對(duì)于所有所公告比特率而言完整清單段集合將駐留于父節(jié)點(diǎn)上。當(dāng)客戶端向同一邊緣服務(wù)器請(qǐng)求自適應(yīng)流式傳輸清單的部分而不是全部段文件、從而引起整個(gè)清單段集合的不完整副本時(shí),分片發(fā)生。在自適應(yīng)流式傳輸架構(gòu)之內(nèi)改變比特率的客戶端能夠更進(jìn)一步增加邊緣服務(wù)器上的這種分片。
[0008]作為解決方案,本公開的特定實(shí)施例提供在利用自適應(yīng)流式傳輸內(nèi)容的CDN之內(nèi)的“碎片整理”系統(tǒng)和方法。該系統(tǒng)和方法確保邊緣服務(wù)器保存整個(gè)清單段集合的完整副本。此外,可控制這種“碎片整理”方法在低網(wǎng)絡(luò)利用的時(shí)間發(fā)生,以及該方法可考慮對(duì)內(nèi)容的預(yù)計(jì)需要,以便避免在段文件不可能被請(qǐng)求時(shí)不必要地預(yù)先籌備段文件。
[0009]在一個(gè)實(shí)施例中,本公開針對(duì)一種方法,其中CDN中的邊緣節(jié)點(diǎn)確定是否有由清單文檔所引用的、不存在于邊緣節(jié)點(diǎn)的本地高速緩存的段文件,以及如果是的話,則邊緣節(jié)點(diǎn)從CDN中的另一個(gè)節(jié)點(diǎn)、例如其父節(jié)點(diǎn)或另一個(gè)邊緣節(jié)點(diǎn)來拉取不存在的段文件。在從另一個(gè)節(jié)點(diǎn)拉取不存在的段文件之前,邊緣節(jié)點(diǎn)可確定當(dāng)前時(shí)間處于網(wǎng)絡(luò)資源的最小使用周期之內(nèi)。邊緣節(jié)點(diǎn)還可確定,清單流行度時(shí)間處于窗口閾值之內(nèi)使得對(duì)于客戶端可能請(qǐng)求段文件時(shí)及時(shí)地籌備段文件。當(dāng)在邊緣節(jié)點(diǎn)中高速緩存了所有段文件時(shí),邊緣節(jié)點(diǎn)向其父節(jié)點(diǎn)報(bào)告其碎片整理的完成。
[0010]如果由邊緣節(jié)點(diǎn)向其父節(jié)點(diǎn)所請(qǐng)求的段文件也不存在于父節(jié)點(diǎn)的本地高速緩存,則父節(jié)點(diǎn)從CDN中的更高層節(jié)點(diǎn)拉取不存在的段文件,將不存在的段文件存儲(chǔ)在父節(jié)點(diǎn)的本地高速緩存中,并且將文件傳遞給請(qǐng)求邊緣節(jié)點(diǎn)。這樣,父節(jié)點(diǎn)高速緩存或存儲(chǔ)由子邊緣節(jié)點(diǎn)所請(qǐng)求的段文件,并且填補(bǔ)父節(jié)點(diǎn)的段文件集合中的空白。一旦父節(jié)點(diǎn)的所有子邊緣節(jié)點(diǎn)已經(jīng)報(bào)告了它們已經(jīng)完成了其碎片整理,父節(jié)點(diǎn)就對(duì)照其高速緩存的段文件來檢查其自己的清單,以確定是否仍然有不存在的段文件,以及如果是的話,則從更高層節(jié)點(diǎn)拉取(一個(gè)或多個(gè))不存在的段文件。當(dāng)在父節(jié)點(diǎn)中高速緩存了所有段文件時(shí),父節(jié)點(diǎn)向更高層節(jié)點(diǎn)報(bào)告其碎片整理的完成。這種方法向上通過CDN傳播,直到所有節(jié)點(diǎn)經(jīng)過碎片整理并且向更高層已經(jīng)報(bào)告了其經(jīng)過碎片整理的狀態(tài)。
[0011]本文所公開的實(shí)施例描述邊緣節(jié)點(diǎn)、父節(jié)點(diǎn)以及邊緣節(jié)點(diǎn)和父節(jié)點(diǎn)中執(zhí)行的方法。
[0012]—個(gè)實(shí)施例針對(duì)一種在CDN的邊緣節(jié)點(diǎn)中用于確保邊緣節(jié)點(diǎn)的存儲(chǔ)器包含由關(guān)聯(lián)的清單文檔所引用的所有段文件的方法。該方法包括下列步驟:分析關(guān)聯(lián)的清單文檔和邊緣節(jié)點(diǎn)的存儲(chǔ)器中存儲(chǔ)的段文件,以確定由關(guān)聯(lián)的清單文檔所引用的段文件中是否有段文件不存在于邊緣節(jié)點(diǎn)的存儲(chǔ)器;以及一旦確定有由關(guān)聯(lián)的清單文檔所引用的、不存在于邊緣節(jié)點(diǎn)的存儲(chǔ)器的段文件,就從CDN中的另一個(gè)節(jié)點(diǎn)拉取不存在的段文件,并且將所拉取段文件存儲(chǔ)在邊緣節(jié)點(diǎn)的存儲(chǔ)器中。
[0013]另一個(gè)實(shí)施例針對(duì)一種CDN的邊緣節(jié)點(diǎn),其配置成利用自適應(yīng)流式傳輸向請(qǐng)求客戶端傳遞一段電子內(nèi)容,其中該段電子內(nèi)容包括由關(guān)聯(lián)的清單文檔所引用的多個(gè)段文件。邊緣節(jié)點(diǎn)配置成確保邊緣節(jié)點(diǎn)的存儲(chǔ)器包含由關(guān)聯(lián)的清單文檔所引用的所有段文件。邊緣節(jié)點(diǎn)包括處理器,其運(yùn)行計(jì)算機(jī)程序指令,從而使邊緣節(jié)點(diǎn)分析關(guān)聯(lián)的清單文檔和邊緣節(jié)點(diǎn)的存儲(chǔ)器中存儲(chǔ)的段文件,以確定由關(guān)聯(lián)的清單文檔所引用的段文件中是否有段文件不存在于邊緣節(jié)點(diǎn)的存儲(chǔ)器,以及一旦確定有由關(guān)聯(lián)的清單文檔所引用的、不存在于邊緣節(jié)點(diǎn)的存儲(chǔ)器的段文件,就從CDN中的另一個(gè)節(jié)點(diǎn)拉取不存在的段文件,并且將所拉取段文件存儲(chǔ)在邊緣節(jié)點(diǎn)的存儲(chǔ)器中。
[0014]另一個(gè)實(shí)施例針對(duì)一種CDN的父節(jié)點(diǎn),其配置成向多個(gè)子節(jié)點(diǎn)提供一段電子內(nèi)容,以利用自適應(yīng)流式傳輸進(jìn)一步分發(fā)給請(qǐng)求客戶端。該段電子內(nèi)容包括由關(guān)聯(lián)的清單文檔所引用的多個(gè)段文件,以及父節(jié)點(diǎn)配置成確保父節(jié)點(diǎn)的存儲(chǔ)器包含由關(guān)聯(lián)的清單文檔所引用的所有段文件。父節(jié)點(diǎn)包括處理器,其運(yùn)行計(jì)算機(jī)程序指令,從而使父節(jié)點(diǎn)向多個(gè)子節(jié)點(diǎn)中的每個(gè)裝載由每個(gè)子節(jié)點(diǎn)所請(qǐng)求的段文件,其中當(dāng)所請(qǐng)求段文件不存在于父節(jié)點(diǎn)的存儲(chǔ)器時(shí),父節(jié)點(diǎn)配置成從CDN中的更高層節(jié)點(diǎn)拉取所請(qǐng)求段文件,向請(qǐng)求子節(jié)點(diǎn)發(fā)送所請(qǐng)求段文件,并且將所請(qǐng)求段文件存儲(chǔ)在父節(jié)點(diǎn)的存儲(chǔ)器中。父節(jié)點(diǎn)還確定多個(gè)子節(jié)點(diǎn)全部已經(jīng)報(bào)告了其清單文檔完成,并且作為響應(yīng),分析關(guān)聯(lián)的清單文檔和父節(jié)點(diǎn)的存儲(chǔ)器中存儲(chǔ)的段文件,以確定是否有由關(guān)聯(lián)的清單文檔所引用的段文件仍然不存在于父節(jié)點(diǎn)的存儲(chǔ)器。一旦確定有由關(guān)聯(lián)的清單文檔所引用的、仍然不存在于父節(jié)點(diǎn)的存儲(chǔ)器的段文件,父節(jié)點(diǎn)就從CDN中的更高層節(jié)點(diǎn)拉取不存在的段文件,并且將所拉取段文件存儲(chǔ)在父節(jié)點(diǎn)中。
[0015]本公開確保請(qǐng)求自適應(yīng)流式傳輸內(nèi)容的客戶端沒有使為獲取內(nèi)容的段文件而將它們重定向到的各種邊緣服務(wù)器“分片”。所公開的節(jié)點(diǎn)和方法使CDN能夠在處理自適應(yīng)流式傳輸內(nèi)容時(shí)的峰值使用時(shí)間期間有效地操作。利用所公開節(jié)點(diǎn)和方法的CDN獲得網(wǎng)絡(luò)帶寬利用方面的效率,從而產(chǎn)生更好的客戶端體驗(yàn)。