專利名稱:對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的方法、系統(tǒng)、節(jié)點和超級節(jié)點的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對等網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的方法、系統(tǒng)、節(jié)點 和超級節(jié)點。
背景技術(shù):
在P2P (Peer to Peer,點對點)流媒體直播系統(tǒng)中,參見圖1,超級節(jié)點直接從直播源獲 取媒體數(shù)據(jù),對獲取的數(shù)據(jù)進行分片得到切片slice,然后下發(fā)切片siice。客戶端節(jié)點從超級 節(jié)點或者其他客戶端節(jié)點獲取媒體數(shù)據(jù)的切片,解碼恢復(fù)成媒體數(shù)據(jù)后,提供給播放器進行 播放?,F(xiàn)有技術(shù)中當(dāng)客戶端節(jié)點發(fā)起請求時,上級節(jié)點(包括超級節(jié)點和客戶端節(jié)點)不檢測 該客戶端節(jié)點請求的起始Slice是否含有關(guān)鍵幀,而是直接按照客戶端節(jié)點的請求直接下發(fā)數(shù) 據(jù)??蛻舳斯?jié)點收到數(shù)據(jù)后,只有完成正確的解碼才能進行播放。客戶端節(jié)點的播放器通常 都是從關(guān)鍵幀I幀畫面開始解碼的,如果從前向幀P幀或后向幀B幀開始,則無法完成解碼。 I幀畫面是指僅使用自身信息進行編碼的畫面,解碼時不需要其它額外的信息;P幀畫面是指 從前面畫面中得到的前向預(yù)見的畫面,前面畫面可以是I幀畫面或P幀畫面;B幀畫面是指 從之前或者之后的I幀畫面或P幀畫面上得到的雙向預(yù)見的畫面。I幀(又稱代表幀)是用來 描述一個鏡頭的關(guān)鍵圖像幀,它通常會反映一個鏡頭的主要內(nèi)容。I幀是B幀、P幀的參考幀, 一般采用I幀足以提供視頻內(nèi)容的全部信息,因此I幀在視頻圖像內(nèi)容的提取中占據(jù)了比較 重要的地位,當(dāng)播放器從B幀或P幀畫面丌始解碼時,由于無法解碼,所以播放器會丟棄這 些數(shù)據(jù),直到接收到I幀畫面。 _ 在實現(xiàn)本發(fā)明的過程屮,發(fā)明人發(fā)現(xiàn)上述現(xiàn)有技術(shù)至少具有以下缺點 當(dāng)客戶端節(jié)點先收到的數(shù)據(jù)不是關(guān)鍵幀數(shù)據(jù)時,播放器會丟棄收到的這些數(shù)據(jù),并在后 續(xù)收到關(guān)鍵幀數(shù)據(jù)后,才能完成解碼播出畫面,因此會導(dǎo)致播出畫面的延遲。發(fā)明內(nèi)容為了提高P2P網(wǎng)絡(luò)中的節(jié)點收到數(shù)據(jù)后播出畫面的速度,本發(fā)明實施例提供了一種對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的方法、系統(tǒng)、節(jié)點和超級節(jié)點。所述技術(shù)方案如下-一方面,本發(fā)明實施例提供了一種對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的方法,應(yīng)用于對等網(wǎng)絡(luò),所述 方法包括接收請求節(jié)點發(fā)來的獲取數(shù)據(jù)的請求消息;根據(jù)所述請求消息,在收到的分片中從所述請求節(jié)點請求獲取的分片開始找到首次出現(xiàn) 的關(guān)鍵幀;從找到的關(guān)鍵幀所在的分片開始發(fā)送分片給所述請求節(jié)點。另一方面,本發(fā)明實施例提供了一種對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的系統(tǒng),應(yīng)用于對等網(wǎng)絡(luò),所 述系統(tǒng)包括請求節(jié)點和被請求節(jié)點;所述請求節(jié)點,用于向所述被請求節(jié)點發(fā)送獲取數(shù)據(jù)的請求消息,并接收所述被請求節(jié) 點發(fā)來的分片;所述被請求節(jié)點,用于接收所述請求節(jié)點發(fā)來的請求消息,根據(jù)所述請求消息,在收到 的分片中從所述請求節(jié)點請求獲取的分片開始找到首次出現(xiàn)的關(guān)鍵幀,從找到的關(guān)鍵幀所在 的分片開始發(fā)送分片給所述請求節(jié)點。另一方面,本發(fā)明實施例還提供了一種節(jié)點,位于對等網(wǎng)絡(luò)中,所述節(jié)點包括 .接收模塊,用于接收請求節(jié)點發(fā)來的請求消息;査找模塊,用于根據(jù)所述接收模塊收到的請求消息,在所述節(jié)點收到的分片屮從所述請求節(jié)點請求獲取的分片開始找到首次出現(xiàn)的關(guān)鍵幀,轉(zhuǎn)發(fā)模塊,用于從所述查找模塊找到的關(guān)鍵幀所在的分片開始發(fā)送分片給所述請求節(jié)點。 另一方面,本發(fā)明實施例還提供了一種超級節(jié)點,位于對等網(wǎng)絡(luò)中,所述超級節(jié)點包括 獲取模塊,用于在接收到源節(jié)點發(fā)來的數(shù)據(jù)后,獲取關(guān)鍵幀的位置信息; 處理模塊,用于對所述接收的數(shù)據(jù)進行切片,根據(jù)所獲取的關(guān)鍵幀的位置信息,設(shè)置分片中是否包含關(guān)鍵幀的標(biāo)識,并根據(jù)所述標(biāo)識封裝每個分片,然后在所述對等網(wǎng)絡(luò)中發(fā)送封裝后的分片。本發(fā)明實施例提供的技術(shù)方案的有益效果是 _ 通過從關(guān)鍵幀所在的分片開始下發(fā)分片給請求節(jié)點,加快了請求節(jié)點向播放器供流,使 播放器可以更快地完成解碼播出畫面,降低播出畫面的延遲。
圖1是現(xiàn)有技術(shù)中P2P流媒體直播系統(tǒng)結(jié)構(gòu)示意圖;圖2是本發(fā)明實施例1提供的對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的方法流程圖3是本發(fā)明實施例1提供的P2P網(wǎng)絡(luò)組網(wǎng)示意圖4是本發(fā)明實施例1提供的超級節(jié)點封裝分片的示意圖5是本發(fā)明實施例1提供的被請求節(jié)點收到的分片的封裝格式示意圖;
圖6是本發(fā)明實施例2提供的對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的方法流程圖7是本發(fā)明實施例3提供的對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的系統(tǒng)結(jié)構(gòu)圖8是本發(fā)明實施例4提供的節(jié)點結(jié)構(gòu)圖9是本發(fā)明實施例5提供的超級節(jié)點結(jié)構(gòu)圖。
具體實施例方式
本發(fā)明實施例提供的對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的方法,具體包括接收請求節(jié)點發(fā)來的請求 消息;根據(jù)該請求消息,在收到的分片中從請求節(jié)點請求獲取的分片開始找到首次出現(xiàn)的關(guān) 鍵幀;從找到的關(guān)鍵幀所在的分片開始發(fā)送分片給請求節(jié)點。
實施例1
參見圖2,本發(fā)明實施例提供了一種對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的方法,應(yīng)用于P2P網(wǎng)絡(luò),本
實施例以超級節(jié)點解析出關(guān)鍵幀的位置為例進行說明,該方法具體包括
101: P2P網(wǎng)絡(luò)中的超級節(jié)點接收源節(jié)點發(fā)來的數(shù)據(jù),并獲取該數(shù)據(jù)中關(guān)鍵幀的位置信息。 在P2P網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)最終都來源于超級節(jié)點,超級節(jié)點是P2P網(wǎng)絡(luò)與源節(jié)點的唯一 接口,數(shù)據(jù)都是通過超級節(jié)點傳輸?shù)秸麄€P2P網(wǎng)絡(luò)中。對于P2P網(wǎng)絡(luò)中的客戶端節(jié)點來說, 收到的數(shù)據(jù)則來源于它的父節(jié)點或者超級節(jié)點。如在P2P流媒體直播系統(tǒng)中,超級節(jié)點接收 從直播源節(jié)點發(fā)來的媒體數(shù)據(jù)。
102:超級節(jié)點對收到的數(shù)據(jù)進行切片,得到多個分片slice,根據(jù)獲取的關(guān)鍵幀的位置信 息設(shè)置分片是否包含關(guān)鍵幀的標(biāo)識,并根據(jù)該標(biāo)識封裝每個分片,然后在P2P網(wǎng)絡(luò)中發(fā)送封 裝后的分片給相鄰的節(jié)點。例如,參見圖3,超級節(jié)點對數(shù)據(jù)進行切片以及封裝后,將封裝 后的切片發(fā)送給相鄰的節(jié)點F1、 F2和F3,節(jié)點P可以從父節(jié)點F1、 F2和F3處獲取分片, 節(jié)點S1、 S2或S3可以從父節(jié)點P處獲取分片。
具體地,超級節(jié)點先對收到的數(shù)據(jù)進行解析,確定出關(guān)鍵幀所在的數(shù)據(jù)包,然后對數(shù)據(jù) 包按照指定的大小(如2k或3k等等)進行切片生成多個分片Slice,并給每個分片封裝一個 信息頭,信息頭中包含標(biāo)識,表明當(dāng)前分片中是否存在關(guān)鍵幀,如在信息頭中設(shè)置標(biāo)志位, 標(biāo)志位的值為1代表該分片中有關(guān)鍵幀,標(biāo)志位的值為0代表該分片中沒有關(guān)鍵幀。進一步地,超級節(jié)點還可以在信息頭中記錄關(guān)鍵幀的偏移,該偏移為關(guān)鍵幀在當(dāng)前分片中從起始字 節(jié)開始偏移的字節(jié)數(shù),從而方便請求節(jié)點收到分片后,根據(jù)分片中的偏移信息恢復(fù)出數(shù)據(jù)進 行播放。例如,參見圖4,超級節(jié)點收到媒體數(shù)據(jù)后進行切片,在分片中的媒體數(shù)據(jù)前封裝 信息頭,信息頭中包含分片序號、關(guān)鍵幀存在標(biāo)志位以及關(guān)鍵幀在該分片中的偏移等等,如 分片序號為10,關(guān)鍵幀存在標(biāo)志位為l,偏移量為500byte,則表明該分片中包含關(guān)鍵幀,且 位于該分片中的第500個字節(jié)處。其中,分片的序號與播放順序保持一致,當(dāng)關(guān)鍵幀標(biāo)志位 為O時,信息頭中的偏移量為無效數(shù)據(jù)。切片后得到的分片slice的長度可以相等,也可以不 相等。
103: P2P網(wǎng)絡(luò)中的請求節(jié)點A向被請求節(jié)點B發(fā)送獲取數(shù)據(jù)的請求消息。 104:被請求節(jié)點B接收請求節(jié)點A發(fā)來的請求消息。
105:被請求節(jié)點B根據(jù)該請求消息以及分片中是否包含關(guān)鍵幀的標(biāo)識信息,判斷請求 節(jié)點A請求獲取的分片中是否包含關(guān)鍵幀;如果是,則執(zhí)行106;否則,執(zhí)行107。
106:被請求節(jié)點B從請求節(jié)點A請求獲取的分片開始,發(fā)送分片給請求節(jié)點A,然后結(jié)束。
107:被請求節(jié)點B根據(jù)分片中是否包含關(guān)鍵幀的標(biāo)識信息,在收到的分片中找到在請 求節(jié)點A請求獲取的分片之后首次出現(xiàn)的關(guān)鍵幀。
被請求節(jié)點B收到的分片為從P2P網(wǎng)絡(luò)中相鄰的節(jié)點處獲取的分片,該相鄰的節(jié)點可以 為超級節(jié)點,也可以為其他節(jié)點。
108:被請求節(jié)點B從找到的關(guān)鍵幀所在的分片開始,發(fā)送分片給請求節(jié)點A,然后結(jié)束。
在本實施例中,當(dāng)超級節(jié)點封裝的信息頭中包含關(guān)鍵幀的偏移信息時,進一步地,上述
方法還包括
請求節(jié)點A收到被請求節(jié)點B從包含關(guān)鍵幀的分片開始發(fā)來的分片后,根據(jù)收到的分片 中的關(guān)鍵幀偏移信息,將收到的分片恢復(fù)成數(shù)據(jù),由于關(guān)鍵幀所在的位置為一個數(shù)據(jù)包的開 始,則請求節(jié)點A收到分片后先根據(jù)關(guān)鍵幀偏移信息確定兩個相鄰的關(guān)鍵幀的位置,如關(guān)鍵 幀Il在第m個分片中的第IOO個字節(jié),下一個關(guān)鍵幀I2在第n個分片中的第50個字節(jié),然 后對各個分片進行解封裝,去除封裝的關(guān)鍵幀標(biāo)識及偏移等信息,得到各個分片對應(yīng)的凈荷, 在得到的多個凈荷中將從II開始至12結(jié)束之伺的部分恢復(fù)為數(shù)據(jù),該數(shù)據(jù)可以為一個數(shù)據(jù) 包或多個數(shù)據(jù)包;然后請求節(jié)點A的播放器可以播放該數(shù)據(jù)。
下面以圖3中的組網(wǎng)為例進行說明,P2P網(wǎng)絡(luò)中的客戶端節(jié)點P向它的父節(jié)點Fl發(fā)起獲 取數(shù)據(jù)的請求,請求獲取的分片序號為5,節(jié)點F1上收到的來自超級節(jié)點的分片序號分別為4、 5、 6、 7、 8和9,且這些分片都為超級節(jié)點封裝好信息頭的分片。參見圖5,為分片4、 5、 6和7的封裝格式,其中,分片4和7中的關(guān)鍵幀存在標(biāo)志位為1,則表明分片4和7中含有 關(guān)鍵幀,節(jié)點Fl從節(jié)點P所請求的分片5開始査找關(guān)鍵幀,找到首次出現(xiàn)的關(guān)鍵幀在分片7 中,則節(jié)點Fl從分片7開始下發(fā)分片給節(jié)點P,包括分片7、 8和9。節(jié)點P收到這些分片 后,根據(jù)分片7中關(guān)鍵幀的偏移量為205字節(jié),恢復(fù)出數(shù)據(jù)進行播放。
本實施例中超級節(jié)點對數(shù)據(jù)進行解析,查找關(guān)鍵幀,則超級節(jié)點需要知道源節(jié)點發(fā)來的 數(shù)據(jù)的媒體格式,根據(jù)媒體格式解析出關(guān)鍵幀,而其他節(jié)點不需要知道數(shù)據(jù)的媒體格式,即 降低了對其他節(jié)點的要求。
本實施例通過在超級節(jié)點上查找數(shù)據(jù)中的關(guān)鍵幀,并在分片中封裝關(guān)鍵幀的相關(guān)信息, 使被請求節(jié)點能夠根據(jù)該信息找到關(guān)鍵幀所在的分片,并從關(guān)鍵幀所在的分片開始下發(fā)分片 給請求節(jié)點,從而加快了請求節(jié)點向播放器供流,使播放器可以更快地完成解碼播出畫面, 降低播出畫面的延遲。
實施例2
參見圖6,本發(fā)明實施例提供了一種對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的方法,應(yīng)用于P2P網(wǎng)絡(luò),本 實施例以被請求節(jié)點解析出關(guān)鍵幀的位置為例進行說明,該方法具體包括
201: P2P網(wǎng)絡(luò)中的超級節(jié)點接收源節(jié)點發(fā)來的數(shù)據(jù),對收到的數(shù)據(jù)進行切片后,得到多 個分片slice,并在P2P網(wǎng)絡(luò)中發(fā)送得到的多個分片給相鄰的節(jié)點。
202: P2P網(wǎng)絡(luò)中的請求節(jié)點A向被請求節(jié)點B發(fā)送獲取數(shù)據(jù)的請求消息。
203:被請求節(jié)點B接收請求節(jié)點A發(fā)來的請求消息。
204:被請求節(jié)點B從請求節(jié)點A請求獲取的分片開始,將后續(xù)從P2P網(wǎng)絡(luò)中收到的所 有分片恢復(fù)成數(shù)據(jù)。
被請求節(jié)點B從P2P網(wǎng)絡(luò)中收到的分片為從相鄰的節(jié)點處獲取的分片,該相鄰的節(jié)點可 以為超級節(jié)點,也可以為其他節(jié)點。
205:被請求節(jié)點B從恢復(fù)出來的數(shù)據(jù)中解析出首次出現(xiàn)的關(guān)鍵幀,并確定該關(guān)鍵幀所 在的分片。本實施例中被請求節(jié)點需要知道數(shù)據(jù)的媒體格式,在恢復(fù)出數(shù)據(jù)后,按照當(dāng)前數(shù) 據(jù)的媒體格式對應(yīng)的規(guī)則,識別出關(guān)鍵幀,從而確定出關(guān)鍵幀的位置。不同的媒體格式對應(yīng) 的識別關(guān)鍵幀的規(guī)則各不相同。
206:被請求節(jié)點B從確定的分片開始,發(fā)送分片給請求節(jié)點A,然后結(jié)束。
進一步地,本實施例還包括
當(dāng)請求節(jié)點A收到被請求節(jié)點B發(fā)來的分片后,將收到的分片恢復(fù)成數(shù)據(jù),并且由播放器進行播放。
下面以圖3中的組網(wǎng)為例進行說明,P2P網(wǎng)絡(luò)中的客戶端節(jié)點S2向它的父節(jié)點P發(fā)起獲 取數(shù)據(jù)的請求,請求獲取的分片序號為3,節(jié)點P上收到的來自父節(jié)點的分片序號分別為2、 3、 4、 5和6。節(jié)點P將分片3、 4、 5和6按序號恢復(fù)成連續(xù)的媒體流并存于緩沖區(qū)中,通過 分析緩沖區(qū)中的媒體流,解析出首次出現(xiàn)的關(guān)鍵幀,并確定該關(guān)鍵幀所在的分片,如為分片 5,則節(jié)點P從分片5開始下發(fā)分片給節(jié)點S2,包括分片5和6。節(jié)點S2收到這些分片后, 將其恢復(fù)成數(shù)據(jù),由播放器進行播放。
本實施例通過被請求節(jié)點從恢復(fù)出的數(shù)據(jù)中查找關(guān)鍵幀,并確定關(guān)鍵幀所在的分片,從 該分片開始下發(fā)分片給請求節(jié)點,從而加快了請求節(jié)點向播放器供流,使播放器可以更快地 完成解碼播出畫面,降低播出畫面的延遲。而且與實施例l相比,節(jié)省了在分片中封裝信息 頭的開銷,利于網(wǎng)絡(luò)傳輸。
實施例3
參見圖7,本發(fā)明實施例還提供了一種對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的系統(tǒng),應(yīng)用于P2P網(wǎng)絡(luò), 具體包括請求節(jié)點和被請求節(jié)點;
請求節(jié)點,用于向被請求節(jié)點發(fā)送獲取數(shù)據(jù)的請求消息,并接收被請求節(jié)點發(fā)來的分片;
被請求節(jié)點,用于接收請求節(jié)點發(fā)來的請求消息,根據(jù)請求消息,在收到的分片中從請 求節(jié)點請求獲取的分片開始找到首次出現(xiàn)的關(guān)鍵幀,從找到的關(guān)鍵幀所在的分片開始發(fā)送分 片給請求節(jié)點。
進一步地,上述系統(tǒng)還包括
超級節(jié)點,用于在收到源節(jié)點發(fā)來的數(shù)據(jù)后,獲取關(guān)鍵幀的位置信息,并對數(shù)據(jù)進行切 片,設(shè)置分片中是否包含關(guān)鍵幀的標(biāo)識,并根據(jù)該標(biāo)識封裝每個分片,然后在對等網(wǎng)絡(luò)中發(fā) 送封裝后的分片;
相應(yīng)地,被請求節(jié)點具體用于接收請求節(jié)點發(fā)來的請求消息;根據(jù)該請求消息以及分片 中的標(biāo)識信息,在被請求節(jié)點收到的分片中從請求節(jié)點請求獲取的分片開始找到首次出現(xiàn)的 關(guān)鍵幀;從找到的關(guān)鍵幀所在的分片開始發(fā)送分片給請求節(jié)點。
當(dāng)超級節(jié)點封裝后的分片還包括關(guān)鍵幀在分片中的偏移信息時,請求節(jié)點還用于在請求 節(jié)點收到被請求節(jié)點從包含關(guān)鍵幀的分片開始發(fā)來的分片后,根據(jù)收到的分片中的關(guān)鍵幀偏 移信息將收到的分片恢復(fù)成數(shù)據(jù)。
另外,上述通過超級節(jié)點添加關(guān)鍵幀的標(biāo)識信息以及被請求節(jié)點根據(jù)該標(biāo)識信息査找關(guān) 鍵幀的方式還可以由以下方式來替換被請求節(jié)點自己查找關(guān)鍵幀,即被請求節(jié)點具體包括接收模塊,用于接收請求節(jié)點發(fā)來的請求消息; _ 査找模塊,用于從請求節(jié)點請求獲取的分片開始,將被請求節(jié)點從對等網(wǎng)絡(luò)中后續(xù)收到 的所有分片恢復(fù)成數(shù)據(jù);在數(shù)據(jù)中解析出首次出現(xiàn)的關(guān)鍵幀,并確定關(guān)鍵幀所在的分片; 轉(zhuǎn)發(fā)模塊,用于從查找模塊確定的分片開始發(fā)送分片給請求節(jié)點。
本實施例通過被請求節(jié)點從關(guān)鍵幀所在的分片開始下發(fā)分片給請求節(jié)點,加快了請求節(jié) 點向播放器供流,使播放器可以更快地完成解碼播出畫面,降低播出畫面的延遲??梢圆捎?超級節(jié)點上査找關(guān)鍵幀,并在分片中封裝關(guān)鍵幀的相關(guān)信息的方式,使被請求節(jié)點確定出關(guān) 鍵幀所在的分片;還可以采用被請求節(jié)點將收到的分片恢復(fù)出數(shù)據(jù),并在數(shù)據(jù)中解析出關(guān)鍵 幀的方式,使被請求節(jié)點確定出關(guān)鍵幀所在的分片,應(yīng)用更靈活。而且第二種方式節(jié)省了在 分片中封裝信息頭的開銷,利于網(wǎng)絡(luò)傳輸。
實施例4
參見圖8,本發(fā)明實施例還提供了一種節(jié)點,為P2P網(wǎng)絡(luò)中的被請求節(jié)點,具體包括 接收模塊,用于接收請求節(jié)點發(fā)來的請求消息;
查找模塊,用于根據(jù)接收模塊收到的請求消息,在節(jié)點收到的分片中從請求節(jié)點請求獲 取的分片開始找到首次出現(xiàn)的關(guān)鍵幀,
轉(zhuǎn)發(fā)模塊,用于從查找模塊找到的關(guān)鍵幀所在的分片開始發(fā)送分片給請求節(jié)點。 其中,查找模塊可以具體包括-
査找單元,用于根據(jù)接收模塊收到的請求消息以及分片中的是否包含關(guān)鍵幀的標(biāo)識信息, 在被請求節(jié)點收到的分片中從請求節(jié)點請求獲取的分片開始找到首次出現(xiàn)的關(guān)鍵幀。
另外,查找模塊還口T以具體包括 -恢復(fù)單元,用于從請求節(jié)點請求獲取的分片開始,將節(jié)點從對等網(wǎng)絡(luò)中后續(xù)收到的所有 分片恢復(fù)成數(shù)據(jù);
査找單元,用于在恢復(fù)單元恢復(fù)出的數(shù)據(jù)中解析出首次出現(xiàn)的關(guān)鍵幀,并確定關(guān)鍵幀所 在的分片。
本實施例通過從關(guān)鍵幀所在的分片開始下發(fā)分片給請求節(jié)點,加快了請求節(jié)點向播放器 供流,使播放器可以更快地完成解碼播出畫面,降低播出畫面的延遲??梢圆捎贸壒?jié)點上 査找關(guān)鍵幀,并在分片中封裝關(guān)鍵幀的相關(guān)信息的方式,使被請求節(jié)點確定出關(guān)鍵幀所在的 分片;還可以采用被請求節(jié)點將收到的分片恢復(fù)出數(shù)據(jù),并在數(shù)據(jù)中解析出關(guān)鍵幀的方式, 使被請求節(jié)點確定出關(guān)鍵幀所在的分片,應(yīng)用更靈活。而且第二種方式節(jié)省了在分片中封裝 信息頭的開銷,利于網(wǎng)絡(luò)傳輸。實施例5參見圖9,本發(fā)明實施例還提供了一種超級節(jié)點,位于P2P網(wǎng)絡(luò)中,具體包括 獲取模塊,用于在接收到源節(jié)點發(fā)來的數(shù)據(jù)后,獲取關(guān)鍵幀的位置信息; 處理模塊,用于對接收的數(shù)據(jù)進行切片,根據(jù)所獲取的關(guān)鍵幀的位置信息,設(shè)置分片中 是否包含關(guān)鍵幀的標(biāo)識,并根據(jù)標(biāo)識封裝每個分片,然后在對等網(wǎng)絡(luò)中發(fā)送封裝后的分片。 進一步地,處理模塊還包括設(shè)置單元,用于在封裝分片時,在分片中添加關(guān)鍵幀的偏移信息。本實施例通過超級節(jié)點査找關(guān)鍵幀,并在分片中封裝關(guān)鍵幀的相關(guān)信息,使P2P網(wǎng)絡(luò)中 的其他節(jié)點可以根據(jù)封裝的信息確定出關(guān)鍵幀所在的分片。本發(fā)明實施例可以利用軟件實現(xiàn),相應(yīng)的軟件程序可以存儲在可讀取的存儲介質(zhì)中,例 如,路由器的硬盤、緩存或光盤中。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之 內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的方法,其特征在于,應(yīng)用于對等網(wǎng)絡(luò),所述方法包括接收請求節(jié)點發(fā)來的獲取數(shù)據(jù)的請求消息;根據(jù)所述請求消息,在收到的分片中從所述請求節(jié)點請求獲取的分片開始找到首次出現(xiàn)的關(guān)鍵幀;從找到的關(guān)鍵幀所在的分片開始發(fā)送分片給所述請求節(jié)點。
2. 根據(jù)權(quán)利要求1所述的對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的方法,其特征在于,所述收到的分片中 包含關(guān)鍵幀的標(biāo)識信息,所述關(guān)鍵幀的標(biāo)識信息為所述對等網(wǎng)絡(luò)中的超級節(jié)點根據(jù)獲取的關(guān) 鍵幀的位置信息在分片中添加的;所述在收到的分片中從所述請求節(jié)點請求獲取的分片開始找到首次出現(xiàn)的關(guān)鍵幀',具體為根據(jù)收到的分片中的關(guān)鍵幀的標(biāo)識信息,在所述收到的分片中從所述請求節(jié)點請求獲取 的分片開始找到首次出現(xiàn)的關(guān)鍵幀。
3. 根據(jù)權(quán)利要求2所述的對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的方法,其特征在于,所述收到的分片中 還包括所述超級節(jié)點添加的關(guān)鍵幀的偏移信息,所述從找到的關(guān)鍵幀所在的分片開始發(fā)送分 片給所述請求節(jié)點之后,還包括-所述請求節(jié)點收到被請求節(jié)點從包含關(guān)鍵幀的分片開始發(fā)來的分片后,根據(jù)收到的分片 中的關(guān)鍵幀偏移信息將收到的分片恢復(fù)成數(shù)據(jù)。
4. 根據(jù)權(quán)利要求l所述的對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的方法,其特征在于,所述在收到的分片 中從所述請求節(jié)點請求獲取的分片開始找到首次出現(xiàn)的關(guān)鍵幀,具體包括從所述請求節(jié)點請求獲取的分片開始,將從所述對等網(wǎng)絡(luò)中后續(xù)收到的所有分片恢復(fù)成 數(shù)據(jù);在所述數(shù)據(jù)中解析出首次出現(xiàn)的關(guān)鍵幀,并確定所述關(guān)鍵幀所在的分片。
5. —種對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的系統(tǒng),其特征在于,應(yīng)用于對等網(wǎng)絡(luò),所述系統(tǒng)包括請求 節(jié)點和被請求節(jié)點;所述請求節(jié)點,用于向所述被請求節(jié)點發(fā)送獲取數(shù)據(jù)的請求消息,并接收所述被請求節(jié) 點發(fā)來的分片;所述被請求節(jié)點,用十接收所述請求節(jié)點發(fā)來的請求消息,根據(jù)所述請求消息,在收到 的分片中從所述請求節(jié)點請求獲取的分片開始找到首次出現(xiàn)的關(guān)鍵幀,從找到的關(guān)鍵幀所在 的分片開始發(fā)送分片給所述請求節(jié)點。
6. 根據(jù)權(quán)利要求5所述的對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的系統(tǒng),其特征在于,所述系統(tǒng)還包括-超級節(jié)點,用于在收到源節(jié)點發(fā)來的數(shù)據(jù)后,獲取關(guān)鍵幀的位置信息,并對所述數(shù)據(jù)進行切片,設(shè)置分片中是否包含關(guān)鍵幀的標(biāo)識,并根據(jù)該標(biāo)識封裝每個分片,然后在所述對等 網(wǎng)絡(luò)中發(fā)送封裝后的分片;相應(yīng)地,所述被請求節(jié)點具體用于接收所述請求節(jié)點發(fā)來的請求消息;根據(jù)所述請求消 息以及分片中的標(biāo)識信息,在所述被請求節(jié)點收到的分片中從所述請求節(jié)點請求獲取的分片 開始找到首次出現(xiàn)的關(guān)鍵幀;從所述找到的關(guān)鍵幀所在的分片開始發(fā)送分片給所述請求節(jié)點。
7. 根據(jù)權(quán)利要求6所述的對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的系統(tǒng),其特征在于,所述超級節(jié)點封裝 后的分片還包括關(guān)鍵幀在分片中的偏移信息,所述請求節(jié)點還用于在所述請求節(jié)點收到所述 被請求節(jié)點從包含關(guān)鍵幀的分片開始發(fā)來的分片后,根據(jù)收到的分片中的關(guān)鍵幀偏移信息將 收到的分片恢復(fù)成數(shù)據(jù)。
8. 根據(jù)權(quán)利要求5所述的對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的系統(tǒng),其特征在于,所述被請求節(jié)點具 體用于接收所述請求節(jié)點發(fā)來的請求消息;從所述請求節(jié)點請求獲取的分片開始,將所述被 請求節(jié)點從所述對等網(wǎng)絡(luò)中后續(xù)收到的所有分片恢復(fù)成數(shù)據(jù);在所述數(shù)據(jù)屮解析出首次出現(xiàn) 的關(guān)鍵幀,并確定所述關(guān)鍵幀所在的分片;從所述確定的分片開始發(fā)送分片給所述請求節(jié)點。
9. 一種節(jié)點,其特征在于,位于對等網(wǎng)絡(luò)中,所述節(jié)點包括 接收模塊,用于接收請求節(jié)點發(fā)來的請求消息;査找模塊,用于根據(jù)所述接收模塊收到的請求消息,在所述節(jié)點收到的分片中從所述請 求節(jié)點請求獲取的分片開始找到首次出現(xiàn)的關(guān)鍵幀,轉(zhuǎn)發(fā)模塊,用于從所述査找模塊找到的關(guān)鍵幀所在的分片開始發(fā)送分片給所述請求節(jié)點。
10. 根據(jù)權(quán)利要求9所述的節(jié)點,其特征在于,所述查找模塊具體包括-査找單元,用于根據(jù)所述接收模塊收到的請求消息以及分片中的是否包含關(guān)鍵幀的標(biāo)識 信息,在所述被請求節(jié)點收到的分片中從所述請求節(jié)點請求獲取的分片開始找到首次出現(xiàn)的 關(guān)鍵幀。
11. 根據(jù)權(quán)利要求9所述的節(jié)點,其特征在于,所述查找模塊具體包括恢復(fù)單元,用于從所述請求節(jié)點請求獲取的分片開始,將所述節(jié)點從所述對等網(wǎng)絡(luò)中后 續(xù)收到的所有分片恢復(fù)成數(shù)據(jù);査找單元,用于在所述恢復(fù)單元恢復(fù)出的數(shù)據(jù)中解析出首次出現(xiàn)的關(guān)鍵幀,并確定所述 關(guān)鍵幀所在的分片。
12. —種超級節(jié)點,其特征在于,位于對等網(wǎng)絡(luò)中,所述超級節(jié)點包括 獲取模塊,用于在接收到源節(jié)點發(fā)來的數(shù)據(jù)后,獲取關(guān)鍵幀的位置信息;處理模塊,用于對所述接收的數(shù)據(jù)進行切片,根據(jù)所獲取的關(guān)鍵幀的位置信息,'設(shè)置分 片中是否包含關(guān)鍵幀的標(biāo)識,并根據(jù)所述標(biāo)識封裝每個分片,然后在所述對等網(wǎng)絡(luò)中發(fā)送封 裝后的分片。
13. 根據(jù)權(quán)利要求12所述的超級節(jié)點,其特征在-1\所述處理模塊還包括設(shè)置單元,用于在封裝分片時,在分片中添加關(guān)鍵幀的偏移信息。
全文摘要
本發(fā)明公開了一種對等網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)的方法、系統(tǒng)、節(jié)點和超級節(jié)點,屬于對等網(wǎng)絡(luò)技術(shù)領(lǐng)域。所述方法包括接收請求節(jié)點發(fā)來的獲取數(shù)據(jù)的請求消息;根據(jù)所述請求消息,在收到的分片中從所述請求節(jié)點請求獲取的分片開始找到首次出現(xiàn)的關(guān)鍵幀;從找到的關(guān)鍵幀所在的分片開始發(fā)送分片給所述請求節(jié)點。所述系統(tǒng)包括請求節(jié)點和被請求節(jié)點。所述節(jié)點包括接收模塊、查找模塊和轉(zhuǎn)發(fā)模塊。所述超級節(jié)點包括獲取模塊和處理模塊。本發(fā)明通過從關(guān)鍵幀所在的分片開始下發(fā)分片給請求節(jié)點,加快了請求節(jié)點向播放器供流,使播放器可以更快地完成解碼播出畫面,降低播出畫面的延遲。
文檔編號H04N7/24GK101247193SQ20081010110
公開日2008年8月20日 申請日期2008年2月28日 優(yōu)先權(quán)日2008年2月28日
發(fā)明者何代義, 張研川, 曹彥東, 王志兵, 程汝榮 申請人:華為技術(shù)有限公司