本發(fā)明涉及網(wǎng)絡(luò)傳輸技術(shù)領(lǐng)域,特別涉及一種基于對等網(wǎng)絡(luò)的節(jié)點推薦方法、服務(wù)器和客戶端。
背景技術(shù):
P2P(peer-to-peer)技術(shù),即對等網(wǎng)絡(luò)傳輸技術(shù),是近年來興起的一種新型通訊網(wǎng)絡(luò)傳輸技術(shù)。它在傳輸方式上打破了傳統(tǒng)網(wǎng)絡(luò)的服務(wù)器/客戶端(C/S)模式,建立了一種客戶端對客戶端的直接通信機制。在對等網(wǎng)絡(luò)中,每一節(jié)點既作為客戶端,又充當(dāng)他人的服務(wù)端,從某種意義上,每一節(jié)點都處在同等地位。對等網(wǎng)絡(luò)是對分布式概念的成功拓展,它將傳統(tǒng)方式下的服務(wù)器負擔(dān)分配到網(wǎng)絡(luò)中的每一節(jié)點上,不僅可以大大減輕服務(wù)器處理壓力,也能節(jié)省大量的CDN流量成本。
在組成的對等網(wǎng)絡(luò)中,一個節(jié)點都會從服務(wù)端(tracker)獲取N個節(jié)點信息進行相連來獲取數(shù)據(jù)。服務(wù)端推薦的這N個節(jié)點的質(zhì)量關(guān)系到該節(jié)點獲取數(shù)據(jù)的速度,從而影響視頻播放質(zhì)量。從目前已知該領(lǐng)域服務(wù)端推薦基本都是隨機推薦或者只根據(jù)節(jié)點平均上傳速率來推薦,推薦的節(jié)點質(zhì)量沒有很好的保證,導(dǎo)致P2P整體效率不高。
技術(shù)實現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實施例提供了一種基于對等網(wǎng)絡(luò)的節(jié)點推薦方法、服務(wù)器和客戶端。所述技術(shù)方案如下:
第一方面,一種基于對等網(wǎng)絡(luò)的節(jié)點推薦方法,包括以下步驟:服務(wù)器接收客戶端發(fā)送的節(jié)點推薦請求,所述節(jié)點推薦請求包括需求資源的信息;所述服務(wù)器根據(jù)所述節(jié)點推薦請求獲取所述客戶端的地理位置;所述服務(wù)器根據(jù)所述客戶端的地理位置、持有所述需求資源的資源持有度以及下載速率,從所述客戶端的鄰居節(jié)點中篩選出推薦節(jié)點;所述服務(wù)器向所述客戶端發(fā)送所述推薦節(jié)點的列表。
進一步地,所述的所述服務(wù)器根據(jù)所述客戶端的地理位置、持有所述需求資源的資源持有度以及下載速率,從所述客戶端的鄰居節(jié)點中篩選出推薦節(jié)點,包括:所述服務(wù)器根據(jù)所述客戶端的地理位置,從所述客戶端的鄰居節(jié)點中篩選出第一節(jié)點;所述服務(wù)器根據(jù)持有所述需求資源的資源持有度從所述第一節(jié)點中篩選出第二節(jié)點;所述服務(wù)器根據(jù)下載速率從所述第二節(jié)點中篩選出所述推薦節(jié)點。
進一步地,所述的所述服務(wù)器根據(jù)所述客戶端的地理位置,從所述客戶端的鄰居節(jié)點中篩選出第一節(jié)點,包括:所述服務(wù)器獲取所述客戶端的鄰居節(jié)點的地理位置;所述服務(wù)器根據(jù)所述客戶端的鄰居節(jié)點的地理位置與所述客戶端的地理位置,從所述客戶端的鄰居節(jié)點中篩選出地理位置距離所述客戶端的地理位置較近的所述第一節(jié)點。
進一步地,所述的所述服務(wù)器根據(jù)持有所述需求資源的資源持有度篩選出第二節(jié)點,包括:當(dāng)所述第一節(jié)點的數(shù)量大于第一閾值時,所述服務(wù)器根據(jù)持有所述需求資源的資源持有度從所述第一節(jié)點中篩選出持有所述需求資源的資源持有度高的所述第二節(jié)點。
進一步地,所述的所述服務(wù)器根據(jù)下載速率從所述第二節(jié)點中篩選出推薦節(jié)點,包括:當(dāng)所述第二節(jié)點的數(shù)量大于第二閾值時,所述服務(wù)器根據(jù)下載速率從所述第二節(jié)點中篩選出下載速率高的所述推薦節(jié)點。
第二方面,一種基于對等網(wǎng)絡(luò)的節(jié)點推薦方法,其特征在于,包括:客戶端發(fā)送節(jié)點推薦請求至服務(wù)器,所述節(jié)點推薦請求包括所述客戶端的需求資源的信息;所述客戶端接收所述服務(wù)器發(fā)送的推薦節(jié)點的列表,其中,所述服務(wù)器根據(jù)所述客戶端的地理位置、持有所述需求資源的資源持有度以及下載速率,從所述客戶端的鄰居節(jié)點中篩選出所述推薦節(jié)點,所述服務(wù)器向所述客戶端發(fā)送所述推薦節(jié)點的列表,所述客戶端的地理位置是所述服務(wù)器根據(jù)所述節(jié)點推薦請求獲取到的;所述客戶端連接所述推薦節(jié)點。
進一步地,在所述的所述客戶端連接所述推薦節(jié)點之后,還包括:所述客戶端根據(jù)提供所述需求資源的能力從已連接于所述客戶端的所述推薦節(jié)點中篩選第四節(jié)點;所述客戶端斷開與所述第四節(jié)點的連接。
進一步地,所述的提供所述需求資源的能力為與所述客戶端的往返時間、上傳速率、下載速率、對應(yīng)所述需求資源的資源持有度、已提供的資源數(shù)據(jù)量中的加權(quán)平均值。
第三方面,一種服務(wù)器,包括:服務(wù)器接收模塊,用于接收客戶端方發(fā)送的節(jié)點推薦請求,所述節(jié)點推薦請求包括需求資源的信息;獲取模塊,用于根據(jù)所述節(jié)點推薦請求獲取所述客戶端的地理位置;篩選模塊,用于根據(jù)所述客戶端的地理位置、持有所述需求資源的資源持有度以及下載速率,從所述客戶端的鄰居節(jié)點中篩選出推薦節(jié)點;服務(wù)器發(fā)送模塊,用于向所述客戶端發(fā)送所述推薦節(jié)點。
進一步地,所述篩選模塊,包括:第一篩選模塊,用于根據(jù)所述客戶端的地理位置,從所述客戶端的鄰居節(jié)點中篩選出第一節(jié)點;第二篩選模塊,用于根據(jù)持有所述需求資源的資源持有度從所述第一節(jié)點中篩選出第二節(jié)點;第三篩選模塊,用于根據(jù)下載速率從所述第二節(jié)點中篩選出推薦節(jié)點。
進一步地,所述第一篩選模塊,包括:第二獲取單元,用于獲取所述客戶端的鄰居節(jié)點的地理位置;第一篩選單元,用于根據(jù)所述客戶端的鄰居節(jié)點的地理位置與所述客戶端的地理位置,從所述客戶端的鄰居節(jié)點中篩選出地理位置距離所述客戶端的地理位置較近的所述第一節(jié)點。
進一步地,所述第二篩選模塊,包括:第二篩選單元,用于當(dāng)所述第一節(jié)點的數(shù)量大于第一閾值時,根據(jù)持有所述需求資源的資源持有度從所述第一節(jié)點中篩選出持有所述需求資源的資源持有度高的所述第二節(jié)點。
進一步地,所述第三篩選模塊,包括:第三篩選單元,用于當(dāng)所述第二節(jié)點的數(shù)量大于第二閾值時,根據(jù)下載速率從所述第二節(jié)點中篩選出下載速率高的所述推薦節(jié)點。
第四方面,一種客戶端,包括:客戶端發(fā)送模塊,用于發(fā)送節(jié)點推薦請求至服務(wù)器,所述節(jié)點推薦請求包括需求資源的信息;客戶端接收模塊,用于接收所述服務(wù)器發(fā)送的推薦節(jié)點的列表,其中,所述服務(wù)器根據(jù)所述客戶端的地理位置、持有所述需求資源的資源持有度以及下載速率,從所述客戶端的鄰居節(jié)點中篩選出推薦節(jié)點;客戶端連接模塊,用于連接所述推薦節(jié)點。
進一步地,所述客戶端還包括:第四篩選模塊,用于根據(jù)提供所述需求資源的能力從已連接于所述客戶端的所述推薦節(jié)點中篩選第四節(jié)點;斷開模塊,用于斷開與所述第四節(jié)點的連接。
進一步地,所述的提供所述需求資源的能力為與所述客戶端的RTT時間、上傳速率、下載速率、對應(yīng)所述需求資源的資源持有度、已提供的資源數(shù)據(jù)量中的加權(quán)平均值。
本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:本發(fā)明公開的節(jié)點推薦方法、服務(wù)器和客戶端,服務(wù)器根據(jù)客戶端的節(jié)點推薦請求,依據(jù)客戶端的地理位置、資源持有度、下載速率進行三級篩選,能夠從大量的鄰居節(jié)點中篩選出優(yōu)質(zhì)的鄰居節(jié)點篩選出來并且推薦客戶端,從而能使客戶端的用戶快速有效地獲取到高質(zhì)量的資源,提升了用戶體驗感。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例一提供的基于對等網(wǎng)絡(luò)的節(jié)點推薦方法的流程圖;
圖2是本發(fā)明實施例一提供的基于對等網(wǎng)絡(luò)的節(jié)點推薦方法中步驟102的具體流程圖;
圖3是本發(fā)明實施例一提供的基于對等網(wǎng)絡(luò)的節(jié)點推薦方法中步驟103的具體流程圖;
圖4是本發(fā)明實施例一提供的基于對等網(wǎng)絡(luò)的節(jié)點推薦方法中步驟1031的具體流程圖;
圖5是本發(fā)明實施例一提供的基于對等網(wǎng)絡(luò)的節(jié)點推薦方法中步驟1032以及1303的具體流程圖;
圖6是本發(fā)明實施例二提供的基于對等網(wǎng)絡(luò)的節(jié)點推薦方法的流程圖;
圖7是本發(fā)明實施例三提供的服務(wù)器的模塊圖;
圖8是本發(fā)明實施例四提供的客戶端的模塊圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。
實施例一
本發(fā)明提供一種基于對等網(wǎng)絡(luò)的節(jié)點推薦方法,如圖1所示,包括以下步驟:
101,服務(wù)器接收客戶端發(fā)送的節(jié)點推薦請求,所述節(jié)點推薦請求包括需求資源的信息。
P2P(peer-to-peer)技術(shù),即對等網(wǎng)絡(luò)傳輸技術(shù),是近年來興起的一種新型通訊網(wǎng)絡(luò)傳輸技術(shù)。它在傳輸方式上打破了傳統(tǒng)網(wǎng)絡(luò)的服務(wù)器/客戶端(C/S)模式,建立了一種客戶端對客戶端的直接通信機制。在對等網(wǎng)絡(luò)中,每一節(jié)點既作為客戶端,又充當(dāng)他人的服務(wù)端,從某種意義上,每一節(jié)點都處在同等地位。對等網(wǎng)絡(luò)是對分布式概念的成功拓展,它將傳統(tǒng)方式下的服務(wù)器負擔(dān)分配到網(wǎng)絡(luò)中的每一節(jié)點上,不僅可以大大減輕服務(wù)器處理壓力,也能節(jié)省大量的CDN流量成本。舉例說明,本步驟中,當(dāng)客戶端的用戶希望觀看電影《驢得水》時,服務(wù)器可以接收來自客戶端發(fā)送的推薦持有電影《驢得水》的節(jié)點的請求,即需求資源為電影《驢得水》。
102,所述服務(wù)器根據(jù)所述節(jié)點推薦請求獲取所述客戶端的地理位置。
本步驟中,所述服務(wù)器可以根據(jù)所述節(jié)點推薦請求直接或者間接地獲取所述客戶端的地理位置。如,請參閱圖2,所述步驟102可以包括:1021,所述服務(wù)器根據(jù)所述客戶端的IP地址獲取所述客戶端的地理位置,其中,所述節(jié)點推薦請求包括所述客戶端的IP地址。舉例說明,所述推薦持有電影《驢得水》的節(jié)點的請求還包括了發(fā)送所述請求的客戶端的IP地址,所述服務(wù)器能根據(jù)所述客戶端的IP地址獲取所述客戶端的地理位置。又如,所述推薦持有電影《驢得水》的節(jié)點的請求還可以直接包括所示客戶端的地理位置,從而能加快服務(wù)器的反應(yīng)速度。
103,所述服務(wù)器根據(jù)所述客戶端的地理位置、持有所述需求資源的資源持有度以及下載速率,從所述客戶端的鄰居節(jié)點中篩選出推薦節(jié)點。
請參閱圖3,所述步驟103包括:1031,所述服務(wù)器根據(jù)所述客戶端的地理位置,從所述客戶端的鄰居節(jié)點中篩選出第一節(jié)點;1032,所述服務(wù)器根據(jù)持有所述需求資源的資源持有度從所述第一節(jié)點中篩選出第二節(jié)點;1033,所述服務(wù)器根據(jù)下載速率從所述第二節(jié)點中篩選出所述推薦節(jié)點。
其中,請參閱圖4,所述步驟1031包括:1035,所述服務(wù)器獲取所述客戶端的鄰居節(jié)點的地理位置;1037,所述服務(wù)器根據(jù)所述客戶端的鄰居節(jié)點的地理位置與所述客戶端的地理位置,從所述客戶端的鄰居節(jié)點中篩選出地理位置距離所述客戶端的地理位置較近的所述第一節(jié)點。
請參閱圖5,所述步驟1032包括:1038,當(dāng)所述第一節(jié)點的數(shù)量大于第一閾值時,所述服務(wù)器根據(jù)持有所述需求資源的資源持有度從所述第一節(jié)點中篩選出持有所述需求資源的資源持有度高的所述第二節(jié)點。所述第一閾值可以為50,進一步地也可以是其他數(shù)值。
所述步驟1033包括:1039,當(dāng)所述第二節(jié)點的數(shù)量大于第二閾值時,所述服務(wù)器根據(jù)下載速率從所述第二節(jié)點中篩選出下載速率高的所述推薦節(jié)點。所述第二閾值可以為10,進一步地也可以是小于所述第一閾值的其他數(shù)值。
本步驟中,所述服務(wù)器依據(jù)所述客戶端的地理位置、資源持有度、下載速率進行三級篩選,能夠從大量的鄰居節(jié)點中篩選出優(yōu)質(zhì)的鄰居節(jié)點篩選出來。
104,所述服務(wù)器向所述客戶端發(fā)送所述推薦節(jié)點的列表。
綜上所述,本實施例中,所述服務(wù)器依據(jù)所述客戶端的地理位置、資源持有度、下載速率進行三級篩選,能夠從大量的鄰居節(jié)點中篩選出優(yōu)質(zhì)的鄰居節(jié)點篩選出來并且推薦客戶端,從而能使客戶端的用戶快速有效地獲取到高質(zhì)量的資源,提升了用戶體驗感。
實施例二
請參閱圖6,本發(fā)明提供一種基于對等網(wǎng)絡(luò)的節(jié)點推薦方法,包括:
201,客戶端發(fā)送節(jié)點推薦請求至服務(wù)器,所述節(jié)點推薦請求包括所述客戶端的需求資源的信息;
202,所述客戶端接收所述服務(wù)器發(fā)送的推薦節(jié)點的列表,其中,所述服務(wù)器根據(jù)所述客戶端的地理位置、持有所述需求資源的資源持有度以及下載速率,從所述客戶端的鄰居節(jié)點中篩選出所述推薦節(jié)點,所述服務(wù)器向所述客戶端發(fā)送所述推薦節(jié)點的列表,所述客戶端的地理位置是所述服務(wù)器根據(jù)所述節(jié)點推薦請求獲取到的;
204,所述客戶端連接所述推薦節(jié)點。
進一步地,本實施例中,所述節(jié)點推薦方法在204之后,還可以包括:205,所述客戶端根據(jù)提供所述需求資源的能力從所述推薦節(jié)點中篩選第四節(jié)點;206,所述客戶端斷開與所述第四節(jié)點的連接。這樣,客戶端可以定期或者實時地,斷開與低質(zhì)量的節(jié)點的連接,進而能提高節(jié)點的使用效能。
進一步地,所述需求資源的能力包括與所述客戶端的往返時間、上傳速率、下載速率、對應(yīng)所述需求資源的資源持有度、已提供的資源數(shù)據(jù)量中的加權(quán)平均值。
綜上所述,本實施例中,通過所述服務(wù)器依據(jù)所述客戶端的地理位置、資源持有度、下載速率進行三級篩選,能夠從大量的鄰居節(jié)點中篩選出優(yōu)質(zhì)的鄰居節(jié)點篩選出來,所述客戶端連接這些優(yōu)質(zhì)的節(jié)點,從而能使客戶端的用戶快速有效地獲取到高質(zhì)量的資源,提升了用戶體驗感。
實施例三
本發(fā)明提供一種服務(wù)器,如圖7所示,包括:服務(wù)器接收模塊401,用于接收客戶端發(fā)送的節(jié)點推薦請求,所述節(jié)點推薦請求包括需求資源的信息;獲取模塊402,用于根據(jù)所述節(jié)點推薦請求獲取所述客戶端的地理位置;篩選模塊403,用于根據(jù)所述客戶端的地理位置、持有所述需求資源的資源持有度以及下載速率,從所述客戶端的鄰居節(jié)點中篩選出推薦節(jié)點;服務(wù)器發(fā)送模塊404,用于向所述客戶端發(fā)送所述推薦節(jié)點。
進一步地,所述服務(wù)器接收模塊402包括:第一獲取單元4021,用于根據(jù)所述客戶端的IP地址獲取所述客戶端的地理位置,其中,所述節(jié)點推薦請求包括所述客戶端的IP地址。當(dāng)然,所述節(jié)點推薦請求也可以直接包括所述客戶端的地理位置,從而能加快服務(wù)器的反應(yīng)速度。
進一步地,所述篩選模塊403,包括:第一篩選模塊4031,用于根據(jù)所述客戶端的地理位置,從所述客戶端的鄰居節(jié)點中篩選出第一節(jié)點;第二篩選模塊4032,用于根據(jù)持有所述需求資源的資源持有度從所述第一節(jié)點中篩選出第二節(jié)點;第三篩選模塊4033,用于根據(jù)下載速率從所述第二節(jié)點中篩選出推薦節(jié)點。
其中,所述第一篩選模塊4031,包括:第二獲取單元4035,用于獲取所述客戶端的鄰居節(jié)點的地理位置;第一篩選單元4037,用于根據(jù)所述客戶端的鄰居節(jié)點的地理位置與所述客戶端的地理位置,從所述客戶端的鄰居節(jié)點中篩選出地理位置距離所述客戶端的地理位置較近的所述第一節(jié)點。
所述第二篩選模塊4032,包括:第二篩選單元4038,用于當(dāng)所述第一節(jié)點的數(shù)量大于第一閾值時,根據(jù)持有所述需求資源的資源持有度從所述第一節(jié)點中篩選出持有所述需求資源的資源持有度高的所述第二節(jié)點。所述第一閾值可以為50個,進一步地也可以是其他數(shù)值。
所述第三篩選模塊4033,包括:第三篩選單元4039,用于當(dāng)所述第二節(jié)點的數(shù)量大于第二閾值時,根據(jù)下載速率從所述第二節(jié)點中篩選出下載速率高的所述推薦節(jié)點。所述第二閾值可以為10,進一步地也可以是小于所述第一閾值的其他數(shù)值。
綜上所述,本實施例中,所述服務(wù)器依據(jù)所述客戶端的地理位置、資源持有度、下載速率進行三級篩選,能夠從大量的鄰居節(jié)點中篩選出優(yōu)質(zhì)的鄰居節(jié)點篩選出來并且推薦客戶端,從而能使客戶端的用戶快速有效地獲取到高質(zhì)量的資源,提升了用戶體驗感。
實施例四
本發(fā)明提供一種客戶端,如圖8所示,包括:客戶端發(fā)送模塊501,用于發(fā)送節(jié)點推薦請求至服務(wù)器,所述節(jié)點推薦請求包括需求資源的信息;客戶端接收模塊502,用于接收所述服務(wù)器發(fā)送的推薦節(jié)點,其中,所述服務(wù)器根據(jù)所述客戶端的地理位置、持有所述需求資源的資源持有度以及下載速率,從所述客戶端的鄰居節(jié)點中篩選出推薦節(jié)點;客戶端連接模塊503,用于連接所述推薦節(jié)點。
進一步地,所述客戶端還包括:第四篩選模塊504,用于根據(jù)提供所述需求資源的能力從所述推薦節(jié)點中篩選第四節(jié)點;斷開模塊505,用于斷開與所述第四節(jié)點的連接。這樣,客戶端可以定期或者實時地,斷開與低質(zhì)量的節(jié)點的連接,進而能提高節(jié)點的使用效能。
進一步地,所述需求資源的能力包括與所述客戶端的往返時間、上傳速率、下載速率、對應(yīng)所述需求資源的資源持有度、已提供的資源數(shù)據(jù)量中的加權(quán)平均值。
綜上所述,本實施例中,通過所述服務(wù)器依據(jù)所述客戶端的地理位置、資源持有度、下載速率進行三級篩選,能夠從大量的鄰居節(jié)點中篩選出優(yōu)質(zhì)的鄰居節(jié)點篩選出來,所述客戶端連接這些優(yōu)質(zhì)的節(jié)點,從而能使客戶端的用戶快速有效地獲取到高質(zhì)量的資源,提升了用戶體驗感。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),進一步地也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。