將該單片發(fā)送至該目標(biāo)請(qǐng)求節(jié)點(diǎn)。采用本發(fā)明技術(shù)方案,數(shù)據(jù)節(jié)點(diǎn)將請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的數(shù)據(jù)塊劃分為多個(gè)單片后,將所有的單片依次傳輸至相應(yīng)的請(qǐng)求節(jié)點(diǎn),從而避免了由于網(wǎng)絡(luò)帶寬較小所造成的網(wǎng)絡(luò)擁塞問(wèn)題,保證了請(qǐng)求節(jié)點(diǎn)視頻播放流暢,有效提高了系統(tǒng)性能。
[0034]本發(fā)明實(shí)施例應(yīng)用在點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中,參閱圖1所示為本發(fā)明實(shí)施例中點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)結(jié)構(gòu)示意圖,下面結(jié)合附圖對(duì)本發(fā)明優(yōu)選的實(shí)施方式進(jìn)行詳細(xì)說(shuō)明。
[0035]參閱圖2所示,本發(fā)明實(shí)施例中,控制數(shù)據(jù)傳輸?shù)脑敿?xì)流程為:
[0036]步驟200:數(shù)據(jù)節(jié)點(diǎn)接收請(qǐng)求節(jié)點(diǎn)發(fā)送的數(shù)據(jù)請(qǐng)求消息。
[0037]本發(fā)明實(shí)施例中,點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中包含多個(gè)節(jié)點(diǎn),此處將請(qǐng)求數(shù)據(jù)的節(jié)點(diǎn)稱(chēng)為請(qǐng)求節(jié)點(diǎn),分享數(shù)據(jù)的節(jié)點(diǎn)稱(chēng)為數(shù)據(jù)節(jié)點(diǎn),數(shù)據(jù)節(jié)點(diǎn)和請(qǐng)求節(jié)點(diǎn)為相對(duì)概念,即當(dāng)一個(gè)節(jié)點(diǎn)請(qǐng)求數(shù)據(jù)時(shí)即為請(qǐng)求節(jié)點(diǎn),當(dāng)一個(gè)節(jié)點(diǎn)與其他節(jié)點(diǎn)分享自身?yè)碛械臄?shù)據(jù)時(shí)即為數(shù)據(jù)節(jié)點(diǎn)。
[0038]在上述點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中,一個(gè)數(shù)據(jù)節(jié)點(diǎn)可以將自身?yè)碛械臄?shù)據(jù)分享至一個(gè)或者多個(gè)請(qǐng)求節(jié)點(diǎn),當(dāng)請(qǐng)求節(jié)點(diǎn)需要流媒體數(shù)據(jù)時(shí),即向擁有該流媒體數(shù)據(jù)的數(shù)據(jù)節(jié)點(diǎn)發(fā)送數(shù)據(jù)請(qǐng)求消息,該數(shù)據(jù)請(qǐng)求消息中攜帶了請(qǐng)求節(jié)點(diǎn)的標(biāo)識(shí)信息以及該請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的流媒體數(shù)據(jù)。
[0039]步驟210:數(shù)據(jù)節(jié)點(diǎn)根據(jù)上述數(shù)據(jù)請(qǐng)求消息,獲取上述請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的數(shù)據(jù)塊。
[0040]本發(fā)明實(shí)施例中,數(shù)據(jù)節(jié)點(diǎn)接收到請(qǐng)求節(jié)點(diǎn)發(fā)送的數(shù)據(jù)請(qǐng)求消息之后,即根據(jù)該數(shù)據(jù)請(qǐng)求消息中攜帶的請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的流媒體數(shù)據(jù),生成請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的數(shù)據(jù)塊,其中,數(shù)據(jù)塊為流媒體數(shù)據(jù)傳輸?shù)幕締挝?,且該?shù)據(jù)塊的數(shù)目通常為多個(gè)。
[0041]步驟220:數(shù)據(jù)節(jié)點(diǎn)對(duì)上述數(shù)據(jù)塊進(jìn)行劃分,生成多個(gè)單片,并將上述請(qǐng)求節(jié)點(diǎn)作為目標(biāo)請(qǐng)求節(jié)點(diǎn),以及向上述目標(biāo)請(qǐng)求節(jié)點(diǎn)發(fā)送上述多個(gè)單片。
[0042]本發(fā)明實(shí)施例中,為了減輕數(shù)據(jù)節(jié)點(diǎn)將數(shù)據(jù)塊發(fā)送至請(qǐng)求節(jié)點(diǎn)時(shí)系統(tǒng)負(fù)擔(dān),可選的,數(shù)據(jù)節(jié)點(diǎn)對(duì)發(fā)送至請(qǐng)求節(jié)點(diǎn)的每一個(gè)數(shù)據(jù)塊進(jìn)行劃分,針對(duì)每一個(gè)數(shù)據(jù)塊均生成多個(gè)單片,將上述請(qǐng)求節(jié)點(diǎn)作為目標(biāo)請(qǐng)求節(jié)點(diǎn),以及將該多個(gè)單片按照預(yù)設(shè)周期依次發(fā)送至上述目標(biāo)請(qǐng)求節(jié)點(diǎn)。其中,每一個(gè)單片所占用存儲(chǔ)空間的大小為188*128K字節(jié),一個(gè)數(shù)據(jù)塊進(jìn)行劃分后獲取的多個(gè)單片均被賦予該數(shù)據(jù)塊的chunk id標(biāo)識(shí),為了便于該對(duì)個(gè)多個(gè)單片,每一個(gè)單片可以在chunk id標(biāo)識(shí)后賦予不同的編號(hào);該預(yù)設(shè)周期可以根據(jù)具體情況預(yù)先設(shè)置,且每一個(gè)周期的時(shí)長(zhǎng)也可以按照具體情況預(yù)先設(shè)置。
[0043]進(jìn)一步的,在系統(tǒng)狀態(tài)允許的情況下,不對(duì)數(shù)據(jù)節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊進(jìn)行劃分,僅當(dāng)滿(mǎn)足預(yù)設(shè)條件時(shí)才對(duì)上述數(shù)據(jù)塊進(jìn)行劃分,具體為:數(shù)據(jù)節(jié)點(diǎn)檢測(cè)當(dāng)前時(shí)刻數(shù)據(jù)傳輸速度,即數(shù)據(jù)節(jié)點(diǎn)檢測(cè)當(dāng)前時(shí)刻傳輸數(shù)據(jù)塊時(shí)對(duì)應(yīng)的數(shù)據(jù)傳輸速度;當(dāng)上述當(dāng)前時(shí)刻數(shù)據(jù)傳輸速度小于預(yù)設(shè)門(mén)限值時(shí),對(duì)上述請(qǐng)求節(jié)點(diǎn)請(qǐng)求的每一個(gè)數(shù)據(jù)塊進(jìn)行劃分,其中,該預(yù)設(shè)門(mén)限值可以根據(jù)具體網(wǎng)絡(luò)質(zhì)量參數(shù)(如帶寬等)預(yù)先設(shè)置。采用上述技術(shù)方案,將作為流媒體數(shù)據(jù)傳輸?shù)幕締挝坏臄?shù)據(jù)塊進(jìn)行進(jìn)一步劃分,將生成的多個(gè)單片依次發(fā)送至相應(yīng)的請(qǐng)求節(jié)點(diǎn),避免了由于多個(gè)數(shù)據(jù)塊同時(shí)發(fā)送時(shí)造成的網(wǎng)絡(luò)擁塞現(xiàn)象,提高了系統(tǒng)性能,保證了請(qǐng)求節(jié)點(diǎn)能夠連續(xù)地接收數(shù)據(jù),使用戶(hù)能夠獲取流暢播放的視頻。
[0044]進(jìn)一步的,在上述過(guò)程中,若請(qǐng)求節(jié)點(diǎn)的數(shù)目為多個(gè),則當(dāng)數(shù)據(jù)節(jié)點(diǎn)對(duì)數(shù)據(jù)塊進(jìn)行劃分后,獲取傳輸單片時(shí)對(duì)應(yīng)的單片數(shù)據(jù)傳輸速度,并根據(jù)單片數(shù)據(jù)傳輸速度以及請(qǐng)求節(jié)點(diǎn)的數(shù)目對(duì)數(shù)據(jù)傳輸進(jìn)行控制,具體為:數(shù)據(jù)節(jié)點(diǎn)獲取單片數(shù)據(jù)傳輸速度;當(dāng)該單片數(shù)據(jù)傳輸速度仍小于預(yù)設(shè)門(mén)限值,且請(qǐng)求節(jié)點(diǎn)的數(shù)目大于預(yù)設(shè)節(jié)點(diǎn)數(shù)目門(mén)限值時(shí),對(duì)多個(gè)請(qǐng)求節(jié)點(diǎn)進(jìn)行篩選,獲取目標(biāo)請(qǐng)求節(jié)點(diǎn),其中,預(yù)設(shè)節(jié)點(diǎn)數(shù)目門(mén)限值可以根據(jù)具體情況預(yù)先設(shè)置,且目標(biāo)請(qǐng)求節(jié)點(diǎn)的數(shù)目等于上述預(yù)設(shè)節(jié)點(diǎn)數(shù)目門(mén)限值;將上述多個(gè)單片按照預(yù)設(shè)周期發(fā)送至相應(yīng)的目標(biāo)請(qǐng)求節(jié)點(diǎn);上述單片數(shù)據(jù)傳輸速度為根據(jù)當(dāng)前時(shí)刻網(wǎng)絡(luò)質(zhì)量參數(shù)獲取的預(yù)估值,可選的,上述單片數(shù)據(jù)傳輸速度可以為上述當(dāng)前時(shí)刻數(shù)據(jù)傳輸速度。而對(duì)于上述請(qǐng)求節(jié)點(diǎn)中的非目標(biāo)請(qǐng)求節(jié)點(diǎn),數(shù)據(jù)節(jié)點(diǎn)將每一個(gè)目標(biāo)請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的所有數(shù)據(jù)塊發(fā)送至該每一個(gè)目標(biāo)請(qǐng)求節(jié)點(diǎn)之后,將每一個(gè)非目標(biāo)請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的所有數(shù)據(jù)塊發(fā)送至該每一個(gè)非目標(biāo)請(qǐng)求節(jié)點(diǎn);或者,數(shù)據(jù)節(jié)點(diǎn)直接向每一個(gè)非目標(biāo)請(qǐng)求節(jié)點(diǎn)發(fā)送數(shù)據(jù)請(qǐng)求失敗消息,通知所有非目標(biāo)請(qǐng)求節(jié)點(diǎn)在下一個(gè)時(shí)刻重新向數(shù)據(jù)節(jié)點(diǎn)發(fā)送數(shù)據(jù)請(qǐng)求消息。
[0045]可選的,數(shù)據(jù)節(jié)點(diǎn)分別獲取每一個(gè)請(qǐng)求節(jié)點(diǎn)的性能參數(shù),并根據(jù)該性能參數(shù)的大小對(duì)上述多個(gè)請(qǐng)求節(jié)點(diǎn)進(jìn)行排序,生成請(qǐng)求節(jié)點(diǎn)隊(duì)列;根據(jù)預(yù)設(shè)節(jié)點(diǎn)數(shù)目門(mén)限值,按照性能參數(shù)由大到小的順序,從上述請(qǐng)求節(jié)點(diǎn)隊(duì)列中依次選擇目標(biāo)請(qǐng)求節(jié)點(diǎn)。數(shù)據(jù)節(jié)點(diǎn)將多個(gè)單片按照預(yù)設(shè)周期發(fā)送至相應(yīng)的目標(biāo)請(qǐng)求節(jié)點(diǎn)。其中,任意一個(gè)請(qǐng)求節(jié)點(diǎn)的性能參數(shù)包括該任意一個(gè)節(jié)點(diǎn)的賬戶(hù)類(lèi)型級(jí)別、賬戶(hù)消費(fèi)等級(jí)等參數(shù),而該任意一個(gè)請(qǐng)求節(jié)點(diǎn)的性能參數(shù)可以為上述不同參數(shù)與其對(duì)應(yīng)的權(quán)重系數(shù)進(jìn)行求和后獲取的結(jié)果。例如,若任意一個(gè)請(qǐng)求節(jié)點(diǎn)的性能參數(shù)Bi僅包括該任意一個(gè)請(qǐng)求節(jié)點(diǎn)的賬戶(hù)類(lèi)型級(jí)別bl、賬戶(hù)消費(fèi)等級(jí)b2等參數(shù),則Bi=bl’ *bl+b2’ *b2,bl’為賬戶(hù)類(lèi)型級(jí)別的權(quán)重系數(shù),b2’為賬戶(hù)消費(fèi)等級(jí)的權(quán)重系數(shù)。
[0046]本發(fā)明實(shí)施例中,數(shù)據(jù)節(jié)點(diǎn)可以將當(dāng)前時(shí)刻數(shù)據(jù)傳輸速度與預(yù)設(shè)門(mén)限值的比較結(jié)果作為觸發(fā)條件分別采用上述對(duì)請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的數(shù)據(jù)塊進(jìn)行劃分,以及將請(qǐng)求節(jié)點(diǎn)的數(shù)目與預(yù)設(shè)節(jié)點(diǎn)數(shù)目門(mén)限值的比較結(jié)果同時(shí)作為觸發(fā)條件,對(duì)請(qǐng)求節(jié)點(diǎn)的數(shù)目進(jìn)行控制,控制點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中的數(shù)據(jù)傳輸;可選的,數(shù)據(jù)節(jié)點(diǎn)還可以不必獲取上述當(dāng)前時(shí)刻數(shù)據(jù)傳輸速度與預(yù)設(shè)門(mén)限值的比較結(jié)果,以及接入數(shù)據(jù)節(jié)點(diǎn)的請(qǐng)求節(jié)點(diǎn)的數(shù)目與預(yù)設(shè)節(jié)點(diǎn)數(shù)目門(mén)限值的比較結(jié)果,而直接對(duì)請(qǐng)求節(jié)點(diǎn)請(qǐng)求的數(shù)據(jù)塊進(jìn)行劃分,同時(shí)控制接入數(shù)據(jù)節(jié)點(diǎn)的請(qǐng)求節(jié)點(diǎn)的數(shù)目。
[0047]采用上述技術(shù)方案,在對(duì)請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的數(shù)據(jù)塊進(jìn)行劃分的同時(shí),控制接入數(shù)據(jù)節(jié)點(diǎn)的請(qǐng)求節(jié)點(diǎn)的數(shù)目,進(jìn)一步避免了由于大量請(qǐng)求節(jié)點(diǎn)同時(shí)請(qǐng)求數(shù)據(jù)所造成的網(wǎng)絡(luò)擁塞現(xiàn)象,從而可靠保證了請(qǐng)求節(jié)點(diǎn)所播放視頻的流暢性,提高了系統(tǒng)性能。
[0048]下面結(jié)合具體的應(yīng)用場(chǎng)景,以點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中包含一個(gè)數(shù)據(jù)節(jié)點(diǎn)和多個(gè)請(qǐng)求節(jié)點(diǎn)為例,詳細(xì)介紹對(duì)點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中的控制數(shù)據(jù)傳輸?shù)倪^(guò)程。
[0049]參閱圖3所示,控制數(shù)據(jù)傳輸?shù)脑敿?xì)流程為:
[0050]步驟300:數(shù)據(jù)節(jié)點(diǎn)分別接收每一個(gè)請(qǐng)求節(jié)點(diǎn)發(fā)送的數(shù)據(jù)請(qǐng)求消息。
[0051]步驟310:數(shù)據(jù)請(qǐng)求節(jié)點(diǎn)檢測(cè)當(dāng)前時(shí)刻數(shù)據(jù)傳輸速度,并判斷該當(dāng)前時(shí)刻數(shù)據(jù)傳輸速度是否大于預(yù)設(shè)門(mén)限值,若是,執(zhí)行步驟320 ;否則,執(zhí)行步驟330。
[0052]步驟320:數(shù)據(jù)節(jié)點(diǎn)分別根據(jù)上述每一條數(shù)據(jù)請(qǐng)求消息,獲取上述每一個(gè)請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的數(shù)據(jù)塊,并將該數(shù)據(jù)塊發(fā)送至相應(yīng)的請(qǐng)求節(jié)點(diǎn)。
[0053]步驟330:數(shù)據(jù)節(jié)點(diǎn)根據(jù)上述每一條數(shù)據(jù)請(qǐng)求消息,獲取上述每一個(gè)請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的數(shù)據(jù)塊,并分別對(duì)每一個(gè)數(shù)據(jù)塊進(jìn)行劃分,生成相應(yīng)的多個(gè)單片。
[0054]步驟340:數(shù)據(jù)節(jié)點(diǎn)獲取向每一個(gè)請(qǐng)求節(jié)點(diǎn)發(fā)送其請(qǐng)求的數(shù)據(jù)塊的單片時(shí)單片數(shù)據(jù)傳輸速度。
[0055]步驟350:數(shù)據(jù)節(jié)點(diǎn)判斷上述單片數(shù)據(jù)傳輸速度是否大于預(yù)設(shè)門(mén)限值,若是,執(zhí)行步驟360 ;否則,執(zhí)行步驟370。
[0056]步驟360:數(shù)據(jù)節(jié)點(diǎn)將上述請(qǐng)求節(jié)點(diǎn)作為目標(biāo)請(qǐng)求節(jié)點(diǎn),并按照預(yù)設(shè)周期向每一個(gè)目標(biāo)請(qǐng)求節(jié)點(diǎn)發(fā)送相應(yīng)的多個(gè)單片。
[0057]步驟370:數(shù)據(jù)節(jié)點(diǎn)根據(jù)預(yù)設(shè)節(jié)點(diǎn)數(shù)目門(mén)限值,以及每一個(gè)請(qǐng)求節(jié)點(diǎn)的性能參數(shù),獲取目標(biāo)請(qǐng)求節(jié)點(diǎn),并按照預(yù)設(shè)周期向每一個(gè)目標(biāo)請(qǐng)求節(jié)點(diǎn)發(fā)送相應(yīng)的多個(gè)單片。
[0058]基于上述技術(shù)方案,參閱圖4所示,本發(fā)明實(shí)施例還提供一種控制數(shù)據(jù)傳輸?shù)难b置,包括接收單元40,獲取單元41,以及發(fā)送單元42,其中:
[0059]接收單元40,用于接收請(qǐng)求節(jié)點(diǎn)發(fā)送的數(shù)據(jù)請(qǐng)求消息;
[0060]獲取單元41,用于根據(jù)上述數(shù)據(jù)請(qǐng)求消息,獲取請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的數(shù)據(jù)塊;
[0061]發(fā)送單元42,用于對(duì)上述數(shù)據(jù)塊進(jìn)行劃分,生成多個(gè)單片,并將上述請(qǐng)求節(jié)點(diǎn)作為目標(biāo)請(qǐng)求節(jié)點(diǎn),以及向該目標(biāo)請(qǐng)求節(jié)點(diǎn)發(fā)送上述多個(gè)單片。