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