欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

P2p環(huán)境下的數(shù)據(jù)傳輸方法

文檔序號:7719607閱讀:127來源:國知局
專利名稱:P2p環(huán)境下的數(shù)據(jù)傳輸方法
技術領域
本發(fā)明涉及流媒體數(shù)據(jù)傳輸方法,特別涉及P2P環(huán)境下的數(shù)據(jù)傳輸方法。
背景技術
隨著互聯(lián)網(wǎng)絡及其接入技術的快速發(fā)展,網(wǎng)絡的數(shù)據(jù)傳輸能力得到了快速提升, 這使得過去無法大面積應用的海量數(shù)據(jù)交互應用程序獲得了極大的發(fā)展空間。此類的應用 程序包括視頻直播系統(tǒng)、視頻點播系統(tǒng)、多媒體視像會議、遠程醫(yī)療等。由于數(shù)據(jù)量過大, 傳統(tǒng)的客戶端/服務器模式并不能滿足這些應用程序,其服務器端有限的資源會被輕易占 滿,使得系統(tǒng)難以大面積部署。因此當前這些程序通常轉而選擇P2P互助的模式傳輸數(shù)據(jù), 以期快速、高效、廉價的部署到互聯(lián)網(wǎng)絡中。 相較于客戶端/服務器模式,P2P技術擁有網(wǎng)絡負載均衡、易于快速大規(guī)模部署的 優(yōu)點。以P2P視頻直播系統(tǒng)為例,系統(tǒng)中各個客戶端不但可以從視頻的直接發(fā)布者請求數(shù) 據(jù),同時還可以從其它客戶端中分享數(shù)據(jù)。這種分享策略雖然會在一定程度上造成視頻播 放的延遲,但卻可以極大減輕該流媒體發(fā)布者的負擔。實際上,對于普通的網(wǎng)絡視頻直播服 務來說,用戶只要能夠流暢收看到所希望看到的直播節(jié)目就會有很高的用戶滿意度,而并 不會在意數(shù)秒甚至數(shù)分鐘的延遲。 雖然P2P的理念已經(jīng)廣泛應用于各種數(shù)據(jù)傳輸系統(tǒng)中,但是在實現(xiàn)細節(jié)方面,仍 然有很多值得深入探討和研究的問題 第一,常見的網(wǎng)絡終端接入技術,如ADSL等,大都存在下載能力大于上傳能力的 問題,由于P2P流媒體系統(tǒng)的終端互助特性使得一個P2P流媒體終端通常需要連接多個鄰 居節(jié)點才可以獲得穩(wěn)定的數(shù)據(jù)回放效果。如何打散媒體數(shù)據(jù)流、并將子數(shù)據(jù)流指派給鄰居 節(jié)點集合,才能使得P2P流媒體系統(tǒng)的主要性能指標最大化,當前還沒有明確方案。
第二, P2P流媒體系統(tǒng)中數(shù)據(jù)交換包含兩種基本策略以數(shù)據(jù)提供節(jié)點為驅動力 量的推策略和以數(shù)據(jù)獲得節(jié)點為驅動力量的拉策略。
(1)推策略指P2P流媒體系統(tǒng)中的數(shù)據(jù)提供節(jié)點在未收到數(shù)據(jù)請求時,主動推送
流媒體數(shù)據(jù)到其鄰居節(jié)點。使用推策略可以降低系統(tǒng)客戶端的網(wǎng)絡時延,提高用戶體驗評
分;但盲目使用推策略會導致數(shù)據(jù)的重復發(fā)送,對帶寬資源會造成較大浪費; (2)拉策略指P2P流媒體系統(tǒng)中數(shù)據(jù)請求節(jié)點顯式發(fā)出媒體數(shù)據(jù)請求消息到其鄰
居節(jié)點,鄰居節(jié)點處理該請求消息后決定是否發(fā)送媒體數(shù)據(jù)給該數(shù)據(jù)請求節(jié)點。使用拉策
略可以最大限度地減小數(shù)據(jù)傳輸所占用的帶寬資源;然而,該策略會在一定程度上犧牲網(wǎng)
絡的實時性。

發(fā)明內容
本發(fā)明的一個目的是克服現(xiàn)有技術將媒體數(shù)據(jù)流打散成子數(shù)據(jù)流時不能使P2P 流媒體系統(tǒng)的主要性能指標最大化的缺陷,從而提供一種能夠提高性能指標的P2P環(huán)境下 的數(shù)據(jù)傳輸方法。
4
本發(fā)明的又一個目的是克服現(xiàn)有技術缺乏將推策略和拉策略相結合的數(shù)據(jù)交換 方法的缺陷,從而提供一種能夠將推策略和拉策略相結合的P2P環(huán)境下的數(shù)據(jù)傳輸方法。
為了實現(xiàn)上述目的,本發(fā)明提供了一種P2P環(huán)境下的數(shù)據(jù)傳輸方法,包括
步驟1)、對所要傳輸數(shù)據(jù)做分割后得到多組子數(shù)據(jù)流; 步驟2)、在用戶所登錄的用戶節(jié)點以及該用戶節(jié)點的鄰居節(jié)點上維護推送記錄
表,所述推送記錄表用于記錄所在節(jié)點所要推送以及所要接收的子數(shù)據(jù)流的信息; 步驟3)、所述鄰居節(jié)點按照隨機的順序將不同組的子數(shù)據(jù)流推送給所述用戶節(jié)
點,所述用戶節(jié)點接收子數(shù)據(jù)流后結合所述推送記錄表中的信息為所述鄰居節(jié)點分配該鄰
居節(jié)點負責推送的子數(shù)據(jù)流; 步驟4)、所述用戶節(jié)點接收并保存所述鄰居節(jié)點所推送的數(shù)據(jù)。
上述技術方案中,還包括 步驟5)、所述用戶節(jié)點在某些數(shù)據(jù)無法及時到達時,向除了負責該數(shù)據(jù)推送的鄰 居節(jié)點外的其它鄰居節(jié)點請求該數(shù)據(jù)。 上述技術方案中,在所述的步驟1)中,對所要傳輸數(shù)據(jù)做分割包括分片、分組;其 中, 所述分片包括將數(shù)據(jù)按照規(guī)定的格式大小分割,得到數(shù)據(jù)分片;所述分組包括將 所述數(shù)據(jù)分片按照所述數(shù)據(jù)分配的標識進行分配,同一組的數(shù)據(jù)分片形成子數(shù)據(jù)流。
上述技術方案中,在對數(shù)據(jù)分片進行分組時,對所述數(shù)據(jù)分片的標識做取模操作, 將標識取模后所得到的余數(shù)相同的數(shù)據(jù)分片分在同一組中。
上述技術方案中,所述步驟3)包括 步驟3-1)、各個鄰居節(jié)點對所述子數(shù)據(jù)流的序號做隨機排列; 步驟3-2)、所述鄰居節(jié)點根據(jù)隨機排列結果將相應序號的子數(shù)據(jù)流按序推送給用
戶節(jié)點; 步驟3-3)、所述用戶節(jié)點接收到某一鄰居節(jié)點所推送的某一組子數(shù)據(jù)流后,根據(jù) 自身的推送記錄表的信息,決定是否將該子數(shù)據(jù)流分配給該鄰居節(jié)點,并將決定后的結果 通知該鄰居節(jié)點。 上述技術方案中,所述步驟3-3)包括 步驟3-3-1)、所述用戶節(jié)點接收到某一鄰居節(jié)點所推送的某一組子數(shù)據(jù)流后,若 自身的推送記錄表中記錄拒絕接收該鄰居節(jié)點所推送的該組子數(shù)據(jù)流,則向該鄰居節(jié)點發(fā) 送拒絕消息,該鄰居節(jié)點接收到拒絕消息后,在其自身的推送記錄表中記錄,否則,執(zhí)行下 少; 步驟3-3-2)、若用戶節(jié)點自身的推送記錄表中記錄接收該鄰居節(jié)點所推送的該組 子數(shù)據(jù)流,則在該推送記錄表中記錄不接收其它鄰居節(jié)點所推送的該組子數(shù)據(jù)流,并向該 鄰居節(jié)點發(fā)送接收消息,該鄰居節(jié)點接收到接收消息后,在其自身的推送記錄表中記錄。
上述技術方案中,所述的步驟5)包括
步驟5-1)、為數(shù)據(jù)設立未到達預警時刻; 步驟5-2)、在當前時刻到達該未到達預警時刻時,檢查對應的數(shù)據(jù)是否已經(jīng)到達 了所述用戶節(jié)點,若沒有到達,則向除了負責該數(shù)據(jù)推送的鄰居節(jié)點外的其它鄰居節(jié)點請 求該數(shù)據(jù),否則不做操作;
步驟5-3)、所述鄰居節(jié)點收到請求后,檢查自身是否保存有相應的數(shù)據(jù),若有,將
該數(shù)據(jù)發(fā)送給所述用戶節(jié)點,否則忽略該請求。 上述技術方案中,所述的步驟5)還包括 步驟5-4)、若當前時刻大于最晚到達時刻時,所請求的數(shù)據(jù)還未到達所述用戶節(jié)
點,則拋棄該數(shù)據(jù)。 本發(fā)明的優(yōu)點在于 1、本發(fā)明將推策略與拉策略相結合,能夠盡可能地減少數(shù)據(jù)分片丟失情況的出 現(xiàn)。 2、本發(fā)明通過競爭機制實現(xiàn)子數(shù)據(jù)流的分配,能夠減少冗余數(shù)據(jù)包的傳輸,提高 整個系統(tǒng)的性能。


圖1為P2P直播系統(tǒng)的示意圖; 圖2為本發(fā)明的P2P環(huán)境下的數(shù)據(jù)傳輸方法的流程圖; 圖3為本發(fā)明的P2P環(huán)境下的數(shù)據(jù)傳輸方法中為鄰居節(jié)點分配子數(shù)據(jù)流的流程 圖; 圖4為本發(fā)明的P2P環(huán)境下的數(shù)據(jù)傳輸方法中用戶節(jié)點主動請求數(shù)據(jù)分片的實現(xiàn) 過程的流程圖; 圖5為對數(shù)據(jù)流的數(shù)據(jù)分片進行分組的示意圖;
圖6為本發(fā)明中所涉及的推送記錄表的示意圖;
圖7為當前時刻、預警時刻、最晚到達時刻間關系的示意圖。
具體實施例方式
下面結合附圖和具體實施方式
對本發(fā)明進行說明。 在下面的實施例中以P2P環(huán)境為例,對本發(fā)明的方法進行說明。在說明方法之前, 首先就P2P環(huán)境做一舉例說明。 圖1示出了一個P2P直播系統(tǒng)的示意圖,P2P直播系統(tǒng)是一種典型的P2P應用環(huán) 境。在該系統(tǒng)中包括有服務器和客戶端節(jié)點,而客戶端節(jié)點又可以分為直播發(fā)布者和直播 觀看者。上述的服務器和直播發(fā)布者參與某一直播數(shù)據(jù)的發(fā)布,而直播觀看者則參與該直 播數(shù)據(jù)的接收。由于直播發(fā)布者作為客戶端節(jié)點本身參與流媒體數(shù)據(jù)的分發(fā),因而能夠極 大減輕流媒體服務器端的工作壓力,促進網(wǎng)絡負載均衡,提高網(wǎng)絡資源的使用效率。需要說 明的是,圖1所示P2P直播系統(tǒng)中的直播發(fā)布者與直播觀看者的角色并不固定,對于某一客 戶端節(jié)點而言,它對于某一直播數(shù)據(jù)可能是發(fā)布者,對于另一直播數(shù)據(jù)就可能是參與者,甚 至同時屬于發(fā)布者和參與者。在下文中將以圖1所示的P2P直播系統(tǒng)為例,對本發(fā)明方法的 實現(xiàn)過程進行說明,但本領域技術人員應當了解,本發(fā)明的方法同樣適用于其它P2P應用, 如P2P點播平臺上的數(shù)據(jù)傳輸、基于P2P技術的VoIP音頻/視頻電話的數(shù)據(jù)傳輸、基于P2P 技術的視頻會議的數(shù)據(jù)傳輸。 參考圖2,對本發(fā)明方法的實現(xiàn)過程進行詳細說明。 在圖1所示的P2P直播系統(tǒng)中,所要直播節(jié)目的數(shù)據(jù)流的數(shù)據(jù)量很大,需要對數(shù)據(jù)流做分割操作。在本實施例中,對數(shù)據(jù)流分割操作是將一個數(shù)據(jù)流分割成多個數(shù)據(jù)分片,所 述的數(shù)據(jù)分片是下文中所涉及的數(shù)據(jù)請求和文件傳輸操作的基本單位。每一個數(shù)據(jù)分片都 有一個唯一的分片標識,一般而言,數(shù)據(jù)分片的標識按照時間順序依次生成。如圖5所示,
一個數(shù)據(jù)流在做分割操作后,按照數(shù)據(jù)分片生成的時間順序得到諸如標記為11、12、13的 數(shù)據(jù)分片。 在得到數(shù)據(jù)分片后,還需要將各個數(shù)據(jù)分片分配到不同的組中。在一個實例中,根 據(jù)分片標識模10的余數(shù),可以將分片分為10組,每組稱之為一個數(shù)據(jù)分組,或者子數(shù)據(jù)流。 標識為0的子數(shù)據(jù)流指分片標識模10為0的數(shù)據(jù)分片所組成的子數(shù)據(jù)流,標志為1的子 數(shù)據(jù)流指分片標識模10為1的數(shù)據(jù)分片所組成的子數(shù)據(jù)流,以此類推,在圖5中示出了數(shù) 據(jù)分片按照該方法分組的示意圖。以這種取模方式打散數(shù)據(jù)流,可以確保某一子數(shù)據(jù)流中 相鄰數(shù)據(jù)分片標識保持一定距離,使得當負責某一子數(shù)據(jù)流傳輸?shù)泥従庸?jié)點意外退出服務 時,客戶端回放質量不會嚴重下降。雖然在上述實例中將數(shù)據(jù)分片分成了 io個組,但在其 它實例中,分組的數(shù)目可以根據(jù)用戶的需要而改變,如5組、16組、20組皆可。雖然在本實 施例中采用分片、分組的方式實現(xiàn)數(shù)據(jù)流的分割操作,但在其它實施例中,本領域技術人員 也可以采用其它方式實現(xiàn)數(shù)據(jù)流的分割。 在完成數(shù)據(jù)流分割操作后,P2P直播系統(tǒng)中的任意一個客戶端節(jié)點都可以發(fā)起直 播請求,但在發(fā)起直播請求前,該客戶端節(jié)點應當已經(jīng)向P2P直播系統(tǒng)中的服務器注冊,從 而獲取最新的節(jié)目列表信息,或通過訪問P2P直播系統(tǒng)的網(wǎng)站獲取最新的節(jié)目列表信息 (步驟201)。用戶在客戶端節(jié)點根據(jù)節(jié)目列表信息選定所希望觀看的直播節(jié)目,然后向負 責該直播節(jié)目的Tracker服務器請求當前參與該直播節(jié)目的節(jié)點列表。為了將用戶發(fā)起直 播請求時所在的客戶端節(jié)點與系統(tǒng)中一般的客戶端節(jié)點相區(qū)別,在本發(fā)明中將用戶發(fā)起直 播請求時所在的客戶端節(jié)點稱為用戶節(jié)點。用戶節(jié)點在得到節(jié)點列表后,就可以按照一定 策略從該列表中選擇不超過鄰居節(jié)點上限的數(shù)個節(jié)點作為該用戶節(jié)點的鄰居節(jié)點,并與這 些鄰居節(jié)點建立連接(步驟202)。以圖1所示的P2P直播系統(tǒng)為例,假設有一客戶端節(jié)點 C為一次直播請求時的用戶節(jié)點,則為其選定的鄰居節(jié)點可以是節(jié)點A、節(jié)點B。在本實施 例中規(guī)定鄰居節(jié)點上限為5,在其它實施例中,鄰居節(jié)點上限的數(shù)目可以根據(jù)情況而發(fā)生改 變。 用戶節(jié)點在選定鄰居節(jié)點后,就可以為每個鄰居節(jié)點維護一個推送記錄表,該記 錄表中記錄了一個鄰居節(jié)點負責推送給該用戶節(jié)點的子數(shù)據(jù)流信息,以及該用戶節(jié)點負責 推送給該鄰居節(jié)點的子數(shù)據(jù)流信息(步驟203)。同樣的,在各個鄰居節(jié)點上也會維護一個 與該用戶節(jié)點有關的具有相似內容的推送記錄表。在圖6中給出了推送記錄表的一個范 例,假設圖6所示的推送記錄表中所包含的信息用于維護前面所提到的用戶節(jié)點C與鄰居 節(jié)點A的子數(shù)據(jù)流推送關系。從該記錄表可以看出 (1)、在推送記錄的輸入行中記錄的是A向C傳輸子數(shù)據(jù)流的情況。例如,在輸入 行,子數(shù)據(jù)流0列的標志為"O",表明A當前并沒有負責傳輸子數(shù)據(jù)流0的數(shù)據(jù)分片給C。
(2)、在推送記錄的輸出行中記錄的是C向A傳輸子數(shù)據(jù)流的情況。例如,在輸出 行,子數(shù)據(jù)流n-l列的標志為"l",表明C當前正在負責傳輸子數(shù)據(jù)流n-l的數(shù)據(jù)分片給A。
圖6所示的推送記錄表是用戶節(jié)點C上的用于維護的C與A之間的子數(shù)據(jù)流推送 關系的相關數(shù)據(jù)結構,但在鄰居節(jié)點A上也會有類似的推送記錄表。
7
推送記錄表中的信息會根據(jù)情況而發(fā)生變化,在下面的說明中會結合推送記錄表 對相關步驟進行說明。 P2P直播系統(tǒng)中那些被選定為鄰居節(jié)點的節(jié)點隨機產(chǎn)生前述子數(shù)據(jù)流數(shù)目的全排 列,然后各自按照該全排列的順序發(fā)送相應子數(shù)據(jù)流給前述用戶節(jié)點,經(jīng)過隨機競爭機制 協(xié)調,最終確定每個鄰居節(jié)點所負責的子數(shù)據(jù)流(步驟204)。在圖3中對本步驟的具體實 現(xiàn)過程做了說明,下面結合圖3對如何確定各個鄰居節(jié)點所負責的子數(shù)據(jù)流的過程做詳細 說明。 首先各個鄰居節(jié)點要隨機生成一個子數(shù)據(jù)流數(shù)目的全排列(步驟301)。例如,在 前述的一個實例中,子數(shù)據(jù)流的分組數(shù)為10個,因此各個鄰居節(jié)點隨機產(chǎn)生整數(shù)從0到9 的一個全排列,如鄰居節(jié)點A產(chǎn)生的全排列為(1、2、9、0、5、3、4、6、8、7)。
接著,各個鄰居節(jié)點按照前面所得到的全排列的順序發(fā)送相應子數(shù)據(jù)流的數(shù)據(jù)分 片給用戶節(jié)點(步驟302)。仍以前文所提到的鄰居節(jié)點A和用戶節(jié)點C為例,鄰居節(jié)點A 需要向用戶節(jié)點C推送數(shù)據(jù),因此鄰居節(jié)點A在根據(jù)全排列的順序依次選取擁有相同子數(shù) 據(jù)流序號的子數(shù)據(jù)流后,將該子數(shù)據(jù)流中分片標識最小的分片推送給C。如圖5所示,如果 當前正在處理全排列中的第一個數(shù)字l,則鄰居節(jié)點A發(fā)送標識為1的子數(shù)據(jù)流中分片標識 最小的一個,即標識為11的數(shù)據(jù)分片。 最后,用戶節(jié)點在收到鄰居節(jié)點所發(fā)送的數(shù)據(jù)分片后,檢查本地所保存的與相應 鄰居節(jié)點有關的推送記錄表(步驟303),根據(jù)推送記錄表的相關記錄對該數(shù)據(jù)分片進行處 理。例如,用戶節(jié)點C收到鄰居節(jié)點A發(fā)送的標識為11的數(shù)據(jù)分片后,如果用戶節(jié)點C中 與鄰居節(jié)點A有關的推送記錄表中輸入行代表子數(shù)據(jù)流1的標志位為"0",則丟棄該數(shù)據(jù)分 片,并發(fā)送拒絕消息給鄰居節(jié)點A(步驟304);鄰居節(jié)點A在收到拒絕消息后將本地與C有 關的推送記錄表中輸出行的子數(shù)據(jù)流1列的標志位置"O"(步驟305)。相反,如果前述標 志位為"1",則用戶節(jié)點C緩存標識為11的數(shù)據(jù)分片,發(fā)送接收消息給鄰居節(jié)點A,并將本 地與其它鄰居節(jié)點有關的推送記錄表中輸入行子數(shù)據(jù)流1列的標志位置"O"(步驟306); 鄰居節(jié)點A在收到接收消息后,將本地與A有關的推送記錄表中輸出行的子數(shù)據(jù)流1列的 標志位置"l"(步驟307)。雖然在上面的說明中,以鄰居節(jié)點A為例,但對于其它鄰居節(jié)點 的操作也同樣如此。 以上是對鄰居節(jié)點確定自己所負責的子數(shù)據(jù)流的過程的說明。用戶節(jié)點的各個鄰
居節(jié)點都要做上述的操作,直到完成對所有子數(shù)據(jù)流的分配(步驟308)。 各個鄰居節(jié)點在確定自己所負責的子數(shù)據(jù)流后,會不斷地將所負責子數(shù)據(jù)流中的
各個數(shù)據(jù)分片發(fā)送給用戶節(jié)點,當用戶節(jié)點的緩沖區(qū)中所緩存的數(shù)據(jù)滿足直播條件后,該
用戶節(jié)點開始在媒體播放器上回放直播節(jié)目(步驟205)。用戶節(jié)點在緩存數(shù)據(jù)并開始播放
后,還需要向Tracker服務器注冊為數(shù)據(jù)提供節(jié)點(步驟206)。 在上述實施例中,通過競爭機制實現(xiàn)子數(shù)據(jù)流的分配,所有的子數(shù)據(jù)流都被指派 給了一個,且僅一個鄰居節(jié)點,并且與該用戶節(jié)點通信能力較好的鄰居節(jié)點會以較大概率 承擔較多的子數(shù)據(jù)流傳輸任務,這會提高P2P直播系統(tǒng)的整體性能。雖然在數(shù)據(jù)請求的初
期會有較大量的冗余數(shù)據(jù)出現(xiàn),但根據(jù)在CoolFisl^平臺上的實踐證明,所述競爭解決機
制能夠迅速減少冗余數(shù)據(jù)包的傳輸,并且會較快速地開始視頻數(shù)據(jù)回放。 以上是對P2P直播系統(tǒng)實現(xiàn)數(shù)據(jù)傳輸?shù)囊粋€實施例的說明。在另一個實施例中,在前述實施例的基礎上還包括用戶節(jié)點對數(shù)據(jù)分片主動請求的過程。眾所周知,P2P環(huán)境
在將數(shù)據(jù)分發(fā)操作單純由服務器完成改變?yōu)橛杀姸嗫蛻舳斯?jié)點協(xié)同完成以加快分發(fā)速度
的同時,也會遇到因為客戶端節(jié)點隨時關機或故障所造成的分發(fā)操作不穩(wěn)定的問題。具體
到前述的P2P直播系統(tǒng),在數(shù)據(jù)流分發(fā)過程中,某一鄰居節(jié)點可能會因為種種原因使得其
所負責子數(shù)據(jù)流的數(shù)據(jù)分片推送過程終止,這將會影響與該鄰居節(jié)點相關的用戶節(jié)點所接
收數(shù)據(jù)的完整性。因此需要用戶節(jié)點主動請求相應的數(shù)據(jù)分片(步驟207)。 參考圖4和圖7,用戶節(jié)點主動請求數(shù)據(jù)分片的實現(xiàn)過程包括如圖7(a)所示,為
一數(shù)據(jù)分片設定一個未到達預警時刻,將該預警時刻記為twaming(步驟401),顯然,未到達
預警時刻應當在播放該數(shù)據(jù)分片的時刻之前,未到達預警時刻的設定可根據(jù)經(jīng)驗實現(xiàn)。在
當前時刻t。umnt到達該預警時刻時,檢查該數(shù)據(jù)分片是否已經(jīng)到達了用戶節(jié)點,如果仍然
沒有到達,則用戶節(jié)點隨機選取負責該分片相應子數(shù)據(jù)流的鄰居節(jié)點外的其它鄰居節(jié)點中
的一個、多個或全部節(jié)點發(fā)送該數(shù)據(jù)分片的數(shù)據(jù)請求消息(步驟402)。 當鄰居節(jié)點收到前述的數(shù)據(jù)請求消息后,檢查其緩存中是否存在所述數(shù)據(jù)分片,
如果存在則立即發(fā)送該數(shù)據(jù)分片給請求該數(shù)據(jù)分片的用戶節(jié)點,否則直接忽視所述數(shù)據(jù)請
求消息(步驟403)。 當請求數(shù)據(jù)分片的用戶節(jié)點收到所述數(shù)據(jù)分片時,如圖7(b)所示,如果當前時刻 指針t。umnt小于最晚到達時刻指針td一^,則緩存所述數(shù)據(jù)分片到所述緩存區(qū)域的相應位 置,否則表明該數(shù)據(jù)分片的接收時間已經(jīng)晚于該數(shù)據(jù)分片的播放時間,因此直接將所述數(shù) 據(jù)分片丟棄(步驟404)。對于用戶節(jié)點而言,如果當前時刻指針t^,t大于最晚到達時刻 指針td一^,此時雖然數(shù)據(jù)并不完整,但為了實現(xiàn)直播節(jié)目的同步播放,只能以節(jié)目質量的 損失為代價,將缺少所述分片的數(shù)據(jù)模塊交由播放器播放(步驟405)。當然在本實施例中, 由于P2P直播對時間的要求較高,所以在某些數(shù)據(jù)分片無法及時到達的情況下,可以丟棄 這些數(shù)據(jù)分片。但如果在對時間要求不太高的其它P2P應用中,如P2P下載,則可以在接收 到所有數(shù)據(jù)分片后才停止相關操作。 本實施例中,在數(shù)據(jù)分片無法及時到達的情況下,由用戶節(jié)點主動請求相應的數(shù) 據(jù)分片,實現(xiàn)了鄰居節(jié)點推數(shù)據(jù)分片與用戶節(jié)點拉數(shù)據(jù)分片的結合,與前一實施例單純由 鄰居節(jié)點推數(shù)據(jù)分片相比,在數(shù)據(jù)傳輸質量上有很大的提高。 最后所應說明的是,以上實施例僅用以說明本發(fā)明的技術方案而非限制。盡管參 照實施例對本發(fā)明進行了詳細說明,本領域的普通技術人員應當理解,對本發(fā)明的技術方 案進行修改或者等同替換,都不脫離本發(fā)明技術方案的精神和范圍,其均應涵蓋在本發(fā)明 的權利要求范圍當中。
權利要求
一種P2P環(huán)境下的數(shù)據(jù)傳輸方法,包括步驟1)、對所要傳輸數(shù)據(jù)做分割后得到多組子數(shù)據(jù)流;步驟2)、在用戶所登錄的用戶節(jié)點以及該用戶節(jié)點的鄰居節(jié)點上維護推送記錄表,所述推送記錄表用于記錄所在節(jié)點所要推送以及所要接收的子數(shù)據(jù)流的信息;步驟3)、所述鄰居節(jié)點按照隨機的順序將不同組的子數(shù)據(jù)流推送給所述用戶節(jié)點,所述用戶節(jié)點接收子數(shù)據(jù)流后結合所述推送記錄表中的信息為所述鄰居節(jié)點分配該鄰居節(jié)點負責推送的子數(shù)據(jù)流;步驟4)、所述用戶節(jié)點接收并保存所述鄰居節(jié)點所推送的數(shù)據(jù)。
2. 根據(jù)權利要求1所述的P2P環(huán)境下的數(shù)據(jù)傳輸方法,其特征在于,還包括步驟5)、所述用戶節(jié)點在某些數(shù)據(jù)無法及時到達時,向除了負責該數(shù)據(jù)推送的鄰居節(jié) 點外的其它鄰居節(jié)點請求該數(shù)據(jù)。
3. 根據(jù)權利要求1或2所述的P2P環(huán)境下的數(shù)據(jù)傳輸方法,其特征在于,在所述的步驟 1)中,對所要傳輸數(shù)據(jù)做分割包括分片、分組;其中,所述分片包括將數(shù)據(jù)按照規(guī)定的格式大小分割,得到數(shù)據(jù)分片;所述分組包括將所述 數(shù)據(jù)分片按照所述數(shù)據(jù)分配的標識進行分配,同一組的數(shù)據(jù)分片形成子數(shù)據(jù)流。
4. 根據(jù)權利要求3所述的P2P環(huán)境下的數(shù)據(jù)傳輸方法,其特征在于,在對數(shù)據(jù)分片進行 分組時,對所述數(shù)據(jù)分片的標識做取模操作,將標識取模后所得到的余數(shù)相同的數(shù)據(jù)分片 分在同一組中。
5. 根據(jù)權利要求1或2所述的P2P環(huán)境下的數(shù)據(jù)傳輸方法,其特征在于,所述步驟3) 包括步驟3-1)、各個鄰居節(jié)點對所述子數(shù)據(jù)流的序號做隨機排列;步驟3-2)、所述鄰居節(jié)點根據(jù)隨機排列結果將相應序號的子數(shù)據(jù)流按序推送給用戶節(jié)點;步驟3-3)、所述用戶節(jié)點接收到某一鄰居節(jié)點所推送的某一組子數(shù)據(jù)流后,根據(jù)自身 的推送記錄表的信息,決定是否將該子數(shù)據(jù)流分配給該鄰居節(jié)點,并將決定后的結果通知 該鄰居節(jié)點。
6. 根據(jù)權利要求5所述的P2P環(huán)境下的數(shù)據(jù)傳輸方法,其特征在于,所述步驟3-3)包括步驟3-3-1)、所述用戶節(jié)點接收到某一鄰居節(jié)點所推送的某一組子數(shù)據(jù)流后,若自身 的推送記錄表中記錄拒絕接收該鄰居節(jié)點所推送的該組子數(shù)據(jù)流,則向該鄰居節(jié)點發(fā)送拒絕消息,該鄰居節(jié)點接收到拒絕消息后,在其自身的推送記錄表中記錄,否則,執(zhí)行下一止 少;步驟3-3-2)、若用戶節(jié)點自身的推送記錄表中記錄接收該鄰居節(jié)點所推送的該組子數(shù) 據(jù)流,則在該推送記錄表中記錄不接收其它鄰居節(jié)點所推送的該組子數(shù)據(jù)流,并向該鄰居 節(jié)點發(fā)送接收消息,該鄰居節(jié)點接收到接收消息后,在其自身的推送記錄表中記錄。
7. 權利要求2所述的P2P環(huán)境下的數(shù)據(jù)傳輸方法,其特征在于,所述的步驟5)包括 步驟5-1)、為數(shù)據(jù)設立未到達預警時刻;步驟5-2)、在當前時刻到達該未到達預警時刻時,檢查對應的數(shù)據(jù)是否已經(jīng)到達了所 述用戶節(jié)點,若沒有到達,則向除了負責該數(shù)據(jù)推送的鄰居節(jié)點外的其它鄰居節(jié)點請求該數(shù)據(jù),否則不做操作;步驟5-3)、所述鄰居節(jié)點收到請求后,檢查自身是否保存有相應的數(shù)據(jù),若有,將該數(shù)據(jù)發(fā)送給所述用戶節(jié)點,否則忽略該請求。
8.權利要求7所述的P2P環(huán)境下的數(shù)據(jù)傳輸方法,其特征在于,所述的步驟5)還包括 步驟5-4)、若當前時刻大于最晚到達時刻時,所請求的數(shù)據(jù)還未到達所述用戶節(jié)點,則拋棄該數(shù)據(jù)。
全文摘要
本發(fā)明提供一種P2P環(huán)境下的數(shù)據(jù)傳輸方法,包括對所要傳輸數(shù)據(jù)做分割后得到多組子數(shù)據(jù)流;在用戶所登錄的用戶節(jié)點以及該用戶節(jié)點的鄰居節(jié)點上維護推送記錄表,所述推送記錄表用于記錄所在節(jié)點所要推送以及所要接收的子數(shù)據(jù)流的信息;所述鄰居節(jié)點按照隨機的順序將不同組的子數(shù)據(jù)流推送給所述用戶節(jié)點,所述用戶節(jié)點接收子數(shù)據(jù)流后結合所述推送記錄表中的信息為所述鄰居節(jié)點分配該鄰居節(jié)點負責推送的子數(shù)據(jù)流;所述用戶節(jié)點接收并保存所述鄰居節(jié)點所推送的數(shù)據(jù)。本發(fā)明將推策略與拉策略相結合,能夠盡可能地減少數(shù)據(jù)分片丟失情況的出現(xiàn)。本發(fā)明通過競爭機制實現(xiàn)子數(shù)據(jù)流的分配,能夠減少冗余數(shù)據(jù)包的傳輸,提高整個系統(tǒng)的性能。
文檔編號H04L29/08GK101697553SQ200910235678
公開日2010年4月21日 申請日期2009年10月12日 優(yōu)先權日2009年10月12日
發(fā)明者劉悅, 葉靖, 呂建明, 李靜遠, 林思明, 王雷, 程學旗 申請人:中國科學院計算技術研究所;
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
醴陵市| 林口县| 庆安县| 石景山区| 门源| 余庆县| 锦屏县| 广南县| 冷水江市| 克山县| 华阴市| 兰考县| 尉氏县| 凤山县| 宽甸| 沈丘县| 凤山市| 德清县| 梁平县| 信阳市| 铅山县| 太康县| 黄大仙区| 南投县| 建水县| 平度市| 邳州市| 勃利县| 炉霍县| 泽州县| 恩平市| 准格尔旗| 高雄县| 天津市| 漾濞| 英吉沙县| 攀枝花市| 广东省| 白玉县| 高清| 宿松县|