專利名稱:一種p2p視頻點(diǎn)播系統(tǒng)合作數(shù)據(jù)預(yù)取方法
技術(shù)領(lǐng)域:
本申請涉及視頻點(diǎn)播技術(shù)領(lǐng)域,特別是涉及一種對等P2P視頻點(diǎn)播系統(tǒng)合作數(shù)據(jù)預(yù)取方法。
背景技術(shù):
基于P2P (Peer-to-Peer,對等)視頻點(diǎn)播系統(tǒng)技術(shù)的流媒體直播與點(diǎn)播系統(tǒng)具有良好的可擴(kuò)展性,可以較低的成本實(shí)現(xiàn)大規(guī)模的流媒體應(yīng)用。視頻點(diǎn)播系統(tǒng)允許用戶在任何時間選擇觀看感興趣的視頻內(nèi)容,并且支持隨機(jī)搜索、暫停、快進(jìn)快退等交互式操作,因而更受用戶歡迎。然而,用戶在播放時的隨機(jī)搜索行為改變了連續(xù)播放的數(shù)據(jù)需求模式,且隨機(jī)搜索行為具有很強(qiáng)的不確定性。在P2P視頻點(diǎn)播系統(tǒng)流媒體系統(tǒng)中,頻繁的隨機(jī)搜索行為會嚴(yán)重影響用戶觀看視頻的流暢性。當(dāng)用戶進(jìn)行隨機(jī)搜索操作時,播放進(jìn)度發(fā)生了改變,原來的鄰居結(jié)點(diǎn)通常不能滿足當(dāng)前新的數(shù)據(jù)需求。這種情況下,結(jié)點(diǎn)的緩存功能失去作用。在 P2P視頻點(diǎn)播系統(tǒng)流媒體系統(tǒng)中,數(shù)據(jù)來源于源服務(wù)器或其它對等結(jié)點(diǎn),在新的鄰居結(jié)點(diǎn)列表建立之前,只能從源服務(wù)器獲取數(shù)據(jù),從而增加了源服務(wù)器的壓力。若等待建立新的鄰居結(jié)點(diǎn)列表,從隨機(jī)搜索操作到再次播放將經(jīng)歷較長的時延。并且無論從何而來,現(xiàn)場獲取數(shù)據(jù)用于滿足播放需求都需要一定的時間。為了減小隨機(jī)搜索操作帶來的時延,可以設(shè)計(jì)優(yōu)化的數(shù)據(jù)存儲策略,使用戶盡可能在本地得到滿足隨機(jī)搜索需求所需要的數(shù)據(jù)塊。因此,如何設(shè)計(jì)好緩存或存儲策略,對于縮短響應(yīng)時延、降低源服務(wù)器負(fù)載和提高觀看流暢性非常重要。數(shù)據(jù)預(yù)取機(jī)制首先預(yù)測系統(tǒng)將來的數(shù)據(jù)需求,然后利用空閑資源提前獲取部分?jǐn)?shù)據(jù)。在P2P視頻點(diǎn)播系統(tǒng)中,如果可以預(yù)取部分?jǐn)?shù)據(jù)塊并保存在本地,當(dāng)用戶執(zhí)行隨機(jī)搜索操作時,首先在本地預(yù)取的數(shù)據(jù)集中查找。若預(yù)取數(shù)據(jù)可以滿足隨機(jī)搜索的需要,則可以有效縮短用戶隨機(jī)搜索操作的響應(yīng)時間,同時減輕源服務(wù)器的負(fù)荷。數(shù)據(jù)預(yù)取需解決兩個關(guān)鍵問題,即取什么和由誰來取。現(xiàn)有的數(shù)據(jù)預(yù)取方法通常假定用戶的隨機(jī)搜索操作范圍有限或毫無規(guī)律,因而采用順序預(yù)取或隨機(jī)預(yù)取策略。另外,現(xiàn)有的方法依據(jù)單個結(jié)點(diǎn)的帶寬和存儲能力決定預(yù)取數(shù)據(jù)塊的數(shù)量。由于單個結(jié)點(diǎn)的傳輸能力和存儲空間有限,結(jié)點(diǎn)只能預(yù)取少量數(shù)據(jù)塊甚至無法預(yù)取,從而限制了數(shù)據(jù)預(yù)取的作用。
發(fā)明內(nèi)容
有鑒于此,本申請實(shí)施例提供一種P2P視頻點(diǎn)播系統(tǒng)合作數(shù)據(jù)預(yù)取方法,可以在有限的預(yù)取緩存條件下達(dá)到較為理想的預(yù)取數(shù)據(jù)命中率,從而可以有效縮短系統(tǒng)響應(yīng)用戶隨機(jī)搜索操作的等待時間,提高P2P視頻點(diǎn)播系統(tǒng)視頻點(diǎn)播的服務(wù)質(zhì)量。為了實(shí)現(xiàn)上述目的,本申請實(shí)施例提供的技術(shù)方案如下一種對等P2P視頻點(diǎn)播系統(tǒng)合作數(shù)據(jù)預(yù)取方法,包括以下步驟當(dāng)一個結(jié)點(diǎn)加入到P2P視頻點(diǎn)播系統(tǒng)后,該結(jié)點(diǎn)建立一個以其為主結(jié)點(diǎn)的合作組或者加入到一個已建立的合作組中,所述合作組中包括一個主結(jié)點(diǎn)和若干個成員結(jié)點(diǎn),并且主結(jié)點(diǎn)的播放進(jìn)度與成員結(jié)點(diǎn)的播放進(jìn)度的差距在預(yù)設(shè)閾值內(nèi);所述合作組內(nèi)的主結(jié)點(diǎn)確定所述合作組的數(shù)據(jù)預(yù)取范圍,并根據(jù)所述數(shù)據(jù)預(yù)取范圍生成數(shù)據(jù)預(yù)取任務(wù),且定期將所述數(shù)據(jù)預(yù)取任務(wù)分配給所述合作組內(nèi)所有結(jié)點(diǎn);所述合作組內(nèi)的所有結(jié)點(diǎn)按照所分配的數(shù)據(jù)預(yù)取任務(wù)獲取相應(yīng)的數(shù)據(jù),并且將所獲取的數(shù)據(jù)信息發(fā)送給主結(jié)點(diǎn)。優(yōu)選地,當(dāng)一個結(jié)點(diǎn)加入到P2P視頻點(diǎn)播系統(tǒng)后,以該結(jié)點(diǎn)為主結(jié)點(diǎn)建立一個合作組或者將該結(jié)點(diǎn)加入到已建立的合作組中新加入的,具體為當(dāng)一個結(jié)點(diǎn)加入到P2P視頻點(diǎn)播系統(tǒng)后,該結(jié)點(diǎn)定期檢測是否處于某一個合作組內(nèi);如果否,該結(jié)點(diǎn)將向所有鄰居結(jié)點(diǎn)發(fā)出建立一個合作組的邀請信息,所述邀請信息內(nèi)攜帶有該結(jié)點(diǎn)的當(dāng)前播放進(jìn)度;該結(jié)點(diǎn)接收所有鄰居結(jié)點(diǎn)的答復(fù)消息,判斷建立合作組所需的結(jié)點(diǎn)數(shù)據(jù)是否達(dá)到建組要求數(shù)量;如果是,則建立一個以該結(jié)點(diǎn)為主結(jié)點(diǎn)的合作組,并向被邀請加入的結(jié)點(diǎn)發(fā)送確認(rèn)消息;如果否,則該結(jié)點(diǎn)向所有鄰居結(jié)點(diǎn)發(fā)送加入請求,所述加入請求內(nèi)攜帶有該結(jié)點(diǎn)的當(dāng)前播放進(jìn)度,若所述加入請求被某一個合作組接受,則該結(jié)點(diǎn)加入到該合作組中。優(yōu)選地,所述合作組內(nèi)的主結(jié)點(diǎn)確定所述合作組的數(shù)據(jù)預(yù)取范圍具體為所述合作組內(nèi)的主結(jié)點(diǎn)根據(jù)其所在的合作組的緩存大小以及當(dāng)前播放時間點(diǎn),利用用戶隨機(jī)搜索距離概率分布函數(shù)來確定數(shù)據(jù)預(yù)取范圍。優(yōu)選地,所述合作組內(nèi)的主結(jié)點(diǎn)定期將所述數(shù)據(jù)獲取任務(wù)分配給所述合作組內(nèi)所有的結(jié)點(diǎn),具體為所述合作組內(nèi)的主結(jié)點(diǎn)定期將所述數(shù)據(jù)獲取任務(wù)平均分配給所述合作組內(nèi)所有結(jié)點(diǎn),或者根據(jù)合作組內(nèi)各結(jié)點(diǎn)的能力按比例將所述數(shù)據(jù)獲取任務(wù)分配給所述合作組內(nèi)所有的結(jié)點(diǎn)。優(yōu)選地,所述合作組內(nèi)的所有結(jié)點(diǎn)按照所分配的數(shù)據(jù)預(yù)取任務(wù)獲取相應(yīng)的數(shù)據(jù), 具體為所述合作組內(nèi)的所有結(jié)點(diǎn)執(zhí)行其各自的正常數(shù)據(jù)獲取任務(wù);當(dāng)所述正常數(shù)據(jù)獲取任務(wù)完成后,所述合作組內(nèi)的所有結(jié)點(diǎn)判斷其是否具有多余帶寬和存儲能力;如果是,所述合作組內(nèi)的所有結(jié)點(diǎn)執(zhí)行預(yù)取數(shù)據(jù)預(yù)取任務(wù)。優(yōu)選地,該方法進(jìn)一步包括當(dāng)所述合作組內(nèi)的某一個結(jié)點(diǎn)進(jìn)行隨機(jī)搜索操作時,該結(jié)點(diǎn)向其所在的合作組內(nèi)的主結(jié)點(diǎn)發(fā)送數(shù)據(jù)請求;所述合作組內(nèi)的主結(jié)點(diǎn)判斷所述合作組內(nèi)是否存在與所述數(shù)據(jù)請求相對應(yīng)的數(shù)據(jù),如果是,將存有與所述數(shù)據(jù)請求相對應(yīng)的數(shù)據(jù)的結(jié)點(diǎn)信息發(fā)送給進(jìn)行隨機(jī)搜索操作的所述結(jié)點(diǎn);進(jìn)行隨機(jī)搜索操作的所述結(jié)點(diǎn)根據(jù)所述結(jié)點(diǎn)信息從相應(yīng)的結(jié)點(diǎn)中獲取與所述數(shù)據(jù)請求相對應(yīng)的數(shù)據(jù)。
優(yōu)選地,當(dāng)所述合作組內(nèi)的某一個結(jié)點(diǎn)進(jìn)行隨機(jī)搜索操作時,向其所在的合作組內(nèi)的主結(jié)點(diǎn)發(fā)送數(shù)據(jù)請求之前,還包括進(jìn)行隨機(jī)搜索操作的結(jié)點(diǎn)判斷其結(jié)點(diǎn)的緩存內(nèi)是否存在相應(yīng)的數(shù)據(jù),如果是,則從其結(jié)點(diǎn)內(nèi)緩存中獲取相應(yīng)的數(shù)據(jù);如果否,向其所在的合作組內(nèi)的主結(jié)點(diǎn)發(fā)送數(shù)據(jù)請求。優(yōu)選地,該方法進(jìn)一步包括所述合作組內(nèi)的主結(jié)點(diǎn)周期性向其所在組內(nèi)成員結(jié)點(diǎn)發(fā)送詢問消息,并接收成員結(jié)點(diǎn)的響應(yīng)消息;當(dāng)所述主結(jié)點(diǎn)未收到結(jié)點(diǎn)的響應(yīng)消息,則判定該成員結(jié)點(diǎn)失效或已經(jīng)離開該合作組;當(dāng)所述主結(jié)點(diǎn)接收到成員結(jié)點(diǎn)的響應(yīng)消息后,判斷該成員結(jié)點(diǎn)的播放進(jìn)度與主結(jié)點(diǎn)的播放進(jìn)度是否超過預(yù)設(shè)閾值,如果是,將該成員結(jié)點(diǎn)從該合作組內(nèi)刪除。優(yōu)選地,該方法進(jìn)一步包括所述合作組內(nèi)的主結(jié)點(diǎn)周期性統(tǒng)計(jì)所述合作組內(nèi)的結(jié)點(diǎn)的個數(shù);所述合作組內(nèi)的主結(jié)點(diǎn)判斷所述合作組內(nèi)結(jié)點(diǎn)的個數(shù)是否小于預(yù)設(shè)的建組要求數(shù)量,如果是,則所述合作組內(nèi)的主結(jié)點(diǎn)向鄰居結(jié)點(diǎn)發(fā)送邀請信息,以維持所述合作組內(nèi)結(jié)點(diǎn)數(shù)目的穩(wěn)定。由以上技術(shù)方案可見,本申請實(shí)施例提供的該P(yáng)2P視頻點(diǎn)播系統(tǒng)合作數(shù)據(jù)預(yù)取方法,針對P2P視頻點(diǎn)播系統(tǒng)中的隨機(jī)搜索行為采取了合作預(yù)取的方法,在合作組內(nèi)由該合作組內(nèi)的主結(jié)點(diǎn)來確定數(shù)據(jù)預(yù)取范圍,并由合作組內(nèi)的所有結(jié)點(diǎn)來預(yù)取數(shù)據(jù),并且在預(yù)取數(shù)據(jù)塊時考慮了用戶隨機(jī)搜索距離的分布特征。該方法針對結(jié)點(diǎn)緩存的有限性,提出了多結(jié)點(diǎn)合作預(yù)取并共享數(shù)據(jù)的方法,盡可能地增加預(yù)取數(shù)據(jù)的數(shù)量,進(jìn)而提高隨機(jī)搜索的數(shù)據(jù)命中率,有效的縮短系統(tǒng)響應(yīng)用戶隨機(jī)搜索操作的等待時間,從而保證視頻播放的連續(xù)性。與現(xiàn)有技術(shù)相比,該方法支持隨機(jī)搜索、暫停、快進(jìn)快退等交互式操作,允許用戶在任何時間選擇觀看感興趣的視頻內(nèi)容,并可以在同等網(wǎng)絡(luò)條件下縮短P2P視頻點(diǎn)播系統(tǒng)流媒體點(diǎn)播系統(tǒng)響應(yīng)用戶隨機(jī)搜索操作的等待時間,顯著提高用戶的使用體驗(yàn)。
為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,下面描述中的附圖僅僅是本申請中記載的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的技術(shù)方案與表述方式。圖1為本申請實(shí)施例一提供的P2P視頻點(diǎn)播系統(tǒng)合作數(shù)據(jù)預(yù)取方法的流程示意圖;圖2為圖1中SlOO的詳細(xì)流程示意圖;圖3為在不同播放長度條件下本申請實(shí)施例提供的該合作數(shù)據(jù)預(yù)取方法與現(xiàn)有的順序預(yù)取、隨機(jī)預(yù)取方法的隨機(jī)搜索的數(shù)據(jù)命中率;圖4為在不同預(yù)取緩存大小條件下本申請實(shí)施例提供的該合作數(shù)據(jù)預(yù)取方法與現(xiàn)有的順序預(yù)取、隨機(jī)預(yù)取方法的隨機(jī)搜索的數(shù)據(jù)命中率;圖5為本申請實(shí)施例二提供的P2P視頻點(diǎn)播系統(tǒng)合作數(shù)據(jù)預(yù)取方法的流程示意圖6為本申請實(shí)施例三提供的P2P視頻點(diǎn)播系統(tǒng)合作數(shù)據(jù)預(yù)取方法的流程示意圖7為本申請實(shí)施例四提供的P2P視頻點(diǎn)播系統(tǒng)合作數(shù)據(jù)預(yù)取方法的流程示意
具體實(shí)施例方式為了使 本技術(shù)領(lǐng)域的人員更好地理解本申請中的技術(shù)方案,下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。顯然,下述的實(shí)施例僅僅是本申請的代表性實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實(shí)施例,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。為解決現(xiàn)有的數(shù)據(jù)預(yù)取機(jī)制存在的問題,本申請公開了一種P2P視頻點(diǎn)播系統(tǒng)合作數(shù)據(jù)預(yù)取方法,該方法根據(jù)用戶隨機(jī)搜索距離的分布特征準(zhǔn)確地預(yù)測待預(yù)取的數(shù)據(jù)范圍,針對搜索距離分布具有長尾特性的統(tǒng)計(jì)結(jié)果,設(shè)計(jì)了一種多結(jié)點(diǎn)合作預(yù)取并共享數(shù)據(jù)的方法,利用本申請?zhí)峁┑姆椒梢栽谟邢薜念A(yù)取緩存條件下達(dá)到較為理想的預(yù)取數(shù)據(jù)命中率,從而有效縮短系統(tǒng)響應(yīng)用戶隨機(jī)搜索操作的等待時間,提高P2P視頻點(diǎn)播系統(tǒng)視頻點(diǎn)播的服務(wù)質(zhì)量。實(shí)施例一圖1為本申請實(shí)施例一提供的P2P視頻點(diǎn)播系統(tǒng)合作數(shù)據(jù)預(yù)取方法的流程示意圖。如圖1所示,該方法包括以下步驟SlOO 當(dāng)一個結(jié)點(diǎn)加入到P2P視頻點(diǎn)播系統(tǒng)后,該結(jié)點(diǎn)建立一個以其為主結(jié)點(diǎn)的合作組或者加入到已建立的合作組中。在P2P視頻點(diǎn)播系統(tǒng)中,結(jié)點(diǎn)的播放是異步的。由于結(jié)點(diǎn)緩存有限,播放進(jìn)度相差較大的結(jié)點(diǎn)數(shù)據(jù)緩存不存在相交的部分,因而不能通過緩存互相提供數(shù)據(jù)。比如,播放到視頻結(jié)尾的結(jié)點(diǎn)早已刪除了視頻初始數(shù)據(jù),剛開始播放的結(jié)點(diǎn)無法從這些結(jié)點(diǎn)的緩存中獲取有用的數(shù)據(jù)。因此有必要將播放進(jìn)度相同或相近的結(jié)點(diǎn)組成合作組。合作組可用一個五元組表示,即(主結(jié)點(diǎn),成員列表,當(dāng)前播放進(jìn)度,最小成員數(shù),最大成員數(shù)),其中最小成員數(shù)即為建組要求數(shù)量。在一個合作組內(nèi)包括一個主結(jié)點(diǎn)和若干成員結(jié)點(diǎn),主結(jié)點(diǎn)通常為發(fā)起建組的結(jié)點(diǎn),其作用是對合作組進(jìn)行維護(hù),并且向合作組內(nèi)的成員結(jié)點(diǎn)分配任務(wù),起到協(xié)調(diào)者的作用;若干個成員結(jié)點(diǎn)的作用是根據(jù)主結(jié)點(diǎn)分配的任務(wù)進(jìn)行數(shù)據(jù)預(yù)取。合作組內(nèi)的主結(jié)點(diǎn)的播放進(jìn)度與成員結(jié)點(diǎn)的播放進(jìn)度的差距在預(yù)設(shè)閾值內(nèi),這樣可以確保合作組內(nèi)的所有結(jié)點(diǎn)的播放進(jìn)度在一個較小的范圍,避免了由于結(jié)點(diǎn)播放進(jìn)度相差較大而導(dǎo)致結(jié)點(diǎn)緩存內(nèi)不存在相交的部分。在本申請實(shí)施例中,如圖2所示,該步驟具體包括以下步驟SlOl 當(dāng)一個結(jié)點(diǎn)加入到P2P視頻點(diǎn)播系統(tǒng)后,該結(jié)點(diǎn)定期檢測是否處于某一個合作組內(nèi)。
為了實(shí)現(xiàn)合作預(yù)取,每一個結(jié)點(diǎn)在加入到P2P視頻點(diǎn)播系統(tǒng)后,都需要檢測其是否位于合作組內(nèi),為后續(xù)進(jìn)入合適的合作組做準(zhǔn)備。如果當(dāng)前結(jié)點(diǎn)沒有位于任何一個合作組內(nèi),進(jìn)行步S102。S102 該結(jié)點(diǎn)將向所有鄰居結(jié)點(diǎn)發(fā)出建立一個合作組的邀請信息。這里邀請信息內(nèi)攜帶有該結(jié)點(diǎn)的當(dāng)前播放進(jìn)度,用于尋找和其播放進(jìn)度相當(dāng)?shù)暮献鹘M。另外,每一個結(jié)點(diǎn)在接收其它結(jié)點(diǎn)發(fā)起的邀請信息時,只能選擇接受其中的一個邀請。S103:該結(jié)點(diǎn)接收所有鄰居結(jié)點(diǎn)的答復(fù)消息,判斷建立合作組所需的結(jié)點(diǎn)數(shù)據(jù)是否達(dá)到建組要求數(shù)量。如果達(dá)到建組要求數(shù)量,那么進(jìn)行S104;如果沒有達(dá)到建組要求數(shù)量,則進(jìn)行 S105。S104:建立一個以該結(jié)點(diǎn)為主結(jié)點(diǎn)的合作組,并向被邀請加入的結(jié)點(diǎn)發(fā)送確認(rèn)消肩、οS105 該結(jié)點(diǎn)向所有鄰居結(jié)點(diǎn)發(fā)送加入請求。加入請求內(nèi)攜帶有該結(jié)點(diǎn)的當(dāng)前播放進(jìn)度,若所述加入請求被某一個合作組接受,則該結(jié)點(diǎn)就可以加入到該合作組中。S200:合作組內(nèi)的主結(jié)點(diǎn)確定所述合作組的數(shù)據(jù)預(yù)取范圍,并根據(jù)數(shù)據(jù)預(yù)取范圍生成數(shù)據(jù)預(yù)取任務(wù),且定期將所述數(shù)據(jù)預(yù)取任務(wù)分配給所述合作組內(nèi)所有結(jié)點(diǎn)。在合作組內(nèi),主結(jié)點(diǎn)需要首先根據(jù)隨機(jī)搜索范圍的概率分布和當(dāng)前的播放進(jìn)度 (也就是播放時間點(diǎn)),確定預(yù)取數(shù)據(jù)的范圍,包括預(yù)取數(shù)據(jù)的起點(diǎn)與預(yù)取數(shù)據(jù)的終點(diǎn)。另外,在確定數(shù)據(jù)預(yù)取范圍時,主結(jié)點(diǎn)還需要考慮其所在的合作組的緩存大小。雖然存在播放熱點(diǎn),但由于用戶對視頻內(nèi)容的無知性,用戶的隨機(jī)搜索距離具有長尾特性,并符合Weibull概率密度函數(shù),Weibull概率密度函數(shù)公式如下
權(quán)利要求
1.一種對等P2P視頻點(diǎn)播系統(tǒng)合作數(shù)據(jù)預(yù)取方法,其特征在于,包括以下步驟當(dāng)一個結(jié)點(diǎn)加入到P2P視頻點(diǎn)播系統(tǒng)后,該結(jié)點(diǎn)建立一個以其為主結(jié)點(diǎn)的合作組或者加入到一個已建立的合作組中,所述合作組中包括一個主結(jié)點(diǎn)和若干個成員結(jié)點(diǎn),并且主結(jié)點(diǎn)的播放進(jìn)度與成員結(jié)點(diǎn)的播放進(jìn)度的差距在預(yù)設(shè)閾值內(nèi);所述合作組內(nèi)的主結(jié)點(diǎn)確定所述合作組的數(shù)據(jù)預(yù)取范圍,并根據(jù)所述數(shù)據(jù)預(yù)取范圍生成數(shù)據(jù)預(yù)取任務(wù),且定期將所述數(shù)據(jù)預(yù)取任務(wù)分配給所述合作組內(nèi)所有結(jié)點(diǎn);所述合作組內(nèi)的所有結(jié)點(diǎn)按照所分配的數(shù)據(jù)預(yù)取任務(wù)獲取相應(yīng)的數(shù)據(jù),并且將所獲取的數(shù)據(jù)信息發(fā)送給主結(jié)點(diǎn)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)一個結(jié)點(diǎn)加入到P2P視頻點(diǎn)播系統(tǒng)后, 以該結(jié)點(diǎn)為主結(jié)點(diǎn)建立一個合作組或者將該結(jié)點(diǎn)加入到已建立的合作組中新加入的,具體為當(dāng)一個結(jié)點(diǎn)加入到P2P視頻點(diǎn)播系統(tǒng)后,該結(jié)點(diǎn)定期檢測是否處于某一個合作組內(nèi);如果否,該結(jié)點(diǎn)將向所有鄰居結(jié)點(diǎn)發(fā)出建立一個合作組的邀請信息,所述邀請信息內(nèi)攜帶有該結(jié)點(diǎn)的當(dāng)前播放進(jìn)度;該結(jié)點(diǎn)接收所有鄰居結(jié)點(diǎn)的答復(fù)消息,判斷建立合作組所需的結(jié)點(diǎn)數(shù)據(jù)是否達(dá)到建組要求數(shù)量;如果是,則建立一個以該結(jié)點(diǎn)為主結(jié)點(diǎn)的合作組,并向被邀請加入的結(jié)點(diǎn)發(fā)送確認(rèn)消息;如果否,則該結(jié)點(diǎn)向所有鄰居結(jié)點(diǎn)發(fā)送加入請求,所述加入請求內(nèi)攜帶有該結(jié)點(diǎn)的當(dāng)前播放進(jìn)度,若所述加入請求被某一個合作組接受,則該結(jié)點(diǎn)加入到該合作組中。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述合作組內(nèi)的主結(jié)點(diǎn)確定所述合作組的數(shù)據(jù)預(yù)取范圍具體為所述合作組內(nèi)的主結(jié)點(diǎn)根據(jù)其所在的合作組的緩存大小以及當(dāng)前播放時間點(diǎn),利用用戶隨機(jī)搜索距離概率分布函數(shù)來確定數(shù)據(jù)預(yù)取范圍。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述合作組內(nèi)的主結(jié)點(diǎn)定期將所述數(shù)據(jù)獲取任務(wù)分配給所述合作組內(nèi)所有的結(jié)點(diǎn),具體為所述合作組內(nèi)的主結(jié)點(diǎn)定期將所述數(shù)據(jù)獲取任務(wù)平均分配給所述合作組內(nèi)所有結(jié)點(diǎn), 或者根據(jù)合作組內(nèi)各結(jié)點(diǎn)的能力按比例將所述數(shù)據(jù)獲取任務(wù)分配給所述合作組內(nèi)所有的結(jié)點(diǎn)ο
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述合作組內(nèi)的所有結(jié)點(diǎn)按照所分配的數(shù)據(jù)預(yù)取任務(wù)獲取相應(yīng)的數(shù)據(jù),具體為所述合作組內(nèi)的所有結(jié)點(diǎn)執(zhí)行其各自的正常數(shù)據(jù)獲取任務(wù);當(dāng)所述正常數(shù)據(jù)獲取任務(wù)完成后,所述合作組內(nèi)的所有結(jié)點(diǎn)判斷其是否具有多余帶寬和存儲能力;如果是,所述合作組內(nèi)的所有結(jié)點(diǎn)執(zhí)行預(yù)取數(shù)據(jù)預(yù)取任務(wù)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括當(dāng)所述合作組內(nèi)的某一個結(jié)點(diǎn)進(jìn)行隨機(jī)搜索操作時,該結(jié)點(diǎn)向其所在的合作組內(nèi)的主結(jié)點(diǎn)發(fā)送數(shù)據(jù)請求;所述合作組內(nèi)的主結(jié)點(diǎn)判斷所述合作組內(nèi)是否存在與所述數(shù)據(jù)請求相對應(yīng)的數(shù)據(jù),如果是,將存有與所述數(shù)據(jù)請求相對應(yīng)的數(shù)據(jù)的結(jié)點(diǎn)信息發(fā)送給進(jìn)行隨機(jī)搜索操作的所述結(jié)占.^ \\\ 進(jìn)行隨機(jī)搜索操作的所述結(jié)點(diǎn)根據(jù)所述結(jié)點(diǎn)信息從相應(yīng)的結(jié)點(diǎn)中獲取與所述數(shù)據(jù)請求相對應(yīng)的數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,當(dāng)所述合作組內(nèi)的某一個結(jié)點(diǎn)進(jìn)行隨機(jī)搜索操作時,向其所在的合作組內(nèi)的主結(jié)點(diǎn)發(fā)送數(shù)據(jù)請求之前,還包括進(jìn)行隨機(jī)搜索操作的結(jié)點(diǎn)判斷其結(jié)點(diǎn)的緩存內(nèi)是否存在相應(yīng)的數(shù)據(jù),如果是,則從其結(jié)點(diǎn)內(nèi)緩存中獲取相應(yīng)的數(shù)據(jù);如果否,向其所在的合作組內(nèi)的主結(jié)點(diǎn)發(fā)送數(shù)據(jù)請求。
8.根據(jù)權(quán)利要求1或6所述的方法,其特征在于,進(jìn)一步包括所述合作組內(nèi)的主結(jié)點(diǎn)周期性向其所在組內(nèi)成員結(jié)點(diǎn)發(fā)送詢問消息,并接收成員結(jié)點(diǎn)的響應(yīng)消息;當(dāng)所述主結(jié)點(diǎn)未收到結(jié)點(diǎn)的響應(yīng)消息,則判定該成員結(jié)點(diǎn)失效或已經(jīng)離開該合作組; 當(dāng)所述主結(jié)點(diǎn)接收到成員結(jié)點(diǎn)的響應(yīng)消息后,判斷該成員結(jié)點(diǎn)的播放進(jìn)度與主結(jié)點(diǎn)的播放進(jìn)度是否超過預(yù)設(shè)閾值,如果是,將該成員結(jié)點(diǎn)從該合作組內(nèi)刪除。
9.根據(jù)權(quán)利要求1或6所述的方法,其特征在于,進(jìn)一步包括 所述合作組內(nèi)的主結(jié)點(diǎn)周期性統(tǒng)計(jì)所述合作組內(nèi)的結(jié)點(diǎn)的個數(shù);所述合作組內(nèi)的主結(jié)點(diǎn)判斷所述合作組內(nèi)結(jié)點(diǎn)的個數(shù)是否小于預(yù)設(shè)的建組要求數(shù)量, 如果是,則所述合作組內(nèi)的主結(jié)點(diǎn)向鄰居結(jié)點(diǎn)發(fā)送邀請信息,以維持所述合作組內(nèi)結(jié)點(diǎn)數(shù)目的穩(wěn)定。
全文摘要
本申請公開了一種P2P視頻點(diǎn)播系統(tǒng)合作數(shù)據(jù)預(yù)取方法,包括當(dāng)一個結(jié)點(diǎn)加入到P2P視頻點(diǎn)播系統(tǒng)后,該結(jié)點(diǎn)建立一個以其為主結(jié)點(diǎn)的合作組或者加入到一個已建立的合作組中;合作組內(nèi)的主結(jié)點(diǎn)確定合作組的數(shù)據(jù)預(yù)取范圍,并生成數(shù)據(jù)獲取任務(wù),且定期將數(shù)據(jù)獲取任務(wù)分配給合作組內(nèi)所有結(jié)點(diǎn),合作組內(nèi)的所有結(jié)點(diǎn)按照所分配的數(shù)據(jù)預(yù)取范圍獲取相應(yīng)的數(shù)據(jù),并且將所獲取的數(shù)據(jù)信息發(fā)送給主結(jié)點(diǎn)。該方法針對結(jié)點(diǎn)緩存的有限性,提出了多結(jié)點(diǎn)合作預(yù)取并共享數(shù)據(jù)的方法,盡可能地增加預(yù)取數(shù)據(jù)的數(shù)量,進(jìn)而提高隨機(jī)搜索的數(shù)據(jù)命中率,有效的縮短系統(tǒng)響應(yīng)用戶隨機(jī)搜索操作的等待時間,從而保證視頻播放的連續(xù)性。
文檔編號H04N21/63GK102447974SQ201110342410
公開日2012年5月9日 申請日期2011年11月3日 優(yōu)先權(quán)日2011年11月3日
發(fā)明者朱艷琴, 楊哲, 紀(jì)其進(jìn) 申請人:蘇州大學(xué)