一種數(shù)據(jù)傳輸方法、裝置及點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)傳輸方法、裝置及點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)。
【背景技術(shù)】
[0002]隨著多媒體技術(shù)的飛速發(fā)展,可以采用多種方式進(jìn)行流媒體的傳輸以及播放,其中,P2P (Peer to Peer ;點(diǎn)對(duì)點(diǎn))流媒體系統(tǒng)即為一種常用的流媒體傳輸以及播放系統(tǒng)。
[0003]在現(xiàn)有P2P流媒體系統(tǒng)中,流媒體內(nèi)容被切割成多個(gè)數(shù)據(jù)塊(chunk),以每一個(gè)數(shù)據(jù)塊作為流媒體數(shù)據(jù)傳輸?shù)幕締挝?,從而完成連續(xù)的數(shù)據(jù)流在節(jié)點(diǎn)(Peer)間傳輸,其中,每一個(gè)數(shù)據(jù)塊由唯一的chunk id表示。節(jié)目?jī)?nèi)容的共享和交換都依賴于節(jié)點(diǎn)間交換的描述節(jié)點(diǎn)緩存狀態(tài)的緩存消息(簡(jiǎn)稱BM),即通過(guò)緩存消息完成節(jié)目?jī)?nèi)容的共享和交換。
[0004]目前,在P2P流媒體系統(tǒng)中,若請(qǐng)求節(jié)點(diǎn)需要進(jìn)行視頻等流媒體的呈現(xiàn),則需要向擁有該視頻對(duì)應(yīng)的流媒體數(shù)據(jù)的數(shù)據(jù)節(jié)點(diǎn)發(fā)送請(qǐng)求消息,而請(qǐng)求節(jié)點(diǎn)根據(jù)數(shù)據(jù)節(jié)點(diǎn)發(fā)送的流媒體數(shù)據(jù)向用戶呈現(xiàn)相應(yīng)的視頻。現(xiàn)有技術(shù)中,參閱圖1所示,在請(qǐng)求節(jié)點(diǎn)與數(shù)據(jù)節(jié)點(diǎn)之間的數(shù)據(jù)傳輸過(guò)程中,數(shù)據(jù)節(jié)點(diǎn)會(huì)采用最大限度地將自身?yè)碛械牧髅襟w數(shù)據(jù)發(fā)送至請(qǐng)求節(jié)點(diǎn)的方式,向請(qǐng)求節(jié)點(diǎn)發(fā)送流媒體數(shù)據(jù)。當(dāng)采用上述技術(shù)方案進(jìn)行數(shù)據(jù)傳輸時(shí),由于網(wǎng)絡(luò)帶寬的限制,若在某一個(gè)時(shí)刻存在大量的流媒體數(shù)據(jù)請(qǐng)求,則數(shù)據(jù)節(jié)點(diǎn)仍最大限度地將自身?yè)碛械牧髅襟w數(shù)據(jù)發(fā)送至請(qǐng)求節(jié)點(diǎn)將可能導(dǎo)致該時(shí)刻網(wǎng)絡(luò)的擁塞,進(jìn)而造成請(qǐng)求節(jié)點(diǎn)所獲取流媒體數(shù)據(jù)的不連續(xù),使請(qǐng)求節(jié)點(diǎn)視頻播放不流暢,大大降低了系統(tǒng)性能。
[0005]由此可見,現(xiàn)有技術(shù)中在流媒體數(shù)據(jù)的傳輸過(guò)程中,若網(wǎng)絡(luò)帶寬較小則存在請(qǐng)求節(jié)點(diǎn)獲取流媒體數(shù)據(jù)不連續(xù),造成請(qǐng)求節(jié)點(diǎn)視頻播放不流暢,降低系統(tǒng)性能的問(wèn)題。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實(shí)施例提供一種數(shù)據(jù)傳輸方法、裝置及點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng),用以解決現(xiàn)有技術(shù)中在流媒體數(shù)據(jù)的傳輸過(guò)程中,若網(wǎng)絡(luò)帶寬較小則存在請(qǐng)求節(jié)點(diǎn)獲取流媒體數(shù)據(jù)不連續(xù),造成請(qǐng)求節(jié)點(diǎn)視頻播放不流暢,降低系統(tǒng)性能的問(wèn)題。
[0007]本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:
[0008]一種數(shù)據(jù)傳輸?shù)姆椒?,?yīng)用于點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中,包括:
[0009]所述點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)分別接收所述點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中的至少兩個(gè)請(qǐng)求節(jié)點(diǎn)發(fā)送的數(shù)據(jù)請(qǐng)求消息;其中,所述至少兩個(gè)請(qǐng)求節(jié)點(diǎn)發(fā)送的數(shù)據(jù)請(qǐng)求消息所請(qǐng)求的數(shù)據(jù)塊相同;
[0010]所述數(shù)據(jù)節(jié)點(diǎn)根據(jù)所述數(shù)據(jù)請(qǐng)求消息,獲取所述至少兩個(gè)請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的數(shù)據(jù)塊,并對(duì)所述數(shù)據(jù)塊進(jìn)行劃分獲取多個(gè)分片;
[0011]針對(duì)所述多個(gè)分片中的每個(gè)分片分別執(zhí)行如下操作:
[0012]所述數(shù)據(jù)節(jié)點(diǎn)將所述分片發(fā)送至所述至少兩個(gè)請(qǐng)求節(jié)點(diǎn)中的至少一個(gè)請(qǐng)求節(jié)點(diǎn),令所述至少一個(gè)請(qǐng)求節(jié)點(diǎn)檢測(cè)本地不存在的所有缺失分片,并從存在所述缺失分片的其他請(qǐng)求節(jié)點(diǎn)獲取所述所有缺失分片,以及根據(jù)所述缺失分片以及所述數(shù)據(jù)節(jié)點(diǎn)發(fā)送的分片,生成所述數(shù)據(jù)塊;其中,所述所有缺失分片為所述多個(gè)分片中的、不存在于所述至少一個(gè)請(qǐng)求節(jié)點(diǎn)中的所有分片;所述其他請(qǐng)求節(jié)點(diǎn)為除所述至少一個(gè)請(qǐng)求節(jié)點(diǎn)外的向所述數(shù)據(jù)節(jié)點(diǎn)發(fā)送所述數(shù)據(jù)請(qǐng)求消息的請(qǐng)求節(jié)點(diǎn)。
[0013]進(jìn)一步的,所述數(shù)據(jù)節(jié)點(diǎn)對(duì)所述數(shù)據(jù)塊進(jìn)行劃分之前,并將所述當(dāng)前時(shí)刻數(shù)據(jù)傳輸速度與預(yù)設(shè)門限值進(jìn)行比較;以及比較出所述當(dāng)前時(shí)刻數(shù)據(jù)傳輸速度小于預(yù)設(shè)門限值。
[0014]可選的,所述數(shù)據(jù)節(jié)點(diǎn)對(duì)所述數(shù)據(jù)塊進(jìn)行劃分,獲取多個(gè)分片,每個(gè)分片占用存儲(chǔ)空間的大小為188*128K字節(jié)。
[0015]可選的,所述數(shù)據(jù)節(jié)點(diǎn)將所述任意一分片隨機(jī)發(fā)送至所述至少一個(gè)請(qǐng)求節(jié)點(diǎn);或者,所述數(shù)據(jù)節(jié)點(diǎn)按照所述請(qǐng)求節(jié)點(diǎn)等級(jí)由高到低的順序進(jìn)行排序,將所述任意一分片發(fā)送至等級(jí)最高的至少一個(gè)請(qǐng)求節(jié)點(diǎn)。
[0016]采用本發(fā)明技術(shù)方案,數(shù)據(jù)節(jié)點(diǎn)對(duì)請(qǐng)求節(jié)點(diǎn)請(qǐng)求的數(shù)據(jù)塊首先進(jìn)行劃分生成多個(gè)分片,并分別將多個(gè)分片發(fā)送至請(qǐng)求節(jié)點(diǎn),避免了數(shù)據(jù)塊傳輸過(guò)程中造成的網(wǎng)絡(luò)擁塞問(wèn)題。
[0017]一種數(shù)據(jù)傳輸方法,應(yīng)用于點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中,包括:
[0018]所述點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中的請(qǐng)求節(jié)點(diǎn)接收所述點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)發(fā)送的至少一個(gè)分片;
[0019]所述請(qǐng)求節(jié)點(diǎn)根據(jù)本地接收的至少一個(gè)分片,當(dāng)檢測(cè)出本地存在缺失分片時(shí),從擁有所述缺失分片的其他請(qǐng)求節(jié)點(diǎn)獲取所述缺失分片;其中,所述所有缺失分片為所述多個(gè)分片中的、不存在于所述至少一個(gè)請(qǐng)求節(jié)點(diǎn)中的所有分片;所述其他請(qǐng)求節(jié)點(diǎn)為除所述至少一個(gè)請(qǐng)求節(jié)點(diǎn)外的向所述數(shù)據(jù)節(jié)點(diǎn)發(fā)送所述數(shù)據(jù)請(qǐng)求消息的請(qǐng)求節(jié)點(diǎn);
[0020]所述請(qǐng)求節(jié)點(diǎn)根據(jù)所述缺失分片以及所述數(shù)據(jù)節(jié)點(diǎn)發(fā)送的分片,生成數(shù)據(jù)塊。
[0021]可選的,當(dāng)所述請(qǐng)求節(jié)點(diǎn)檢測(cè)本地僅存在一個(gè)缺失分片時(shí),從擁有所述缺失分片的任意一其他請(qǐng)求節(jié)點(diǎn)獲取所述缺失分片;當(dāng)所述請(qǐng)求節(jié)點(diǎn)檢測(cè)本地存在至少兩個(gè)缺失分片時(shí),從擁有所述至少兩個(gè)缺失分片的任意一其他請(qǐng)求節(jié)點(diǎn)獲取所述至少兩個(gè)缺失分片;或者,所述請(qǐng)求節(jié)點(diǎn)從分別擁有所述至少兩個(gè)缺失分片中的不同缺失分片的其他請(qǐng)求節(jié)點(diǎn)分別獲取所述至少兩個(gè)缺失分片中的不同缺失分片。
[0022]進(jìn)一步的,當(dāng)所述請(qǐng)求節(jié)點(diǎn)沒有接收到任何分片時(shí),所述請(qǐng)求節(jié)點(diǎn)從擁有所述多個(gè)分片的其他請(qǐng)求節(jié)點(diǎn)獲取所述多個(gè)分片;所述請(qǐng)求節(jié)點(diǎn)根據(jù)所述多個(gè)分片,生成所述數(shù)據(jù)塊。
[0023]一種數(shù)據(jù)傳輸?shù)难b置,應(yīng)用于點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中,所述裝置包括:
[0024]接收單元,用于分別接收所述點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中的至少兩個(gè)請(qǐng)求節(jié)點(diǎn)發(fā)送的數(shù)據(jù)請(qǐng)求消息;其中,所述至少兩個(gè)請(qǐng)求節(jié)點(diǎn)發(fā)送的數(shù)據(jù)請(qǐng)求消息所請(qǐng)求的數(shù)據(jù)塊相同;
[0025]獲取單元,用于根據(jù)所述數(shù)據(jù)請(qǐng)求消息,獲取所述至少兩個(gè)請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的數(shù)據(jù)塊,并對(duì)所述數(shù)據(jù)塊進(jìn)行劃分獲取多個(gè)分片;
[0026]發(fā)送單元,用于針對(duì)所述多個(gè)分片中的每個(gè)分片執(zhí)行如下操作:將所述分片發(fā)送至所述至少兩個(gè)請(qǐng)求節(jié)點(diǎn)中的至少一個(gè)請(qǐng)求節(jié)點(diǎn),令所述至少一個(gè)請(qǐng)求節(jié)點(diǎn)檢測(cè)本地不存在的所有缺失分片,并從存在所述缺失分片的其他請(qǐng)求節(jié)點(diǎn)獲取所述所有缺失分片,以及根據(jù)所述缺失分片以及所述數(shù)據(jù)節(jié)點(diǎn)發(fā)送的分片,生成所述數(shù)據(jù)塊;其中,所述所有缺失分片為所述多個(gè)分片中的、不存在于所述至少一個(gè)請(qǐng)求節(jié)點(diǎn)中的所有分片;所述其他請(qǐng)求節(jié)點(diǎn)為除所述至少一個(gè)請(qǐng)求節(jié)點(diǎn)外的向所述數(shù)據(jù)節(jié)點(diǎn)發(fā)送所述數(shù)據(jù)請(qǐng)求消息的請(qǐng)求節(jié)點(diǎn)。
[0027]進(jìn)一步的,還包括檢測(cè)單元,用于:檢測(cè)當(dāng)前時(shí)刻數(shù)據(jù)傳輸速度,并將所述當(dāng)前時(shí)刻數(shù)據(jù)傳輸速度與預(yù)設(shè)門限值進(jìn)行比較;以及比較出所述當(dāng)前時(shí)刻數(shù)據(jù)傳輸速度小于預(yù)設(shè)門限值。
[0028]可選的,所述發(fā)送單元,具體用于:將所述任意一分片隨機(jī)發(fā)送至所述多個(gè)請(qǐng)求節(jié)點(diǎn)中的至少一個(gè)請(qǐng)求節(jié)點(diǎn);或者,按照所述請(qǐng)求節(jié)點(diǎn)等級(jí)由高到低的順序進(jìn)行排序,將所述任意一分片發(fā)送至等級(jí)最高的至少一個(gè)請(qǐng)求節(jié)點(diǎn)。
[0029]采用本發(fā)明技術(shù)方案,數(shù)據(jù)節(jié)點(diǎn)對(duì)請(qǐng)求節(jié)點(diǎn)請(qǐng)求的數(shù)據(jù)塊首先進(jìn)行劃分生成多個(gè)分片,并分別將多個(gè)分片發(fā)送至請(qǐng)求節(jié)點(diǎn),避免了數(shù)據(jù)塊傳輸過(guò)程中造成的網(wǎng)絡(luò)擁塞問(wèn)題。
[0030]一種數(shù)據(jù)傳輸裝置,應(yīng)用于點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中,所述裝置包括:
[0031]接收單元,用于接收所述點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)發(fā)送的至少一個(gè)分片;
[0032]獲取單元,用于根據(jù)本地接收的至少一個(gè)分片,當(dāng)檢測(cè)出本地存在缺失分片時(shí),從擁有所述缺失分片的其他請(qǐng)求節(jié)點(diǎn)獲取所述缺失分片;其中,所述所有缺失分片為所述多個(gè)分片中的、不存在于所述至少一個(gè)請(qǐng)求節(jié)點(diǎn)中的所有分片;所述其他請(qǐng)求節(jié)點(diǎn)為除所述至少一個(gè)請(qǐng)求節(jié)點(diǎn)外的向所述數(shù)據(jù)節(jié)點(diǎn)發(fā)送所述數(shù)據(jù)請(qǐng)求消息的請(qǐng)求節(jié)點(diǎn);
[0033]生成單元,用于根據(jù)所述缺失分片以及所述數(shù)據(jù)節(jié)點(diǎn)發(fā)送的分片,生成數(shù)據(jù)塊。
[0034]可選的,所述獲取單元,具體用于:當(dāng)檢測(cè)本地僅存在一個(gè)缺失分片時(shí),從擁有所述缺失分片的任意一其他請(qǐng)求節(jié)點(diǎn)獲取所述缺失分片;當(dāng)檢測(cè)本地存在至少兩個(gè)缺失分片時(shí),從擁有所述多個(gè)缺失分片的任意一其他請(qǐng)求節(jié)點(diǎn)獲取所述至少兩個(gè)缺失分片;或者,從分別擁有所述至少兩個(gè)缺失分片中的不同缺失分片的其他請(qǐng)求節(jié)點(diǎn)分別獲取所述所述至少兩個(gè)缺失分片中的不同缺失分片。
[0035]進(jìn)一步的,還包括處理單元,用于:當(dāng)本地沒有接收到任何分片時(shí),從擁有所述多個(gè)分片的其他請(qǐng)求節(jié)點(diǎn)獲取所述多個(gè)分片;根據(jù)所述多個(gè)分片,生成所述數(shù)據(jù)塊。
[0036]一種點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng),包括:
[0037]數(shù)據(jù)節(jié)點(diǎn),用于分別接收所述點(diǎn)對(duì)點(diǎn)流媒體系統(tǒng)中的至少兩個(gè)請(qǐng)求節(jié)點(diǎn)發(fā)送的數(shù)據(jù)請(qǐng)求消息;根據(jù)所述數(shù)據(jù)請(qǐng)求消息,獲取所述至少兩個(gè)請(qǐng)求節(jié)點(diǎn)所請(qǐng)求的數(shù)據(jù)塊,并對(duì)所述數(shù)據(jù)塊進(jìn)行劃分獲取多個(gè)分