混合型http和udp內(nèi)容分發(fā)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)一般設(shè)及通過網(wǎng)絡(luò)的數(shù)據(jù)通信。
【背景技術(shù)】
[0002] 分布式計(jì)算機(jī)系統(tǒng)在現(xiàn)有技術(shù)中是已知的。一個(gè)該樣的分布式計(jì)算機(jī)系統(tǒng)是通常 由服務(wù)提供商運(yùn)營(yíng)和進(jìn)行管理的"內(nèi)容分發(fā)網(wǎng)絡(luò)"或"CDN"。服務(wù)提供商通常代表使用該服 務(wù)提供商的共享基礎(chǔ)結(jié)構(gòu)的第立方(客戶)而提供內(nèi)容分發(fā)服務(wù)。該一類型的分布式系統(tǒng) 有時(shí)被稱為"覆蓋網(wǎng)絡(luò)",并且通常是指通過一個(gè)或多個(gè)網(wǎng)絡(luò)鏈接起來的自治計(jì)算機(jī)的集合 連同被設(shè)計(jì)為便利于各種服務(wù)(諸如內(nèi)容分發(fā)、應(yīng)用加速、或?qū)ν獍脑凑军c(diǎn)基礎(chǔ)結(jié)構(gòu)的 其他支持)的軟件、系統(tǒng)、協(xié)議和技術(shù)。CDN服務(wù)提供商通常通過在客戶口戶中提供的、接著 被部署到網(wǎng)絡(luò)的數(shù)字屬性(諸如網(wǎng)站)來提供服務(wù)分發(fā)。
[0003] 所描述的類型的覆蓋網(wǎng)絡(luò)從網(wǎng)絡(luò)中的服務(wù)器向客戶端提供基于HTTP的流處理, 客戶端接收視頻流并將它播放到屏幕。客戶端可W在臺(tái)式計(jì)算機(jī)、移動(dòng)設(shè)備(智能電話、平 板電腦)、機(jī)頂盒、智能電視機(jī)或電器、或者任何其他連接網(wǎng)絡(luò)的設(shè)備上運(yùn)行。對(duì)于典型的 基于HTTP的流處理的使用情況,客戶端通過DNS將名稱(例如CDN主機(jī)名)解析為IP地 址,并建立到與該地址相關(guān)聯(lián)的服務(wù)器的TCP連接。一旦建立,客戶端就發(fā)送對(duì)所期望的內(nèi) 容(例如媒體段)的HTTP GET請(qǐng)求。服務(wù)器在響應(yīng)正文中W內(nèi)容數(shù)據(jù)作出響應(yīng)。連接對(duì) 于進(jìn)一步的請(qǐng)求和響應(yīng)保持打開。
[0004] 使用超文本傳輸協(xié)議(HIT巧的標(biāo)準(zhǔn)方法通過HTTP協(xié)議(在傳輸控制協(xié)議/網(wǎng)際 協(xié)議(TCP/I巧連接之上)作出請(qǐng)求,并且在HTTP響應(yīng)中接收包含所請(qǐng)求的數(shù)據(jù)的響應(yīng)(通 過同一 TCP^P連接)。另選的流處理方法對(duì)于請(qǐng)求和響應(yīng)兩者(包括控制消息)使用用戶 數(shù)據(jù)報(bào)協(xié)議扣D巧或TCP之上的協(xié)議。其他方法通過HTTP會(huì)話穿遂(tunnel)某種協(xié)議。
[0005] 目前,許多最終用戶遇到基于HTTP的流處理所存在的問題,諸如慢啟動(dòng)時(shí)間、重 新緩沖W及低比特率。該些用戶的連接對(duì)于高質(zhì)量視頻常常表現(xiàn)出足夠大的帶寬,但是,月良 務(wù)器和客戶端之間的往返時(shí)間和數(shù)據(jù)包丟失特性負(fù)面地影響流處理性能,主要是因?yàn)闃?biāo)準(zhǔn) 基于TCP的實(shí)現(xiàn)在該樣的網(wǎng)絡(luò)上無效率地操作。
[0006] 如此,需要提供改善視頻流處理質(zhì)量的新技術(shù)。此處的公開內(nèi)容解決該些及與相 關(guān)現(xiàn)有技術(shù)相關(guān)聯(lián)的其他問題。
【發(fā)明內(nèi)容】
[0007] 混合型HTTP/UDP分發(fā)協(xié)議對(duì)于通過網(wǎng)絡(luò)(諸如覆蓋)分發(fā)視頻及其他內(nèi)容提供 重要的改善。該方法對(duì)于解決基于HTTP的流處理的問題(例如慢啟動(dòng)時(shí)間、重新緩沖W及 低比特率)特別有用處。
[000引一般而言,該協(xié)議具有兩個(gè)階段;HTTP階段W及UDP階段。在HTTP階段,客戶端 向服務(wù)器發(fā)送HTTP GET請(qǐng)求。GET請(qǐng)求包含通知服務(wù)器客戶端想要通過協(xié)議使用基于UDP 的傳送的傳輸標(biāo)頭化eader)。服務(wù)器可W拒絕此模式并在普通HTTP模式下持續(xù),或者服務(wù) 器可W通過發(fā)送空的響應(yīng)來作出響應(yīng),用標(biāo)頭信息通知客戶端如何建立連接W進(jìn)入U(xiǎn)DP階 段。在UDP階段,客戶端發(fā)起連接并通過UDP接收原始請(qǐng)求的內(nèi)容。
[0009] 混合型方法因添加單獨(dú)的通道用于通過UDP協(xié)議進(jìn)行內(nèi)容傳輸而不同于常規(guī)基 于HTTP的流處理。一旦客戶端連接到服務(wù)器,客戶端就發(fā)送對(duì)所期望的內(nèi)容(例如媒體段) 的HTTP GET請(qǐng)求,并包括指示它希望將UDP連接用于響應(yīng)正文傳送的HTTP標(biāo)頭??蛻舳?還可W包括關(guān)于UDP分發(fā)的任何偏好(例如前向糾錯(cuò)(FEC)或其他參數(shù))。服務(wù)器一一如 果被提供使用該協(xié)議一一則W空正文(內(nèi)容-長(zhǎng)度;〇)應(yīng)答作出響應(yīng)。響應(yīng)優(yōu)選地也包括 各種標(biāo)頭W阻止沿途中的代理緩存該響應(yīng)。在響應(yīng)標(biāo)頭中,客戶端查找有關(guān)如何通過UDP 協(xié)議連接到同一服務(wù)器的信息(或者還有其他額外的替換的服務(wù)器引用,例如用于多源內(nèi) 容獲?。?。此信息通常包括IP地址、UDP端口號(hào)、可選地包括某種其他特殊端口號(hào)(來標(biāo)識(shí) 通信屬于哪個(gè)流,因?yàn)樵谕环?wù)器的UDP端口上可能有許多該樣的連接)、版本W(wǎng)及令牌 T。一旦從服務(wù)器接收到此信息,客戶端就通過基于在HTTP響應(yīng)標(biāo)頭中提供的信息(IP地 址、UDP端口號(hào)、其他端口號(hào)等等)而向服務(wù)器發(fā)送SYN UDP數(shù)據(jù)包來發(fā)起UDP連接。此請(qǐng) 求優(yōu)選地也包括來自HTTP響應(yīng)的令牌T。通過使用該令牌,服務(wù)器因此可W驗(yàn)證發(fā)送UDP 數(shù)據(jù)包的客戶端看到了先前的HTTP響應(yīng),并且應(yīng)該處理該樣的SYN數(shù)據(jù)包。優(yōu)選地,SYN還 包含客戶端的初始序列號(hào)(ISN)。服務(wù)器W SYN_ACK數(shù)據(jù)包作出響應(yīng),該數(shù)據(jù)包包括來自客 戶端的SYN數(shù)據(jù)包的經(jīng)確認(rèn)的ISN值。SYN_ACK還包含服務(wù)器的ISN值。接著,客戶端W包 含來自SYN_ACK數(shù)據(jù)包的服務(wù)器的經(jīng)確認(rèn)的ISN的SYN_ACK_ACK數(shù)據(jù)包(也再次包括令牌 T)來確認(rèn)接收到SYN_ACK。對(duì)ISN和令牌T的確認(rèn)充當(dāng)確保雙方正在參與通信并看到全部 先前的數(shù)據(jù)包的措施。令牌(HTTP響應(yīng)、SYN和SYN_ACK_ACK數(shù)據(jù)包中的)也便利連接重 復(fù)用于此特定客戶端和服務(wù)器之間的其他HTTP請(qǐng)求。一旦W此方式完成了握手,基于UDP 的連接就被視為已建立;接著,服務(wù)器開始發(fā)送帶有(可能FEC編碼的)內(nèi)容的數(shù)據(jù)包。內(nèi) 容與在不使用UDP的情況下將已經(jīng)在原始HTTP響應(yīng)正文中的相同。
[0010] 前述內(nèi)容概述了主題的一些更相關(guān)的特征。該些特征應(yīng)該被理解為只是說明性 的。通過W不同的方式應(yīng)用所公開的主題或通過修改主題,可W實(shí)現(xiàn)許多其他有益的結(jié)果, 如下文所描述的。
【附圖說明】
[0011] 為更加完整地理解主題W及其優(yōu)點(diǎn),現(xiàn)在參考下面的結(jié)合附圖的描述,在附圖 中:
[001引圖1是示出被配置為內(nèi)容分發(fā)網(wǎng)絡(luò)仰腳的已知分布式計(jì)算機(jī)系統(tǒng)的框圖;
[0013] 圖2是代表性的CDN邊緣機(jī)器配置;
[0014] 圖3是示出本公開內(nèi)容的基本混合型HTTP/UDP數(shù)據(jù)分發(fā)方法的圖示;W及
[0015] 圖4是W附加細(xì)節(jié)示出本公開內(nèi)容的混合型HTTP/UDP分發(fā)技術(shù)的操作場(chǎng)景的圖 /J、- 〇
【具體實(shí)施方式】
[0016] 圖1示出了由此處的技術(shù)擴(kuò)展的已知分布式計(jì)算機(jī)系統(tǒng)(如下面所描述的)。
[0017] 在已知系統(tǒng)中,諸如圖1所示出的,分布式計(jì)算機(jī)系統(tǒng)100被配置為CDN,并假設(shè)具 有分布在因特網(wǎng)中的一組機(jī)器102a-n。通常,大多數(shù)機(jī)器是位于因特網(wǎng)的邊緣附近的服務(wù) 器,即位于最終用戶接入網(wǎng)絡(luò)處或與最終用戶接入網(wǎng)絡(luò)相鄰。網(wǎng)絡(luò)操作命令中屯、(NOCC) 104 管理系統(tǒng)中的各種機(jī)器的操作。第S方站點(diǎn)(諸如網(wǎng)站106)將內(nèi)容(例如,HTML、嵌入的 頁(yè)對(duì)象、流式媒體、軟件下載等等)的分發(fā)的負(fù)載卸載到分布式計(jì)算機(jī)系統(tǒng)100,具體來說, 卸載到"邊緣"服務(wù)器。通常,內(nèi)容提供商通過對(duì)給定內(nèi)容提供商域或子域使用別名而命名 為由服務(wù)提供商的權(quán)威性的域名服務(wù)進(jìn)行管理的域(例如通過DNS CNAME),來卸載他們的 內(nèi)容分發(fā)的負(fù)載。期望內(nèi)容的最終用戶可W被定向到分布式計(jì)算機(jī)系統(tǒng),W更加可靠而有 效地獲取該內(nèi)容。雖然未詳細(xì)地顯示,但是,分布式計(jì)算機(jī)系統(tǒng)還可W包括其他基礎(chǔ)結(jié)構(gòu), 諸如分布式數(shù)據(jù)收集系統(tǒng)108,該系統(tǒng)108用于從邊緣服務(wù)器收集使用情況及其他數(shù)據(jù),跨 區(qū)域或區(qū)域集合地聚合該數(shù)據(jù),并將該數(shù)據(jù)傳遞到其他后端系統(tǒng)11〇、112、114和116, W便 利監(jiān)視、記錄、警告、計(jì)費(fèi)、管理及其他操作和管理功能。分布式網(wǎng)絡(luò)中介(agent) 118監(jiān)視 網(wǎng)絡(luò)W及服務(wù)器負(fù)載,并向DNS查詢處理機(jī)制115提供網(wǎng)絡(luò)、流量和負(fù)載數(shù)據(jù),該機(jī)制115 對(duì)于由CDN進(jìn)行管理的內(nèi)容域是權(quán)威性的。分布式數(shù)據(jù)傳輸機(jī)制120可W用來向邊緣服務(wù) 器分發(fā)控制信息(例如管理內(nèi)容、便利負(fù)載平衡等等的元數(shù)據(jù))。
[0018] 如圖2所示,給定機(jī)器200包括運(yùn)行支持一個(gè)或多個(gè)應(yīng)用206a-n的操作系統(tǒng)內(nèi)核 (諸如Linux或變種)204的商品硬件(例如Intel Pentium處理器)202。為便利內(nèi)容分 發(fā)服務(wù),例如,給定機(jī)器通常運(yùn)行一組應(yīng)用,諸如HTTP (web)代理207、名稱服務(wù)器208、本地 監(jiān)視進(jìn)程210、分布式數(shù)據(jù)收集進(jìn)程212。更一般而言,代理207是包括程序指令的軟件,該 指令被保存在存儲(chǔ)器中,并根據(jù)需要由一個(gè)處理器(或多個(gè)處理器)執(zhí)行。
[0019] 對(duì)于流式媒體,根據(jù)所支持的媒體格式的需要,CDN機(jī)器通常包括一個(gè)或多個(gè)媒體 服務(wù)器,諸如Windows Media ServeHWM巧或Flash服務(wù)器。使用專用媒體服務(wù)器的另選方 案使用HTTP作為傳輸協(xié)議。在美國(guó)公開No. 20110173345中描述了用于基于HTTP的實(shí)況 流和基于V0D的分發(fā)的體系結(jié)構(gòu)。該方法在CDN內(nèi)實(shí)現(xiàn),并包括使用記錄層來記錄要被分 發(fā)的內(nèi)容流W及使用播放器層來播放流的高級(jí)別功能。記錄流的步驟包括一組子步驟,該 些子步驟當(dāng)在CDN入口點(diǎn)處W源格式接收到該流時(shí)開始。接著,流被轉(zhuǎn)換為中間格式(I巧, 該中間格式是用于在CDN內(nèi)分發(fā)流的內(nèi)部格式,并包括流清單(manifest)、一個(gè)或多個(gè)段 索引(FI)的集合W及IF段的集合。播放器進(jìn)程在發(fā)出請(qǐng)求的客戶端與諸如基于曲ost的 代理之類的CDN HTTP代理相關(guān)聯(lián)時(shí)開始。響應(yīng)于在HTTP代理處接收到對(duì)流或其一部分的 請(qǐng)求,HTTP代理檢索(或從檔案或從數(shù)據(jù)存儲(chǔ))流清單和至少一個(gè)段索引。通過使用段索 引,IF段被檢索到HTTP代理,被轉(zhuǎn)換為目標(biāo)格式,并接著響應(yīng)于客戶端請(qǐng)求而被