專利名稱::一種p2p系統(tǒng)及種子查詢方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種P2P系統(tǒng)及種子查詢方法。
背景技術(shù):
:P2P系統(tǒng)(Peer-To-Peer,端到端)是一種分布式系統(tǒng),系統(tǒng)的參與者共享他們所擁有的一部分資源(內(nèi)容和服務(wù)),這些共享資源能被其它對等節(jié)點(diǎn)(Peer)直接訪問而無需經(jīng)過中間實(shí)體。系統(tǒng)中的每個(gè)節(jié)點(diǎn)既是資源提供者,又是資源獲取者,其地位都是對等的,每個(gè)節(jié)點(diǎn)為其他節(jié)點(diǎn)提供服務(wù),同時(shí)也享用其他節(jié)點(diǎn)提供的服務(wù)。請參閱圖l,該圖為現(xiàn)有技術(shù)中P2P系統(tǒng)的基本架構(gòu)示意圖,主要包括P2P服務(wù)器和若干個(gè)客戶端,其中P2P服務(wù)器的作用就是負(fù)責(zé)維護(hù)系統(tǒng)所有客戶端的狀態(tài)信息并為每個(gè)客戶端提供可以進(jìn)行共享資源交互的其他客戶端,也就是提供所謂的種子查詢功能,因此服務(wù)器種子的查詢能力與種子資源數(shù)量以及獲取到的種子數(shù)量成正比,服務(wù)器種子查詢能力的好壞直接決定了客戶端之間資源交互的效果。請參閱圖2,該圖為現(xiàn)有技術(shù)中P2P系統(tǒng)中的種子查詢方法的流程圖,其主要實(shí)現(xiàn)過程為步驟Sll、客戶端A向P2P服務(wù)器發(fā)起種子查詢請求,該請求中攜帶有客戶端請求獲取的資源的標(biāo)識(shí)信息和該客戶端的地址信息;步驟S12、P2P服務(wù)器收到客戶端種子查詢請求后,根據(jù)其中攜帶的資源的標(biāo)識(shí)信息查找能夠提供相應(yīng)資源的客戶端B、C。步驟S13、P2P服務(wù)器向客戶端A發(fā)送客戶端B、C的地址信息。步驟S14、客戶端A在收到P2P服務(wù)器返回的客戶端B、C的地址信息后,根據(jù)接收到的地址信息逐個(gè)與其建立連接,進(jìn)行資源交互。上述現(xiàn)有技術(shù)中,客戶端只能通過服務(wù)器進(jìn)行種子查詢,因此在P2P服務(wù)器種子查詢能力一定的情況下,無法更快的獲取到需要的種子。
發(fā)明內(nèi)容本發(fā)明提供一種P2P系統(tǒng)中的種子查詢方法及P2P服務(wù)器,用以解決現(xiàn)有技術(shù)中在P2P服務(wù)器種子查詢能力一定的情況下,無法更快的獲取到需要的種子的問題。本發(fā)明技術(shù)方案包括一種P2P系統(tǒng)中的種子查詢方法,包括步驟A、客戶端向P2P服務(wù)器發(fā)起種子查詢請求,請求中攜帶有客戶端請求獲取的資源的特征信息;B、P2P服務(wù)器根據(jù)所述特征信息查找能夠提供相應(yīng)的共享資源且與請求發(fā)起客戶端處于同一局域網(wǎng)的客戶端的地址信息反饋給請求發(fā)起客戶端;C、請求發(fā)起客戶端根據(jù)接收到的地址信息與相應(yīng)客戶端建立連接,進(jìn)行資源交互。一種P2P系統(tǒng)中的種子查詢系統(tǒng),包括服務(wù)器,還包括第一客戶端用于向服務(wù)器發(fā)送種子查詢,從服務(wù)器獲取能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第二客戶端的地址信息,向第二客戶端發(fā)送種子查詢請求,獲取除第二客戶端之外,能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第三客戶端的地址信息。本發(fā)明有益效果如下在P2P服務(wù)器種子查詢能力一定的情況下,除了通過P2P服務(wù)器進(jìn)行種子查詢外,還通過向其它客戶端發(fā)送種子查詢請求,獲取能夠提供種子資源的其它客戶端的地址信息,更快的獲取到需要的種子。圖1為現(xiàn)有技術(shù)中P2P系統(tǒng)的基本架構(gòu)示意圖2為現(xiàn)有技術(shù)中P2P系統(tǒng)中的種子查詢方法的流程圖3為本發(fā)明P2P系統(tǒng)中種子查詢方法的第一種較佳實(shí)施例的流程圖4為本發(fā)明P2P系統(tǒng)的主要組成結(jié)構(gòu)框圖。具體實(shí)施例方式本發(fā)明實(shí)施例中向P2P服務(wù)器發(fā)送種子查詢的第一客戶端,從服務(wù)器獲取能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第二客戶端的地址信息;第一客戶端向第二客戶端發(fā)送種子查詢請求,獲取除第二客戶端之外,能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第三客戶端的地址信息。本發(fā)明實(shí)施例提供的P2P系統(tǒng)中的種子查詢方法使得除了通過P2P服務(wù)器進(jìn)行種子查詢外,還通過向其它客戶端發(fā)送種子查詢請求,獲取能夠提供種子資源的其它客戶端的地址信息,從而更快的獲取到需要的種子。下面將結(jié)合各個(gè)附圖對本發(fā)明技術(shù)方案的主要實(shí)現(xiàn)原理具體實(shí)施方式及其對應(yīng)能夠達(dá)到的有益效果進(jìn)行詳細(xì)的闡述。實(shí)施例一一種P2P系統(tǒng)中的種子查詢方法請參閱圖3,該圖為本發(fā)明P2P系統(tǒng)中種子查詢方法的第一種較佳實(shí)施例的流程圖,其主要實(shí)現(xiàn)過程為步驟S20、向P2P服務(wù)器發(fā)送種子查詢的客戶端Pl,從P2P服務(wù)器獲取能夠?yàn)榭蛻舳薖l4是供種子資源A的客戶端P2的地址信息。其中客戶端P2的地址信息為客戶端P2的外網(wǎng)IP地址和端口號(hào),以及內(nèi)網(wǎng)IP地址及端口號(hào)。步驟S21、客戶端P1向客戶端P2發(fā)起種子查詢請求,該查詢請求中攜帶有客戶端Pl請求獲取的種子資源A的標(biāo)識(shí)信息001(或采用16進(jìn)制表示)和客戶端P1的地址信息。步驟S22、客戶端P2向?yàn)槠涮峁┓N子資源的客戶端P3發(fā)送種子查詢請求,該查詢請求中攜帶有種子資源A的標(biāo)識(shí)信息001以及客戶端Pl的地址信息。步驟S23、客戶端P3根據(jù)接收的查詢請求中攜帶標(biāo)識(shí)信息001,判斷是否能夠?yàn)榭蛻舳薖1提供種子資源,若是,執(zhí)行步驟S24,否則,執(zhí)行步驟S25。步驟S24、客戶端P3直接向客戶端Pl發(fā)送其地址信息轉(zhuǎn)步驟S27。步驟S25、客戶端P3向?yàn)槠涮峁┓N子資源的客戶端P4發(fā)送種子查詢請求,該查詢請求中攜帶有種子資源A的標(biāo)識(shí)信息001以及客戶端Pl的地址信息。步驟S26、客戶端P4根據(jù)接收的查詢請求中攜帶標(biāo)識(shí)信息001,確定能夠?yàn)榭蛻舳薖l提供種子資源,直接向客戶端Pl發(fā)送其地址信息。步驟S27、客戶端Pl根據(jù)接收到的地址信息(客戶端P2、P3和P4的地址信息)與相應(yīng)客戶端建立連接,進(jìn)行資源交互。在本實(shí)施例中因?yàn)榭梢詫?shí)現(xiàn)通過客戶端進(jìn)行種子查詢,因此引入查詢度的概念,其中客戶端Pl向P2P服務(wù)器發(fā)送種子查詢時(shí)當(dāng)前的查詢度為1,即為l度查詢,客戶端P1向客戶端P2發(fā)送種子查詢時(shí)當(dāng)前的查詢度為2,即為2度查詢,客戶端P2向客戶端P3發(fā)送種子查詢時(shí)當(dāng)前的查詢度為3,即為3度查詢,客戶端P3向客戶端P4發(fā)送種子查詢時(shí)當(dāng)前的查詢度為4,即為4度查詢,以此類推。因經(jīng)過6度查詢后網(wǎng)絡(luò)帶寬和時(shí)間等資源消耗較大,作為優(yōu)選方案本實(shí)施例中設(shè)定最大的查詢度為6,查詢度將被攜帶在查詢請求中,一旦客戶端收到的查詢請求中的查詢度大于6,則該終端不再向向?yàn)槠涮峁┓N子資源的客戶端發(fā)送種子查詢請求。因?yàn)榭赡芙?jīng)過多度的,進(jìn)一步為了防止因經(jīng)過多度查詢后延時(shí)較長,查詢到的種子資源可能已經(jīng)不符合客戶端P1的需要規(guī)定(如已經(jīng)超出客戶端P1預(yù)設(shè)定的等待時(shí)間),因此在查詢請求中攜帶查詢請求時(shí)間戳,如客戶端Pl向P2P服務(wù)器發(fā)送種子查詢的查詢請求時(shí)間戳為tl,客戶端P1向客戶端P2發(fā)送種子查詢的查詢請求時(shí)間戳為t2。一客戶端收到的查詢請求后應(yīng)在tl后的預(yù)定時(shí)間At內(nèi),向?yàn)槠涮峁┓N子資源的客戶端發(fā)送種子查詢請求,否則,停止種子查詢請求的發(fā)送。客戶端P1向客戶端P2發(fā)送的種子查詢請求為例,說明查詢請求中包括的信息,如t2-tl已經(jīng)大于At則無需通過客戶端P2向?yàn)槠涮峁┓N子資源的客戶端P3發(fā)送種子查詢請求。<table>tableseeoriginaldocumentpage9</column></row><table>步驟S25中客戶端P3向?yàn)槠涮峁┓N子資源的客戶端P4發(fā)送種子查詢請求,該查詢請求中攜帶有種子資源A的標(biāo)識(shí)信息001以及客戶端Pl的地址信息,之后執(zhí)行和步驟S23類似的步驟客戶端P4根據(jù)接收的查詢請求中攜帶標(biāo)識(shí)信息001,判斷是否能夠?yàn)榭蛻舳薖1提供種子資源,若是,客戶端P4直接向客戶端P1發(fā)送其地址信息,否則,客戶端P4向?yàn)槠涮峁┓N子資源的客戶端發(fā)送種子查詢請求。以此類推直到一客戶端收到的查詢請求中的查詢度大于6,則該終端不再向?yàn)槠涮峁┓N子資源的客戶端發(fā)送種子查詢請求。實(shí)施例二為本發(fā)明P2P系統(tǒng)中種子查詢方法的第二種較佳實(shí)施例,其主要實(shí)現(xiàn)過程和實(shí)施例一類似不同之處在于,步驟S22中客戶端P2向?yàn)槠涮峁┓N子資源的客戶端P3發(fā)送種子查詢請求,該查詢請求中攜帶有種子資源A的標(biāo)識(shí)信息001以及客戶端P2的地址信息。址信息。在本實(shí)施例中,客戶端P2向客戶端P3發(fā)送種子查詢請求中攜帶的是客戶端P2的地址信息,此時(shí)若客戶端P3確認(rèn)能夠?yàn)榭蛻舳薖1提供種子資源,則客戶端P3向客戶端P2發(fā)送能夠?yàn)榭蛻舳薖l提供種子資源的確認(rèn)信息,并通過客戶端P2向客戶端Pl發(fā)送客戶端P3的地址信息。對應(yīng)上述種子查詢方法,本發(fā)明進(jìn)而提出了一種P2P系統(tǒng),請參閱圖4,包括服務(wù)器40,還包括第一客戶端41:用于向服務(wù)器發(fā)送種子查詢,從服務(wù)器獲取能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第二客戶端的地址信息,向第二客戶端發(fā)送種子查詢請求,獲取除第二客戶端之外,能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第三客戶端的地址信息。進(jìn)一步,該系統(tǒng)還包括第二客戶端42:用于向?yàn)榈诙蛻舳颂峁┓N子資源的第三客戶端發(fā)送種子查詢請求,該查詢請求中攜帶有第一客戶端請求獲取的種子資源的標(biāo)識(shí)信息和第一客戶端的地址信息;第三客戶端43:用于為第二客戶端提供種子資源,確定能夠?yàn)榈谝豢蛻舳颂峁┓N子資源后,直接向第一客戶端發(fā)送其地址信息。進(jìn)一步,還包括第三客戶端43:還用于向其種子客戶端發(fā)送種子查詢請求;第一客戶端41:還用于從第三客戶端的種子客戶端中獲取能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的客戶端的地址信息。進(jìn)一步,第一客戶端41:還用于向第二客戶端發(fā)起種子查詢請求,該查詢請求中攜帶有第一客戶端請求獲取的種子資源的標(biāo)識(shí)信息和第一客戶端的地址信息;進(jìn)一步,第一客戶端41:還用于向第二客戶端發(fā)起種子查詢請求,該查詢請求中攜帶有第一客戶端請求獲取的種子資源的標(biāo)識(shí)信息和第一客戶端的地址信息;進(jìn)一步,所述系統(tǒng)還包括第二客戶端42:用于向?yàn)榈诙蛻舳颂峁┓N子資源的第三客戶端發(fā)送種子查詢請求,該查詢請求中攜帶有第一客戶端請求獲取的種子資源的標(biāo)識(shí)信息和第二客戶端的地址信息;第三客戶端43:還用于為第二客戶端提供種子資源,確定能夠?yàn)榈谝豢蛻舳颂峁┓N子資源后,其地址信息通過第二客戶端向第一客戶端發(fā)送。進(jìn)一步,第二客戶端42:還用于在第一客戶端發(fā)起種子查詢請求后預(yù)定時(shí)間內(nèi),向?yàn)樘峁┓N子資源的客戶端發(fā)送種子查詢請求。進(jìn)一步,第一客戶端41:還用于根據(jù)第三客戶端的地址信息與第三客戶端建立連接,進(jìn)行資源交互。明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。權(quán)利要求1、一種P2P系統(tǒng)中的種子查詢方法,其特征在于,包括向服務(wù)器發(fā)送種子查詢的第一客戶端,從服務(wù)器獲取能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第二客戶端的地址信息;第一客戶端向第二客戶端發(fā)送種子查詢請求,獲取除第二客戶端之外,能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第三客戶端的地址信息。2、如權(quán)利要求1所述的方法,其特征在于,第一客戶端向第二客戶端發(fā)送種子查詢請求,獲取除第二客戶端之外,能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第三客戶端的地址信息步驟后還包括能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第三客戶端向其種子客戶端發(fā)送種子查詢請求,第一客戶端從第三客戶端的種子客戶端中獲取能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的客戶端的地址信息。3、如權(quán)利要求1所述的方法,其特征在于,第一客戶端向第二客戶端發(fā)送種子查詢請求,獲取除第二客戶端之外,能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第三客戶端的地址信息具體為第一客戶端向第二客戶端發(fā)起種子查詢請求,該查詢請求中攜帶有第一客戶端請求獲取的種子資源的標(biāo)識(shí)信息和第一客戶端的地址信息;第二客戶端向?yàn)榈诙蛻舳颂峁┓N子資源的第三客戶端發(fā)送種子查詢請求,該查詢請求中攜帶有第一客戶端請求獲取的種子資源的標(biāo)識(shí)信息和第一客戶端的地址信息;為第二客戶端提供種子資源的第三客戶端確定能夠?yàn)榈谝豢蛻舳颂峁┓N子資源后,直接向第一客戶端發(fā)送其地址信息。4、如權(quán)利要求1所述的方法,其特征在于,第一客戶端向第二客戶端發(fā)送種子查詢請求,獲取除第二客戶端之外,能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第三客戶端的地址信息具體為第一客戶端向第二客戶端發(fā)起種子查詢請求,該查詢請求中攜帶有第一客戶端請求獲取的種子資源的標(biāo)識(shí)信息和第一客戶端的地址信息;第二客戶端向?yàn)榈诙蛻舳颂峁┓N子資源的第三客戶端發(fā)送種子查詢請求,該查詢請求中攜帶有第一客戶端請求獲取的種子資源的標(biāo)識(shí)信息以及第二客戶端的地址信息;為第二客戶端提供種子資源的第三客戶端確定能夠?yàn)榈谝豢蛻舳颂峁┓N子資源后,其地址信息通過第二客戶端向第一客戶端發(fā)送。5、如權(quán)利要求3或4所述的方法,其特征在于,在第一客戶端向第二客戶端發(fā)起種子查詢請求后預(yù)定時(shí)間內(nèi),第二客戶端向?yàn)榈诙蛻舳颂峁┓N子資源的第三客戶端發(fā)送種子查詢請求。6、如權(quán)利要求1所述的方法,其特征在于,第一客戶端獲取第三客戶端的地址信息后還包括第一客戶端根據(jù)第三客戶端的地址信息與第三客戶端建立連接,進(jìn)行資源交互。7、一種P2P系統(tǒng),包括服務(wù)器,其特征在于,還包括第一客戶端用于向服務(wù)器發(fā)送種子查詢,從服務(wù)器獲取能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第二客戶端的地址信息,向第二客戶端發(fā)送種子查詢請求,獲取除第二客戶端之外,能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第三客戶端的地址信息。8、如權(quán)利要求7所述的系統(tǒng),其特征在于,第一客戶端還用于向第二客戶端發(fā)起種子查詢請求,該查詢請求中攜帶有第一客戶端請求獲取的種子資源的標(biāo)識(shí)信息和第一客戶端的地址信息;所述系統(tǒng)還包括第二客戶端用于向?yàn)榈诙蛻舳颂峁┓N子資源的第三客戶端發(fā)送種子查詢請求,該查詢請求中攜帶有第一客戶端請求獲取的種子資源的標(biāo)識(shí)信息和第一客戶端的地址信息;第三客戶端用于為第二客戶端提供種子資源,確定能夠?yàn)榈谝豢蛻舳颂峁┓N子資源后,直接向第一客戶端發(fā)送其地址信息。9、如權(quán)利要求7所述的系統(tǒng),其特征在于,還包括第三客戶端還用于向其種子客戶端發(fā)送種子查詢請求;第一客戶端還用于從第三客戶端的種子客戶端中獲取能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的客戶端的地址信息。10、如權(quán)利要求7所述的系統(tǒng),其特征在于,第一客戶端還用于向第二客戶端發(fā)起種子查詢請求,該查詢請求中攜帶有第一客戶端請求獲取的種子資源的標(biāo)識(shí)信息和第一客戶端的地址信息;所述系統(tǒng)還包括第二客戶端用于向?yàn)榈诙蛻舳颂峁┓N子資源的第三客戶端發(fā)送種子查詢請求,該查詢請求中攜帶有第一客戶端請求獲取的種子資源的標(biāo)識(shí)信息和第二客戶端的地址信息;第三客戶端還用于為第二客戶端提供種子資源,確定能夠?yàn)榈谝豢蛻舳颂峁┓N子資源后,其地址信息通過第二客戶端向第一客戶端發(fā)送。11、如權(quán)利要求9或10所述的系統(tǒng),其特征在于,第二客戶端還用于在第一客戶端發(fā)起種子查詢請求后預(yù)定時(shí)間內(nèi),向提供種子資源的客戶端發(fā)送種子查詢請求。12、如權(quán)利要求7所述的系統(tǒng),其特征在于,第一客戶端還用于根據(jù)第三客戶端的地址信息與第三客戶端建立連接,進(jìn)行資源交互。全文摘要本發(fā)明公開了一種P2P系統(tǒng)及種子查詢方法,用以解決現(xiàn)有技術(shù)中在P2P服務(wù)器種子查詢能力一定的情況下,無法更快獲取到需要的種子的問題,該方法包括向服務(wù)器發(fā)送種子查詢的第一客戶端,從服務(wù)器獲取能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第二客戶端的地址信息;第一客戶端向第二客戶端發(fā)送種子查詢請求,獲取除第二客戶端之外,能夠?yàn)榈谝豢蛻舳颂峁┓N子資源的第三客戶端的地址信息。在P2P服務(wù)器種子查詢能力一定的情況下,除了通過P2P服務(wù)器進(jìn)行種子查詢外,還通過向其它客戶端發(fā)送種子查詢請求,獲取能夠提供種子資源的其它客戶端的地址信息,更快的獲取到需要的種子。文檔編號(hào)H04L29/08GK101431533SQ20081018641公開日2009年5月13日申請日期2008年12月16日優(yōu)先權(quán)日2008年12月16日發(fā)明者華有為申請人:騰訊科技(深圳)有限公司