基于p2p的文件下載方法和系統(tǒng)及客戶端的制作方法
【專利摘要】本發(fā)明提供了一種采用P2P技術(shù)下載文件的方法和系統(tǒng)、一種客戶端,其中的方法具體包括:客戶端向P2P系統(tǒng)發(fā)送攜帶文件資源信息的服務(wù)器查詢請求;該客戶端接收所述P2P系統(tǒng)返回的P2P服務(wù)器的IP列表;該客戶端根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇網(wǎng)絡(luò)連接最佳的一個P2P服務(wù)器,并依據(jù)所選擇P2P服務(wù)器獲取文件資源的種子信息;該客戶端依據(jù)所述文件資源的種子信息,進行該文件資源的分享。本發(fā)明能夠提高文件資源的共享效率和P2P下載效率。
【專利說明】基于P2P的文件下載方法和系統(tǒng)及客戶端
[0001]本發(fā)明專利申請是申請日為2011年6月15日、申請?zhí)枮?01110161087.7、名稱為“采用P2P技術(shù)下載文件的方法和系統(tǒng)、客戶端”的中國發(fā)明專利申請的分案申請。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及網(wǎng)絡(luò)通信【技術(shù)領(lǐng)域】,特別是涉及一種采用P2P技術(shù)下載文件的方法和系統(tǒng)、一種客戶端。
【背景技術(shù)】
[0003]P2P (點對點,Peer-to-Peer)技術(shù)是一種對等互聯(lián)網(wǎng)絡(luò)技術(shù),在P2P網(wǎng)絡(luò)中每個節(jié)點的地位都是對等的,既是服務(wù)器又是客戶端,每個節(jié)點在享受其它節(jié)點提供的服務(wù)的同時,也在為其它節(jié)點提供服務(wù)。
[0004]由于P2P技術(shù)充分利用了各節(jié)點的計算能力,因而它在擴展性、擴展承保等方面存在極大的優(yōu)勢。近年來,文件共享、流媒體等各種基于P2P技術(shù)的互聯(lián)網(wǎng)應(yīng)用發(fā)展迅猛,P2P下載流量已占據(jù)全球互聯(lián)網(wǎng)總數(shù)據(jù)流量的70%以上,P2P技術(shù)已成為寬帶互聯(lián)網(wǎng)重要的媒體交付技術(shù)。
[0005]現(xiàn)有采用P2P技術(shù)下載文件的方法,通常包括如下步驟:
[0006]步驟Al、客戶端A開始針對某文件資源的下載任務(wù);
[0007]步驟A2、客戶端A得到P2P服務(wù)器的IP (網(wǎng)絡(luò)之間互連的協(xié)議,InternetProtocol)列表;
[0008]步驟A3、依據(jù)所述P2P服務(wù)器的IP列表,客戶端A隨機選擇其中一臺P2P服務(wù)器進行登陸;
[0009]步驟A4、該客戶端A向該臺P2P服務(wù)器發(fā)送攜帶該文件資源信息的查詢請求;
[0010]步驟A5、該臺P2P服務(wù)器向客戶端A返回該文件資源的種子節(jié)點;
[0011]步驟A6、客戶端A與所述該文件資源的種子節(jié)點連接,進行該文件資源的分享。
[0012]但是,由于隨機選擇P2P服務(wù)器的緣故,下載同一文件資源的客戶端容易登錄到不同的P2P服務(wù)器上,這就使得客戶端A與所連接種子節(jié)點的臨近屬性下降,使得客戶端A與所連接種子節(jié)點之間的共享效率降低,表現(xiàn)在下載速度慢、連接時間長等,從而嚴重影響P2P下載效率。
[0013]特別地,對于升級,漏洞補丁修復(fù)等業(yè)務(wù)需求,可能會出現(xiàn)百萬甚至千萬個客戶端集中采用P2P技術(shù)下載一個文件資源的情況,此時,客戶端之間的共享效率更低,P2P下載效率更低。
[0014]總之,需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是:如何能夠提高上述情形下的共享效率和P2P下載效率。
【發(fā)明內(nèi)容】
[0015]本發(fā)明所要解決的技術(shù)問題是提供一種采用P2P技術(shù)下載文件的方法和系統(tǒng)、一種客戶端,能夠提高文件資源的共享效率和P2P下載效率。
[0016]為了解決上述問題,本發(fā)明公開了一種采用P2P技術(shù)下載文件的方法,包括:
[0017]客戶端向P2P系統(tǒng)發(fā)送攜帶文件資源信息的服務(wù)器查詢請求;
[0018]該客戶端接收所述P2P系統(tǒng)返回的P2P服務(wù)器的IP列表;
[0019]該客戶端根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇網(wǎng)絡(luò)連接最佳的一個P2P服務(wù)器,并依據(jù)所選擇P2P服務(wù)器獲取文件資源的種子信息;
[0020]該客戶端依據(jù)所述文件資源的種子信息,進行該文件資源的分享。
[0021]優(yōu)選的,所述P2P服務(wù)器的IP列表中包括多個P2P服務(wù)器的IP地址;
[0022]所述該客戶端根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇網(wǎng)絡(luò)連接最佳的一個P2P服務(wù)器的步驟,包括:
[0023]從IP地址段信息庫中查詢客戶端所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商,其中,所述IP地址段信息庫包括多個IP地址段以及每個IP地址段對應(yīng)的物理所在地和網(wǎng)絡(luò)運營商;
[0024]針對所述P2P服務(wù)器的IP列表中各P2P服務(wù)器的IP地址,該客戶端確定相應(yīng)的所屬IP地址段,并從所述IP地址段信息庫中查詢各所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商;
[0025]依據(jù)該客戶端所屬IP地址段和各P2P服務(wù)器的IP地址的物理所在地和網(wǎng)絡(luò)運營商,從所述P2P服務(wù)器的IP列表中選擇物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的一個P2P服務(wù)器的IP地址。
[0026]優(yōu)選的,所述該客戶端根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇網(wǎng)絡(luò)連接最佳的一個P2P服務(wù)器的步驟,包括:
[0027]該客戶端根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址;
[0028]針對客戶端所屬IP地址段執(zhí)行選擇算法,從所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址中選擇一者。
[0029]優(yōu)選的,所述針對客戶端所屬IP地址段執(zhí)行選擇算法,從所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址中選擇一者的步驟,包括:
[0030]對所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址進行排序,得到排序結(jié)果;
[0031]對該客戶端所屬IP地址段進行數(shù)字運算,并進行取整,得到取整后的數(shù)字運算結(jié)果;
[0032]計算所述取整后的數(shù)字運算結(jié)果對IP數(shù)目的取模結(jié)果,其中,所述IP數(shù)目為所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址的數(shù)目;
[0033]依據(jù)所述取模結(jié)果,從所述排序結(jié)果中選擇一者。
[0034]優(yōu)選的,所述數(shù)字運算包括數(shù)字加密運算或者數(shù)字摘要運算。
[0035]優(yōu)選的,所述文件資源信息包括文件資源的網(wǎng)頁地址。
[0036]另一方面,本發(fā)明還提供了一種采用P2P技術(shù)下載文件的系統(tǒng),包括客戶端和P2P系統(tǒng),所述P2P系統(tǒng)進一步包括P2P服務(wù)器,其中,
[0037]所述客戶端,包括:[0038]服務(wù)器查詢模塊,用于向所述P2P系統(tǒng)發(fā)送攜帶文件資源信息的服務(wù)器查詢請求;
[0039]IP列表接收模塊,用于接收所述P2P系統(tǒng)返回的P2P服務(wù)器的IP列表;
[0040]選擇模塊,用于根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇網(wǎng)絡(luò)連接最佳的一個P2P服務(wù)器;
[0041]種子信息獲取模塊,用于依據(jù)所選擇P2P服務(wù)器獲取文件資源的種子信息;及
[0042]下載模塊,用于依據(jù)所述文件資源的種子信息,進行該文件資源的分享;
[0043]所述P2P系統(tǒng),還包括:
[0044]服務(wù)器查詢處理模塊,用于對所述服務(wù)器查詢請求進行處理,得到相應(yīng)的P2P服務(wù)器的IP列表,并返回給所述客戶端。
[0045]優(yōu)選的,所述P2P服務(wù)器的IP列表中包括多個P2P服務(wù)器的IP地址;
[0046]所述選擇模塊,包括:
[0047]第一查詢子模塊,用于從IP地址段信息庫中查詢客戶端所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商,其中,所述IP地址段信息庫包括多個IP地址段以及每個IP地址段對應(yīng)的物理所在地和網(wǎng)絡(luò)運營商;
[0048]第二查詢子模塊,用于針對所述P2P服務(wù)器的IP列表中各P2P服務(wù)器的IP地址,該客戶端確定相應(yīng)的所屬IP地址段,并從所述IP地址段信息庫中查詢各所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商;
[0049]選擇子模塊,用于依據(jù)該客戶端所屬IP地址段和各P2P服務(wù)器的IP地址的物理所在地和網(wǎng)絡(luò)運營商,從所述P2P服務(wù)器的IP列表中選擇物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的一個P2P服務(wù)器的IP地址。
[0050]優(yōu)選的,所述選擇模塊,包括:
[0051]第一選擇子模塊,用于該客戶端根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址;
[0052]第二選擇子模塊,用于針對客戶端所屬IP地址段執(zhí)行選擇算法,從所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址中選擇一者。
[0053]優(yōu)選的,所述第二選擇子模塊,包括:
[0054]排序單元,用于對所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址進行排序,得到排序結(jié)果;
[0055]取整單元,用于對該客戶端所屬IP地址段進行數(shù)字運算,并進行取整,得到取整后的數(shù)字運算結(jié)果;
[0056]取模單元,用于計算所述取整后的數(shù)字運算結(jié)果對IP數(shù)目的取模結(jié)果,其中,所述IP數(shù)目為所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址的數(shù)目 '及
[0057]選擇單元,用于依據(jù)所述取模結(jié)果,從所述排序結(jié)果中選擇一者。
[0058]優(yōu)選的,所述數(shù)字運算包括數(shù)字加密運算或者數(shù)字摘要運算。
[0059]另一方面,本發(fā)明還提供了一種客戶端,包括:
[0060]服務(wù)器查詢模塊,用于向所述P2P系統(tǒng)發(fā)送攜帶文件資源信息的服務(wù)器查詢請求;[0061 ] IP列表接收模塊,用于接收所述P2P系統(tǒng)返回的P2P服務(wù)器的IP列表;選擇模塊,用于從所述P2P服務(wù)器的IP列表中選擇網(wǎng)絡(luò)連接最佳的一個P2P服務(wù)器;
[0062]種子信息獲取模塊,用于依據(jù)所選擇P2P服務(wù)器獲取文件資源的種子信息;及
[0063]下載模塊,用于依據(jù)所述文件資源的種子信息,進行該文件資源的分享。
[0064]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:
[0065]本發(fā)明的客戶端在從P2P服務(wù)器的IP列表選擇P2P服務(wù)器時,不是隨機選擇,而是根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇網(wǎng)絡(luò)連接最佳的一個P2P服務(wù)器;
[0066]一方面,由于客戶端在下載文件資源的過程中,需要定時與P2P服務(wù)器交互共享該文件資源的提供客戶端信息,所述網(wǎng)絡(luò)連接最佳(例如,物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的一個P2P服務(wù)器的就近接入)的接入策略,能夠大大提高客戶端與P2P服務(wù)器之間的交互速度,從而能夠提高該文件資源的共享效率和P2P下載效率;
[0067]另一方面,由于本發(fā)明針對客戶端所屬IP地址段執(zhí)行選擇算法,使得P2P服務(wù)器的選擇結(jié)果僅僅取決于客戶端所屬IP地址段,這樣,具有相同IP地址段的不同客戶端的選擇結(jié)果是相同的,能夠保證具有相同IP地址段的不同客戶端登錄到相同的P2P服務(wù)器;這樣,本發(fā)明的客戶端所選擇P2P服務(wù)器具有的資源提供客戶端之間同樣具有最佳的網(wǎng)絡(luò)連接(例如,屬于相同的IP地址段,且處于相同網(wǎng)絡(luò)運營商),所選擇P2P服務(wù)器能夠提供與欲下載客戶端處于相同IP地址段和相同網(wǎng)絡(luò)運營商的資源提供端也即種子節(jié)點;因此,能夠大大提高欲下載客戶端與所連接種子節(jié)點的臨近屬性,使得欲下載客戶端與所連接種子節(jié)點之間的共孚效率大大提聞,從而大大提聞P2P下載效率。
【專利附圖】
【附圖說明】
[0068]圖1是本發(fā)明一種采用P2P技術(shù)下載文件的方法實施例的流程圖;
[0069]圖2是本發(fā)明一種采用P2P技術(shù)下載文件的系統(tǒng)實施例的結(jié)構(gòu)圖;
[0070]圖3是本發(fā)明一種客戶端實施例的結(jié)構(gòu)圖。
【具體實施方式】
[0071]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步詳細的說明。
[0072]本發(fā)明實施例的核心構(gòu)思之一在于:客戶端在從P2P服務(wù)器的IP列表選擇P2P服務(wù)器時,不是隨機選擇,而是遵循如下原則:
[0073]1、具有相同IP地址段的不同客戶端選擇相同的P2P服務(wù)器,使得所選擇P2P服務(wù)器具有的資源提供客戶端屬于相同的IP地址段;
[0074]2、網(wǎng)絡(luò)連接最佳的接入策略,例如,可以采取物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的就近接入策略。
[0075]—方面,由于客戶端在下載文件資源的過程中,需要定時與P2P服務(wù)器交互共享該文件資源的提供客戶端信息,所述網(wǎng)絡(luò)連接最佳的接入策略能夠大大提高客戶端與P2P服務(wù)器之間的交互速度,從而能夠提高該文件資源的共享效率和P2P下載效率;
[0076]另一方面,由于所選擇P2P服務(wù)器具有的資源提供客戶端之間同樣具有最佳的網(wǎng)絡(luò)連接(例如,屬于相同的IP地址段,且處于相同網(wǎng)絡(luò)運營商);這樣,在接收到客戶端的種子查詢請求時,能夠提供與請求發(fā)起客戶端處于相同IP地址段和相同網(wǎng)絡(luò)運營商的資源提供端也即種子節(jié)點,因此,能夠大大提高請求發(fā)起客戶端與所連接種子節(jié)點的臨近屬性,使得請求發(fā)起客戶端與所連接種子節(jié)點之間的共孚效率大大提聞,從而大大提聞P2P下載效率。
[0077]參照圖1,示出了本發(fā)明一種采用P2P技術(shù)下載文件的方法實施例的流程圖,具體可以包括:
[0078]步驟101、客戶端向P2P系統(tǒng)發(fā)送攜帶文件資源信息的服務(wù)器查詢請求;
[0079]本發(fā)明可以適用于各種文件的下載,如視頻文件、文檔文件、程序文件等,本發(fā)明尤其適用于對于升級、漏洞補丁修復(fù)等熱點文件的下載,以大大提高文件的共享效率和P2P下載效率。
[0080]在本發(fā)明的一種優(yōu)選實施例中,所述文件資源信息可以包括文件資源的URL(網(wǎng)頁地址,Uniform Resource Locator)。例如,用戶欲通過BT (比特流,BitTorren)下載某視頻文件,點擊該視頻文件的下載地址,則代表向BT系統(tǒng)發(fā)送了攜帶該視頻文件的URL地址的服務(wù)器查詢請求。
[0081]步驟102、該客戶端接收所述P2P系統(tǒng)返回的P2P服務(wù)器的IP列表;
[0082]在實際中,可通過對所述服務(wù)器查詢請求進行域名解析,得到相應(yīng)的P2P服務(wù)器的IP列表;這里的域名解析可直接由P2P系統(tǒng)完成,也可由P2P請求域名解析服務(wù)器來完成,由于對所述服務(wù)器查詢請求進行處理得到相應(yīng)的P2P服務(wù)器的IP列表,屬于本領(lǐng)域的公知常識,故在此不作贅述。
[0083]P2P服務(wù)器的IP列表的表現(xiàn)形式為IP的集合,如{116.21.170.34 ;116.227.24.132 ;117.88.214.74 ;121.10.105.151 ;121.10.105.151 },集合中的元素一般
以數(shù)組的形式進行存儲。
[0084]步驟103、該客戶端根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇網(wǎng)絡(luò)連接最佳的一個P2P服務(wù)器,并依據(jù)所選擇P2P服務(wù)器獲取文件資源的種子信息;
[0085]因特網(wǎng)是全世界范圍內(nèi)的計算機聯(lián)為一體而構(gòu)成的通信網(wǎng)絡(luò)的總稱。為了通信的方便,給每一臺計算機都事先分配一個標識地址也即IP地址。根據(jù)TCP/IP(傳輸控制協(xié)議/ 因特網(wǎng)互聯(lián)協(xié)議,Transmission Control Protocol/Internet Protocol)規(guī)定,IP 地址是由32位二進制數(shù)組成,而且在因特網(wǎng)范圍內(nèi)是唯一的。例如,某臺聯(lián)在因特網(wǎng)上的計算機的 IP 地址為:11010010 01001001 10001100 00000010
[0086]為了方便記憶,就將組成計算機的IP地址的32位二進制分成四段,每段8位,中間用小數(shù)點隔開,然后將每八位二進制轉(zhuǎn)換成十進制數(shù),這樣上述計算機的IP地址就變成了:210.73.140.2。
[0087]由于網(wǎng)絡(luò)中包含的計算機有可能不一樣多,有的網(wǎng)絡(luò)可能含有較多的計算機,也有的網(wǎng)絡(luò)包含較少的計算機,于是人們按照網(wǎng)絡(luò)規(guī)模的大小,把32位地址信息設(shè)成三種定位的劃分方式,這三種劃分方法分別對應(yīng)于A類、B類、C類IP地址段。
[0088]1.A類IP地址段
[0089]一個A類IP地址段是指,在IP地址的四段號碼中,第一段號碼為網(wǎng)絡(luò)號碼,剩下的三段號碼為本地計算機的號碼。如果用二進制表示IP地址的話,A類IP地址段就由I字節(jié)的網(wǎng)絡(luò)地址和3字節(jié)主機地址組成,網(wǎng)絡(luò)地址的最高位必須是“O”。A類IP地址段中網(wǎng)絡(luò)的標識長度為7位,主機標識的長度為24位,A類網(wǎng)絡(luò)地址數(shù)量較少,可以用于主機數(shù)達1600多萬臺的大型網(wǎng)絡(luò)。
[0090]2.B類IP地址段
[0091]一個B類IP地址段是指,在IP地址的四段號碼中,前兩段號碼為網(wǎng)絡(luò)號碼,B類IP地址就由2字節(jié)的網(wǎng)絡(luò)地址和2字節(jié)主機地址組成,網(wǎng)絡(luò)地址的最高位必須是“10”。B類IP地址中網(wǎng)絡(luò)的標識長度為14位,主機標識的長度為16位,B類網(wǎng)絡(luò)地址適用于中等規(guī)模的網(wǎng)絡(luò),每個網(wǎng)絡(luò)所能容納的計算機數(shù)為6萬多臺。
[0092]3.C類IP地址段
[0093]一個C類IP地址段是指,在IP地址的四段號碼中,前三段號碼為網(wǎng)絡(luò)號碼,剩下的一段號碼為本地計算機的號碼。如果用二進制表示IP地址的話,C類IP地址就由3字節(jié)的網(wǎng)絡(luò)地址和I字節(jié)主機地址組成,網(wǎng)絡(luò)地址的最高位必須是“110”。C類IP地址段中網(wǎng)絡(luò)的標識長度為21位,主機標識的長度為8位,C類網(wǎng)絡(luò)地址數(shù)量較多,適用于小規(guī)模的局域網(wǎng)絡(luò),每個網(wǎng)絡(luò)最多只能包含254臺計算機。
[0094]C類IP的私有地址范圍一般為:192.168.0.0?192.168.255.255 ;這樣,如果一個客戶端的IP地址為192.168.100.155,則認為其自身所屬IP地址段為192.168.100.0。.[0095]關(guān)于從所述P2P服務(wù)器的IP列表中選擇一臺P2P服務(wù)器進行登陸,本發(fā)明可以提供如下方案:
[0096]方案一、
[0097]所述P2P服務(wù)器的IP列表中可以包括多個P2P服務(wù)器的IP地址;
[0098]此時,所述選擇步驟可以進一步包括:
[0099]子步驟B1、從IP地址段信息庫中查詢客戶端所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商,其中,所述IP地址段信息庫具體可以包括多個IP地址段以及每個IP地址段對應(yīng)的物理所在地和網(wǎng)絡(luò)運營商;
[0100]在實際中,每個IP地址段對應(yīng)的物理所在地和網(wǎng)絡(luò)運營商可通過分析多個已知的IP地址的物理所在地信息得到;其中,已知的IP地址的物理所在地信息可通過各種方式獲取,如網(wǎng)絡(luò)用戶資源提交,網(wǎng)絡(luò)服務(wù)供應(yīng)商提交等,本發(fā)明對已知的IP地址的物理所在地信息的獲取方式不加以限制。
[0101]例如,如下為網(wǎng)通在全國各地的IP地址段示例:
[0102]60.0.0.0-60.10.255.255——河北
[0103]60.12.0.0-60.12.255.255——浙江
[0104]60.13.0.0-60.13.63.255——甘肅
[0105]60.13.128.0-60.13.255.255——新疆
[0106]60.16.0.0-60.23.255.255——遼寧
[0107]60.24.0.0-60.30.255.255——天津
[0108]60.31.0.0-60.31.255.255——內(nèi)蒙古
[0109]60.208.0.0-60.217.255.255——山東
[0110]60.220.0.0-60.223.255.255——陜西
[0111]61.48.0.0-61.51.255.255——北京[0112]61.52.0.0-61.54.255.255——河南
[0113]又如,如下為電信在全國各地的IP地址段示例:
[0114]61.129——上海
[0115]61.130——浙江
[0116]61.131——福建
[0117]61.132——江蘇
[0118]61.133----山東
[0119]61.134----陜西
[0120]61.135----北京
[0121]子步驟B2、針對所述P2P服務(wù)器的IP列表中各P2P服務(wù)器的IP地址,該客戶端確定相應(yīng)的所屬IP地址段,并從所述IP地址段信息庫中查詢各所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商;
[0122]子步驟B3、依據(jù)該客戶端所屬IP地址段和各P2P服務(wù)器的IP地址的物理所在地和網(wǎng)絡(luò)運營商,從所述P2P服務(wù)器的IP列表中選擇物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的一個P2P服務(wù)器的IP地址。
[0123]在具體實現(xiàn)中,可采用二維列表來存儲一個物理所在地到另一個物理所在地的距離,例如,北京到北京的距離為O,北京到天津的距離為137公里,北京到上海的距離為1088公里等。這樣,可首先從所述P2P服務(wù)器的IP列表中選擇處于相同網(wǎng)絡(luò)運營商的一個或多個P2P服務(wù)器的IP地址,然后,再從中選擇距離最短的一個P2P服務(wù)器的IP地址。
[0124]方案二、
[0125]在本發(fā)明的一種優(yōu)選實施例中,所述選擇步驟,可進一步包括:
[0126]子步驟Cl、該客戶端根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址;
[0127]子步驟C2、針對客戶端所屬IP地址段執(zhí)行選擇算法,從所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址中選擇一者。
[0128]由于本優(yōu)選實施例針對客戶端所屬IP地址段執(zhí)行選擇算法,使得子步驟C2的選擇結(jié)果僅僅取決于客戶端所屬IP地址段,這樣,具有相同IP地址段的不同客戶端的選擇結(jié)果是相同的,能夠保證具有相同IP地址段的不同客戶端選擇相同的P2P服務(wù)器。
[0129]在本發(fā)明的另一種優(yōu)選實施例中,所述子步驟C2可以進一步包括:
[0130]子步驟C21、對所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址進行排序,得到排序結(jié)果;
[0131]子步驟C22、對該客戶端所屬IP地址段進行數(shù)字運算,并進行取整,得到取整后的數(shù)字運算結(jié)果;
[0132]子步驟C23、計算所述取整后的數(shù)字運算結(jié)果對IP數(shù)目的取模結(jié)果,其中,所述IP數(shù)目為所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址的數(shù)目;
[0133]子步驟C24、依據(jù)所述取模結(jié)果,從所述排序結(jié)果中選擇一者。
[0134]例如,該客戶端的IP地址段(61.133)處于山東電信,子步驟Cl選擇了 M個山東電信的P2P服務(wù)器的IP地址;那么,子步驟C21可按從大到小或者從小到大對這M個IP地址進行排序,子步驟C22對61.133進行數(shù)字計算并進行取整運算得到N,子步驟C23進行N%M(取模運算)得到P,即選擇排序后的M個IP地址中的第P個。
[0135]在本發(fā)明實施例中,優(yōu)選的是,所述數(shù)字運算可以包括數(shù)字加密運算或者數(shù)字摘要運算。例如,數(shù)字加密運算可以進一步包括DES(對稱算法,Data Encryption Standard),IDEA (國際數(shù)據(jù)加密算法,International Data Encryption Algorithm), DSA (數(shù)字摘要算法,Digital Signature Algorithm)等,所述數(shù)字摘要運算可以進一步包括SHA (安全 Hash 編碼法,Secure Hash Algorithm), MD5 (消息摘要算法第五版,Message DigestAlgorithm5)等。
[0136]需要說明的是,直接選擇選擇排序后的M個IP地址中的第P個屬于選擇算法的一個示例,實際上,在各客戶端執(zhí)行的選擇算法相同的前提下,選擇第P-1或P+1個都是可行的。
[0137]可以理解,除了除了數(shù)字加密運算和數(shù)字摘要運算外,本領(lǐng)域技術(shù)人員還可以根據(jù)實際需要,采用其它數(shù)字運算,本發(fā)明的宗旨是針對所屬IP地址段執(zhí)行選擇算法,使得P2P服務(wù)器的的選擇結(jié)果僅僅取決于客戶端所屬IP地址段,以保證具有相同IP地址段的不同客戶端選擇相同的P2P服務(wù)器;本發(fā)明并不會對具體的選擇算法和數(shù)字運算加以限制。
[0138]在選擇了一個P2P服務(wù)器后,可采用多種已有技術(shù)手段,獲取文件資源的種子信息,例如,該客戶端可首先向所選擇P2P服務(wù)器發(fā)送攜帶該文件資源信息的種子查詢請求,然后,接收所選擇P2P服務(wù)器返回的文件資源的種子信息??梢岳斫猓绢I(lǐng)域技術(shù)人員可以根據(jù)實際需要,采用其它技術(shù)手段,本發(fā)明的宗旨是使得所選擇P2P服務(wù)器具有的資源提供客戶端之間具有最佳的網(wǎng)絡(luò)連接(例如,屬于相同的IP地址段,且處于相同網(wǎng)絡(luò)運營商);這樣,在接收到客戶端的種子查詢請求時,能夠提供與請求發(fā)起客戶端處于相同IP地址段和相同網(wǎng)絡(luò)運營商的資源提供端也即種子節(jié)點,因此,能夠大大提高請求發(fā)起客戶端與所連接種子節(jié)點的臨近屬性,而不會對獲取文件資源的種子信息的具體手段加以限制。
[0139]步驟104、該客戶端依據(jù)所述文件資源的種子信息,進行該文件資源的分享。
[0140]為使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明,以下通過一個具體的示例說明本發(fā)明采用P2P技術(shù)下載文件的詳細過程,該示例涉及客戶端A下載殺毒軟件升級文件,具體可以包括:
[0141]步驟S1、客戶端A向P2P系統(tǒng)發(fā)送服務(wù)器查詢請求,該服務(wù)器查詢請求攜帶有殺毒軟件升級文件的URL地址;
[0142]步驟S2、P2P系統(tǒng)通過域名解析,得到與該服務(wù)器查詢請求相應(yīng)的P2P服務(wù)器的IP列表,并返回給客戶端A ;
[0143]步驟S3、客戶端A接收所述P2P系統(tǒng)返回的P2P服務(wù)器的IP列表;
[0144]步驟S4、客戶端A根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的一個P2P服務(wù)器進行登陸,具體可以包括:
[0145]子步驟S41、客戶端A根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇了 M個山東電信的P2P服務(wù)器的IP地址;
[0146]子步驟S42、客戶端A按從大到小的順序?qū)@M個IP地址進行排序,得到排序結(jié)果;
[0147]子步驟S43、客戶端A對自身所屬IP地址段進行MD5計算,取MD5運算結(jié)果的最后四個字節(jié),進行取整運算得到N ;[0148]子步驟S44、計算N%M得到到P ;
[0149]子步驟S44、選擇排序后的M個IP地址中的第P個,記該第P個P2P服務(wù)器為P2P服務(wù)器A;
[0150]假設(shè)與客戶端A處于相同IP地址段的客戶端B-客戶端Z,也通過執(zhí)行步驟S1-S4選擇了 P2P服務(wù)器A。
[0151 ] 步驟S5、該客戶端向P2P服務(wù)器A發(fā)送種子查詢請求,該種子查詢請求攜帶有該殺毒軟件升級文件的URL地址;
[0152]步驟S6、P2P服務(wù)器A對所述種子查詢請求進行處理,得到相應(yīng)的殺毒軟件升級文件的種子信息(例如,種子節(jié)點:客戶端B-客戶端H),并返回給客戶端A ;
[0153]步驟S7、客戶端A與所述該殺毒軟件升級文件的種子節(jié)點客戶端B-客戶端H連接,進行該殺毒軟件升級文件的分享。
[0154]與前述方法實施例相應(yīng),本發(fā)明還提供了一種采用P2P技術(shù)下載文件的系統(tǒng),參照圖2,具體可以包括客戶端201和P2P系統(tǒng)202,所述P2P系統(tǒng)202可以進一步包括P2P服務(wù)器221,其中,
[0155]所述客戶端201,具體可以包括:
[0156]服務(wù)器查詢模塊211,用于向所述P2P系統(tǒng)發(fā)送攜帶文件資源信息的服務(wù)器查詢請求;
[0157]IP列表接收模塊212,用于接收所述P2P系統(tǒng)返回的P2P服務(wù)器的IP列表;
[0158]選擇模塊213,用于根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇網(wǎng)絡(luò)連接最佳的一個P2P服務(wù)器;
[0159]種子信息獲取模塊214,用于依據(jù)所選擇P2P服務(wù)器獲取文件資源的種子信息 '及
[0160]下載模塊215,用于依據(jù)所述文件資源的種子信息,進行該文件資源的分享;
[0161]所述P2P系統(tǒng)202,還可以包括:
[0162]服務(wù)器查詢處理模塊222,用于對所述服務(wù)器查詢請求進行處理,得到相應(yīng)的P2P服務(wù)器的IP列表,并返回給所述客戶端。
[0163]在本發(fā)明的一種優(yōu)選實施例中,所述P2P服務(wù)器的IP列表中可以包括多個P2P服務(wù)器的IP地址;
[0164]相應(yīng)地,所述選擇模塊213,可以進一步包括:
[0165]第一查詢子模塊,用于從IP地址段信息庫中查詢客戶端所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商,其中,所述IP地址段信息庫包括多個IP地址段以及每個IP地址段對應(yīng)的物理所在地和網(wǎng)絡(luò)運營商;
[0166]第二查詢子模塊,用于針對所述P2P服務(wù)器的IP列表中各P2P服務(wù)器的IP地址,該客戶端確定相應(yīng)的所屬IP地址段,并從所述IP地址段信息庫中查詢各所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商;
[0167]選擇子模塊,用于依據(jù)該客戶端所屬IP地址段和各P2P服務(wù)器的IP地址的物理所在地和網(wǎng)絡(luò)運營商,從所述P2P服務(wù)器的IP列表中選擇物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的一個P2P服務(wù)器的IP地址。
[0168]在本發(fā)明的又一種優(yōu)選實施例中,所述選擇模塊213,具體可以包括:
[0169]第一選擇子模塊,用于該客戶端根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址;
[0170]第二選擇子模塊,用于針對客戶端所屬IP地址段執(zhí)行選擇算法,從所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址中選擇一者。
[0171]在本發(fā)明實施例中優(yōu)選的是,所述第二選擇子模塊,可以進一步包括:
[0172]排序單元,用于對所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址進行排序,得到排序結(jié)果;
[0173]取整單元,用于對該客戶端所屬IP地址段進行數(shù)字運算,并進行取整,得到取整后的數(shù)字運算結(jié)果;
[0174]取模單元,用于計算所述取整后的數(shù)字運算結(jié)果對IP數(shù)目的取模結(jié)果,其中,所述IP數(shù)目為所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址的數(shù)目 '及
[0175]選擇單元,用于依據(jù)所述取模結(jié)果,從所述排序結(jié)果中選擇一者。
[0176]在本發(fā)明實施例中優(yōu)選的是,所述數(shù)字運算包括數(shù)字加密運算或者數(shù)字摘要運算。
[0177]在具體實現(xiàn)中,所述種子信息獲取模塊214可以進一步包括:
[0178]種子查詢模塊,用于向所選擇P2P服務(wù)器發(fā)送攜帶該文件資源信息的種子查詢請求;
[0179]種子接收模塊,用于接收所選擇P2P服務(wù)器返回的文件資源的種子信息;
[0180]相應(yīng)地,所述P2P服務(wù)器221,可以進一步包括:
[0181]種子查詢處理模塊,用于對所述種子查詢請求進行處理,得到相應(yīng)的文件資源的種子信息,并返回給所述客戶端。
[0182]本發(fā)明還提供了一種客戶端實施例,參照圖3,具體可以包括:
[0183]服務(wù)器查詢模塊301,用于向所述P2P系統(tǒng)發(fā)送攜帶文件資源信息的服務(wù)器查詢請求;
[0184]IP列表接收模塊302,用于接收所述P2P系統(tǒng)返回的P2P服務(wù)器的IP列表;
[0185]選擇模塊303,用于選擇模塊,用于根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇網(wǎng)絡(luò)連接最佳的一個P2P服務(wù)器;
[0186]種子信息獲取模塊304,用于依據(jù)所選擇P2P服務(wù)器獲取文件資源的種子信息 '及
[0187]下載模塊305,用于依據(jù)所述文件資源的種子信息,進行該文件資源的分享。
[0188]在本發(fā)明的一種優(yōu)選實施例中,所述P2P服務(wù)器的IP列表中可以包括多個P2P服務(wù)器的IP地址;
[0189]相應(yīng)地,所述選擇模塊303,可以進一步包括:
[0190]第一查詢子模塊,用于從IP地址段信息庫中查詢客戶端所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商,其中,所述IP地址段信息庫包括多個IP地址段以及每個IP地址段對應(yīng)的物理所在地和網(wǎng)絡(luò)運營商;
[0191]第二查詢子模塊,用于針對所述P2P服務(wù)器的IP列表中各P2P服務(wù)器的IP地址,該客戶端確定相應(yīng)的所屬IP地址段,并從所述IP地址段信息庫中查詢各所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商;
[0192]選擇子模塊,用于依據(jù)該客戶端所屬IP地址段和各P2P服務(wù)器的IP地址的物理所在地和網(wǎng)絡(luò)運營商,從所述P2P服務(wù)器的IP列表中選擇物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的一個P2P服務(wù)器的IP地址。
[0193]在本發(fā)明的又一種優(yōu)選實施例中,所述選擇模塊303,具體可以包括:
[0194]第一選擇子模塊,用于該客戶端根據(jù)自身所屬IP地址段,從所述P2P服務(wù)器的IP列表中選擇物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址;
[0195]第二選擇子模塊,用于針對客戶端所屬IP地址段執(zhí)行選擇算法,從所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址中選擇一者。
[0196]在本發(fā)明實施例中優(yōu)選的是,所述第二選擇子模塊,可以進一步包括:
[0197]排序單元,用于對所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址進行排序,得到排序結(jié)果;
[0198]取整單元,用于對該客戶端所屬IP地址段進行數(shù)字運算,并進行取整,得到取整后的數(shù)字運算結(jié)果;
[0199]取模單元,用于計算所述取整后的數(shù)字運算結(jié)果對IP數(shù)目的取模結(jié)果,其中,所述IP數(shù)目為所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址的數(shù)目 '及
[0200]選擇單元,用于依據(jù)所述取模結(jié)果,從所述排序結(jié)果中選擇一者。
[0201]在本發(fā)明實施例中優(yōu)選的是,所述數(shù)字運算包括數(shù)字加密運算或者數(shù)字摘要運算。[0202]對于采用P2P技術(shù)下載文件的系統(tǒng)和客戶端實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
[0203]本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
[0204]以上對本發(fā)明所提供的一種采用P2P技術(shù)下載文件的方法和系統(tǒng)、一種客戶端,進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【權(quán)利要求】
1.一種基于P2P的文件下載方法,其包括: 向P2P系統(tǒng)發(fā)送攜帶文件資源信息的服務(wù)器查詢請求; 接收所述P2P系統(tǒng)返回的P2P服務(wù)器的IP列表; 從所述P2P服務(wù)器的IP列表中選擇與服務(wù)器查詢請求發(fā)送方所屬IP地址段的物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的一個P2P服務(wù)器; 從所選擇的P2P服務(wù)器獲取所需文件資源的種子信息; 依據(jù)所述文件資源的種子信息對該文件資源進行分享。
2.如權(quán)利要求1所述的方法,其中,所述從所述P2P服務(wù)器的IP列表中選擇與服務(wù)器查詢請求發(fā)送方所屬IP地址段的物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的一個P2P服務(wù)器,進一步包括: 從IP地址段信息庫中查詢服務(wù)器查詢請求發(fā)送方所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商,其中,所述IP地址段信息庫包括多個IP地址段以及每個IP地址段對應(yīng)的物理所在地和網(wǎng)絡(luò)運營商; 從所述IP地址段信息庫中查詢所述P2P服務(wù)器的IP列表中各P2P服務(wù)器所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商; 比較查詢到的服務(wù)器查詢請求發(fā)送方所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商與各P2P服務(wù)器所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商,并選擇物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的一個P2P服務(wù)器。
3.如權(quán)利要求2所述的方法,其中,所述選擇物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的一個P2P服務(wù)器進一步包括: 對所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址進行排序,得到排序結(jié)果; 對服務(wù)器查詢請求發(fā)送方所屬IP地址段進行數(shù)字運算并取整,得到取整后的數(shù)字運算結(jié)果; 計算所述取整后的數(shù)字運算結(jié)果對IP數(shù)目的取模結(jié)果,其中,所述IP數(shù)目為所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址的數(shù)目; 依據(jù)所述取模結(jié)果,從所述排序結(jié)果中選擇一者。
4.如權(quán)利要求3所述的方法,其中,所述數(shù)字運算包括數(shù)字加密運算或者數(shù)字摘要運算。
5.如權(quán)利要求1-4中任一項所述的方法,其中,所述文件資源信息包括文件資源的網(wǎng)頁地址。
6.一種客戶端,其包括: 服務(wù)器查詢請求模塊,適于向P2P系統(tǒng)發(fā)送攜帶文件資源信息的服務(wù)器查詢請求; IP列表接收模塊,適于接收所述P2P系統(tǒng)返回的P2P服務(wù)器的IP列表; 選擇模塊,適于從所述P2P服務(wù)器的IP列表中選擇與服務(wù)器查詢請求發(fā)送方所屬IP地址段的物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的一個P2P服務(wù)器; 種子信息獲取模塊,適于從所選擇的P2P服務(wù)器獲取所需文件資源的種子信息; 下載模塊,適于依據(jù)所述文件資源的種子信息對該文件資源進行分享。
7.如權(quán)利要求6所述的客戶端,其中,所述選擇模塊還包括:第一查詢模塊,適于從IP地址段信息庫中查詢服務(wù)器查詢請求發(fā)送方所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商,其中,所述IP地址段信息庫包括多個IP地址段以及每個IP地址段對應(yīng)的物理所在地和網(wǎng)絡(luò)運營商; 第二查詢模塊,適于從所述IP地址段信息庫中查詢所述P2P服務(wù)器的IP列表中各P2P服務(wù)器所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商; 選擇子模塊,適于比較查詢到的服務(wù)器查詢請求發(fā)送方所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商與各P2P服務(wù)器所屬IP地址段的物理所在地和網(wǎng)絡(luò)運營商,并選擇物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的一個P2P服務(wù)器。
8.如權(quán)利要求7所述的客戶端,其中,所述選擇子模塊包括: 排序模塊,適于對所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址進行排序,得到排序結(jié)果; 取整模塊,適于對服務(wù)器查詢請求發(fā)送方所屬IP地址段進行數(shù)字運算并取整,得到取整后的數(shù)字運算結(jié)果; 取模模塊,適于計算所述取整后的數(shù)字運算結(jié)果對IP數(shù)目的取模結(jié)果,其中,所述IP數(shù)目為所述物理位置最臨近且處于相同網(wǎng)絡(luò)運營商的多個P2P服務(wù)器的IP地址的數(shù)目;選取模塊,適于依據(jù)所述取模結(jié)果,從所述排序結(jié)果中選擇一者。
9.如權(quán)利要求8所述的客戶端,其中,所述數(shù)字運算包括數(shù)字加密運算或者數(shù)字摘要運算。
10.一種基于P2P的文件下載系統(tǒng),其包括如權(quán)利要求6-10中任一項所述的客戶端和P2P系統(tǒng),所述P2P系統(tǒng)進一步包括P2P服務(wù)器,其中, 所述P2P服務(wù)器適于對服務(wù)器查詢請求進行處理以得到相應(yīng)的P2P服務(wù)器的IP列表并將P2P服務(wù)器的IP列表返回給所述客戶端。
【文檔編號】H04L29/12GK103685469SQ201310581231
【公開日】2014年3月26日 申請日期:2011年6月15日 優(yōu)先權(quán)日:2011年6月15日
【發(fā)明者】魯小鎖, 趙化強, 李濤 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司