基于預(yù)連接的動(dòng)態(tài)資源下載方法
【專利摘要】本發(fā)明基于預(yù)連接的動(dòng)態(tài)資源下載方法,包括:a.分片數(shù)據(jù)塊預(yù)下載算法:在預(yù)下載周期開始時(shí),根據(jù)數(shù)據(jù)的健康度對(duì)未預(yù)下載的數(shù)據(jù)分片塊進(jìn)行排序,再選取窗口頭部的一個(gè)數(shù)據(jù)分片塊,按編號(hào)放置入內(nèi)存中;b.緊急數(shù)據(jù)通道算法:將媒體緩沖區(qū)分為播放區(qū)、緊急數(shù)據(jù)區(qū)和預(yù)留區(qū)三個(gè)部分;c.預(yù)連接的對(duì)等節(jié)點(diǎn)選擇算法:在一個(gè)調(diào)度周期開始時(shí),對(duì)所有連接根據(jù)數(shù)據(jù)到達(dá)的時(shí)間排序,并更新分片到達(dá)時(shí)間;在各對(duì)等點(diǎn)連接在收到數(shù)據(jù)分片時(shí)測(cè)速,并更新連接。本發(fā)明能夠有效提高數(shù)據(jù)的及時(shí)到達(dá)率,解決網(wǎng)絡(luò)負(fù)載均衡問題,減少數(shù)據(jù)重傳率,且增加系統(tǒng)的穩(wěn)定性,在不可預(yù)測(cè)的網(wǎng)絡(luò)環(huán)境下也能夠有效保證數(shù)據(jù)實(shí)時(shí)性,明顯提高了數(shù)據(jù)的完整性和正確性。
【專利說明】基于預(yù)連接的動(dòng)態(tài)資源下載方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)資源下載的方法,特別適合但不僅限于在P2P系統(tǒng)中基于預(yù)連接的動(dòng)態(tài)資源下載方法。
【背景技術(shù)】
[0002]互聯(lián)網(wǎng)技術(shù)的高速發(fā)展使得多媒體服務(wù)得到快速發(fā)展。基于對(duì)等網(wǎng)絡(luò)(Peer toPeer,簡(jiǎn)稱P2P)的流媒體技術(shù),能夠克服傳統(tǒng)的基于C/S (Client/Service)模型網(wǎng)絡(luò)架構(gòu)的流媒體服務(wù)受帶寬、服務(wù)器性能等因素限制的缺點(diǎn),使得大規(guī)模的流媒體傳輸、應(yīng)用成為現(xiàn)實(shí)。在基于P2P技術(shù)的應(yīng)用系統(tǒng)中,資源下載算法涉及到資源的及時(shí)到達(dá)率、資源的完整性和均衡負(fù)載等多個(gè)方面,在系統(tǒng)設(shè)計(jì)中一直占據(jù)著非常重要的位置。
[0003]雖然P2P直播系統(tǒng)和文件系統(tǒng)的應(yīng)用得到認(rèn)可,但基于P2P的點(diǎn)播系統(tǒng)與直播系統(tǒng)相比,在資源下載方面,它的優(yōu)勢(shì)在于點(diǎn)播系統(tǒng)的數(shù)據(jù)文件大小的預(yù)見性,劣勢(shì)在于點(diǎn)播系統(tǒng)需要分布式存儲(chǔ)媒體文件;而基于P2P的點(diǎn)播系統(tǒng)與文件系統(tǒng)相比,又有嚴(yán)格的數(shù)據(jù)實(shí)時(shí)性要求。因此,P2P直播系統(tǒng)和文件系統(tǒng)的算法都不適用于P2P點(diǎn)播系統(tǒng),因此需要一種新的動(dòng)態(tài)資源下載算法,來改善數(shù)據(jù)的及時(shí)到達(dá)率。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供了一種基于預(yù)連接的動(dòng)態(tài)資源下載方法,以改善數(shù)據(jù)的及時(shí)到達(dá)率,特別是在不可預(yù)測(cè)的網(wǎng)絡(luò)環(huán)境下可以保證數(shù)據(jù)實(shí)時(shí)性,提高數(shù)據(jù)的完整性和正確性。
[0005]本發(fā)明基于預(yù)連接的動(dòng)態(tài)資源下載方法,包括:
[0006]a.分片數(shù)據(jù)塊預(yù)下載算法:在一個(gè)預(yù)下載周期開始時(shí),清除數(shù)據(jù)分片塊號(hào)等于當(dāng)前正在播放的數(shù)據(jù)分片塊號(hào)的分片塊,當(dāng)新的數(shù)據(jù)分片塊進(jìn)入資源預(yù)下載區(qū)時(shí),系統(tǒng)向服務(wù)器請(qǐng)求獲取該數(shù)據(jù)分片塊的健康程度,并根據(jù)所述的健康度,對(duì)窗口內(nèi)未預(yù)下載的數(shù)據(jù)分片塊按照編號(hào)進(jìn)行排序,再選取窗口頭部的一個(gè)數(shù)據(jù)分片塊,將分片塊中的每個(gè)分片依據(jù)分片編號(hào),按所述編號(hào)順序放置入用于存放待發(fā)出請(qǐng)求的數(shù)據(jù)分片的集合的內(nèi)存中;
[0007]b.緊急數(shù)據(jù)通道算法:將媒體緩沖區(qū)分為播放區(qū)、緊急數(shù)據(jù)區(qū)和預(yù)留區(qū)三個(gè)部分,其中播放區(qū)中數(shù)據(jù)是馬上要發(fā)送給播放器的數(shù)據(jù);緊急數(shù)據(jù)區(qū)中的數(shù)據(jù)是系統(tǒng)即將發(fā)送給播放器的數(shù)據(jù);預(yù)留區(qū)中的數(shù)據(jù),是系統(tǒng)準(zhǔn)備發(fā)送給播放器的數(shù)據(jù);
[0008]c.預(yù)連接的對(duì)等節(jié)點(diǎn)選擇算法:在一個(gè)調(diào)度周期開始時(shí),清空當(dāng)前沒有發(fā)起請(qǐng)求的連接,然后對(duì)所有連接根據(jù)數(shù)據(jù)分片到達(dá)的時(shí)間排序,再分配剩下的最短數(shù)據(jù)分片到達(dá)時(shí)間的對(duì)等連接給下一個(gè)需要下載的數(shù)據(jù)分片資源,并更新各連接的數(shù)據(jù)分片到達(dá)時(shí)間;針對(duì)每個(gè)對(duì)等點(diǎn)連接在收到一個(gè)數(shù)據(jù)分片時(shí)進(jìn)行測(cè)速,同時(shí)按照預(yù)分配調(diào)度的次序發(fā)起新的連接請(qǐng)求,并立刻更新。
[0009]數(shù)據(jù)分片塊預(yù)下載策略用來降低數(shù)據(jù)在網(wǎng)絡(luò)中的健康程度差異給數(shù)據(jù)的及時(shí)到達(dá)可能帶來的影響;緊急數(shù)據(jù)通道策略是保證系統(tǒng)在將數(shù)據(jù)投送給播放器之前的盡量完整;基于預(yù)連接的對(duì)等節(jié)點(diǎn)選擇策略用來降低對(duì)等節(jié)點(diǎn)的性能差異給數(shù)據(jù)的及時(shí)到達(dá)帶來的影響。
[0010]從整個(gè)系統(tǒng)的體系結(jié)構(gòu)上看,若將系統(tǒng)自上而下分為應(yīng)用層、文件系統(tǒng)層、會(huì)話層,網(wǎng)絡(luò)層,數(shù)據(jù)分片塊預(yù)下載選擇策略服務(wù)于應(yīng)用層,緊急數(shù)據(jù)通道策略服務(wù)于文件系統(tǒng)層,而基于預(yù)連接的對(duì)等節(jié)點(diǎn)選擇策略服務(wù)于會(huì)話層。
[0011]三者的服務(wù)對(duì)象也有所區(qū)別,數(shù)據(jù)分片塊預(yù)下載策略的服務(wù)對(duì)象是系統(tǒng)可能會(huì)投遞給播放器的若干個(gè)數(shù)據(jù)分片塊;緊急數(shù)據(jù)通道策略針對(duì)的是系統(tǒng)即將投遞給播放器的若干個(gè)數(shù)據(jù)分片;基于預(yù)連接的對(duì)等節(jié)點(diǎn)選擇的服務(wù)對(duì)象則是對(duì)等節(jié)點(diǎn)。
[0012]具體的,步驟a中,根據(jù)所述的健康度,對(duì)窗口內(nèi)未預(yù)下載的數(shù)據(jù)分片塊由低到高進(jìn)行排序,若出現(xiàn)健康程度相同的分片塊,則按照其編號(hào)進(jìn)行由低到高排序。
[0013]具體的,步驟b中,在播放區(qū)中的數(shù)據(jù)如果缺失,系統(tǒng)不從網(wǎng)絡(luò)下載丟失的數(shù)據(jù)分片。
[0014]具體的,步驟b中,在緊急數(shù)據(jù)區(qū)中的數(shù)據(jù)如果缺失,系統(tǒng)將缺失的數(shù)據(jù)放入緊急通道,并優(yōu)先從網(wǎng)絡(luò)下載缺失的數(shù)據(jù)分片。
[0015]具體的,步驟b中,在預(yù)留區(qū)中的數(shù)據(jù)如果缺失,需求程度低于緊急數(shù)據(jù)區(qū)中的數(shù)據(jù),系統(tǒng)進(jìn)行隨即下載。
[0016]進(jìn)一步的,每個(gè)調(diào)度周期都進(jìn)行一次步驟C。
[0017]可選的,所述的數(shù)據(jù)下載是從對(duì)等網(wǎng)絡(luò)(P2P)中進(jìn)行下載,也可以在適合的其它網(wǎng)絡(luò)環(huán)境中應(yīng)用。
[0018]本發(fā)明基于預(yù)連接的動(dòng)態(tài)資源下載方法,能夠有效提高數(shù)據(jù)的及時(shí)到達(dá)率,解決網(wǎng)絡(luò)負(fù)載均衡問題,減少數(shù)據(jù)重傳率,且增加系統(tǒng)的穩(wěn)定性,在不可預(yù)測(cè)的網(wǎng)絡(luò)環(huán)境下也能夠有效保證數(shù)據(jù)實(shí)時(shí)性,明顯提高了數(shù)據(jù)的完整性和正確性。
[0019]以下結(jié)合實(shí)施例的【具體實(shí)施方式】,對(duì)本發(fā)明的上述內(nèi)容再作進(jìn)一步的詳細(xì)說明。但不應(yīng)將此理解為本發(fā)明上述主題的范圍僅限于以下的實(shí)例。在不脫離本發(fā)明上述技術(shù)思想情況下,根據(jù)本領(lǐng)域普通技術(shù)知識(shí)和慣用手段做出的各種替換或變更,均應(yīng)包括在本發(fā)明的范圍內(nèi)。
【具體實(shí)施方式】
[0020]本發(fā)明基于預(yù)連接的動(dòng)態(tài)資源下載方法,包括:
[0021]a.分片數(shù)據(jù)塊預(yù)下載算法:分片數(shù)據(jù)塊預(yù)下載算法的一個(gè)重要角色是資源預(yù)下載區(qū),資源預(yù)下載區(qū)是一種存儲(chǔ)數(shù)據(jù)分片塊下載狀態(tài)的滑動(dòng)緩沖區(qū)。資源預(yù)下載區(qū)中的基本成員為當(dāng)前正在播放的數(shù)據(jù)分片塊號(hào)Block_num,狀態(tài)State,其中State分為已下載、未下載、正在下載三種。
[0022]資源預(yù)下載區(qū)大小為N,資源預(yù)下載區(qū)包含的是分片塊號(hào)大于Bl0Ck_n0W的N個(gè)連續(xù)分片塊的信息。
[0023]步驟al:查看資源預(yù)下載區(qū)的狀態(tài):
[0024](I)在一個(gè)預(yù)下載周期開始時(shí),清除數(shù)據(jù)分片塊號(hào)等于當(dāng)前正在播放的數(shù)據(jù)分片塊號(hào)Block_num的分片塊。預(yù)下載周期是播放器播放一個(gè)數(shù)據(jù)分片塊所需的時(shí)間,計(jì)算公式為:
[0025]T=Size_block/(Size_piece X Speed_play)[0026]其中,SiZe_pieCe是下載數(shù)據(jù)的最小單位,大小固定,根據(jù)經(jīng)驗(yàn)數(shù)據(jù),設(shè)為16K,即Size—piece=16K。
[0027]流媒體文件平均播放速度Speed_play為I秒鐘播放器播放的分片數(shù),計(jì)算公式如下:
[0028]
【權(quán)利要求】
1.基于預(yù)連接的動(dòng)態(tài)資源下載方法,其特征包括: a.分片數(shù)據(jù)塊預(yù)下載算法:在一個(gè)預(yù)下載周期開始時(shí),清除數(shù)據(jù)分片塊號(hào)等于當(dāng)前正在播放的數(shù)據(jù)分片塊號(hào)的分片塊,當(dāng)新的數(shù)據(jù)分片塊進(jìn)入資源預(yù)下載區(qū)時(shí),系統(tǒng)向服務(wù)器請(qǐng)求獲取該數(shù)據(jù)分片塊的健康程度,并根據(jù)所述的健康度,對(duì)窗口內(nèi)未預(yù)下載的數(shù)據(jù)分片塊按照編號(hào)進(jìn)行排序,再選取窗口頭部的一個(gè)數(shù)據(jù)分片塊,將分片塊中的每個(gè)分片依據(jù)分片編號(hào),按所述編號(hào)順序放置入用于存放待發(fā)出請(qǐng)求的數(shù)據(jù)分片的集合的內(nèi)存中; b.緊急數(shù)據(jù)通道算法:將媒體緩沖區(qū)分為播放區(qū)、緊急數(shù)據(jù)區(qū)和預(yù)留區(qū)三個(gè)部分,其中播放區(qū)中數(shù)據(jù)是馬上要發(fā)送給播放器的數(shù)據(jù);緊急數(shù)據(jù)區(qū)中的數(shù)據(jù)是系統(tǒng)即將發(fā)送給播放器的數(shù)據(jù);預(yù)留區(qū)中的數(shù)據(jù),是系統(tǒng)準(zhǔn)備發(fā)送給播放器的數(shù)據(jù); c.預(yù)連接的對(duì)等節(jié)點(diǎn)選擇算法:在一個(gè)調(diào)度周期開始時(shí),清空當(dāng)前沒有發(fā)起請(qǐng)求的連接,然后對(duì)所有連接根據(jù)數(shù)據(jù)分片到達(dá)的時(shí)間排序,再分配剩下的最短數(shù)據(jù)分片到達(dá)時(shí)間的對(duì)等連接給下一個(gè)需要下載的數(shù)據(jù)分片資源,并更新各連接的數(shù)據(jù)分片到達(dá)時(shí)間;針對(duì)每個(gè)對(duì)等點(diǎn)連接在收到一個(gè)數(shù)據(jù)分片時(shí)進(jìn)行測(cè)速,同時(shí)按照預(yù)分配調(diào)度的次序發(fā)起新的連接請(qǐng)求,并立刻更新。
2.如權(quán)利要求1所述的基于預(yù)連接的動(dòng)態(tài)資源下載方法,其特征為:步驟a中,根據(jù)所述的健康度,對(duì)窗口內(nèi)未預(yù)下載的數(shù)據(jù)分片塊由低到高進(jìn)行排序,若出現(xiàn)健康程度相同的分片塊,則按照其編號(hào)進(jìn)行由低到高排序。
3.如權(quán)利要求1所述的基于預(yù)連接的動(dòng)態(tài)資源下載方法,其特征為:步驟b中,在播放區(qū)中的數(shù)據(jù)如果缺失,系統(tǒng)不從網(wǎng)絡(luò)下載丟失的數(shù)據(jù)分片。
4.如權(quán)利要求1所述的基于預(yù)連接的動(dòng)態(tài)資源下載方法,其特征為:步驟b中,在緊急數(shù)據(jù)區(qū)中的數(shù)據(jù)如果缺失,系統(tǒng)將缺失的數(shù)據(jù)放入緊急通道,并優(yōu)先從網(wǎng)絡(luò)下載缺失的數(shù)據(jù)分片。
5.如權(quán)利要求1所述的基于預(yù)連接的動(dòng)態(tài)資源下載方法,其特征為:步驟b中,在預(yù)留區(qū)中的數(shù)據(jù)如果缺失,需求程度低于緊急數(shù)據(jù)區(qū)中的數(shù)據(jù),系統(tǒng)進(jìn)行隨即下載。
6.如權(quán)利要求1所述的基于預(yù)連接的動(dòng)態(tài)資源下載方法,其特征為:每個(gè)調(diào)度周期都進(jìn)行一次步驟C。
7.如權(quán)利要求1至6之一所述的基于預(yù)連接的動(dòng)態(tài)資源下載方法,其特征為:所述的數(shù)據(jù)下載是從對(duì)等網(wǎng)絡(luò)中進(jìn)行下載。
【文檔編號(hào)】H04L12/803GK103607439SQ201310554117
【公開日】2014年2月26日 申請(qǐng)日期:2013年11月8日 優(yōu)先權(quán)日:2013年11月8日
【發(fā)明者】王海鵬, 黃葛玲, 陳國(guó)強(qiáng) 申請(qǐng)人:四川長(zhǎng)虹電器股份有限公司