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

創(chuàng)建點(diǎn)對(duì)點(diǎn)數(shù)據(jù)通道的方法

文檔序號(hào):7958687閱讀:192來(lái)源:國(guó)知局
專利名稱:創(chuàng)建點(diǎn)對(duì)點(diǎn)數(shù)據(jù)通道的方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別是一種創(chuàng)建點(diǎn)對(duì)點(diǎn)數(shù)據(jù)通道的方法。
背景技術(shù)
點(diǎn)對(duì)點(diǎn)(Peer-to-Peer,P2P)網(wǎng)絡(luò)是一種分布式網(wǎng)絡(luò),P2P網(wǎng)絡(luò)中的節(jié)點(diǎn)(Peer)既是資源的提供者也是資源的享受者,所有節(jié)點(diǎn)的資源都在該網(wǎng)絡(luò)里面共享。最典型的是P2P下載,在P2P下載中某個(gè)節(jié)點(diǎn)在從別的節(jié)點(diǎn)下載文件的同時(shí),它所共享的文件也被別的節(jié)點(diǎn)所下載。
P2P網(wǎng)絡(luò)根據(jù)其拓?fù)浣Y(jié)構(gòu)可以分為4種形式中心化拓?fù)浣Y(jié)構(gòu)、全分布式非結(jié)構(gòu)化拓?fù)浣Y(jié)構(gòu)、全分布式結(jié)構(gòu)化拓?fù)浣Y(jié)構(gòu)和半分布式拓?fù)浣Y(jié)構(gòu)。下面介紹與本發(fā)明相關(guān)的半分布式拓?fù)洹?br> 參見(jiàn)圖1,在半分布式拓?fù)浣Y(jié)構(gòu)中,一些在處理、存儲(chǔ)、帶寬等方面性能較高的節(jié)點(diǎn)被選作超級(jí)節(jié)點(diǎn)(SuperPeer),在各個(gè)超級(jí)節(jié)點(diǎn)下掛著一定數(shù)量的普通節(jié)點(diǎn),超級(jí)節(jié)點(diǎn)還存儲(chǔ)著系統(tǒng)中其他部分節(jié)點(diǎn)的信息,超級(jí)節(jié)點(diǎn)負(fù)責(zé)處理或轉(zhuǎn)發(fā)它底下所掛Peer的請(qǐng)求。半分布式拓?fù)浣Y(jié)構(gòu)也是一個(gè)層次式結(jié)構(gòu),超級(jí)節(jié)點(diǎn)之間構(gòu)成一個(gè)高速轉(zhuǎn)發(fā)層,而超級(jí)節(jié)點(diǎn)和所負(fù)責(zé)的普通節(jié)點(diǎn)構(gòu)成若干層次。
為了實(shí)現(xiàn)多種應(yīng)用,需要在相應(yīng)的Peer之間創(chuàng)建數(shù)據(jù)通道。圖2所示的是現(xiàn)有技術(shù)中在兩個(gè)Peer之間創(chuàng)建數(shù)據(jù)通道的過(guò)程。參照?qǐng)D2,在該P(yáng)2P網(wǎng)絡(luò)中,PeerA的超級(jí)節(jié)點(diǎn)為SuperPeerA,PeerB的超級(jí)節(jié)點(diǎn)為SuperPeerB,圖2中還給出了服務(wù)器和PeerC,其中服務(wù)器中保存有各節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn)信息和中轉(zhuǎn)節(jié)點(diǎn)信息,PeerC為PeerA的中轉(zhuǎn)節(jié)點(diǎn)。
如圖2所示,現(xiàn)有技術(shù)中創(chuàng)建PeerA到PeerB的數(shù)據(jù)通道的過(guò)程包括如下步驟步驟101,PeerA向SuperPeerA發(fā)送查找PeerB的請(qǐng)求。
步驟102,SuperPeerA將該查找請(qǐng)求轉(zhuǎn)發(fā)給Server。
步驟103,Server根據(jù)該查找請(qǐng)求將PeerB及其超級(jí)節(jié)點(diǎn)SuperPeerB的網(wǎng)絡(luò)信息返回給SuperPeerA。
步驟104,SuperPeerA將Server返回的結(jié)果返回給PeerA。
步驟105,PeerA收到PeerB和SuperPeerB的網(wǎng)絡(luò)信息之后,根據(jù)PeerB的網(wǎng)絡(luò)信息向PeerB發(fā)送數(shù)據(jù)包,嘗試跟PeerB創(chuàng)建直連數(shù)據(jù)通道。如果PeerB收到PeerA的數(shù)據(jù)包,會(huì)給PeerA發(fā)送數(shù)據(jù)包,以確定可以創(chuàng)建直連數(shù)據(jù)通道。
PeerA如果在預(yù)定的時(shí)間內(nèi)收到PeerB返回的數(shù)據(jù)包,則表示直連成功,即創(chuàng)建通道成功,結(jié)束流程;如果在預(yù)定時(shí)間內(nèi)未收到PeerB返回的數(shù)據(jù)包,則表示直連失敗,執(zhí)行步驟106。
步驟106,PeerA向SuperPeerA發(fā)送獲取中轉(zhuǎn)Peer請(qǐng)求。
步驟107,SuperPeerA將該請(qǐng)求轉(zhuǎn)發(fā)給Server。
步驟108,Server根據(jù)該請(qǐng)求將中轉(zhuǎn)PeerC的網(wǎng)絡(luò)信息返回給SuperPeerA。
步驟109,SuperPeerA將Server返回的結(jié)果返回給PeerA。
步驟110,PeerA收到中轉(zhuǎn)PeerC的網(wǎng)絡(luò)信息后,根據(jù)PeerC的網(wǎng)絡(luò)信息向PeerC發(fā)送數(shù)據(jù)包,嘗試連接PeerC,同時(shí)將PeerC的網(wǎng)絡(luò)信息發(fā)送給PeerB的超級(jí)節(jié)點(diǎn)SuperPeerB。
步驟111,SuperPeerB將PeerC的網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)給PeerB。
步驟112,PeerB收到PeerC的網(wǎng)絡(luò)信息之后,根據(jù)PeerC的網(wǎng)絡(luò)信息向PeerC發(fā)送數(shù)據(jù)包,嘗試連接PeerC。如果PeerC收到PeerA和PeerB的數(shù)據(jù)包后,會(huì)給PeerA和PeerB發(fā)送數(shù)據(jù)包,以確定通過(guò)PeerC可以創(chuàng)建中轉(zhuǎn)數(shù)據(jù)通道。
最后,PeerA如果在預(yù)定時(shí)間內(nèi)收到了PeerC發(fā)送來(lái)的數(shù)據(jù)包,則表示PeerA和PeerB可以通過(guò)PeerC建立中轉(zhuǎn)數(shù)據(jù)通道,即PeerA和PeerB之間的數(shù)據(jù)通道創(chuàng)建成功;否則,表明PeerA和PeerB通過(guò)PeerC創(chuàng)建中轉(zhuǎn)數(shù)據(jù)通道失敗,即PeerA和PeerB之間創(chuàng)建數(shù)據(jù)通道失敗。
在上面的流程中,步驟101至步驟104為查找網(wǎng)絡(luò)信息環(huán)節(jié),步驟105為創(chuàng)建直連數(shù)據(jù)通道環(huán)節(jié),步驟106至步驟109為獲取中轉(zhuǎn)Peer環(huán)節(jié),步驟110至步驟112為創(chuàng)建中轉(zhuǎn)數(shù)據(jù)通道環(huán)節(jié)。
從現(xiàn)有技術(shù)可以看出,上述各個(gè)環(huán)節(jié)是串行的,如果每個(gè)環(huán)節(jié)需要10秒,則整個(gè)創(chuàng)建數(shù)據(jù)通道的過(guò)程需要花費(fèi)40秒。這對(duì)于實(shí)時(shí)性要求較高的場(chǎng)合是不適用的,即使在一些實(shí)時(shí)性要求不高的場(chǎng)合中可以使用,但是也浪費(fèi)了時(shí)間。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明提出了一種創(chuàng)建P2P數(shù)據(jù)通道的方法,用以縮短創(chuàng)建數(shù)據(jù)通道的時(shí)間。
根據(jù)上述目的,本發(fā)明提供了一種創(chuàng)建P2P數(shù)據(jù)通道的方法,該方法包括以下步驟根據(jù)上述目的,本發(fā)明提供了一種創(chuàng)建P2P數(shù)據(jù)通道的方法,該方法包括以下步驟A.第一節(jié)點(diǎn)同時(shí)向第二節(jié)點(diǎn)和第一中轉(zhuǎn)節(jié)點(diǎn)發(fā)送數(shù)據(jù)包,并將第一中轉(zhuǎn)節(jié)點(diǎn)的網(wǎng)絡(luò)信息發(fā)送給第二節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn);B.第一節(jié)點(diǎn)判斷在預(yù)定時(shí)間內(nèi)是否收到第二節(jié)點(diǎn)和/或第一中轉(zhuǎn)節(jié)點(diǎn)的數(shù)據(jù)包,如果收到來(lái)自第二節(jié)點(diǎn)和第一中轉(zhuǎn)節(jié)點(diǎn)中至少一個(gè)的數(shù)據(jù)包,則根據(jù)所收到的數(shù)據(jù)包創(chuàng)建數(shù)據(jù)通道。
步驟A之前進(jìn)一步包括A1.第一節(jié)點(diǎn)發(fā)送查找第二節(jié)點(diǎn)的請(qǐng)求給第一節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn),第一節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn)將該查找請(qǐng)求轉(zhuǎn)發(fā)給服務(wù)器;A2.服務(wù)器返回第二節(jié)點(diǎn)和第二節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn)的網(wǎng)絡(luò)信息給第一節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn),第一節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn)將所述網(wǎng)絡(luò)信息返回給第一節(jié)點(diǎn)。
步驟A之前進(jìn)一步包括第一節(jié)點(diǎn)通過(guò)第一節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn)到服務(wù)器獲取一個(gè)或一個(gè)以上中轉(zhuǎn)節(jié)點(diǎn)的步驟,所述一個(gè)或一個(gè)以上中轉(zhuǎn)節(jié)點(diǎn)至少包括所述第一中轉(zhuǎn)節(jié)點(diǎn)。
步驟A之后進(jìn)一步包括如果第二節(jié)點(diǎn)接收到第一節(jié)點(diǎn)的數(shù)據(jù)包,則向第一節(jié)點(diǎn)發(fā)送數(shù)據(jù)包。
步驟A之后進(jìn)一步包括第二節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn)將第一中轉(zhuǎn)節(jié)點(diǎn)的網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)給第二節(jié)點(diǎn),第二節(jié)點(diǎn)根據(jù)第一中轉(zhuǎn)節(jié)點(diǎn)的網(wǎng)絡(luò)信息向第一中轉(zhuǎn)節(jié)點(diǎn)發(fā)送數(shù)據(jù)包;如果第一中轉(zhuǎn)節(jié)點(diǎn)接收到第一節(jié)點(diǎn)和第二節(jié)點(diǎn)的數(shù)據(jù)包,則分別向第一節(jié)點(diǎn)和第二節(jié)點(diǎn)發(fā)送數(shù)據(jù)包。
步驟B中所述根據(jù)所收到的數(shù)據(jù)包創(chuàng)建數(shù)據(jù)通道的步驟包括如果收到來(lái)自第二節(jié)點(diǎn)的數(shù)據(jù)包和來(lái)自第一中轉(zhuǎn)節(jié)點(diǎn)的數(shù)據(jù)包,則確定其中一個(gè)數(shù)據(jù)包對(duì)應(yīng)的數(shù)據(jù)通道為最終創(chuàng)建的數(shù)據(jù)通道而刪除另一個(gè)數(shù)據(jù)通道;如果只收到來(lái)自第二節(jié)點(diǎn)和第一中轉(zhuǎn)節(jié)點(diǎn)其中一個(gè)的數(shù)據(jù)包,則確定所收到的數(shù)據(jù)包對(duì)應(yīng)的數(shù)據(jù)通道為最終創(chuàng)建的數(shù)據(jù)通道。
步驟B中所述確定其中一個(gè)數(shù)據(jù)包對(duì)應(yīng)的數(shù)據(jù)通道為最終創(chuàng)建的數(shù)據(jù)通道而刪除另一個(gè)數(shù)據(jù)通道的步驟為確定來(lái)自第二節(jié)點(diǎn)的數(shù)據(jù)包對(duì)應(yīng)的直連數(shù)據(jù)通道為最終創(chuàng)建的數(shù)據(jù)通道,刪除經(jīng)過(guò)第一中轉(zhuǎn)節(jié)點(diǎn)的中轉(zhuǎn)數(shù)據(jù)通道。
步驟B進(jìn)一步包括如果沒(méi)有收到來(lái)自第二節(jié)點(diǎn)或第一中轉(zhuǎn)節(jié)點(diǎn)的數(shù)據(jù)包,則創(chuàng)建數(shù)據(jù)通道失敗。
從上述方案中可以看出,由于在本發(fā)明中同時(shí)嘗試創(chuàng)建直連數(shù)據(jù)通道和中轉(zhuǎn)數(shù)據(jù)通道,即創(chuàng)建直連數(shù)據(jù)通道和中轉(zhuǎn)數(shù)據(jù)通道是并行的,這樣可以減少整個(gè)流程的時(shí)間。并且在直連數(shù)據(jù)通道和中轉(zhuǎn)數(shù)據(jù)通道都成功創(chuàng)建的情況下,刪除多余通道是在創(chuàng)建通道成功之后進(jìn)行的,也不占用創(chuàng)建通道時(shí)間。進(jìn)一步,本發(fā)明還在創(chuàng)建通道之前進(jìn)行預(yù)取中轉(zhuǎn)Peer的環(huán)節(jié),也不占用創(chuàng)建時(shí)間。假設(shè)查找網(wǎng)絡(luò)信息環(huán)節(jié)、創(chuàng)建直連數(shù)據(jù)通道環(huán)節(jié)、創(chuàng)建中轉(zhuǎn)數(shù)據(jù)通道環(huán)節(jié)以及獲取中轉(zhuǎn)Peer環(huán)節(jié)分別需要10秒,則根據(jù)本發(fā)明的方案,整個(gè)流程只需要20秒,與現(xiàn)有技術(shù)的40秒相比,大大縮短了創(chuàng)建通道的時(shí)間,從而可以適用于各種實(shí)時(shí)性要求較高的場(chǎng)合。


圖1為P2P網(wǎng)絡(luò)半分布式拓?fù)浣Y(jié)構(gòu)的示意圖。
圖2為現(xiàn)有技術(shù)中創(chuàng)建數(shù)據(jù)通道的流程示意圖。
圖3為本發(fā)明第一實(shí)施例的流程示意圖。
圖4為本發(fā)明第二實(shí)施例的流程示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,以下舉實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
本發(fā)明與現(xiàn)有技術(shù)的不同在于,本發(fā)明將獲取中轉(zhuǎn)Peer等在創(chuàng)建數(shù)據(jù)通道之前預(yù)先完成,并且在創(chuàng)建數(shù)據(jù)通道過(guò)程中同時(shí)嘗試創(chuàng)建直連數(shù)據(jù)通道和中轉(zhuǎn)數(shù)據(jù)通道,如果兩者都成功創(chuàng)建則選擇其中的一種為最后創(chuàng)建的數(shù)據(jù)通道,如果一種成功則將其作為成功創(chuàng)建的數(shù)據(jù)通道。這樣大大縮短了在創(chuàng)建P2P數(shù)據(jù)通道中所花費(fèi)的時(shí)間。
圖3為本發(fā)明第一實(shí)施例的流程示意圖。參見(jiàn)圖3,本發(fā)明第一實(shí)施例中的網(wǎng)絡(luò)結(jié)構(gòu)與現(xiàn)有技術(shù)相同,在該網(wǎng)絡(luò)中,包括Server、PeerA和PeerA的超級(jí)節(jié)點(diǎn)SuperPeerA、PeerB和PeerB的超級(jí)節(jié)點(diǎn)SuperPeerB以及PeerA的中轉(zhuǎn)PeerC。Server中保存有各節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn)信息和中轉(zhuǎn)節(jié)點(diǎn)信息。
參照?qǐng)D3,本發(fā)明第一實(shí)施例包括以下步驟在創(chuàng)建數(shù)據(jù)通道之前,PeerA預(yù)先通過(guò)SuperPeerA從Server獲取中轉(zhuǎn)Peer。過(guò)程如下PeerA向SuperPeerA發(fā)送獲取中轉(zhuǎn)Peer請(qǐng)求;SuperPeerA將該請(qǐng)求轉(zhuǎn)發(fā)給Server;Server根據(jù)該獲取請(qǐng)求將中轉(zhuǎn)PeerC的網(wǎng)絡(luò)信息返回給SuperPeerA;SuperPeerA將Server返回的結(jié)果返回給PeerA。優(yōu)選地,PeerA可以在空閑的時(shí)候獲取中轉(zhuǎn)Peer,或者可以定期地獲取中轉(zhuǎn)Peer。當(dāng)然,還可以通過(guò)其它方法預(yù)先在PeerA中保存中轉(zhuǎn)Peer的網(wǎng)絡(luò)信息。
在創(chuàng)建PeerA和PeerB的數(shù)據(jù)通道的過(guò)程中執(zhí)行以下步驟步驟201,PeerA向SuperPeerA發(fā)送查找PeerB的請(qǐng)求。
步驟202,SuperPeerA將該查找請(qǐng)求轉(zhuǎn)發(fā)給Server。
步驟203,Server根據(jù)該查找請(qǐng)求將PeerB及其超級(jí)節(jié)點(diǎn)SuperPeerB的網(wǎng)絡(luò)信息返回給SuperPeerA。
步驟204,SuperPeerA將Server返回的結(jié)果返回給PeerA。
步驟205,PeerA收到PeerB和SuperPeerB的網(wǎng)絡(luò)信息之后,根據(jù)PeerB的網(wǎng)絡(luò)信息向PeerB發(fā)送數(shù)據(jù)包,嘗試跟PeerB創(chuàng)建直連數(shù)據(jù)通道。如果PeerB收到PeerA的數(shù)據(jù)包,會(huì)給PeerA發(fā)送數(shù)據(jù)包,以確定可以創(chuàng)建直連數(shù)據(jù)通道。
與此同時(shí),PeerA根據(jù)預(yù)先獲取的中轉(zhuǎn)PeerC的網(wǎng)絡(luò)信息向PeerC發(fā)送數(shù)據(jù)包,嘗試連接PeerC。PeerA同時(shí)還將PeerC的網(wǎng)絡(luò)信息發(fā)送給PeerB的超級(jí)節(jié)點(diǎn)SuperPeerB。
步驟206,SuperPeerB將PeerC的網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)給PeerB。
步驟207,PeerB收到PeerC的網(wǎng)絡(luò)信息之后,根據(jù)PeerC的網(wǎng)絡(luò)信息向PeerC發(fā)送數(shù)據(jù)包,嘗試連接PeerC。如果PeerC收到PeerA和PeerB的數(shù)據(jù)包后,會(huì)給PeerA和PeerB發(fā)送數(shù)據(jù)包,以確定可以通過(guò)PeerC創(chuàng)建中轉(zhuǎn)數(shù)據(jù)通道。
最后,PeerA判斷在預(yù)定時(shí)間內(nèi)是否收到PeerB和/或PeerC返回的數(shù)據(jù)包,如果在預(yù)定的時(shí)間內(nèi)收到PeerB返回的數(shù)據(jù)包而沒(méi)有收到PeerC返回的數(shù)據(jù)包,則表示可以創(chuàng)建直連數(shù)據(jù)通道而不可以創(chuàng)建中轉(zhuǎn)數(shù)據(jù)通道,以直連數(shù)據(jù)通道作為最后成功創(chuàng)建的數(shù)據(jù)通道;如果在預(yù)定的時(shí)間內(nèi)收到PeerC返回的數(shù)據(jù)包而沒(méi)有收到PeerB返回的數(shù)據(jù)包,則表示可以創(chuàng)建中轉(zhuǎn)數(shù)據(jù)通道而不可以創(chuàng)建直連數(shù)據(jù)通道,以中轉(zhuǎn)數(shù)據(jù)通道作為最后成功創(chuàng)建的數(shù)據(jù)通道;如果在預(yù)定的時(shí)間內(nèi)收到PeerB返回的數(shù)據(jù)包也收到PeerC返回的數(shù)據(jù)包,則表示可以創(chuàng)建直連數(shù)據(jù)通道并且也可以創(chuàng)建中轉(zhuǎn)數(shù)據(jù)通道,PeerA可以選擇其中任意一個(gè)作為最后成功創(chuàng)建的數(shù)據(jù)通道,并刪除多余的數(shù)據(jù)通道,優(yōu)選選擇直連數(shù)據(jù)通道而刪除中轉(zhuǎn)數(shù)據(jù)通道;如果在預(yù)定的時(shí)間內(nèi)既沒(méi)有收到PeerB返回的數(shù)據(jù)包也沒(méi)有收到PeerC發(fā)送來(lái)的數(shù)據(jù)包,則表示創(chuàng)建直連數(shù)據(jù)通道失敗并且創(chuàng)建中轉(zhuǎn)數(shù)據(jù)通道也失敗,即沒(méi)有成功創(chuàng)建PeerA與PeerB的數(shù)據(jù)通道。
在創(chuàng)建任意兩個(gè)節(jié)點(diǎn)之間的數(shù)據(jù)通道時(shí)都可以使用本發(fā)明的方法,例如在創(chuàng)建PeerA與中轉(zhuǎn)PeerC之間的數(shù)據(jù)通道或者創(chuàng)建PeerB與中轉(zhuǎn)PeerC之間的數(shù)據(jù)通道時(shí)也可以使用本發(fā)明的方法。
在本發(fā)明的第二實(shí)施例中,進(jìn)一步通過(guò)參照?qǐng)D4描述創(chuàng)建PeerB與中轉(zhuǎn)PeerC之間數(shù)據(jù)通道的流程來(lái)闡述本發(fā)明的方法。圖4與圖3相比,進(jìn)一步給出了PeerC的超級(jí)節(jié)點(diǎn)SuperPeerC以及PeerB的中轉(zhuǎn)節(jié)點(diǎn)PeerD。
如圖4所示,本發(fā)明的第二實(shí)施例包括在創(chuàng)建數(shù)據(jù)通道之前,PeerB預(yù)先通過(guò)SuperPeerB從Server獲取中轉(zhuǎn)Peer。過(guò)程如下PeerB向SuperPeerB發(fā)送獲取中轉(zhuǎn)Peer請(qǐng)求;SuperPeerB將該請(qǐng)求轉(zhuǎn)發(fā)給Server;Server根據(jù)該獲取請(qǐng)求將中轉(zhuǎn)PeerD的網(wǎng)絡(luò)信息返回給SuperPeerB;SuperPeerB將Server返回的結(jié)果返回給PeerB。優(yōu)選地,PeerB可以在空閑的時(shí)候獲取中轉(zhuǎn)Peer,或者可以定期地獲取中轉(zhuǎn)Peer。當(dāng)然,還可以通過(guò)其它方法預(yù)先在PeerB中保存中轉(zhuǎn)Peer的網(wǎng)絡(luò)信息。
在創(chuàng)建PeerB和PeerC的數(shù)據(jù)通道的過(guò)程中執(zhí)行以下步驟步驟301,PeerB向SuperPeerB發(fā)送查找PeerC的請(qǐng)求。
步驟302,SuperPeerB將該查找請(qǐng)求轉(zhuǎn)發(fā)給Server。
步驟303,Server根據(jù)該查找請(qǐng)求將PeerC及其超級(jí)節(jié)點(diǎn)SuperPeerC的網(wǎng)絡(luò)信息返回給SuperPeerB。
步驟304,SuperPeerB將Server返回的結(jié)果返回給PeerB。
步驟305,PeerB收到PeerC和SuperPeerC的網(wǎng)絡(luò)信息之后,根據(jù)PeerC的網(wǎng)絡(luò)信息向PeerC發(fā)送數(shù)據(jù)包,嘗試跟PeerC創(chuàng)建直連數(shù)據(jù)通道。如果PeerC收到PeerB的數(shù)據(jù)包,會(huì)給PeerB發(fā)送數(shù)據(jù)包,以確定可以創(chuàng)建直連數(shù)據(jù)通道。
與此同時(shí),PeerB根據(jù)預(yù)先獲取的中轉(zhuǎn)PeerD的網(wǎng)絡(luò)信息向PeerD發(fā)送數(shù)據(jù)包,嘗試連接PeerD。PeerB同時(shí)還將PeerD的網(wǎng)絡(luò)信息發(fā)送給PeerC的超級(jí)節(jié)點(diǎn)SuperPeerC。
步驟306,SuperPeerC將PeerD的網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)給PeerC。
步驟307,PeerC收到PeerD的網(wǎng)絡(luò)信息之后,根據(jù)PeerD的網(wǎng)絡(luò)信息向PeerD發(fā)送數(shù)據(jù)包,嘗試連接PeerD。如果PeerD收到PeerB和PeerC的數(shù)據(jù)包后,會(huì)給PeerB和PeerC發(fā)送數(shù)據(jù)包,以確定可以通過(guò)PeerD創(chuàng)建中轉(zhuǎn)數(shù)據(jù)通道。
最后,PeerB判斷在預(yù)定時(shí)間內(nèi)是否收到PeerC和/或PeerD返回的數(shù)據(jù)包,PeerB如果在預(yù)定的時(shí)間內(nèi)收到PeerC返回的數(shù)據(jù)包而沒(méi)有收到PeerD返回的數(shù)據(jù)包,則表示可以創(chuàng)建直連數(shù)據(jù)通道而不可以創(chuàng)建中轉(zhuǎn)數(shù)據(jù)通道,以直連數(shù)據(jù)通道作為最后成功創(chuàng)建的數(shù)據(jù)通道;如果在預(yù)定的時(shí)間內(nèi)收到PeerD返回的數(shù)據(jù)包而沒(méi)有收到PeerC返回的數(shù)據(jù)包,則表示可以創(chuàng)建中轉(zhuǎn)數(shù)據(jù)通道而不可以創(chuàng)建直連數(shù)據(jù)通道,以中轉(zhuǎn)數(shù)據(jù)通道作為最后成功創(chuàng)建的數(shù)據(jù)通道;如果在預(yù)定的時(shí)間內(nèi)收到PeerC返回的數(shù)據(jù)包也收到PeerD返回的數(shù)據(jù)包,則表示可以創(chuàng)建直連數(shù)據(jù)通道并且也可以創(chuàng)建中轉(zhuǎn)數(shù)據(jù)通道,PeerB可以選擇其中任意一個(gè)作為最后成功創(chuàng)建的數(shù)據(jù)通道,并刪除多余的數(shù)據(jù)通道,優(yōu)選選擇直連數(shù)據(jù)通道而刪除中轉(zhuǎn)數(shù)據(jù)通道;如果在預(yù)定的時(shí)間內(nèi)既沒(méi)有收到PeerC返回的數(shù)據(jù)包也沒(méi)有收到PeerD發(fā)送來(lái)的數(shù)據(jù)包,則表示創(chuàng)建直連數(shù)據(jù)通道失敗并且創(chuàng)建中轉(zhuǎn)數(shù)據(jù)通道也失敗,即沒(méi)有成功創(chuàng)建PeerB與PeerC的數(shù)據(jù)通道。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種創(chuàng)建點(diǎn)對(duì)點(diǎn)P2P數(shù)據(jù)通道的方法,其特征在于,該方法包括以下步驟A.第一節(jié)點(diǎn)同時(shí)向第二節(jié)點(diǎn)和第一中轉(zhuǎn)節(jié)點(diǎn)發(fā)送數(shù)據(jù)包,并將第一中轉(zhuǎn)節(jié)點(diǎn)的網(wǎng)絡(luò)信息發(fā)送給第二節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn);B.第一節(jié)點(diǎn)判斷在預(yù)定時(shí)間內(nèi)是否收到第二節(jié)點(diǎn)和/或第一中轉(zhuǎn)節(jié)點(diǎn)的數(shù)據(jù)包,如果收到來(lái)自第二節(jié)點(diǎn)和第一中轉(zhuǎn)節(jié)點(diǎn)中至少一個(gè)的數(shù)據(jù)包,則根據(jù)所收到的數(shù)據(jù)包創(chuàng)建數(shù)據(jù)通道。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A之前進(jìn)一步包括A1.第一節(jié)點(diǎn)發(fā)送查找第二節(jié)點(diǎn)的請(qǐng)求給第一節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn),第一節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn)將該查找請(qǐng)求轉(zhuǎn)發(fā)給服務(wù)器;A2.服務(wù)器返回第二節(jié)點(diǎn)和第二節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn)的網(wǎng)絡(luò)信息給第一節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn),第一節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn)將所述網(wǎng)絡(luò)信息返回給第一節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A之前進(jìn)一步包括第一節(jié)點(diǎn)通過(guò)第一節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn)到服務(wù)器獲取一個(gè)或一個(gè)以上中轉(zhuǎn)節(jié)點(diǎn)的步驟,所述一個(gè)或一個(gè)以上中轉(zhuǎn)節(jié)點(diǎn)至少包括所述第一中轉(zhuǎn)節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A之后進(jìn)一步包括如果第二節(jié)點(diǎn)接收到第一節(jié)點(diǎn)的數(shù)據(jù)包,則向第一節(jié)點(diǎn)發(fā)送數(shù)據(jù)包。
5.根據(jù)權(quán)利要求1或4所述的方法,其特征在于,步驟A之后進(jìn)一步包括第二節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn)將第一中轉(zhuǎn)節(jié)點(diǎn)的網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)給第二節(jié)點(diǎn),第二節(jié)點(diǎn)根據(jù)第一中轉(zhuǎn)節(jié)點(diǎn)的網(wǎng)絡(luò)信息向第一中轉(zhuǎn)節(jié)點(diǎn)發(fā)送數(shù)據(jù)包;如果第一中轉(zhuǎn)節(jié)點(diǎn)接收到第一節(jié)點(diǎn)和第二節(jié)點(diǎn)的數(shù)據(jù)包,則分別向第一節(jié)點(diǎn)和第二節(jié)點(diǎn)發(fā)送數(shù)據(jù)包。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟B中所述根據(jù)所收到的數(shù)據(jù)包創(chuàng)建數(shù)據(jù)通道的步驟包括如果收到來(lái)自第二節(jié)點(diǎn)的數(shù)據(jù)包和來(lái)自第一中轉(zhuǎn)節(jié)點(diǎn)的數(shù)據(jù)包,則確定其中一個(gè)數(shù)據(jù)包對(duì)應(yīng)的數(shù)據(jù)通道為最終創(chuàng)建的數(shù)據(jù)通道而刪除另一個(gè)數(shù)據(jù)通道;如果只收到來(lái)自第二節(jié)點(diǎn)和第一中轉(zhuǎn)節(jié)點(diǎn)其中一個(gè)的數(shù)據(jù)包,則確定所收到的數(shù)據(jù)包對(duì)應(yīng)的數(shù)據(jù)通道為最終創(chuàng)建的數(shù)據(jù)通道。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,步驟B中所述確定其中一個(gè)數(shù)據(jù)包對(duì)應(yīng)的數(shù)據(jù)通道為最終創(chuàng)建的數(shù)據(jù)通道而刪除另一個(gè)數(shù)據(jù)通道的步驟為確定來(lái)自第二節(jié)點(diǎn)的數(shù)據(jù)包對(duì)應(yīng)的直連數(shù)據(jù)通道為最終創(chuàng)建的數(shù)據(jù)通道,刪除經(jīng)過(guò)第一中轉(zhuǎn)節(jié)點(diǎn)的中轉(zhuǎn)數(shù)據(jù)通道。
8.根據(jù)權(quán)利要求1、6或7所述的方法,其特征在于,步驟B進(jìn)一步包括如果沒(méi)有收到來(lái)自第二節(jié)點(diǎn)或第一中轉(zhuǎn)節(jié)點(diǎn)的數(shù)據(jù)包,則創(chuàng)建數(shù)據(jù)通道失敗。
全文摘要
本發(fā)明公開(kāi)了一種創(chuàng)建點(diǎn)對(duì)點(diǎn)數(shù)據(jù)通道的方法,其特征在于,該方法包括以下步驟A.第一節(jié)點(diǎn)同時(shí)向第二節(jié)點(diǎn)和第一中轉(zhuǎn)節(jié)點(diǎn)發(fā)送數(shù)據(jù)包并將第一中轉(zhuǎn)節(jié)點(diǎn)的網(wǎng)絡(luò)信息發(fā)送給第二節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn);B.第一節(jié)點(diǎn)判斷在預(yù)定時(shí)間內(nèi)是否收到第二節(jié)點(diǎn)和/或第一中轉(zhuǎn)節(jié)點(diǎn)的數(shù)據(jù)包,如果收到來(lái)自其中至少一個(gè)的數(shù)據(jù)包,則根據(jù)所收到的數(shù)據(jù)包創(chuàng)建數(shù)據(jù)通道。從上述方案中可以看出,由于在本發(fā)明中同時(shí)嘗試創(chuàng)建直連數(shù)據(jù)通道和中轉(zhuǎn)數(shù)據(jù)通道,減少了整個(gè)創(chuàng)建數(shù)據(jù)通道流程的時(shí)間,可以適用于各種實(shí)時(shí)性要求較高的場(chǎng)合。
文檔編號(hào)H04L12/56GK101047580SQ20061006652
公開(kāi)日2007年10月3日 申請(qǐng)日期2006年3月28日 優(yōu)先權(quán)日2006年3月28日
發(fā)明者朱冶, 吳波, 何法江 申請(qǐng)人:騰訊科技(深圳)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
武威市| 南宁市| 叙永县| 亳州市| 武清区| 长顺县| 钟祥市| 仁怀市| 勃利县| 旬阳县| 郑州市| 喜德县| 敦化市| 潞西市| 新巴尔虎右旗| 嘉善县| 天全县| 鹿泉市| 延川县| 科技| 乌什县| 花莲县| 靖边县| 青州市| 霍林郭勒市| 都昌县| 三门峡市| 准格尔旗| 桂东县| 九龙坡区| 溧阳市| 湘阴县| 汉中市| 开鲁县| 普陀区| 沽源县| 寿宁县| 大姚县| 兰溪市| 武陟县| 香港|