專利名稱:性能感知的對(duì)等內(nèi)容點(diǎn)播的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對(duì)等聯(lián)網(wǎng)(peer-to-peer networking),并且具體地涉及利用對(duì)等網(wǎng)絡(luò)提供視頻點(diǎn)播服務(wù),該對(duì)等網(wǎng)絡(luò)在考慮系統(tǒng)性能的情況下提供對(duì)等點(diǎn)(peer)視頻下載(由對(duì)等網(wǎng)絡(luò)中的各對(duì)等點(diǎn)下載數(shù)據(jù)/視頻)。
背景技術(shù):
傳統(tǒng)地,已經(jīng)使用客戶端-服務(wù)器服務(wù)模型來(lái)提供流傳輸服務(wù)(streamingservice) 0客戶端向服務(wù)器發(fā)送請(qǐng)求,然后如果服務(wù)器有足夠的資源來(lái)為客戶端的請(qǐng)求服務(wù)并且在沿服務(wù)器和客戶端之間的路徑上有足夠的帶寬,則服務(wù)器將內(nèi)容流傳輸?shù)娇蛻舳恕S捎诜?wù)器處有限的計(jì)算和存儲(chǔ)資源以及連接服務(wù)器和客戶端的網(wǎng)絡(luò)中有限的帶寬,在客戶端-服務(wù)器流傳輸服務(wù)中可擴(kuò)展性是一個(gè)問(wèn)題。近來(lái),已經(jīng)將對(duì)等技術(shù)(peer-to-peer technique)引入流傳輸服務(wù)。各對(duì)等點(diǎn)被實(shí)現(xiàn)為具有客戶端和服務(wù)器的能力,并且通過(guò)主動(dòng)地將內(nèi)容高速緩存并且為其他各對(duì)等點(diǎn)服務(wù),有助于減輕在服務(wù)器上施加的工作負(fù)荷并在網(wǎng)絡(luò)上分布帶寬需求。研究已經(jīng)表明,對(duì)等技術(shù)極大地改進(jìn)了系統(tǒng)可擴(kuò)展性,使得系統(tǒng)能夠?yàn)槎嗟枚嗟挠脩舴?wù)。為解決在利用對(duì)等聯(lián)網(wǎng)的流傳輸媒體服務(wù)中存在的可擴(kuò)展性問(wèn)題已經(jīng)做出了顯著的努力。這些努力可以被分類為兩類特別地,對(duì)等實(shí)況流傳輸和對(duì)等存儲(chǔ)的視頻流傳輸或視頻點(diǎn)播。雖然兩種服務(wù)努力利用對(duì)等技術(shù)支持大量用戶,同時(shí)為用戶提供良好的觀看質(zhì)量,但是它們還面臨著不同的技術(shù)挑戰(zhàn)。在對(duì)等實(shí)況流傳輸中,挑戰(zhàn)在于使起始延遲最小化而不犧牲系統(tǒng)的可擴(kuò)展性。在對(duì)等視頻點(diǎn)播服務(wù)中,挑戰(zhàn)在于允許異步用戶共享。各對(duì)等流傳輸方案還通過(guò)不同的數(shù)據(jù)分發(fā)技術(shù)(dissemination)來(lái)區(qū)分它們自身。已經(jīng)開發(fā)了兩種數(shù)據(jù)分發(fā)方法-特別地,基于覆蓋(overlay)的方法和數(shù)據(jù)驅(qū)動(dòng)的方法。在基于覆蓋的方法中,各對(duì)等點(diǎn)形成網(wǎng)格或樹結(jié)構(gòu),其中在各對(duì)等點(diǎn)之間形成父子關(guān)系。子對(duì)等點(diǎn)從其父對(duì)等點(diǎn)接收數(shù)據(jù)。相反,數(shù)據(jù)驅(qū)動(dòng)的方法中的各對(duì)等點(diǎn)沒(méi)有固定的父子關(guān)系。各對(duì)等點(diǎn)尋找缺失的數(shù)據(jù),并且無(wú)論在什么地方可用就取回缺失的數(shù)據(jù)。雖然在早期的對(duì)等嘗試中廣泛使用基于覆蓋的方法,但是數(shù)據(jù)驅(qū)動(dòng)的方法正在變得日益流行,因?yàn)樗行У亟鉀Q了波動(dòng)(churn)和不對(duì)稱帶寬問(wèn)題。盡管大多數(shù)現(xiàn)有技術(shù)的努力展現(xiàn)了良好的可擴(kuò)展性并且與傳統(tǒng)的客戶端-服務(wù)器服務(wù)模型相比支持更大數(shù)量的用戶,但是現(xiàn)有技術(shù)方案在本質(zhì)上是盡了最大努力(besteffort)的,并且尚未充分地研究對(duì)系統(tǒng)性能需求的支持
發(fā)明內(nèi)容
本發(fā)明針對(duì)性能感知的對(duì)等視頻點(diǎn)播服務(wù)(performance aware peer-to-peervideo-on-demand service)。本發(fā)明將對(duì)等下載合并入傳統(tǒng)的客戶端-服務(wù)器視頻點(diǎn)播服務(wù)模型中。對(duì)等下載攜帶主要的數(shù)據(jù)傳輸負(fù)荷,因而顯著地減少了在服務(wù)器上施加的工作負(fù)荷。因此,服務(wù)器將其大多數(shù)資源致力于提供緊急數(shù)據(jù)以滿足性能需求。改進(jìn)了在客戶端處感測(cè)到的性能。考慮性能需求,來(lái)設(shè)計(jì)對(duì)等下載算法。視頻點(diǎn)播服務(wù)允許用戶在他們期望的任何時(shí)候在網(wǎng)絡(luò)上選擇和觀看視頻內(nèi)容。本發(fā)明包括在視頻點(diǎn)播設(shè)置中允許共享內(nèi)容的分段對(duì)等視頻共享模型。通過(guò)合并性能感知的對(duì)等數(shù)據(jù)下載算法以及服務(wù)器輔助的補(bǔ)充流傳輸來(lái)解決性能問(wèn)題,性能感知的對(duì)等數(shù)據(jù)下 載算法以及服務(wù)器輔助的補(bǔ)充流傳輸共同實(shí)現(xiàn)與傳統(tǒng)的客戶端-服務(wù)器服務(wù)模型提供的性能相似的性能,但支持更多用戶/請(qǐng)求。本發(fā)明的方法和系統(tǒng)針對(duì)使用數(shù)據(jù)驅(qū)動(dòng)的方法的、并將實(shí)時(shí)調(diào)度算法合并入對(duì)等數(shù)據(jù)分發(fā)過(guò)程以改進(jìn)用戶觀看感受的對(duì)等視頻點(diǎn)播服務(wù)。應(yīng)注意系統(tǒng)性能(具體地,用戶即時(shí)接收所請(qǐng)求的視頻)意味著提高了用戶的整體觀看感受且提高了整體視頻質(zhì)量。本發(fā)明的系統(tǒng)性能感知數(shù)據(jù)共享以及補(bǔ)充的服務(wù)器流傳輸提高了客戶端/用戶側(cè)的觀看質(zhì)量。描述了一種用于提供視頻點(diǎn)播服務(wù)的方法,包括接收流傳輸?shù)那懊娴囊曨l子剪輯;確定一組所需要的視頻子剪輯;定位該組所需要的視頻子剪輯中的一個(gè)視頻子剪輯;以及下載所定位的視頻子剪輯。描述了一種用于提供視頻點(diǎn)播的系統(tǒng),包括對(duì)等點(diǎn)、服務(wù)器和跟蹤器。跟蹤器可以與服務(wù)器共處一個(gè)位置。對(duì)等點(diǎn)包括用于接收流傳輸?shù)那懊娴囊曨l子剪輯的裝置;用于確定一組所需要的視頻子剪輯的裝置;用于定位該組所需要的視頻子剪輯中的一個(gè)視頻子剪輯的裝置;以及用于下載所定位的視頻子剪輯的裝置。描述了一種服務(wù)器提供視頻點(diǎn)播的方法,所述方法包括接收對(duì)視頻內(nèi)容單元的請(qǐng)求;執(zhí)行準(zhǔn)許控制;將所述視頻內(nèi)容單元分段為多個(gè)視頻點(diǎn)播內(nèi)容子剪輯;計(jì)算要流傳輸?shù)那懊娴囊曨l點(diǎn)播內(nèi)容子剪輯的數(shù)量;以及流傳輸所述前面的視頻點(diǎn)播內(nèi)容子剪輯。
當(dāng)結(jié)合附圖閱讀時(shí),從下面的詳細(xì)描述將最好地理解本發(fā)明。附圖包括下面簡(jiǎn)要描述的各圖,其中各圖中相同的標(biāo)號(hào)表示相似的元件圖I是根據(jù)本發(fā)明的對(duì)等網(wǎng)絡(luò)的示意圖。圖2是示出根據(jù)本發(fā)明的對(duì)等網(wǎng)絡(luò)的圖。圖3是來(lái)自服務(wù)器側(cè)的準(zhǔn)許控制(admission control)處理的流程圖。圖4和圖5是描述來(lái)自用戶/客戶端側(cè)的準(zhǔn)許控制處理的流程圖。
具體實(shí)施例方式視頻點(diǎn)播服務(wù)的用戶在任何給定的時(shí)刻觀看視頻的不同部分。為了使得內(nèi)容能夠在各用戶之間共享并且使通過(guò)對(duì)等網(wǎng)絡(luò)傳遞的內(nèi)容量最大化,假設(shè)每個(gè)用戶具有將已經(jīng)播放的內(nèi)容的整個(gè)副本和/或部分副本高速緩存的存儲(chǔ)容量。在視頻回放設(shè)備的快速增加的存儲(chǔ)容量的情況下這是合理的假設(shè)。應(yīng)當(dāng)注意到,視頻回放設(shè)備是能夠接收和回放(存儲(chǔ)的或?qū)崨r的)視頻的任何設(shè)備,包括但不限于計(jì)算機(jī)、膝上型計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)和移動(dòng)設(shè)備。對(duì)等網(wǎng)絡(luò)不限于有線網(wǎng)絡(luò),也可以是無(wú)線或有線網(wǎng)絡(luò)或采用有線和無(wú)線連接兩者的混合網(wǎng)絡(luò)。在本發(fā)明的分段對(duì)等視頻點(diǎn)播方法和裝置中,視頻剪輯被劃分為以“子剪輯”表示的多個(gè)相等長(zhǎng)度的片段。子剪輯開始時(shí)的回放時(shí)間被定義為該子剪輯的期限。前面的子剪輯(leading sub-clips)被流傳輸?shù)揭曨l回放設(shè)備,使得用戶可以立刻開始回放。同時(shí),在各用戶之間建立對(duì)等網(wǎng)絡(luò),以便預(yù)取出隨后的子剪輯的數(shù)據(jù)。根據(jù)本發(fā)明的系統(tǒng)性能感知方案,必須在子剪輯的期限之前預(yù)取出子剪輯的數(shù)據(jù)。一旦子剪輯的回放開始,就不允許該子剪輯的對(duì)等下載,因?yàn)樾孪螺d的數(shù)據(jù)可能已過(guò)期。為了更好的系統(tǒng)性能,來(lái)自原始服務(wù)器的補(bǔ)充流傳輸從該點(diǎn)發(fā)起。 如下描述補(bǔ)充流傳輸。使用示例來(lái)圖示本發(fā)明的分段對(duì)等視頻點(diǎn)播如何為進(jìn)入的請(qǐng)求服務(wù)。在 該示例中,假設(shè)用戶能夠?qū)⒁曨l的全部副本高速緩存。即使僅將視頻副本的一部分高速緩存,相同的技術(shù)也適用。還假設(shè)服務(wù)器僅將第一子剪輯流傳輸,并且利用對(duì)等網(wǎng)絡(luò)下載之后的子剪輯的數(shù)據(jù)。下面將呈現(xiàn)和描述計(jì)算流傳輸?shù)淖蛹糨嫷臄?shù)量的算法。現(xiàn)在參照?qǐng)D1,客戶端/用戶I在時(shí)間h對(duì)來(lái)自服務(wù)器的視頻做出請(qǐng)求/要求。服務(wù)器立刻將子剪輯I (第一視頻子剪輯)流傳輸?shù)娇蛻舳?,使得客戶端I可以迅速地開始回放。同時(shí),嘗試在對(duì)等網(wǎng)絡(luò)中定位具有/高速緩存有子剪輯2的對(duì)等點(diǎn)。此時(shí),僅對(duì)等網(wǎng)絡(luò)中的具有/高速緩存有子剪輯2的對(duì)等點(diǎn)是服務(wù)器,該服務(wù)器可以表現(xiàn)為一對(duì)等點(diǎn)。(至少)客戶端和服務(wù)器是對(duì)等網(wǎng)絡(luò)的成員。在時(shí)間t2,客戶端I正在回放子剪輯1,而正在從服務(wù)器下載(而非流傳輸)子剪輯2??蛻舳?用戶2對(duì)來(lái)自服務(wù)器的相同視頻做出請(qǐng)求/要求,并且立刻開始回放子剪輯1,該子剪輯I被從服務(wù)器流傳輸?shù)娇蛻舳?。服務(wù)器和客戶端I兩者都開始將子剪輯2下載(而非流傳輸)到客戶端2。此時(shí),服務(wù)器、客戶端I、和客戶端2是對(duì)等網(wǎng)絡(luò)中的各對(duì)等點(diǎn)。在時(shí)間t3,客戶端3對(duì)來(lái)自服務(wù)器的相同視頻做出請(qǐng)求/要求,并且立刻開始回放子剪輯I,該子剪輯I從服務(wù)器流傳輸而來(lái)。到目前為止,客戶端I正在回放子剪輯3并且正在下載子剪輯4的數(shù)據(jù)/視頻??蛻舳?正在播放子剪輯2并且正在下載子剪輯3。此時(shí),(至少)服務(wù)器、客戶端I、客戶端2、和客戶端3是對(duì)等網(wǎng)絡(luò)的成員。客戶端3可以從服務(wù)器、客戶端I、和客戶端2下載子剪輯2。隨著時(shí)間繼續(xù),對(duì)等點(diǎn)視頻回放繼續(xù)。如圖I所示,在當(dāng)前時(shí)間t4,對(duì)等下載預(yù)取出在當(dāng)前正在播放的子剪輯之后的子剪輯的數(shù)據(jù)。到時(shí)間t5,客戶端I已經(jīng)完成其視頻回放并且退出系統(tǒng)??蛻舳?正在回放最后的子剪輯,以及客戶端3正在回放子剪輯4并且正在下載子剪輯5。為下載子剪輯5,服務(wù)器和第二客戶端是對(duì)等網(wǎng)絡(luò)中的各對(duì)等點(diǎn)。最后,客戶端2在完成視頻回放后也退出系統(tǒng)??蛻舳?正在觀看/回放子剪輯5并且將在子剪輯5結(jié)束后退出系統(tǒng)。圖2是示出根據(jù)本發(fā)明的對(duì)等網(wǎng)絡(luò)的圖。服務(wù)器205具有視頻的全部副本,并且可以流傳輸視頻子剪輯或用作一對(duì)等點(diǎn),并且將子剪輯下載到對(duì)等網(wǎng)絡(luò)中的其他各對(duì)等點(diǎn)210。一旦對(duì)等點(diǎn)210請(qǐng)求/要求來(lái)自服務(wù)器205的視頻,其就加入對(duì)等網(wǎng)絡(luò),然后可以從其他各對(duì)等點(diǎn)210下載隨后的子剪輯和/或?qū)⒆蛹糨嬒螺d到其他各對(duì)等點(diǎn)210。子剪輯僅從服務(wù)器205流傳輸。通常僅將前面的子剪輯從服務(wù)器205流傳輸?shù)秸?qǐng)求/要求視頻的對(duì)等點(diǎn)210,并且剩余的子剪輯從服務(wù)器205或其他對(duì)等點(diǎn)210下載。然而,如果下載速率不足以使該對(duì)等點(diǎn)在期限之前接收所下載的子剪輯,則可能將隨后的子剪輯從服務(wù)器流傳輸?shù)皆搶?duì)等點(diǎn)。跟蹤器215可實(shí)現(xiàn)為分離的實(shí)體或可以實(shí)現(xiàn)為服務(wù)器205的一部分。如果跟蹤器215實(shí)現(xiàn)為分離的實(shí)體,則在服務(wù)器205和跟蹤器215之間存在信令,當(dāng)對(duì)等網(wǎng)絡(luò)中的各對(duì)等點(diǎn)加入和退出對(duì)等網(wǎng)絡(luò)時(shí),該跟蹤器215保持跟蹤它們。跟蹤器還保持跟蹤對(duì)等網(wǎng)絡(luò)中的哪些對(duì)等點(diǎn)具有什么可以下載的子剪輯以及各對(duì)等點(diǎn)的狀態(tài)(一對(duì)等點(diǎn)是否具有可用于由另一對(duì)等點(diǎn)下載的子剪輯以及每個(gè)對(duì)等點(diǎn)需要下載哪些子剪輯)。一旦一對(duì)等點(diǎn)已經(jīng)接收到子剪輯,則該子剪輯就被認(rèn)為可用于由該對(duì)等點(diǎn)下載到需要該子剪輯的其他各對(duì)等點(diǎn)。具有雙向箭頭的流程線指示子剪輯下載。具有單箭頭的流程線指示子剪輯流傳輸(僅服務(wù)器可以流傳輸)。虛線/點(diǎn)劃線流程線指示信令。圖3是來(lái)自服務(wù)器側(cè)的準(zhǔn)許控制處理的流程圖。向服務(wù)器做出對(duì)視頻的新請(qǐng)求/要求。在新請(qǐng)求到達(dá)服務(wù)器 時(shí),調(diào)用準(zhǔn)許控制處理305,并且該準(zhǔn)許控制處理305基于所收集的統(tǒng)計(jì)數(shù)據(jù)進(jìn)行準(zhǔn)許控制處理。如果在310準(zhǔn)許該請(qǐng)求,則在315計(jì)算應(yīng)當(dāng)從服務(wù)器直接流傳輸?shù)那懊娴淖蛹糨嫷臄?shù)量。流傳輸?shù)?前面的)子剪輯的數(shù)量被表示為N。服務(wù)器在320開始將前面的子剪輯流傳輸?shù)秸?qǐng)求的客戶端/用戶,并且在325將值N返回到請(qǐng)求的用戶/客戶端。如果沒(méi)有準(zhǔn)許請(qǐng)求/要求,則在330初始化/重置前面的子剪輯的數(shù)量。圖4是描述來(lái)自用戶/客戶端側(cè)的準(zhǔn)許控制處理的流程圖。在用戶/客戶端側(cè),一旦客戶端從服務(wù)器接收到響應(yīng),就在405進(jìn)行檢查以便通過(guò)測(cè)試N的值(要從服務(wù)器流傳輸?shù)娇蛻舳说那懊娴淖蛹糨嫷臄?shù)量)來(lái)確定請(qǐng)求/要求是否已經(jīng)被準(zhǔn)許。如果N的值大于0,則請(qǐng)求/要求已經(jīng)被準(zhǔn)許,并且用戶在410開始接收流傳輸?shù)腘個(gè)子剪輯。應(yīng)當(dāng)注意,在服務(wù)器側(cè)設(shè)置N = -I并且在用戶/客戶端側(cè)測(cè)試N > 0只是一種可能的實(shí)現(xiàn)方式。請(qǐng)求準(zhǔn)許測(cè)試可以例如通過(guò)標(biāo)記或任何其他適當(dāng)?shù)氖侄蝸?lái)實(shí)現(xiàn)。在415,當(dāng)前的子剪輯號(hào)N。被設(shè)置為N+1 (下一子剪輯-要下載的子剪輯)。然后在420執(zhí)行測(cè)試以確定是否存在更多要下載的子剪輯。如果請(qǐng)求/要求沒(méi)有被準(zhǔn)許或者用戶已經(jīng)接收到視頻的所有子剪輯,則處理結(jié)束。同時(shí),在425,定位對(duì)等網(wǎng)絡(luò)中具有/高速緩存有第(N+1)個(gè)子剪輯的對(duì)等點(diǎn),并且開始將第(N+1)個(gè)子剪輯上載到需要該第(N+1)個(gè)子剪輯的對(duì)等點(diǎn)。如果在430確定還沒(méi)有達(dá)到下載的期限d(相對(duì)于當(dāng)前時(shí)間t測(cè)量的),則在435下載繼續(xù)。如果在430確定已經(jīng)達(dá)到期限d (相對(duì)于當(dāng)前時(shí)間t測(cè)量的),則在440準(zhǔn)備缺失的數(shù)據(jù)矢量(missing datavector)。實(shí)際上,在期限稍前一點(diǎn)或當(dāng)確定不能在期限d前完成下載時(shí)就準(zhǔn)備該缺失的數(shù)據(jù)矢量。如果不能在期限前完成下載,則在445進(jìn)行測(cè)試以確定是否需要補(bǔ)充流傳輸。下面將更詳細(xì)地描述補(bǔ)充流傳輸。同時(shí),在455將當(dāng)前子剪輯計(jì)數(shù)器遞增。如果需要補(bǔ)充流傳輸以確保滿足系統(tǒng)性能(子剪輯在期限前到達(dá)用戶),則在450調(diào)用補(bǔ)充流傳輸。當(dāng)達(dá)到下載第(N+1)個(gè)子剪輯的期限d時(shí),用戶開始回放第(N+1)個(gè)子剪輯,并且定位對(duì)等網(wǎng)絡(luò)內(nèi)具有/高速緩存有之后的子剪輯的對(duì)等點(diǎn),并且開始視頻子剪輯下載處理。接下來(lái),描述要由服務(wù)器流傳輸?shù)淖蛹糨嫈?shù)量的計(jì)算。與請(qǐng)求/要求一起,客戶端/用戶還向服務(wù)器指示所估計(jì)的下行鏈路帶寬。認(rèn)為,用戶對(duì)其自己的下行鏈路帶寬可能具有更好的認(rèn)識(shí)。在服務(wù)器開始視頻流傳輸時(shí),流傳輸和對(duì)等下載兩者都消耗下行鏈路帶寬。假設(shè)服務(wù)器對(duì)用戶i流傳輸Iii個(gè)子剪輯,在Iii個(gè)子剪輯的期限(即,L^ni)之前必須下載第(叫+1)個(gè)子剪輯的副本,其中,L是一子剪輯的持續(xù)時(shí)間。將rplaybadt表示為視頻的回放速率,而rd_link表示為用戶的下行鏈路帶寬,(rd—M-iWbJniL彡Lrplaybacko 必須是整數(shù)(僅流傳輸完整的子剪輯),因此Tli = ^^ (等式 I)
^downlink ^playback
上面描述了本發(fā)明的、將對(duì)等下載合并入傳統(tǒng)的服務(wù)器/客戶端視頻點(diǎn)播服務(wù)的分段對(duì)等視頻點(diǎn)播服務(wù)。對(duì)等下載攜帶大部分?jǐn)?shù)據(jù)/視頻傳送負(fù)荷,因此顯著減少了服務(wù)器上施加的工作負(fù)荷。與目標(biāo)是將整體系統(tǒng)吞吐量最大化的傳統(tǒng)的對(duì)等文件下載相反,本發(fā)明的對(duì)等下載考慮到系統(tǒng)性能(子剪輯在其期限前到達(dá)用戶)并且盡力滿足子剪輯的期限。接下來(lái)描述單個(gè)子剪輯的對(duì)等下載。然后描述如何協(xié)調(diào)多個(gè)子剪輯的對(duì)等下載以便實(shí)現(xiàn)即時(shí)將數(shù)據(jù)/視頻傳遞給所有用戶。本發(fā)明使用數(shù)據(jù)驅(qū)動(dòng)的對(duì)等下載以在各用戶之間交換子剪輯數(shù)據(jù)。本發(fā)明的子剪輯被劃分為相等大小的塊,并且用戶并發(fā)地從多個(gè)用戶下載各塊。各塊被進(jìn)一步子劃分為子塊,以使得能夠流水線傳輸請(qǐng)求以便減少信令開銷。與每個(gè)子剪輯相對(duì)應(yīng)地,存在被稱為子跟蹤器的中心組件,其對(duì)當(dāng)前參與特定子剪輯的對(duì)等下載的用戶保持跟蹤。子跟蹤器周期性地以及當(dāng)用戶加入或離開子剪輯對(duì)等網(wǎng)絡(luò)時(shí)從用戶接收更新。對(duì)等網(wǎng)絡(luò)中的各對(duì)等點(diǎn)被劃分為兩類種子和下載者。種子是具有子剪輯的全部/部分副本并且愿意向他人服務(wù)/上載子剪輯的用戶。種子不下載他們(種子)正上載到 其他對(duì)等點(diǎn)的子剪輯數(shù)據(jù),這是因?yàn)樗麄?種子)已經(jīng)有該數(shù)據(jù)。下載者是仍然正在下載數(shù)據(jù)但同時(shí)愿意向他人服務(wù)他們已經(jīng)具有的塊的用戶。當(dāng)新用戶開始下載子剪輯時(shí),用戶聯(lián)系對(duì)應(yīng)的子跟蹤器以得到當(dāng)前在對(duì)等網(wǎng)絡(luò)中具有子剪輯(或子剪輯的一部分)并愿意上載該子剪輯的用戶列表(種子和下載者兩者)。新用戶然后嘗試與列表上的用戶建立連接,這些列表上的用戶然后成為其鄰居。各對(duì)等點(diǎn)運(yùn)行分布式算法以單獨(dú)確定該對(duì)等點(diǎn)將數(shù)據(jù)服務(wù)/上載到哪個(gè)用戶。為了使最多(最大數(shù)量的)用戶在其各自的期限屆滿前接收到子剪輯數(shù)據(jù)的機(jī)會(huì)最大化,在選擇處理中考慮到若干因素。假設(shè)選擇了從鄰居(對(duì)等點(diǎn))接收數(shù)據(jù)的用戶,并且該鄰居可以選擇該鄰居可以下載的若干塊。鄰居/對(duì)等點(diǎn)在選擇下載哪個(gè)塊時(shí)采用局部最少優(yōu)先(local rarestfirst-LRF)策略。該對(duì)等點(diǎn)嘗試選擇下載在其鄰居中最少?gòu)?fù)制的塊。目標(biāo)是使系統(tǒng)中內(nèi)容的多樣性(diversity)最大化,即,使得每個(gè)塊復(fù)制的數(shù)量盡可能相等。這使得系統(tǒng)將不大可能因?yàn)殡y以找到稀少的塊而停頓。在用戶已經(jīng)具有鄰居具有的所有數(shù)據(jù)的情況下,鄰居選擇另一用戶以向其服務(wù)/下載數(shù)據(jù)。傳統(tǒng)的對(duì)等網(wǎng)絡(luò)被設(shè)計(jì)來(lái)分發(fā)單個(gè)文件。在本發(fā)明中,將視頻剪輯劃分為多個(gè)子剪輯,其中使用對(duì)等網(wǎng)絡(luò)分發(fā)每個(gè)子剪輯。因此,在本發(fā)明的方案方法中,用戶可以同時(shí)加入多個(gè)對(duì)等網(wǎng)絡(luò)。例如,在圖I中,客戶端3在時(shí)間t4正在播放子剪輯2??蛻舳?已經(jīng)完成下載子剪輯2,并且已經(jīng)在下載子剪輯3。因此客戶端3分別加入子剪輯1、2、和3的三個(gè)對(duì)等網(wǎng)絡(luò)??蛻舳?是子剪輯I的對(duì)等網(wǎng)絡(luò)中的種子,是(另一)子剪輯2的對(duì)等網(wǎng)絡(luò)中的種子,并且是又一子剪輯3的對(duì)等網(wǎng)絡(luò)中的下載者。對(duì)于子剪輯3而言,客戶端I和客戶端2是客戶端3的種子。在時(shí)間t4,客戶端2正在下載子剪輯4,并且客戶端I是客戶端2的子剪輯4的種子。最后,在時(shí)間t4,客戶端I正在下載子剪輯5,并且對(duì)于子剪輯5,原始的服務(wù)器僅是客戶端I的種子??蛻舳?將不能為客戶端I和2服務(wù)。在本發(fā)明的用于提供視頻點(diǎn)播服務(wù)的性能感知的對(duì)等網(wǎng)絡(luò)中,用戶可以加入多個(gè)對(duì)等網(wǎng)絡(luò)(對(duì)于每個(gè)子剪輯,用戶可以加入不同的對(duì)等網(wǎng)絡(luò))。然而,上載的總數(shù)應(yīng)當(dāng)是小的數(shù)目,以便避免由具有大量開放TCP連接造成的性能劣化。從而問(wèn)題變成如何選擇跨越多個(gè)對(duì)等網(wǎng)絡(luò)的上載對(duì)等點(diǎn)使得能夠使整體性能最大化,即,使所有用戶在其各自的期限之前取回內(nèi)容/子剪輯的機(jī)會(huì)最大化。下面是被認(rèn)為影響系統(tǒng)性能的關(guān)鍵因素列表I.期限有多緊急。期限越緊,下載者應(yīng)該得到越高的優(yōu)先級(jí)。2.下載是否按計(jì)劃進(jìn)行?所有的用戶應(yīng)當(dāng)被公平對(duì)待。下載應(yīng)當(dāng)與各對(duì)等點(diǎn)自下載開始起在系統(tǒng)中花費(fèi)的時(shí)間成比例 地進(jìn)行。3.有多少潛在的種子可用?假設(shè)用戶在完成對(duì)等點(diǎn)視頻回放后立即離開,在不同時(shí)間對(duì)于不同子剪輯可用的種子數(shù)量是不同的。例如,在圖I中,對(duì)于客戶端4而言,子剪輯2的種子數(shù)量大于子剪輯3的種子數(shù)量。這是因?yàn)樽蛹糨?的種子必須也是子剪輯2的種子。然而子剪輯2的種子可以不是子剪輯3的種子,因?yàn)樵摲N子在完成回放后可能離開系統(tǒng)。通常,如果客戶端到達(dá)處理是帶有平均到達(dá)率\的泊松分布,則可用種子數(shù)由下面的等式?jīng)Q定^VTd(等式2),其中iV/w表示子剪輯i的平均種子數(shù),Lvi-表示視頻長(zhǎng)度,并且L表示子剪輯長(zhǎng)度。4.高上載速度改進(jìn)系統(tǒng)吞吐量,因此是優(yōu)選的。S表示子剪輯的大小,并且t表示當(dāng)前時(shí)間。設(shè)<是用戶j開始下載第k個(gè)子剪輯的時(shí)間,并且4(0是到時(shí)間t為止所取回的內(nèi)容的量。此外,設(shè)<是用戶j的第k個(gè)子剪輯的期限。最后,定義是客戶端j的第k個(gè)子剪輯的下載進(jìn)程指示符。因此,
p)= (0(x; ~d))(等式3)。P,的值反映下載進(jìn)程。即,P,指示數(shù)據(jù)/視頻下載是否按計(jì)劃進(jìn)行。咐廠0是為了按時(shí)(按子剪輯期限)取回子剪輯而所需的下載速率。是經(jīng)過(guò)的時(shí)間,并且Xkj (0/(^是到目前為止達(dá)到的下載速率。下載進(jìn)程指示符是所需要的下載速率和所實(shí)現(xiàn)的下載速率的比率。如果M=I,則下載完美地按計(jì)劃進(jìn)行。如果M<1,則下載落后于計(jì)劃,而如果K >1,則下載超前于計(jì)劃?,F(xiàn)在討論用于確定對(duì)等點(diǎn)應(yīng)當(dāng)向哪個(gè)鄰居發(fā)送數(shù)據(jù)的度量(metric)。設(shè)<表示對(duì)于第k個(gè)子剪輯、對(duì)等點(diǎn)i為對(duì)等點(diǎn)j服務(wù)/將數(shù)據(jù)下載到對(duì)等點(diǎn)j的上載權(quán)重。<的
值越大,對(duì)等點(diǎn)i越可能選擇為對(duì)等點(diǎn)j服務(wù)。設(shè)#為= p^(dk-t)[t-d^)(等式4)。
分子是ru,其是從對(duì)等點(diǎn)i到j(luò)的上載速度/速率。直觀地說(shuō),越大/越高的上載速度越改進(jìn)整體系統(tǒng)吞吐量。這里,越大的上載速率越好。這相當(dāng)于上述因素4。等式(4)的分母中存在三項(xiàng)。如等式(3)中所定義的,p/是進(jìn)程指示符,并且P/小
的值指示對(duì)等點(diǎn)j落后于計(jì)劃。因此,根據(jù)上述因素2應(yīng)當(dāng)給予j高優(yōu)先級(jí)。的值是到期限的時(shí)間。根據(jù)因素1,(<-彳的值越小,期限越緊。應(yīng)當(dāng)給具有最緊期限的請(qǐng)求賦予優(yōu)先級(jí)。最后,在時(shí)間t,對(duì)等點(diǎn)i的所有子剪輯k ( k&{k\d^<t])都是種子。然而,不
同子剪輯的請(qǐng)求具有不同數(shù)量的種子,如等式(2)所示。應(yīng)當(dāng)給具有最小數(shù)量的種子的用戶請(qǐng)求賦予優(yōu)先級(jí)。經(jīng)過(guò)的時(shí)間越長(zhǎng),該請(qǐng)求可用的種子越多,這驗(yàn)證了分母中的最后一項(xiàng)(根據(jù)因素3)。
如上所述,盡管格外注意解決性能問(wèn)題(子剪輯即時(shí)到達(dá)用戶),但是在對(duì)等下載停止的期限時(shí)(或在期限稍前一點(diǎn))一些數(shù)據(jù)仍然可能缺失。現(xiàn)在描述如何使用服務(wù)器來(lái)流傳輸缺失的數(shù)據(jù)以便進(jìn)一步改進(jìn)對(duì)等點(diǎn)視頻回放性能。這在這里被稱為補(bǔ)充流傳輸。隨著期限接近,對(duì)等點(diǎn)客戶端準(zhǔn)備缺失的數(shù)據(jù)矢量Vmissing,該缺失的數(shù)據(jù)矢量Vmissing是使用例如“I”的第一標(biāo)記來(lái)指示接收到塊、并且使用例如“0”的第二標(biāo)記來(lái)指示塊仍然缺失的位圖。缺失的數(shù)據(jù)矢量與該子剪輯到達(dá)用戶的期限一起被發(fā)送到服務(wù)器(信令)。隨著期限接近,服務(wù)器開始流傳輸出缺失的數(shù)據(jù),使得對(duì)于對(duì)等點(diǎn)視頻回放可以即時(shí)填充缺失的數(shù)據(jù)/視頻。本發(fā)明的服務(wù)器負(fù)責(zé)三件事,(i)為初始/前面的子剪輯服務(wù)以支持迅速回放(通過(guò)流傳輸);(ii)提供補(bǔ)充流傳輸以改進(jìn)用戶的觀看質(zhì)量(確保子剪輯在每個(gè)子剪輯期限前到達(dá)用戶),以及(iii)用作對(duì)等數(shù)據(jù)/視頻下載中的種子。任務(wù)I和2具有比任務(wù)3更高的優(yōu)先級(jí)。要理解,本發(fā)明可以以硬件、軟件、固件、專用處理器或其組合的各種形式實(shí)現(xiàn)。優(yōu)選地,本發(fā)明被實(shí)現(xiàn)為硬件和軟件的組合。此外,軟件優(yōu)選地實(shí)現(xiàn)為在程序存儲(chǔ)設(shè)備上有形地體現(xiàn)的應(yīng)用程序。應(yīng)用程序可以上載到包括任何適當(dāng)架構(gòu)的機(jī)器上并由其執(zhí)行。優(yōu)選地,該機(jī)器在具有如一個(gè)或多個(gè)中央處理單元(CPU)、隨機(jī)存取存儲(chǔ)器(RAM)、以及輸入/輸出(I/O)接口的硬件的計(jì)算機(jī)平臺(tái)上實(shí)現(xiàn)。計(jì)算機(jī)平臺(tái)還包括操作系統(tǒng)和微指令碼。這里描述的各種處理和功能可以是經(jīng)由操作系統(tǒng)執(zhí)行的微指令碼的一部分或應(yīng)用程序的一部分(或其組合)。此外,諸如附加數(shù)據(jù)存儲(chǔ)設(shè)備和打印設(shè)備的各種其他的外圍設(shè)備可以連接到該計(jì)算機(jī)平臺(tái)。 還要理解,因?yàn)樵诟綀D中描繪的一些組成系統(tǒng)組件和方法步驟優(yōu)選地以軟件實(shí)現(xiàn),所以系統(tǒng)組件(或處理步驟)之間的實(shí)際連接可以依賴于編程本發(fā)明的方式而不同。給出這里的教導(dǎo),本領(lǐng)域普通技術(shù)人員將能夠預(yù)期本發(fā)明的這些和類似的實(shí)現(xiàn)或配置。
權(quán)利要求
1.一種服務(wù)器提供視頻點(diǎn)播的方法,所述方法包括接收對(duì)視頻內(nèi)容單元的請(qǐng)求;執(zhí)行準(zhǔn)許控制;將所述視頻內(nèi)容單元分段為多個(gè)視頻點(diǎn)播內(nèi)容子剪輯;計(jì)算要流傳輸?shù)那懊娴囊曨l點(diǎn)播內(nèi)容子剪輯的數(shù)量;以及流傳輸所述前面的視頻點(diǎn)播內(nèi)容子剪輯。
2.如權(quán)利要求I所述的方法,還包括下載剩余的視頻子剪輯。
3.如權(quán)利要求I所述的方法,其中所述視頻子剪輯具有相等大小。
全文摘要
描述了一種服務(wù)器提供視頻點(diǎn)播的方法,包括接收對(duì)視頻內(nèi)容單元的請(qǐng)求;執(zhí)行準(zhǔn)許控制;將所述視頻內(nèi)容單元分段為多個(gè)視頻點(diǎn)播內(nèi)容子剪輯;計(jì)算要流傳輸?shù)那懊娴囊曨l點(diǎn)播內(nèi)容子剪輯的數(shù)量;以及流傳輸所述前面的視頻點(diǎn)播內(nèi)容子剪輯。描述了一種用于提供視頻點(diǎn)播服務(wù)的方法,包括接收流傳輸?shù)那懊娴膬?nèi)容子剪輯;確定一組所需要的內(nèi)容子剪輯;定位該組所需要的內(nèi)容子剪輯中的一個(gè)內(nèi)容子剪輯;以及下載所定位的內(nèi)容子剪輯。描述了一種用于提供內(nèi)容點(diǎn)播服務(wù)的系統(tǒng),包括對(duì)等點(diǎn)、服務(wù)器和跟蹤器。跟蹤器可以與服務(wù)器共處一個(gè)位置。
文檔編號(hào)H04N21/472GK102638704SQ20121008388
公開日2012年8月15日 申請(qǐng)日期2006年6月27日 優(yōu)先權(quán)日2006年6月27日
發(fā)明者庫(kù)瑪.拉瑪斯瓦米, 索拉布.馬瑟, 郭陽(yáng) 申請(qǐng)人:湯姆森特許公司