專利名稱:P2sp網(wǎng)絡(luò)中資源下載的方法及客戶端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)數(shù)字媒體領(lǐng)域,特別涉及一種P2SP網(wǎng)絡(luò)中資源下載的方法及客戶端。
背景技術(shù):
隨著互聯(lián)網(wǎng)和數(shù)字化技術(shù)的快速發(fā)展,通過互聯(lián)網(wǎng)交易及傳播的數(shù)字媒體內(nèi)容(通常為音視頻資源)越來越多。大量的數(shù)字媒體內(nèi)容的提供商和運(yùn)營(yíng)商利用互聯(lián)互通的互聯(lián)網(wǎng)發(fā)布數(shù)字媒體內(nèi)容,不但產(chǎn)生了商業(yè)價(jià)值,還提供給普通用戶一種更加便捷的途徑以獲取更優(yōu)質(zhì)的視聽服務(wù)享受。目前,采用PM (Peer-to-Server,點(diǎn)對(duì)服務(wù)器)或者 P2P (Peer-to-Peer,點(diǎn)對(duì)點(diǎn))模式來實(shí)現(xiàn)數(shù)字媒體資源的共享和下載。其中,P2S模式下,客戶端從服務(wù)器下載所需資源,下載速度較快,但是隨著客戶端數(shù)量的增加,容易造成服務(wù)器的負(fù)擔(dān)過重,最終導(dǎo)致服務(wù)器 終止服務(wù)。P2P模式的下載方式不再僅依賴于服務(wù)器,數(shù)字媒體內(nèi)容的傳遞可以在網(wǎng)絡(luò)上的各個(gè)客戶端之間進(jìn)行,通過策略的制定,一用戶即可以作為客戶端從其他用戶的客戶端上下載資源,又可以作為服務(wù)器向其用戶提供下載資源。這樣,隨著客戶端數(shù)量的增多,資源的下載速度也會(huì)越來越快,但是P2P模式也有其缺點(diǎn),當(dāng)與某個(gè)下載同樣資源的其他客戶端的數(shù)量很少時(shí),往往會(huì)使資源的下載速度變得很慢甚至停滯。目前,一種P2SP (Peer to Server and Peer,點(diǎn)到服務(wù)器和點(diǎn))網(wǎng)絡(luò)則融合了 P2S模式與P2P模式的優(yōu)勢(shì),不但支持P2P技術(shù),并通過資源索引服務(wù)器有效地將服務(wù)器資源和網(wǎng)絡(luò)中客戶端資源整合到了一起,從而提高了媒體文件的下載速度,同時(shí)緩解了服務(wù)器的負(fù)載,但是,P2SP模式下依然存在P2P模式的缺點(diǎn),即當(dāng)與某個(gè)下載同樣資源的其他客戶端的數(shù)量很少時(shí),往往會(huì)使資源的下載速度變得很慢甚至停滯。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種P2SP網(wǎng)絡(luò)中資源下載的方法及客戶端,目的在于提高P2SP網(wǎng)絡(luò)中客戶端在下載資源時(shí)的速度。所述技術(shù)方案如下一種P2SP網(wǎng)絡(luò)中資源下載的方法,所述方法包括客戶端獲取待下載資源信息;所述客戶端根據(jù)所述待下載資源信息向資源索引服務(wù)器獲取存儲(chǔ)有所述待下載資源的資源服務(wù)器列表、向跟蹤服務(wù)器獲取存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表;所述客戶端根據(jù)獲取的所述資源服務(wù)器列表、對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表按照預(yù)定的調(diào)度規(guī)則從存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端和超級(jí)節(jié)點(diǎn)下載所述待下載資源;所述客戶端將所述待下載資源的下載信息上傳給所述跟蹤服務(wù)器。所述客戶端獲取待下載資源信息包括
所述客戶端通過統(tǒng)一資源定位符向資源索引服務(wù)器查詢所述待下載資源信息,所述待下載資源信息包括待下載資源文件的文件名、待下載資源文件的哈希值、待下載資源文件分片的數(shù)量、待下載資源文件分片的大小和待下載資源文件分片的哈希值。所述客戶端根據(jù)所述待下載資源信息向所述資源索引服務(wù)器獲取存儲(chǔ)有所述待下載資源的資源服務(wù)器列表包括所述客戶端向所述資源索引服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述資源索引服務(wù)器生成存儲(chǔ)有所述待下載資源的資源服務(wù)器列表,所述客戶端接收所述資源索引服務(wù)器返回的所述資源服務(wù)器列表。所述客戶端根據(jù)所述待下載資源信息向跟蹤服務(wù)器獲取存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表包括所述客戶端向跟蹤服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述跟蹤服務(wù)器生成存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表,所述客戶端接收所述跟蹤服務(wù)器返回的所述對(duì)等客戶端列表和所述超級(jí)節(jié)點(diǎn)列表。·所述跟蹤服務(wù)器包括全局跟蹤服務(wù)器和局部跟蹤服務(wù)器,所述全局跟蹤服務(wù)器記錄有所述客戶端與所述局部跟蹤服務(wù)器間的對(duì)應(yīng)關(guān)系;所述客戶端根據(jù)所述待下載資源信息向跟蹤服務(wù)器獲取存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表包括所述客戶端向全局跟蹤服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述全局跟蹤服務(wù)器生成存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表,所述客戶端接收所述全局跟蹤服務(wù)器返回的所述對(duì)等客戶端列表;所述客戶端向所述全局跟蹤服務(wù)器查詢同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的局部跟蹤服務(wù)器,并向查詢得到的局部跟蹤服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述局部跟蹤服務(wù)器生成存儲(chǔ)有所述待下載資源的超級(jí)節(jié)點(diǎn)列表,所述客戶端接收所述局部跟蹤服務(wù)器返回的所述超級(jí)節(jié)點(diǎn)列表。所述局部跟蹤服務(wù)器和所述超級(jí)節(jié)點(diǎn)部署在互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)出口處,所述局部跟蹤服務(wù)器用于記錄和維護(hù)與所述客戶端同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的超級(jí)節(jié)點(diǎn)所存儲(chǔ)的資源信息,所述超級(jí)節(jié)點(diǎn)存儲(chǔ)的是互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)內(nèi)的熱點(diǎn)資源。進(jìn)一步地,所述對(duì)等客戶端列表內(nèi)的對(duì)等客戶端為與所述客戶端同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的對(duì)等客戶端。所述客戶端根據(jù)獲取的所述資源服務(wù)器列表、對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表按照預(yù)定的調(diào)度規(guī)則從存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端和超級(jí)節(jié)點(diǎn)中下載所述待下載資源包括所述客戶端與所述超級(jí)節(jié)點(diǎn)列表中的全部或部分超級(jí)節(jié)點(diǎn)建立連接,從所述全部或部分超級(jí)節(jié)點(diǎn)中下載所述待下載資源;當(dāng)與所述客戶端建立連接的所述全部或部分超級(jí)節(jié)點(diǎn)的數(shù)量或下載帶寬小于預(yù)設(shè)閾值時(shí),所述客戶端與所述對(duì)等客戶端列表中的全部或部分對(duì)等客戶端建立連接,從所述全部或部分對(duì)等客戶端中下載所述待下載資源;當(dāng)與所述客戶端建立連接的全部或部分對(duì)等客戶端的數(shù)量或下載帶寬小于所述預(yù)設(shè)閾值時(shí),所述客戶端與所述資源服務(wù)器列表中的全部或部分資源服務(wù)器建立連接,從所述全部或部分資源服務(wù)器中下載所述待下載資源。所述客戶端根據(jù)獲取的所述資源服務(wù)器列表、對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表按照預(yù)定的調(diào)度規(guī)則從存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端和超級(jí)節(jié)點(diǎn)下載所述待下載資源包括所述客戶端從所述待下載資源中選擇一個(gè)待下載資源的文件分片向存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)發(fā)送下載請(qǐng)求,并與存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)建立連接;所述客戶端根據(jù)已經(jīng)建立的連接中,統(tǒng)計(jì)所述待下載資源中在網(wǎng)絡(luò)中存在數(shù)量最少的待下載資源的文件分片,之后,所述客戶端優(yōu)先從存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)下載中下載所述在網(wǎng)絡(luò)中存在數(shù)量最少的待下載資源的文件分片。所述方法還包括所述客戶端針對(duì)每一個(gè)待下載資源的下載任務(wù),將已經(jīng)接收到 的待下載資源的文件分片緩沖存儲(chǔ)到預(yù)先分配的固定大小的緩沖區(qū)中;所述客戶端在所述緩沖區(qū)已滿時(shí),將所述緩沖區(qū)中已經(jīng)下載完成且上傳給對(duì)等客戶端數(shù)量最少的待下載資源的文件分片寫入磁盤,將最新下載的待下載資源的文件分片存儲(chǔ)到所述緩沖區(qū)中,如果所述緩沖區(qū)中沒有已下載完成的待下載資源的文件分片,則直接將最新下載的待下載資源的文件分片寫入到所述磁盤。所述方法還包括所述客戶端根據(jù)已下載的待下載資源計(jì)算網(wǎng)絡(luò)中各對(duì)等客戶端對(duì)所述待下載資源的貢獻(xiàn)度,所述貢獻(xiàn)度包括對(duì)等客戶端在所述客戶端下載所述待下載資源時(shí)向所述客戶端提供所述待下載資源的上傳速度;所述客戶端在接收到多個(gè)對(duì)等客戶端的資源下載請(qǐng)求時(shí),以對(duì)等客戶端的貢獻(xiàn)度為優(yōu)先級(jí)分別向發(fā)送資源下載請(qǐng)求的對(duì)等客戶端上傳資源,對(duì)等客戶端的貢獻(xiàn)度越大則對(duì)等客戶端對(duì)應(yīng)的優(yōu)先級(jí)就越高。所述方法還包括所述客戶端在向?qū)Φ瓤蛻舳松蟼髻Y源時(shí),優(yōu)先在緩沖區(qū)中查找已經(jīng)下載完成的資源,如果查找到所述對(duì)等客戶端所需的資源時(shí),則從所述緩沖區(qū)中讀取并上傳所述對(duì)等客戶端所需的資源給所述對(duì)等客戶端,如果未查找到所述對(duì)等客戶端所需的資源時(shí),則從磁盤中讀取并上傳所述對(duì)等客戶端所需的資源給所述對(duì)等客戶端。一種客戶端,所述客戶端包括第一獲取模塊、第二獲取模塊、第三獲取模塊、下載模塊和上報(bào)模塊;所述第一獲取模塊,用于獲取待下載資源信息;所述第二獲取模塊,用于根據(jù)所述待下載資源信息向資源索引服務(wù)器獲取存儲(chǔ)有所述待下載資源的資源服務(wù)器列表;所述第三獲取模塊,用于根據(jù)所述待下載資源信息向跟蹤服務(wù)器獲取存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表;所述下載模塊,用于根據(jù)獲取的所述資源服務(wù)器列表、對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表按照預(yù)定的調(diào)度規(guī)則從存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端和超級(jí)節(jié)點(diǎn)下載所述待下載資源;所述上報(bào)模塊,用于將所述待下載資源的下載信息上傳給所述跟蹤服務(wù)器。所述第一獲取模塊,具體用于通過統(tǒng)一資源定位符向資源索引服務(wù)器查詢所述待下載資源信息,所述待下載資源信息包括待下載資源文件的文件名、待下載資源文件的哈希值、待下載資源文件分片的數(shù)量、待下載資源文件分片的大小和待下載資源文件分片的哈希值。所述第二獲取模塊,具體用于向所述資源索引服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述資源索引服務(wù)器生成存儲(chǔ)有所述待下載資源的資源服務(wù)器列表,所述客戶端接收所述資源索引服務(wù)器返回的所述資源服務(wù)器列表。所述第三獲取模塊,具體用于向跟蹤服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述跟蹤服務(wù)器生成存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表,所述客戶端接收所述跟蹤服務(wù)器返回的所述對(duì)等客戶端列表和所述超級(jí)節(jié)點(diǎn)列表。所述跟蹤服務(wù)器包括全局跟蹤服務(wù)器和局部跟蹤服務(wù)器,所述全局跟蹤服務(wù)器記錄有所述客戶端與所述局部跟蹤服務(wù)器間的對(duì)應(yīng)關(guān)系; 所述第三獲取模塊包括第一獲取單元,用于向全局跟蹤服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述全局跟蹤服務(wù)器生成存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表,所述客戶端接收所述全局跟蹤服務(wù)器返回的所述對(duì)等客戶端列表;第二獲取單元,用于向所述全局跟蹤服務(wù)器查詢同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的局部跟蹤服務(wù)器,并向查詢得到的局部跟蹤服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述局部跟蹤服務(wù)器生成存儲(chǔ)有所述待下載資源的超級(jí)節(jié)點(diǎn)列表,所述客戶端接收所述局部跟蹤服務(wù)器返回的所述超級(jí)節(jié)點(diǎn)列表。所述局部跟蹤服務(wù)器和所述超級(jí)節(jié)點(diǎn)部署在互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)出口處,所述局部跟蹤服務(wù)器用于記錄和維護(hù)與所述客戶端同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的超級(jí)節(jié)點(diǎn)所存儲(chǔ)的資源信息,所述超級(jí)節(jié)點(diǎn)存儲(chǔ)的是互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)內(nèi)的熱點(diǎn)資源。進(jìn)一步地,所述對(duì)等客戶端列表內(nèi)的對(duì)等客戶端為與所述客戶端同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的對(duì)等客戶端。所述下載模塊包括第一下載單元,用于所述客戶端與所述超級(jí)節(jié)點(diǎn)列表中的全部或部分超級(jí)節(jié)點(diǎn)建立連接,從所述全部或部分超級(jí)節(jié)點(diǎn)中下載所述待下載資源;第二下載單元,用于當(dāng)與所述客戶端建立連接的所述全部或部分超級(jí)節(jié)點(diǎn)的數(shù)量或下載帶寬小于預(yù)設(shè)閾值時(shí),所述客戶端與所述對(duì)等客戶端列表中的全部或部分對(duì)等客戶端建立連接,從所述全部或部分對(duì)等客戶端中下載所述待下載資源;第三下載單元,用于當(dāng)與所述客戶端建立連接的全部或部分對(duì)等客戶端的數(shù)量或下載帶寬小于所述預(yù)設(shè)閾值時(shí),所述客戶端與所述資源服務(wù)器列表中的全部或部分資源服務(wù)器建立連接,從所述全部或部分資源服務(wù)器中下載所述待下載資源。所述客戶端還具體用于,從所述待下載資源中選擇一個(gè)待下載資源的文件分片向存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)發(fā)送下載請(qǐng)求,并與存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)建立連接,并根據(jù)已經(jīng)建立的連接中,統(tǒng)計(jì)所述待下載資源中在網(wǎng)絡(luò)中存在數(shù)量最少的待下載資源的文件分片,之后,所述客戶端優(yōu)先從存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)下載中下載所述在網(wǎng)絡(luò)中存在數(shù)量最少的待下載資源的文件分片。所述客戶端還具體用于對(duì)每一個(gè)待下載資源的下載任務(wù),將已經(jīng)接收到的待下載資源的文件分片緩沖存儲(chǔ)到預(yù)先分配的固定大小的緩沖區(qū)中,在所述緩沖區(qū)已滿時(shí),將所述緩沖區(qū)中已經(jīng)下載完成且上傳給對(duì)等客戶端數(shù)量最少的待下載資源的文件分片寫入磁盤,將最新下載的待下載資源的文件分片存儲(chǔ)到所述緩沖區(qū)中,如果所述緩沖區(qū)中沒有已下載完成的待下載資源的文件分片,則直接將最新下載的待下載資源的文件分片寫入到所述磁盤。所述客戶端還具體用于根據(jù)已下載的待下載資源計(jì)算網(wǎng)絡(luò)中各對(duì)等客戶端對(duì)所述待下載資源的貢獻(xiàn)度,并在接收到多個(gè)對(duì)等客戶端的資源下載請(qǐng)求時(shí),以對(duì)等客戶端的貢獻(xiàn)度為優(yōu)先級(jí)分別向發(fā)送資源下載請(qǐng)求的對(duì)等客戶端上傳資源,對(duì)等客戶端的貢獻(xiàn)度越大則對(duì)等客戶端對(duì)應(yīng)的優(yōu)先級(jí)就越高,所述貢獻(xiàn)度包括對(duì)等客戶端在所述客戶端下載所述待下載資源時(shí)向所述客戶端提供所述待下載資源的上傳速度。所述客戶端還具體用于在向?qū)Φ瓤蛻舳松蟼髻Y源時(shí),優(yōu)先在緩沖區(qū)中查找已經(jīng)下 載完成的資源,如果查找到所述對(duì)等客戶端所需的資源時(shí),則從所述緩沖區(qū)中讀取并上傳 所述對(duì)等客戶端所需的資源給所述對(duì)等客戶端,如果未查找到所述對(duì)等客戶端所需的資源時(shí),則從磁盤中讀取并上傳所述對(duì)等客戶端所需的資源給所述對(duì)等客戶端。通過本發(fā)明實(shí)施例所提供技術(shù)方案的實(shí)現(xiàn),使得客戶端在P2SP網(wǎng)絡(luò)中下載資源時(shí),不僅可以從資源服務(wù)器和其他對(duì)等客戶端以多源方式接收數(shù)據(jù),還可以從超級(jí)節(jié)點(diǎn)中以多源傳輸?shù)姆绞浇邮諗?shù)據(jù),資源更豐富,資源下載速度更快且穩(wěn)定性更強(qiáng),另外,客戶端在下載資源時(shí)優(yōu)先從部署在互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的出口處的超級(jí)節(jié)點(diǎn)中下載數(shù)據(jù),其中,超級(jí)節(jié)點(diǎn)存儲(chǔ)的為互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)內(nèi)部的熱點(diǎn)資源,這在一定程度上限定了客戶端在下載數(shù)據(jù)時(shí)出現(xiàn)跨互聯(lián)網(wǎng)提供商網(wǎng)絡(luò)的問題,從而一定程度上節(jié)省了跨互聯(lián)網(wǎng)提供商網(wǎng)路的流量,超級(jí)節(jié)點(diǎn)的加入也提高了在互聯(lián)網(wǎng)提供商網(wǎng)路內(nèi)客戶端數(shù)量較少時(shí)的用戶的下載體驗(yàn)。
圖I是本發(fā)明實(shí)施例I提供的一種P2SP網(wǎng)絡(luò)中資源下載的方法流程圖;圖2是本發(fā)明實(shí)施例2提供的一種P2SP網(wǎng)絡(luò)中資源下載的方法流程圖;圖3是本發(fā)明實(shí)施例3提供的一種客戶端。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。實(shí)施例I參見圖1,一種P2SP網(wǎng)絡(luò)中資源下載的方法,具體包括如下步驟步驟101 :客戶端獲取待下載資源信息;步驟102 :客戶端根據(jù)待下載資源信息向資源索引服務(wù)器獲取存儲(chǔ)有待下載資源的資源服務(wù)器列表、向跟蹤服務(wù)器獲取存儲(chǔ)有待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表;
步驟103 :客戶端根據(jù)獲取的資源服務(wù)器列表、對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表按照預(yù)定的調(diào)度規(guī)則從存儲(chǔ)有待下載資源的資源服務(wù)器、對(duì)等客戶端和超級(jí)節(jié)點(diǎn)下載待下載資源;步驟104 :客戶端將待下載資源的下載信息上傳給跟蹤服務(wù)器。通過本發(fā)明實(shí)施例所提供技術(shù)方案的實(shí)現(xiàn),使得客戶端在P2SP網(wǎng)絡(luò)中下載資源時(shí),不僅可以從資源服務(wù)器和其他對(duì)等客戶端以多源方式接收數(shù)據(jù),還可以從超級(jí)節(jié)點(diǎn)中以多源傳輸?shù)姆绞浇邮諗?shù)據(jù),資源更豐富,資源下載速度更快且穩(wěn)定性更強(qiáng),且優(yōu)化了跨網(wǎng)傳輸?shù)牧髁浚瑢?shí)現(xiàn)對(duì)運(yùn)營(yíng)商的友好。實(shí)施例2先簡(jiǎn)單的介紹一下本發(fā)明實(shí)施例所對(duì)應(yīng)的一種P2SP網(wǎng)絡(luò)的架構(gòu),該P(yáng)2SP網(wǎng)絡(luò)包含客戶端、資源索引服務(wù)器、全局TrackerW^f)服務(wù)器、統(tǒng)計(jì)服務(wù)器、超級(jí)節(jié)點(diǎn)、超級(jí)節(jié)點(diǎn)管理服務(wù)器和局部Tracker (跟蹤)服務(wù)器,其中,局部Tracker服務(wù)器和超級(jí)節(jié)點(diǎn)部署在 ISP(Internet Service Provider,互聯(lián)網(wǎng)服務(wù)提供商)網(wǎng)絡(luò)的出口處,全局Tracker服務(wù)器和局部Tracker服務(wù)器可以集成在一個(gè)Tracker服務(wù)器中實(shí)現(xiàn);下面簡(jiǎn)單的介紹一下上述P2SP網(wǎng)絡(luò)中各設(shè)備的功能統(tǒng)計(jì)服務(wù)器對(duì)ISP網(wǎng)絡(luò)內(nèi)部資源文件的下載量和下載速度進(jìn)行統(tǒng)計(jì),并將統(tǒng)計(jì)信息同步到超級(jí)節(jié)點(diǎn)管理服務(wù)器;超級(jí)節(jié)點(diǎn)管理服務(wù)器對(duì)同步到的統(tǒng)計(jì)信息進(jìn)行分析,得出ISP網(wǎng)絡(luò)內(nèi)部下載量和下載速度大于預(yù)定值的資源文件,其中,將ISP網(wǎng)絡(luò)內(nèi)容下載量和下載速度大于預(yù)定值的資源文件稱之為熱點(diǎn)資源文件,生成該熱點(diǎn)資源文件的任務(wù)列表,并將生成的任務(wù)列表推給超級(jí)節(jié)點(diǎn);超級(jí)節(jié)點(diǎn)按照接收到的任務(wù)列表,從因特網(wǎng)中將所述任務(wù)列表中列舉的熱點(diǎn)資源文件下載并緩存到本地,并將其緩存的熱點(diǎn)資源的下載情況上報(bào)給局部Tracker服務(wù)器;需要說明的是,超級(jí)節(jié)點(diǎn)管理服務(wù)器根據(jù)統(tǒng)計(jì)服務(wù)器對(duì)ISP網(wǎng)絡(luò)內(nèi)部資源文件的下載量和下載速度的統(tǒng)計(jì)情況實(shí)施對(duì)生成的任務(wù)列表進(jìn)行更新,并將更新后的任務(wù)列表推送給超級(jí)節(jié)點(diǎn),超級(jí)節(jié)點(diǎn)根據(jù)更新后的任務(wù)列表對(duì)本地緩存的熱點(diǎn)資源文件進(jìn)行更新;局部Tracker服務(wù)器管理和維護(hù)超級(jí)節(jié)點(diǎn)所上報(bào)的其緩存的熱點(diǎn)資源的下載情況;資源索引服務(wù)器為客戶端提供索引功能,幫助客戶端進(jìn)行資源信息的查詢和幫助客戶端發(fā)現(xiàn)存儲(chǔ)其所需資源的資源服務(wù)器信息;全局Tracker服務(wù)器為申請(qǐng)加入P2SP網(wǎng)絡(luò)的客戶端提供注冊(cè)功能,并接收客戶端的在線情況匯報(bào)情況和本地?fù)碛械馁Y源信息,同時(shí)為客戶端提供索引信息,幫助客戶端發(fā)現(xiàn)存儲(chǔ)其所需資源的其他客戶端的信息;另外,全局Tracker服務(wù)器存儲(chǔ)有客戶端與其ISP網(wǎng)絡(luò)內(nèi)的局部Tracker服務(wù)器的對(duì)應(yīng)關(guān)系;客戶端在下載資源時(shí),通過URL (Uniform/Universal Resource Locator,統(tǒng)一資源定位符)向資源索引服務(wù)器進(jìn)行待下載資源信息的查詢;基于上述的網(wǎng)絡(luò)架構(gòu),下面結(jié)合具體實(shí)施例詳細(xì)的描述客戶端在P2SP網(wǎng)絡(luò)中進(jìn)行資源下載的過程,參見圖2,一種P2SP網(wǎng)絡(luò)中資源下載的方法,具體包括如下步驟步驟201 :客戶端接入P2SP網(wǎng)絡(luò),根據(jù)自身的硬件信息,如網(wǎng)卡地址,自動(dòng)生成客戶端ID,并根據(jù)配置的客戶端信息生成注冊(cè)信息,且將生成的注冊(cè)信息發(fā)送給全局Tracker服務(wù)器,其中,配置的客戶端信息包括客戶端ID、客戶名稱、電話及客戶地址等;具體地,根據(jù)自身的硬件信息自動(dòng)生成客戶端ID為采用預(yù)設(shè)的哈希算法,如SHAl或MD5等,對(duì)自身的硬件信息進(jìn)行計(jì)算得到客戶端ID ;進(jìn)一步地,客戶端可以將生成的注冊(cè)信息組織成xml文件格式,并經(jīng)過加密后發(fā)送給全局Tracker服務(wù)器;步驟202 :全局Tracker服務(wù)器根據(jù)接收到的注冊(cè)信息對(duì)客戶端進(jìn)行注冊(cè),并向客戶端返回注冊(cè)成功的信息;步驟203 :下載資源時(shí),客戶端向資源索引服務(wù)器查詢待下載資源信息;具體地,客戶端通過統(tǒng)一資源定位符向資源索引服務(wù)器查詢待下載資源信息,待下載資源信息包括待下載資源文件的文件名、待下載資源文件的哈希值、待下載資源文件 分片的數(shù)量、待下載資源文件分片的大小和待下載資源文件分片的哈希值。步驟204 :客戶端根據(jù)待下載資源信息向資源索引服務(wù)器獲取存儲(chǔ)有待下載資源的資源服務(wù)器列表、向Tracker服務(wù)器獲取存儲(chǔ)有待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表;具體地,客戶端根據(jù)待下載資源信息向資源索引服務(wù)器獲取存儲(chǔ)有待下載資源的資源服務(wù)器列表包括客戶端向資源索引服務(wù)器發(fā)送包含待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使資源索引服務(wù)器生成存儲(chǔ)有待下載資源的資源服務(wù)器列表,客戶端接收所述資源索引服務(wù)器返回的資源服務(wù)器列表;其中,資源索引服務(wù)器根據(jù)待下載資源信息檢索資源服務(wù)器信息列表生成存儲(chǔ)有待下載資源的資源服務(wù)器列表,并將資源服務(wù)器列表返回給客戶端;客戶端根據(jù)待下載資源信息向Tracker服務(wù)器獲取存儲(chǔ)有待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表包括客戶端向全局Tracker服務(wù)器發(fā)送包含待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使全局Tracker服務(wù)器生成存儲(chǔ)有待下載資源的對(duì)等客戶端列表,客戶端接收全局Tracker服務(wù)器返回的對(duì)等客戶端列表;其中,全局Tracker服務(wù)器根據(jù)待下載資源信息檢索對(duì)等客戶端信息列表,生成存儲(chǔ)有待下載資源的對(duì)等客戶端列表,并將對(duì)等客戶端列表返回給客戶端;客戶端向全局Tracker服務(wù)器查詢同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的局部跟Tracker服務(wù)器,并向查詢得到的局部Tracker服務(wù)器發(fā)送包含待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使局部Tracker服務(wù)器生成存儲(chǔ)有待下載資源的超級(jí)節(jié)點(diǎn)列表,客戶端接收局部Tracker服務(wù)器返回的超級(jí)節(jié)點(diǎn)列表;其中,局部Tracker服務(wù)器根據(jù)待下載資源信息檢索超級(jí)節(jié)點(diǎn)信息列表,生成存儲(chǔ)有待下載資源的超級(jí)節(jié)點(diǎn)列表,并將超級(jí)節(jié)點(diǎn)列表返回給客戶端。需要說明的是,在全局Tracker服務(wù)器和局部Tracker服務(wù)器是獨(dú)立的實(shí)體時(shí),全局Tracker服務(wù)器中將會(huì)記錄各客戶端所對(duì)應(yīng)的局部Tracker服務(wù)器,這樣,客戶端通過登錄全局Tracker服務(wù)器便可查詢得到其相應(yīng)的局部Tracker服務(wù)器。在具體實(shí)現(xiàn)時(shí),全局Tracker服務(wù)器和局部Tracker服務(wù)器可以集成在一個(gè)Tracker服務(wù)器中實(shí)現(xiàn);則相應(yīng)地,客戶端根據(jù)待下載資源信息向Tracker服務(wù)器獲取存儲(chǔ)有待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表包括客戶端向Tracker服務(wù)器發(fā)送包含待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使Tracker服務(wù)器生成存儲(chǔ)有待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表,客戶端接收Tracker服務(wù)器返回的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表。還需要說明的是,Tracker服務(wù)器在接收到客戶端發(fā)送的含待下載資源信息的超文本傳輸協(xié)議請(qǐng)求后,根據(jù)待下載資源信息檢索對(duì)等客戶端信息列表,生成與客戶端同屬一個(gè)ISP網(wǎng)絡(luò)內(nèi)的存儲(chǔ)有待下載資源的對(duì)等客戶端列表,并將生成的對(duì)等客戶端列表返回給客戶端,這種情況下,客戶端所接收到的對(duì)等客戶端列表內(nèi)的對(duì)等客戶端為與自身同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的對(duì)等客戶端;上述處理的目的在于限定客戶端在下載數(shù)據(jù)時(shí)出現(xiàn)跨ISP網(wǎng)絡(luò)的問題,從而一定程度上節(jié)省了跨ISP網(wǎng)路的流量,實(shí)現(xiàn)對(duì)運(yùn)營(yíng)商的友好?!ち硗?,當(dāng)客戶端請(qǐng)求資源服務(wù)器列表、對(duì)等客戶端列表及超級(jí)節(jié)點(diǎn)列表失敗時(shí),客戶端定期重試請(qǐng)求,直至請(qǐng)求次數(shù)達(dá)到預(yù)設(shè)請(qǐng)求次數(shù)的上限,例如40,則放棄本次資源下載操作;請(qǐng)求成功后,客戶端將資源服務(wù)器列表、對(duì)等客戶端列表及超級(jí)節(jié)點(diǎn)列表存儲(chǔ)在特定的數(shù)據(jù)結(jié)構(gòu)中;其中,資源服務(wù)器列表中包含各個(gè)資源服務(wù)器的IP地址、連接端口號(hào)等信息,對(duì)等客戶端列表中包含各個(gè)對(duì)等客戶端的IP地址和連接端口號(hào)信息,超級(jí)節(jié)點(diǎn)列表中包含各個(gè)超級(jí)節(jié)點(diǎn)的IP地址和連接端口號(hào)信息等,上述信息用于客戶端與目的節(jié)點(diǎn)(資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn))建立連接;其中,局部跟蹤服務(wù)器和超級(jí)節(jié)點(diǎn)部署在互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)出口處,局部跟蹤服務(wù)器用于記錄和維護(hù)與客戶端同屬一個(gè)ISP網(wǎng)絡(luò)的超級(jí)節(jié)點(diǎn)所存儲(chǔ)的資源信息,超級(jí)節(jié)點(diǎn)存儲(chǔ)的是互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)內(nèi)的熱點(diǎn)資源。步驟205 :客戶端根據(jù)獲取的資源服務(wù)器列表、對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表按照預(yù)定的調(diào)度規(guī)則從存儲(chǔ)有待下載資源的資源服務(wù)器、對(duì)等客戶端和超級(jí)節(jié)點(diǎn)下載待下載資源;具體地,客戶端與超級(jí)節(jié)點(diǎn)列表中的全部或部分超級(jí)節(jié)點(diǎn)建立連接,從全部或部分超級(jí)節(jié)點(diǎn)中下載待下載資源;具體地,客戶端根據(jù)超級(jí)節(jié)點(diǎn)列表中超級(jí)節(jié)點(diǎn)的IP地址和連接端口號(hào)等信息與超級(jí)節(jié)點(diǎn)建立連接,請(qǐng)求待下載資源;連接失敗超于預(yù)定的連接重試次數(shù)上限后,終止進(jìn)行與該超級(jí)節(jié)點(diǎn)的后續(xù)連接,轉(zhuǎn)而嘗試超級(jí)節(jié)點(diǎn)列表中未嘗試連接的超級(jí)節(jié)點(diǎn);當(dāng)與客戶端建立連接的全部或部分超級(jí)節(jié)點(diǎn)的數(shù)量或下載帶寬小于預(yù)設(shè)閾值時(shí),客戶端與對(duì)等客戶端列表中的全部或部分對(duì)等客戶端建立連接,從全部或部分對(duì)等客戶端中下載待下載資源;具體地,客戶端根據(jù)對(duì)等客戶端列表中對(duì)等客戶端的IP地址和連接端口號(hào)等信息建立與對(duì)等客戶端的連接,建立連接的雙方先進(jìn)行握手,此后相互交換位圖,連接失敗超過預(yù)定的連接重試次數(shù)上限后,終止進(jìn)行與該對(duì)等客戶端的后續(xù)連接,轉(zhuǎn)而嘗試對(duì)等客戶端列表中為未嘗試連接的對(duì)等客戶端;
當(dāng)與客戶端建立連接的全部或部分對(duì)等客戶端的數(shù)量或下載帶寬小于預(yù)設(shè)閾值時(shí),客戶端與資源服務(wù)器列表中的全部或部分資源服務(wù)器建立連接,從全部或部分資源服務(wù)器中下載待下載資源。具體地,客戶端通過資源服務(wù)器列表中資源服務(wù)器的IP地址及連接端口號(hào)等信息與服務(wù)器建立連接,請(qǐng)求待下載資源;當(dāng)客戶端與資源服務(wù)器列表中一資源服務(wù)器連接失敗超過預(yù)定次數(shù),如10,則停止進(jìn)行與該資源服務(wù)器的后續(xù)連接,轉(zhuǎn)而嘗試資源服務(wù)器列表中未嘗試連接的資源服務(wù)器;上述的調(diào)度規(guī)則使得客戶端在下載資源時(shí)優(yōu)先從部署在ISP網(wǎng)絡(luò)的出口處的超級(jí)節(jié)點(diǎn)中下載數(shù)據(jù),這在一定程度上限定了客戶端在下載數(shù)據(jù)時(shí)出現(xiàn)跨ISP網(wǎng)絡(luò)的問題,從而一定程度上節(jié)省了跨ISP的流量,超級(jí)節(jié)點(diǎn)的加入也提高了在互聯(lián)網(wǎng)提供商網(wǎng)路內(nèi)客戶端數(shù)量較少時(shí)的用戶的下載體驗(yàn)。步驟206 :客戶端將待下載資源的下載信息上傳給跟蹤服務(wù)器;
其中,下載信息包括資源文件的Hash值、客戶端ID、各個(gè)資源文件的下載進(jìn)度等
信息;客戶端針對(duì)每個(gè)下載任務(wù)創(chuàng)建相應(yīng)的工作線程,在每個(gè)工作線程中,分別于各個(gè)資源服務(wù)器、對(duì)等客戶端和超級(jí)節(jié)點(diǎn)建立連接,進(jìn)行資源的下載;需要說明的是,客戶端在開始下載待下載資源時(shí),從待下載資源中選擇一個(gè)待下載資源的文件分片作為下載的數(shù)據(jù)塊向存儲(chǔ)有待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)發(fā)送下載請(qǐng)求,并與存儲(chǔ)有待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)建立連接;客戶端根據(jù)已經(jīng)建立的連接中,統(tǒng)計(jì)待下載資源中在網(wǎng)絡(luò)中存在數(shù)量最少的待下載資源的文件分片,之后,客戶端優(yōu)先從存儲(chǔ)有待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)下載中下載在網(wǎng)絡(luò)中存在數(shù)量最少的待下載資源的文件分片。之所以優(yōu)先選擇網(wǎng)絡(luò)中存在數(shù)量最少的待下載資源的文件分片進(jìn)行下載,是為了使下載資源均勻的分布到P2SP網(wǎng)絡(luò)中,從而提高資源下載的效率;在下載過程中,對(duì)于已經(jīng)發(fā)送請(qǐng)求,但尚未完成下載的待下載資源的文件分片具有較高的優(yōu)先級(jí),其在下載過程中被優(yōu)先請(qǐng)求;需要說明的是,當(dāng)網(wǎng)絡(luò)中擁有某個(gè)資源的對(duì)等客戶端數(shù)量較少時(shí),本地客戶端的下載速度將會(huì)較低,因而本發(fā)明中客戶端在下載速度小于某個(gè)閾值時(shí),例如15KB/S,將啟動(dòng)與資源服務(wù)器或超級(jí)節(jié)點(diǎn)服務(wù)器的請(qǐng)求,從資源服務(wù)器或超級(jí)節(jié)點(diǎn)服務(wù)器中下載資源,采用該方法加速整個(gè)下載過程,以保證用戶合理的下載速度,客戶端判斷向資源服務(wù)器或超級(jí)節(jié)點(diǎn)請(qǐng)求的待下載資源的文件分片是否已向?qū)Φ瓤蛻舳苏?qǐng)求過,如果是,則向被請(qǐng)求的對(duì)等客戶端發(fā)送取消下載的消息;客戶端針對(duì)每一個(gè)待下載資源的下載任務(wù),將已經(jīng)接收到的待下載資源的文件分片緩沖存儲(chǔ)到預(yù)先分配的固定大小的緩沖區(qū)中;客戶端在緩沖區(qū)已滿時(shí),將緩沖區(qū)中已經(jīng)下載完成且上傳給對(duì)等客戶端數(shù)量最少的待下載資源的文件分片寫入磁盤,將最新下載的待下載資源的文件分片存儲(chǔ)到緩沖區(qū)中,如果緩沖區(qū)中沒有已下載完成的待下載資源的文件分片,則直接將最新下載的待下載資源的文件分片寫入到磁盤。
在具體的下載過程中,客戶端定期遍歷本地節(jié)點(diǎn)建立的每一個(gè)連接,向每個(gè)連接的對(duì)端(對(duì)等客戶端、資源服務(wù)器或者超級(jí)節(jié)點(diǎn))發(fā)送心跳數(shù)據(jù)包,判斷對(duì)端是否仍處于活動(dòng)狀態(tài),若接收到對(duì)端發(fā)送回來的相應(yīng)數(shù)據(jù)包,判斷對(duì)端為正常連接,否則,清楚已經(jīng)失效的連接,并根據(jù)目前的連接數(shù)目和下載、點(diǎn)播狀態(tài),以發(fā)起新的連接;客戶端在待下載資源的文件分片下載完成后,根據(jù)獲取的待下載資源信息中的待下載資源的文件分片的哈希值信息對(duì)該下載完成的待下載資源的文件分片進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果上報(bào)給統(tǒng)計(jì)服務(wù)器,以便統(tǒng)計(jì)服務(wù)器根據(jù)各待下載資源的文件分片的校驗(yàn)結(jié)果統(tǒng)計(jì)得出待下載資源是否安全,從而在客戶端再次請(qǐng)求下載該待下載資源時(shí),向客戶端進(jìn)行待下載資源的下載風(fēng)險(xiǎn)提示,使得客戶端根據(jù)該下載風(fēng)險(xiǎn)提示來確定是否繼續(xù)下載該待下載資源,從而提高了客戶端下載資源時(shí)的安全性。步驟207 :客戶端依據(jù)其他對(duì)等客戶端的請(qǐng)求,將下載到本地的資源上傳給該對(duì)等客戶端; 具體地,客戶端根據(jù)已下載的待下載資源計(jì)算網(wǎng)絡(luò)中各對(duì)等客戶端對(duì)待下載資源的貢獻(xiàn)度,貢獻(xiàn)度包括對(duì)等客戶端在客戶端下載待下載資源時(shí)向客戶端提供待下載資源的上傳速度;客戶端在接收到多個(gè)對(duì)等客戶端的資源下載請(qǐng)求時(shí),以對(duì)等客戶端的貢獻(xiàn)度為優(yōu)先級(jí)分別向發(fā)送資源下載請(qǐng)求的對(duì)等客戶端上傳資源,對(duì)等客戶端的貢獻(xiàn)度越大則對(duì)等客戶端對(duì)應(yīng)的優(yōu)先級(jí)就越高?,F(xiàn)舉例說明客戶端定期計(jì)算對(duì)等客戶端對(duì)本客戶端的貢獻(xiàn)度,例如該對(duì)等客戶端對(duì)本客戶端的上傳速度,選擇貢獻(xiàn)度大于預(yù)設(shè)值,或者按照貢獻(xiàn)度排序,選擇前η個(gè)對(duì)等客戶端進(jìn)行資源上傳,其中η為預(yù)設(shè)數(shù)值,阻塞其他對(duì)等客戶端的請(qǐng)求,這種針鋒相對(duì)的激勵(lì)機(jī)制使每一個(gè)客戶端最大限度的貢獻(xiàn)自己的資源;另外,所述客戶端在向?qū)Φ瓤蛻舳松蟼髻Y源時(shí),優(yōu)先在緩沖區(qū)中查找已經(jīng)下載完成的資源,如果查找到所述對(duì)等客戶端所需的資源時(shí),則從所述緩沖區(qū)中讀取并上傳所述對(duì)等客戶端所需的資源給所述對(duì)等客戶端,如果未查找到所述對(duì)等客戶端所需的資源時(shí),則從磁盤中讀取并上傳所述對(duì)等客戶端所需的資源給所述對(duì)等客戶端。通過本發(fā)明實(shí)施例所提供技術(shù)方案的實(shí)現(xiàn),使得客戶端在P2SP網(wǎng)絡(luò)中下載資源時(shí),不僅可以從資源服務(wù)器和其他對(duì)等客戶端以多源方式接收數(shù)據(jù),還可以從超級(jí)節(jié)點(diǎn)中以多源傳輸?shù)姆绞浇邮諗?shù)據(jù),資源更豐富,資源下載速度更快且穩(wěn)定性更強(qiáng),另外,客戶端在下載資源時(shí)優(yōu)先從部署在互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的出口處的超級(jí)節(jié)點(diǎn)中下載數(shù)據(jù),其中,超級(jí)節(jié)點(diǎn)存儲(chǔ)的為互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)內(nèi)部的熱點(diǎn)資源,這在一定程度上限定了客戶端在下載數(shù)據(jù)時(shí)出現(xiàn)跨互聯(lián)網(wǎng)提供商網(wǎng)絡(luò)的問題,從而一定程度上節(jié)省了跨互聯(lián)網(wǎng)提供商網(wǎng)路的流量,超級(jí)節(jié)點(diǎn)的加入也提高了在互聯(lián)網(wǎng)提供商網(wǎng)路內(nèi)客戶端數(shù)量較少時(shí)的用戶的下載體驗(yàn)。實(shí)施例3參見圖3,一種客戶端,本實(shí)施例所提供的客戶端具體可以是手機(jī)或計(jì)算機(jī)等設(shè)備,包括第一獲取模塊301、第二獲取模塊3012、第三獲取模塊303、下載模塊304和上報(bào)模塊305 ;其中,第一獲取模塊301,用于獲取待下載資源信息;
第二獲取模塊302,用于根據(jù)待下載資源信息向資源索引服務(wù)器獲取存儲(chǔ)有待下載資源的資源服務(wù)器列表;第三獲取模塊303,用于根據(jù)待下載資源信息向跟蹤服務(wù)器獲取存儲(chǔ)有待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表;下載模塊304,用于根據(jù)獲取的資源服務(wù)器列表、對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表按照預(yù)定的調(diào)度規(guī)則從存儲(chǔ)有待下載資源的資源服務(wù)器、對(duì)等客戶端和超級(jí)節(jié)點(diǎn)下載待下載資源;上報(bào)模塊305,用于將待下載資源的下載信息上傳給跟蹤服務(wù)器。下面具體介紹上述模塊的具體功能具體地,第一獲取模塊301,具體用于通過統(tǒng)一資源定位符向資源索引服務(wù)器查詢待下載資源信息,待下載資源信息包括待下載資源文件的文件名、待下載資源文件的哈希 值、待下載資源文件分片的數(shù)量、待下載資源文件分片的大小和待下載資源文件分片的哈希值。第二獲取模塊302,具體用于向資源索引服務(wù)器發(fā)送包含待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使資源索引服務(wù)器生成存儲(chǔ)有待下載資源的資源服務(wù)器列表,客戶端接收資源索引服務(wù)器返回的資源服務(wù)器列表。第三獲取模塊303,具體用于向跟蹤服務(wù)器發(fā)送包含待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使跟蹤服務(wù)器生成存儲(chǔ)有待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表,客戶端接收跟蹤服務(wù)器返回的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表。當(dāng)跟蹤服務(wù)器包括全局跟蹤服務(wù)器和局部跟蹤服務(wù)器,全局跟蹤服務(wù)器記錄有客戶端與局部跟蹤服務(wù)器間的對(duì)應(yīng)關(guān)系;相應(yīng)地,第三獲取模塊303包括第一獲取單元,用于向全局跟蹤服務(wù)器發(fā)送包含待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使全局跟蹤服務(wù)器生成存儲(chǔ)有待下載資源的對(duì)等客戶端列表,客戶端接收全局跟蹤服務(wù)器返回的對(duì)等客戶端列表;第二獲取單元,用于向所述全局跟蹤服務(wù)器查詢同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的局部跟蹤服務(wù)器,并向查詢得到的局部跟蹤服務(wù)器發(fā)送包含待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使局部跟蹤服務(wù)器生成存儲(chǔ)有待下載資源的超級(jí)節(jié)點(diǎn)列表,客戶端接收局部跟蹤服務(wù)器返回的超級(jí)節(jié)點(diǎn)列表。其中,局部跟蹤服務(wù)器和超級(jí)節(jié)點(diǎn)部署在互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)出口處,局部跟蹤服務(wù)器用于記錄和維護(hù)與客戶端同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的超級(jí)節(jié)點(diǎn)所存儲(chǔ)的資源信息,超級(jí)節(jié)點(diǎn)存儲(chǔ)的是互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)內(nèi)的熱點(diǎn)資源。進(jìn)一步地,對(duì)等客戶端列表內(nèi)的對(duì)等客戶端為與客戶端同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的對(duì)等客戶端。另外,在本發(fā)明實(shí)施例中,全局跟蹤服務(wù)器和局部跟蹤服務(wù)器可以集成在一個(gè)服務(wù)器中實(shí)現(xiàn);下載模塊304包括第一下載單元,用于客戶端與超級(jí)節(jié)點(diǎn)列表中的全部或部分超級(jí)節(jié)點(diǎn)建立連接,從全部或部分超級(jí)節(jié)點(diǎn)中下載待下載資源;
第二下載單元,用于當(dāng)與客戶端建立連接的全部或部分超級(jí)節(jié)點(diǎn)的數(shù)量或下載帶寬小于預(yù)設(shè)閾值時(shí),客戶端與對(duì)等客戶端列表中的全部或部分對(duì)等客戶端建立連接,從全部或部分對(duì)等客戶端中下載待下載資源;第三下載單元,用于當(dāng)與客戶端建立連接的全部或部分對(duì)等客戶端的數(shù)量或下載帶寬小于預(yù)設(shè)閾值時(shí),客戶端與資源服務(wù)器列表中的全部或部分資源服務(wù)器建立連接,從全部或部分資源服務(wù)器中下載待下載資源。另外,本發(fā)明實(shí)施例所提供的客戶端還具體用于,從待下載資源中選擇一個(gè)待下載資源的文件分片向存儲(chǔ)有待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)發(fā)送下載請(qǐng)求,并與存儲(chǔ)有待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)建立連接,并根據(jù)已經(jīng)建立的連接中,統(tǒng)計(jì)待下載資源中在網(wǎng)絡(luò)中存在數(shù)量最少的待下載資源的文件分片,之后,客戶端優(yōu)先從存儲(chǔ)有待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)下載中下載在網(wǎng)絡(luò)中存在數(shù)量最少的待下載資源的文件分片??蛻舳诉€具體用于對(duì)每一個(gè)待下載資源的下載任務(wù),將已經(jīng)接收到的待下載資源的文件分片緩沖存儲(chǔ)到預(yù)先分配的固定大小的緩沖區(qū)中,在緩沖區(qū)已滿時(shí),將緩沖區(qū)中已 經(jīng)下載完成且上傳給對(duì)等客戶端數(shù)量最少的待下載資源的文件分片寫入磁盤,將最新下載的待下載資源的文件分片存儲(chǔ)到緩沖區(qū)中,如果緩沖區(qū)中沒有已下載完成的待下載資源的文件分片,則直接將最新下載的待下載資源的文件分片寫入到磁盤??蛻舳诉€具體用于根據(jù)已下載的待下載資源計(jì)算網(wǎng)絡(luò)中各對(duì)等客戶端對(duì)待下載資源的貢獻(xiàn)度,并在接收到多個(gè)對(duì)等客戶端的資源下載請(qǐng)求時(shí),以對(duì)等客戶端的貢獻(xiàn)度為優(yōu)先級(jí)分別向發(fā)送資源下載請(qǐng)求的對(duì)等客戶端上傳資源,對(duì)等客戶端的貢獻(xiàn)度越大則對(duì)等客戶端對(duì)應(yīng)的優(yōu)先級(jí)就越高,其中,貢獻(xiàn)度包括對(duì)等客戶端在客戶端下載待下載資源時(shí)向客戶端提供待下載資源的上傳速度,??蛻舳诉€具體用于在向?qū)Φ瓤蛻舳松蟼髻Y源時(shí),優(yōu)先在緩沖區(qū)中查找已經(jīng)下載完成的資源,如果查找到對(duì)等客戶端所需的資源時(shí),則從緩沖區(qū)中讀取并上傳對(duì)等客戶端所需的資源給對(duì)等客戶端,如果未查找到對(duì)等客戶端所需的資源時(shí),則從磁盤中讀取并上傳對(duì)等客戶端所需的資源給對(duì)等客戶端。通過本發(fā)明實(shí)施例所提供技術(shù)方案的實(shí)現(xiàn),使得客戶端在P2SP網(wǎng)絡(luò)中下載資源時(shí),不僅可以從資源服務(wù)器和其他對(duì)等客戶端以多源方式接收數(shù)據(jù),還可以從超級(jí)節(jié)點(diǎn)中以多源傳輸?shù)姆绞浇邮諗?shù)據(jù),資源更豐富,資源下載速度更快且穩(wěn)定性更強(qiáng),另外,客戶端在下載資源時(shí)優(yōu)先從部署在互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的出口處的超級(jí)節(jié)點(diǎn)中下載數(shù)據(jù),其中,超級(jí)節(jié)點(diǎn)存儲(chǔ)的為互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)內(nèi)部的熱點(diǎn)資源,這在一定程度上限定了客戶端在下載數(shù)據(jù)時(shí)出現(xiàn)跨互聯(lián)網(wǎng)提供商網(wǎng)絡(luò)的問題,從而一定程度上節(jié)省了跨互聯(lián)網(wǎng)提供商網(wǎng)路的流量,超級(jí)節(jié)點(diǎn)的加入也提高了在互聯(lián)網(wǎng)提供商網(wǎng)路內(nèi)客戶端數(shù)量較少時(shí)的用戶的下載體驗(yàn)。以上本發(fā)明實(shí)施例所提供的技術(shù)方案中客戶端與其他實(shí)體(對(duì)等客戶端、Tracker服務(wù)器、資源索引服務(wù)器或超級(jí)節(jié)點(diǎn))間進(jìn)行信息傳輸時(shí),為了保證信息傳輸?shù)陌踩?,?duì)信息進(jìn)行加密傳輸。以上實(shí)施例提供的技術(shù)方案中的全部或部分內(nèi)容可以通過軟件編程實(shí)現(xiàn),其軟件程序存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)例如計(jì)算機(jī)中的硬盤、光盤或軟盤。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和 原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種P2SP網(wǎng)絡(luò)中資源下載的方法,其特征在于,所述方法包括 客戶端獲取待下載資源信息; 所述客戶端根據(jù)所述待下載資源信息向資源索引服務(wù)器獲取存儲(chǔ)有所述待下載資源的資源服務(wù)器列表、向跟蹤服務(wù)器獲取存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表; 所述客戶端根據(jù)獲取的所述資源服務(wù)器列表、對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表按照預(yù)定的調(diào)度規(guī)則從存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端和超級(jí)節(jié)點(diǎn)下載所述待下載資源; 所述客戶端將所述待下載資源的下載信息上傳給所述跟蹤服務(wù)器。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述客戶端獲取待下載資源信息包括所述客戶端通過統(tǒng)一資源定位符向資源索引服務(wù)器查詢所述待下載資源信息,所述待下載資源信息包括待下載資源文件的文件名、待下載資源文件的哈希值、待下載資源文件分片的數(shù)量、待下載資源文件分片的大小和待下載資源文件分片的哈希值。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述客戶端根據(jù)所述待下載資源信息向所述資源索引服務(wù)器獲取存儲(chǔ)有所述待下載資源的資源服務(wù)器列表包括 所述客戶端向所述資源索引服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述資源索引服務(wù)器生成存儲(chǔ)有所述待下載資源的資源服務(wù)器列表,所述客戶端接收所述資源索引服務(wù)器返回的所述資源服務(wù)器列表。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述客戶端根據(jù)所述待下載資源信息向跟蹤服務(wù)器獲取存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表包括 所述客戶端向跟蹤服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述跟蹤服務(wù)器生成存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表,所述客戶端接收所述跟蹤服務(wù)器返回的所述對(duì)等客戶端列表和所述超級(jí)節(jié)點(diǎn)列表。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述跟蹤服務(wù)器包括全局跟蹤服務(wù)器和局部跟蹤服務(wù)器,所述全局跟蹤服務(wù)器記錄有所述客戶端與所述局部跟蹤服務(wù)器間的對(duì)應(yīng)關(guān)系; 所述客戶端根據(jù)所述待下載資源信息向跟蹤服務(wù)器獲取存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表包括 所述客戶端向全局跟蹤服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述全局跟蹤服務(wù)器生成存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表,所述客戶端接收所述全局跟蹤服務(wù)器返回的所述對(duì)等客戶端列表; 所述客戶端向所述全局跟蹤服務(wù)器查詢同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的局部跟蹤服務(wù)器,并向查詢得到的局部跟蹤服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述局部跟蹤服務(wù)器生成存儲(chǔ)有所述待下載資源的超級(jí)節(jié)點(diǎn)列表,所述客戶端接收所述局部跟蹤服務(wù)器返回的所述超級(jí)節(jié)點(diǎn)列表。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述局部跟蹤服務(wù)器和所述超級(jí)節(jié)點(diǎn)部署在互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)出口處,所述局部跟蹤服務(wù)器用于記錄和維護(hù)與所述客戶端同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的超級(jí)節(jié)點(diǎn)所存儲(chǔ)的資源信息,所述超級(jí)節(jié)點(diǎn)存儲(chǔ)的是互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)內(nèi)的熱點(diǎn)資源。
7.根據(jù)權(quán)利要求I、4或5所述的方法,其特征在于,所述對(duì)等客戶端列表內(nèi)的對(duì)等客戶端為與所述客戶端同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的對(duì)等客戶端。
8.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述客戶端根據(jù)獲取的所述資源服務(wù)器列表、對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表按照預(yù)定的調(diào)度規(guī)則從存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端和超級(jí)節(jié)點(diǎn)中下載所述待下載資源包括 所述客戶端與所述超級(jí)節(jié)點(diǎn)列表中的全部或部分超級(jí)節(jié)點(diǎn)建立連接,從所述全部或部分超級(jí)節(jié)點(diǎn)中下載所述待下載資源; 當(dāng)與所述客戶端建立連接的所述全部或部分超級(jí)節(jié)點(diǎn)的數(shù)量或下載帶寬小于預(yù)設(shè)閾值時(shí),所述客戶端與所述對(duì)等客戶端列表中的全部或部分對(duì)等客戶端建立連接,從所述全部或部分對(duì)等客戶端中下載所述待下載資源; 當(dāng)與所述客戶端建立連接的全部或部分對(duì)等客戶端的數(shù)量或下載帶寬小于所述預(yù)設(shè)閾值時(shí),所述客戶端與所述資源服務(wù)器列表中的全部或部分資源服務(wù)器建立連接,從所述全部或部分資源服務(wù)器中下載所述待下載資源。
9.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述客戶端根據(jù)獲取的所述資源服務(wù)器列表、對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表按照預(yù)定的調(diào)度規(guī)則從存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端和超級(jí)節(jié)點(diǎn)下載所述待下載資源包括 所述客戶端從所述待下載資源中選擇一個(gè)待下載資源的文件分片向存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)發(fā)送下載請(qǐng)求,并與存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)建立連接; 所述客戶端根據(jù)已經(jīng)建立的連接中,統(tǒng)計(jì)所述待下載資源中在網(wǎng)絡(luò)中存在數(shù)量最少的待下載資源的文件分片,之后,所述客戶端優(yōu)先從存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)下載中下載所述在網(wǎng)絡(luò)中存在數(shù)量最少的待下載資源的文件分片。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述方法還包括所述客戶端針對(duì)每一個(gè)待下載資源的下載任務(wù),將已經(jīng)接收到的待下載資源的文件分片緩沖存儲(chǔ)到預(yù)先分配的固定大小的緩沖區(qū)中; 所述客戶端在所述緩沖區(qū)已滿時(shí),將所述緩沖區(qū)中已經(jīng)下載完成且上傳給對(duì)等客戶端數(shù)量最少的待下載資源的文件分片寫入磁盤,將最新下載的待下載資源的文件分片存儲(chǔ)到所述緩沖區(qū)中,如果所述緩沖區(qū)中沒有已下載完成的待下載資源的文件分片,則直接將最新下載的待下載資源的文件分片寫入到所述磁盤。
11.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述方法還包括所述客戶端根據(jù)已下載的待下載資源計(jì)算網(wǎng)絡(luò)中各對(duì)等客戶端對(duì)所述待下載資源的貢獻(xiàn)度,所述貢獻(xiàn)度包括對(duì)等客戶端在所述客戶端下載所述待下載資源時(shí)向所述客戶端提供所述待下載資源的上傳速度; 所述客戶端在接收到多個(gè)對(duì)等客戶端的資源下載請(qǐng)求時(shí),以對(duì)等客戶端的貢獻(xiàn)度為優(yōu)先級(jí)分別向發(fā)送資源下載請(qǐng)求的對(duì)等客戶端上傳資源,對(duì)等客戶端的貢獻(xiàn)度越大則對(duì)等客戶端對(duì)應(yīng)的優(yōu)先級(jí)就越高。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述方法還包括所述客戶端在向?qū)Φ瓤蛻舳松蟼髻Y源時(shí),優(yōu)先在緩沖區(qū)中查找已經(jīng)下載完成的資源,如果查找到所述對(duì)等客戶端所需的資源時(shí),則從所述緩沖區(qū)中讀取并上傳所述對(duì)等客戶端所需的資源給所述對(duì)等客戶端,如果未查找到所述對(duì)等客戶端所需的資源時(shí),則從磁盤中讀取并上傳所述對(duì)等客戶端所需的資源給所述對(duì)等客戶端。
13.一種客戶端,其特征在于,所述客戶端包括第一獲取模塊、第二獲取模塊、第三獲取模塊、下載模塊和上報(bào)模塊; 所述第一獲取模塊,用于獲取待下載資源信息; 所述第二獲取模塊,用于根據(jù)所述待下載資源信息向資源索引服務(wù)器獲取存儲(chǔ)有所述待下載資源的資源服務(wù)器列表; 所述第三獲取模塊,用于根據(jù)所述待下載資源信息向跟蹤服務(wù)器獲取存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表; 所述下載模塊,用于根據(jù)獲取的所述資源服務(wù)器列表、對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表按照預(yù)定的調(diào)度規(guī)則從存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端和超級(jí)節(jié)點(diǎn)下載所述待下載資源; 所述上報(bào)模塊,用于將所述待下載資源的下載信息上傳給所述跟蹤服務(wù)器。
14.根據(jù)權(quán)利要求13所述的客戶端,其特征在于,所述第一獲取模塊,具體用于通過統(tǒng)一資源定位符向資源索引服務(wù)器查詢所述待下載資源信息,所述待下載資源信息包括待下載資源文件的文件名、待下載資源文件的哈希值、待下載資源文件分片的數(shù)量、待下載資源文件分片的大小和待下載資源文件分片的哈希值。
15.根據(jù)權(quán)利要求13所述的客戶端,其特征在于,所述第二獲取模塊,具體用于向所述資源索引服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述資源索引服務(wù)器生成存儲(chǔ)有所述待下載資源的資源服務(wù)器列表,所述客戶端接收所述資源索引服務(wù)器返回的所述資源服務(wù)器列表。
16.根據(jù)權(quán)利要求13所述的客戶端,其特征在于,所述第三獲取模塊,具體用于向跟蹤服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述跟蹤服務(wù)器生成存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表,所述客戶端接收所述跟蹤服務(wù)器返回的所述對(duì)等客戶端列表和所述超級(jí)節(jié)點(diǎn)列表。
17.根據(jù)權(quán)利要求13所述的客戶端,其特征在于,所述跟蹤服務(wù)器包括全局跟蹤服務(wù)器和局部跟蹤服務(wù)器,所述全局跟蹤服務(wù)器記錄有所述客戶端與所述局部跟蹤服務(wù)器間的對(duì)應(yīng)關(guān)系; 所述第三獲取模塊包括 第一獲取單元,用于向全局跟蹤服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述全局跟蹤服務(wù)器生成存儲(chǔ)有所述待下載資源的對(duì)等客戶端列表,所述客戶端接收所述全局跟蹤服務(wù)器返回的所述對(duì)等客戶端列表; 第二獲取單元,用于向所述全局跟蹤服務(wù)器查詢同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的局部跟蹤服務(wù)器,并向查詢得到的局部跟蹤服務(wù)器發(fā)送包含所述待下載資源信息的超文本傳輸協(xié)議請(qǐng)求,使所述局部跟蹤服務(wù)器生成存儲(chǔ)有所述待下載資源的超級(jí)節(jié)點(diǎn)列表,所述客戶端接收所述局部跟蹤服務(wù)器返回的所述超級(jí)節(jié)點(diǎn)列表。
18.根據(jù)權(quán)利要求17所述的客戶端,其特征在于,所述局部跟蹤服務(wù)器和所述超級(jí)節(jié)點(diǎn)部署在互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)出口處,所述局部跟蹤服務(wù)器用于記錄和維護(hù)與所述客戶端同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的超級(jí)節(jié)點(diǎn)所存儲(chǔ)的資源信息,所述超級(jí)節(jié)點(diǎn)存儲(chǔ)的是互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)內(nèi)的熱點(diǎn)資源。
19.根據(jù)權(quán)利要求13、16或17所述的客戶端,其特征在于,所述對(duì)等客戶端列表內(nèi)的對(duì)等客戶端為與所述客戶端同屬一個(gè)互聯(lián)網(wǎng)服務(wù)提供商網(wǎng)絡(luò)的對(duì)等客戶端。
20.根據(jù)權(quán)利要求13所述的客戶端,其特征在于,所述下載模塊包括 第一下載單元,用于所述客戶端與所述超級(jí)節(jié)點(diǎn)列表中的全部或部分超級(jí)節(jié)點(diǎn)建立連接,從所述全部或部分超級(jí)節(jié)點(diǎn)中下載所述待下載資源; 第二下載單元,用于當(dāng)與所述客戶端建立連接的所述全部或部分超級(jí)節(jié)點(diǎn)的數(shù)量或下載帶寬小于預(yù)設(shè)閾值時(shí),所述客戶端與所述對(duì)等客戶端列表中的全部或部分對(duì)等客戶端建立連接,從所述全部或部分對(duì)等客戶端中下載所述待下載資源; 第三下載單元,用于當(dāng)與所述客戶端建立連接的全部或部分對(duì)等客戶端的數(shù)量或下載帶寬小于所述預(yù)設(shè)閾值時(shí),所述客戶端與所述資源服務(wù)器列表中的全部或部分資源服務(wù)器建立連接,從所述全部或部分資源服務(wù)器中下載所述待下載資源。
21.根據(jù)權(quán)利要求13所述的客戶端,其特征在于,所述客戶端還具體用于,從所述待下載資源中選擇一個(gè)待下載資源的文件分片向存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)發(fā)送下載請(qǐng)求,并與存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)建立連接,并根據(jù)已經(jīng)建立的連接中,統(tǒng)計(jì)所述待下載資源中在網(wǎng)絡(luò)中存在數(shù)量最少的待下載資源的文件分片,之后,所述客戶端優(yōu)先從存儲(chǔ)有所述待下載資源的資源服務(wù)器、對(duì)等客戶端或超級(jí)節(jié)點(diǎn)下載中下載所述在網(wǎng)絡(luò)中存在數(shù)量最少的待下載資源的文件分片。
22.根據(jù)權(quán)利要求21所述的客戶端,其特征在于,所述客戶端還具體用于對(duì)每一個(gè)待下載資源的下載任務(wù),將已經(jīng)接收到的待下載資源的文件分片緩沖存儲(chǔ)到預(yù)先分配的固定大小的緩沖區(qū)中,在所述緩沖區(qū)已滿時(shí),將所述緩沖區(qū)中已經(jīng)下載完成且上傳給對(duì)等客戶端數(shù)量最少的待下載資源的文件分片寫入磁盤,將最新下載的待下載資源的文件分片存儲(chǔ)到所述緩沖區(qū)中,如果所述緩沖區(qū)中沒有已下載完成的待下載資源的文件分片,則直接將最新下載的待下載資源的文件分片寫入到所述磁盤。
23.根據(jù)權(quán)利要求13所述的客戶端,其特征在于,所述客戶端還具體用于根據(jù)已下載的待下載資源計(jì)算網(wǎng)絡(luò)中各對(duì)等客戶端對(duì)所述待下載資源的貢獻(xiàn)度,并在接收到多個(gè)對(duì)等客戶端的資源下載請(qǐng)求時(shí),以對(duì)等客戶端的貢獻(xiàn)度為優(yōu)先級(jí)分別向發(fā)送資源下載請(qǐng)求的對(duì)等客戶端上傳資源,對(duì)等客戶端的貢獻(xiàn)度越大則對(duì)等客戶端對(duì)應(yīng)的優(yōu)先級(jí)就越高,所述貢獻(xiàn)度包括對(duì)等客戶端在所述客戶端下載所述待下載資源時(shí)向所述客戶端提供所述待下載資源的上傳速度。
24.根據(jù)權(quán)利要求23所述的客戶端,其特征在于,所述客戶端還具體用于在向?qū)Φ瓤蛻舳松蟼髻Y源時(shí),優(yōu)先在緩沖區(qū)中查找已經(jīng)下載完成的資源,如果查找到所述對(duì)等客戶端所需的資源時(shí),則從所述緩沖區(qū)中讀取并上傳所述對(duì)等客戶端所需的資源給所述對(duì)等客戶端,如果未查找到所述對(duì)等客戶端所需的資源時(shí),則從磁盤中讀取并上傳所述對(duì)等客戶端所需的資源給所述對(duì)等客戶端。
全文摘要
本發(fā)明公開了一種P2SP網(wǎng)絡(luò)中資源下載的方法及客戶端,屬于互聯(lián)網(wǎng)數(shù)字媒體領(lǐng)域。包括獲取待下載資源信息;向資源索引服務(wù)器獲取存儲(chǔ)有待下載資源的資源服務(wù)器列表、向跟蹤服務(wù)器獲取存儲(chǔ)有待下載資源的對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表;根據(jù)獲取的資源服務(wù)器列表、對(duì)等客戶端列表和超級(jí)節(jié)點(diǎn)列表按照預(yù)定的調(diào)度規(guī)則從存儲(chǔ)有待下載資源的資源服務(wù)器、對(duì)等客戶端和超級(jí)節(jié)點(diǎn)下載待下載資源;將待下載資源的下載信息上傳給跟蹤服務(wù)器。本方案使得客戶端不僅可以從資源服務(wù)器和其他對(duì)等客戶端以多源方式接收數(shù)據(jù),還可以在超級(jí)節(jié)點(diǎn)中以多源傳輸?shù)姆绞浇邮諗?shù)據(jù),資源更豐富,資源下載速度更快且穩(wěn)定性更強(qiáng),且優(yōu)化了跨網(wǎng)傳輸?shù)牧髁浚瑢?shí)現(xiàn)對(duì)運(yùn)營(yíng)商的友好。
文檔編號(hào)H04L29/08GK102833293SQ20111016427
公開日2012年12月19日 申請(qǐng)日期2011年6月17日 優(yōu)先權(quán)日2011年6月17日
發(fā)明者劉剛, 冀祖峰, 黃琰 申請(qǐng)人:騰訊科技(深圳)有限公司