新四季網

一種確定直接鄰居節點的方法、伺服器和客戶端的製作方法

2023-05-03 15:30:41 2


專利名稱::一種確定直接鄰居節點的方法、伺服器和客戶端的製作方法
技術領域:
:本發明涉及通信領域,具體涉及一種確定直接鄰居節點的方法、伺服器和客戶端。
背景技術:
:在點對點P2P(PeertoPeer)P2P中,伺服器和客戶端都可以作為網絡中的節點,每個節點既可以從其他節點得到數據,也可以向其他節點提供數據。這樣龐大的客戶端上傳能力的資源被利用起來,數據分發傳輸的效率得到了提高。在P2P網絡中通常設置有伺服器,以存儲需要分發或提供下載的數據內容。因此,即使擁有該數據內容的客戶端都下線,伺服器也能夠為其他客戶端提供該數據內容的下載,因此提供了良好的服務質量(QualityofService,QoS)保證。由於P2P網絡中的所有客戶端都可以請求從伺服器上下載數據內容,也可以從擁有數據內容的其它客戶端下載數據內容,並能同時為其它客戶端提供數據內容。在本領域中,可以將從伺服器下載數據內容的客戶端稱為直接鄰居節點,將從擁有數據內容的其它客戶端下載數據內容的客戶端稱為非直接鄰居節點。在現有的P2P網絡中,請求從伺服器獲取數據內容的客戶端都是隨機的,也就是任何客戶端都可以作為直接鄰居節點。現有技術中,通過隨機方法確定直接鄰居節點,但通過該方法確定的直接鄰居節點,當該確定的直接鄰居節點的數據內容分發能力較弱時,可能影響P2P網絡中數據內容的分發。
發明內容本發明實施例提供一種確定直接鄰居節點的方法、伺服器和客戶端,可以保證確定的直接鄰居節點具有較強的數據內容分發能力,提高網絡中數據內容分發能力。本發明實施例提供一種確定直接鄰居節點的方法,包括接收客戶端發送的內容分發能力消息,所述內容分發能力消息中包含客戶端當前的內容分發能力;根據接收到的客戶端的當前的內容分發能力確定直接鄰居節點。此外,本發明實施例還提供一種伺服器,包括接收模塊,用於接收客戶端發送的內容分發能力消息,所述內容分發能力消息中包含客戶端當前的內容分發能力;確定模塊,用於根據接收到的客戶端的當前的內容分發能力確定直接鄰居節點。此外,本發明實施例還提供一種客戶端,包括獲取模塊,用於獲取對數據內容的內容分發能力;發送模塊,用於發送內容分發能力消息,所述內容分發能力消息中包含客戶端當前的內容分發能力;以便於伺服器根據所述客戶端當前的內容分發能力確定直接鄰居節點ο本發明實施例通過利用直接鄰居節點對數據內容的內容分發能力確定直接鄰居節點,可以保證確定的直接鄰居節點具有較強的數據內容分發能力,提高網絡中數據內容分發能力。圖1為本發明一實施例的確定直接鄰居節點的方法的流程圖;圖2為本發明另一實施例的確定直接鄰居節點的方法的流程圖;圖3為本發明另一實施例的調整直接鄰居節點的數量的方法流程圖;圖4為本發明另一實施例伺服器的結構示意圖;圖5為本發明另一實施例的客戶端的結構示意圖;圖6為本發明實施例提供的確定直接鄰居節點的系統示意圖。具體實施例方式為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,並不用於限定本發明。P2P網絡中獲取數據內容的客戶端的內容分發能力消息,例如作為直接鄰居節點的客戶端和作為非直接鄰居節點的客戶端,都可以向伺服器發送各自的內容分發能力消息,例如可以按一定的時間周期向伺服器發送各自的內容分發能力消息。其中,作為直接鄰居節點的客戶端可以從伺服器下載數據內容,而作為非直接鄰居節點的客戶端則從其它客戶端獲取數據內容,其中,該其它客戶端既可以是直接鄰居節點,也可以是另一個非直接鄰居節點。為使得作為非直接鄰居節點的客戶端能夠更方便的從其它客戶端獲取數據內容,作為直接鄰居節點的客戶端需要將從伺服器獲取的數據內容分發給其它客戶端。例如,在本發明的一個實施例中,伺服器為每個數據內容設置可以支持的直接鄰居節點數量閾值,對某一數據內容,當沒有任何客戶端已獲取該數據內容時,即該數據內容僅存儲於伺服器,最初請求獲取該數據內容的客戶端在獲取該數據內容後就可以默認作為直接鄰居節點。例如,當某個客戶端需要獲取該數據內容時,該客戶端向伺服器發送獲取請求以及內容分發能力消息並從伺服器獲取該數據內容,該客戶端就作為直接鄰居節點。當有另一個客戶端也需要獲取該數據內容,該另一客戶端也可以從伺服器獲取該數據內容,即該另一客戶端也作為直接鄰居節點,直到作為直接鄰居節點的客戶端的數量達到伺服器為該數據內容設置的可以支持的直接鄰居節點數量閾值。但實際上,本發明實施例提供的一種確定直接鄰居節點的技術方案,不僅可以應用於最初的場景,還可以應用於已有直接鄰居節點的場景,具體可以如下所述。本發明實施例提供了確定直接鄰居節點的方法,如附圖1所示,可以如下所述。步驟101、接收客戶端發送的內容分發能力消息;所述內容分發能力消息中包含客戶端當前的內容分發能力,所述內容分發能力為客戶端對數據內容的上傳速率和/或客戶端對數據內容的內容傳輸放大係數;步驟102、根據客戶端對數據內容的上傳速率和/或客戶端對數據內容的內容傳輸放大係數確定直接鄰居節點。例如,伺服器為每個數據內容設置可以支持的直接鄰居節點數量閾值,在滿足直接鄰居節點數量閾值的條件下,依據內容分發能力從大到小的順序將相應數量的客戶端確定為直接鄰居節點。如果該內容分發能力為客戶端對該數據內容的上傳速率,則伺服器根據客戶端對該數據內容的上傳速率^的大小,在滿足直接鄰居節點數量閾值的條件下,依據數據內容上傳速率從大到小的順序將相應數量的客戶端確定為直接鄰居節點。或者,還可以根據數據內容上傳速率進行直接鄰居節點的更新,或根據數據內容上傳速率和對數據內容的內容傳輸放大係數進行直接鄰居節點的更新。由以上描述可知,本發明實施例通過利用對數據內容的內容分發能力確定直接鄰居節點,使得作為直接鄰居節點的客戶端可以很好的分發獲取到的數據內容。如圖2所示,為本發明實施例提供的一種選擇直接鄰居節點方法的具體應用的流程圖。在本實施例中,客戶端預先獲取存儲有數據內容的伺服器的地址和其它客戶端的地址。其中,從伺服器下載數據內容的客戶端為直接鄰居節點的客戶端,從其它客戶端下載數據內容的客戶端為非直接鄰居節點的客戶端,已有客戶端作為直接鄰居節點。步驟201、接收客戶端發送的內容分發能力消息。本步驟當中,伺服器既可以接收作為直接鄰居節點的客戶端的內容分發能力消息,也可以接收作為非直接鄰居節點的客戶端的內容分發能力消息。作為非直接鄰居節點的客戶端,如果已從其它客戶端獲取了數據內容,例如已從作為直接鄰居節點的客戶端i獲取了數據內容,則作為非直接鄰居節點的客戶端分別向伺服器發送內容分發能力消息,可以分別包含相應客戶端對數據內容的上傳速率Bandwidthpeenο步驟202、接收到客戶端發送的內容分發能力消息後,根據接收到的客戶端的當前的內容分發能力確定直接鄰居節點。例如,伺服器為每個數據內容設有可以支持的直接鄰居節點數量閾值。伺服器獲取可以支持的直接鄰居節點數量閾值後,根據各客戶端對該數據內容的數據內容上傳速率Sflw^W力Z^q的大小,在滿足直接鄰居節點數量閾值的條件下,依據數據內容上傳速率從大到小的順序將相應數量的客戶端確定為直接鄰居節點。如下以客戶端i、A、B、C、D為例進行說明,伺服器為每個數據內容設有可以支持的直接鄰居節點數量閾值以及伺服器為每個數據內容分配供客戶端下載的帶寬。可以支持的直接鄰居節點數量閾值可以是伺服器對每個數據內容支持的直接鄰居節點的最大數量,也可以是任意值。例如,伺服器獲取數據內容可以支持的直接鄰居節點數量閾值為3,且在其保存的客戶端記錄中已記錄客戶端i為直接鄰居節點。伺服器收到客戶端A、B、C、D發送的內容分發能力消息後,獲取其中的數據內容上傳速率。其中,客戶端A的數據內容上傳速率為1Mb/s,客戶端B的數據內容上傳速率為500Kb/s,客戶端C的數據內容上傳速率為300Kb/s,客戶端D的數據內容上傳速率為100Kb/S。由於客戶端i已經是該數據內容的直接鄰居節點,伺服器在直接鄰居節點數量閾值為3的條件下,依據數據內容上傳速率從大到小的順序進一步確定2個客戶端,即客戶端A、B為直接鄰居節點。在保存的客戶端記錄中將客戶端A、B加上直接鄰居節點的標記。如果伺服器在其保存的客戶端記錄中沒有記錄任何客戶端作為直接鄰居節點,則伺服器在收到客戶端i、A、B、C、D發送的內容分發能力消息後,在直接鄰居節點數量閾值為3的條件下,依據數據內容上傳速率從大到小的順序確定3個客戶端為直接鄰居節點。此外,為保證總能將內容分發能力較強的客戶端確定為直接鄰居節點,本發明的另一實施例中,伺服器還可以進行直接鄰居節點的更新,即可以將內容分發能力較強的非直接鄰居節點確定為直接鄰居節點,並可以根據內容分發能力將內容分發能力較弱的直接鄰居節點確定為非直接鄰居節點。例如,以客戶端1、」、14、8、(、0為例進行說明,伺服器設置數據內容可以支持的直接鄰居節點數量閾值為3,且在其保存的客戶端記錄中已記錄客戶端i、j、k為直接鄰居節點。伺服器收到客戶端i、j、k、A、B、C、D的內容分發能力消息後,獲取數據內容可以支持的直接鄰居節點數量閾值為3。根據內容分發能力消息中的上傳速率確定客戶端i、j、k、A、B、C、D的內容分發能力依次為客戶端i>客戶端j>客戶端A>客戶端k>客戶端B>客戶端C>客戶端D,則伺服器可以將客戶端K確定為非直接鄰居節點,而將客戶端A確定為直接鄰居節點,伺服器在保存的客戶端記錄中,相應更新客戶端的直接鄰居節點標記。根據上述對直接鄰居節點的更新,可以保證內容分發能力較強的客戶端作為直接鄰居節點。根據本發明的另一實施例,在進行直接鄰居節點的更新的過程中,伺服器還可以根據設置的策略進行直接鄰居節點的更新。例如,設置的策略可以是每次需要更新至少一個直接鄰居節點。例如,伺服器中設置有將直接鄰居節點確定為非直接鄰居節點的更新值,則伺服器獲取將直接鄰居節點確定為非直接鄰居節點的更新值後,可以根據該更新值以及根據內容分發能力的從弱到強的順序,例如根據上傳速率或內容傳輸放大係數從小到大的順序,將相應更新值數量的直接鄰居節點確定為非直接鄰居節點,並根據內容分發能力的從強到弱的順利,例如根據上傳速率或內容傳輸放大係數從大到小的順序,將相應更新值數量的非直接鄰居節點客戶端確定為直接鄰居節點。例如,以客戶端i、j、k、A、B、C、D為例進行說明,伺服器設置數據內容可以支持的直接鄰居節點數量閾值為3,且在其保存的客戶端記錄中已記錄客戶端i、j、k為直接鄰居節點。客戶端i為作為直接鄰居節點,已從伺服器下載數據內容,客戶端i發送的內容分發能力消息可以包含客戶端i當前對數據內容的傳輸放大係數Ampi和/或數據內容的上傳速率—哪,該內容傳輸放大係數可以由客戶端i通過下式得到Ampi=Bandwidthcs_peeri/Bandwidthcs-peer其中,Smi/vWi/^q表示客戶端i對數據內容的上傳速率,即對其他客戶端的服務能力,客戶端i可以通過如下公式計算獲取該上傳速率;Bandwidthpeen=上傳數據內容總量/上傳時間Bandwidth。s_peCT,表示客戶端i從伺服器上下載數據內容的下載速率,客戶端i可以通過如下公式計算獲取該下載速率;Bandwidthcs_peer=從伺服器獲取的數據內容總量/獲取時間Ampi,用於表示客戶端i當前對數據內容在P2P網絡中的擴散能力,由於下載同一數據內容的下載速率相同,因此在同等的BandWidth。s_peCT的下載速率情況下,客戶端i的Ampi值越大,則客戶端i向其它客戶端提供的上傳速率就越高,它的數據內容擴散能力就越大。例如,伺服器設置該數據內容每次需要更新直接鄰居節點的更新值為1。作為直接鄰居節點的客戶端i、j、k對數據內容的傳輸放大係數假設依次為Ampi>Ampj>Ampk;假設客戶端A對數據內容上傳速率為IMb/s,客戶端B對數據內容上傳速率為500Kb/s,客戶端C對文數據內容上傳速率為300Kb/s,客戶端D對數據內容上傳速率為100Kb/S。則伺服器則可以根據預設的策略(即更新值為1)將客戶端K淘汰並將客戶端A確定為直接鄰居節點。或者,為保證內容分發能力較強的客戶端作為直接鄰居節點,伺服器還可以比較客戶端K與客戶端A的上傳速率,如果客戶端K的上傳速率小於客戶端A,則將客戶端K淘汰並將客戶端A確定為直接鄰居節點;如果客戶端K的上傳速率大於客戶端A,則可以保持現狀,即不將客戶端K淘汰。綜上所述,本發明實施例可以對直接鄰居節點進行更新,以保證內容分發能力較強的客戶端總是作為直接鄰居節點,並確定上傳速率最大的非直接鄰居節點作為直接鄰居節點。此外,伺服器還可以對直接鄰居節點的確定和更新設定周期,周期可以根據一定的時間長度確定,例如1分鐘,2分鐘,還可以根據接收到內容分發能力消息的間隔的平均時間確定。通過上述直接鄰居節點的更新,可以避免內容分發能力不穩定的客戶端在分發能力下降後仍作為直接鄰居節點以及某些非直接鄰居節點在分發能力提高卻不能作為直接鄰居節點的缺陷,從而保證數據內容分發的相對穩定。此外,設定一定的調整周期,可以避免一些上傳能力穩定的客戶端剛成為直接鄰居節點又被淘汰,保證直接鄰居節點的相對穩定。伺服器可以存儲有P2P網絡中獲取數據內容的所有客戶端的記錄,例如通過記錄信息表進行記錄,伺服器可以在記錄中將被確定為直接鄰居節點的客戶端進行標識,例如加上直接鄰居節點的標識,例如,在記錄中設置對應客戶端標識的直接鄰居節點標誌位,當標誌位置1時,表示該客戶端為直接鄰居節點;當標誌位置0時表示該客戶端為非直接鄰居節點,反之亦然。上述記錄中還可以記錄客戶端的內容傳輸放大係數Ampi以及客戶端對數據內容的上傳速率本發明實施例提供了一種客戶端記錄的存儲方式,如表ο一所示tableseeoriginaldocumentpage9表一其中客戶端標識可以是客戶端的IP位址,也可以是客戶端的名稱,URL等,上傳速率為本客戶端為其他客戶端提供數據內容的速率,直接鄰居節點標誌可以是BOOL型的數據,例如表一中的1表示其所對應的客戶端10.168.1.2為直接鄰居節點,0表示其所對應的客戶端10.168.1.0為非直接鄰居節點。記錄表中也可以包括直接鄰居節點具體的內容傳輸放大係數的值,例如表一中客戶端10.168.1.2所對應的內容傳輸放大係數為5,由於非直接鄰居節點不能從伺服器上獲取數據,即非直接鄰居節點從伺服器上獲得數據內容的下載速率為0,導致非直接鄰居節點的內容傳輸放大係數無意義,所以上述記錄表中可以不包含非直接鄰居節點的內容傳輸放大係數,例如表一中非直接鄰居節點10.168.1.0的內容傳輸放大係數為N/A。伺服器在接收到客戶端發送的內容分發能力消息後,可以對記錄中的數據進行更新。例如將表一中的上傳速率更新為內容分發能力消息中的數據內容的上傳速率Bandwidthpeeri,或將內容傳輸放大係數更新為內容分發能力消息中的內容傳輸放大係數Ampi0當直接鄰居節點被淘汰成為非直接鄰居節點時,表一中直接鄰居節點標誌位被置為0。除如表一中直接鄰居節點標識外,其他可以實現表示直接鄰居節點的方法也是可以的,例如,加上欄位名稱作為直接鄰居節點的標識。該記錄中還可以包含其他內容,比如客戶端的體驗值,客戶端所對應的域ID等等。本發明實施例所公開的確定直接鄰居節點的方法,其過程可以如上述多個實施例公開的確定方法,直接鄰居節點被確定後,其後續的數據傳輸過程可以進一步如步驟203、20所述,具體如下。步驟203,伺服器向沒有從伺服器獲取數據內容但被確定為直接鄰居節點的客戶端發送連接通知,以便於被確定為直接鄰居節點的客戶端從伺服器獲取數據內容;和/或伺服器向被確定為非直接鄰居節點的客戶端發送斷開連接通知,通知其斷開和伺服器的連接,並拒絕繼續向被淘汰成為非直接鄰居節點的客戶端提供數據內容。沒有從伺服器獲取數據內容但被確定為直接鄰居節點的客戶端在接收到上述連接通知後,可連接到伺服器並從伺服器上獲取數據內容。然後向伺服器發送包含傳輸放大係數和/或上傳速率的內容分發能力消息。當然,伺服器也可以在接收沒有從伺服器獲取數據內容但被確定為直接鄰居節點的客戶端發送的獲取數據內容的請求後,向其提供數據內容。而被確定為非直接鄰居節點的客戶端在接收到上述斷開連接通知後,將不再從伺服器獲取數據內容,並定期向伺服器發送包含上傳速率的內容分發能力消息。當然,伺服器也可以不通知這些被淘汰的直接鄰居節點而直接斷開。步驟204、當作為直接鄰居節點的客戶端請求從伺服器獲取數據內容時,伺服器向作為直接鄰居節點的客戶端提供數據內容。本實施例伺服器通過選擇上傳速率大的客戶端為直接鄰居節點,並將數據內容提供給直接鄰居節點,以便於具有較大分發能力的作為直接鄰居節點的客戶端從伺服器獲取數據內容後提供給其它客戶端,從而加快數據內容在網絡中的傳播,並減輕伺服器的下載壓力。根據本發明的另一實施例,伺服器可以為每個數據內容分配上傳帶寬B1、上傳帶寬的最低利用率Tl和上傳帶寬的最高利用率Th。並且,伺服器對數據內容設置有可以支持的直接鄰居節點數量閾值M。對於某個數據內容而言,其可以支持的直接鄰居節點數量閾值受伺服器支持的直接鄰居節點的總值和伺服器為某個數據內容的上傳帶寬影響。本發明實施例提供了伺服器調整直接鄰居節點的數量的方法流程圖,如圖3所示,具體內容可以如下所述。步驟301,伺服器獲取預設的各參數值,包括當前數據內容的直接鄰居節點的數量N、上傳帶寬的當前使用量U,上傳帶寬的最低利用率Tl、上傳帶寬的最高利用率Th以及可以支持的直接鄰居節點數量閾值M。302、伺服器根據上傳帶寬的最低利用率Tl和為數據內容分配上傳帶寬B1計算上傳帶寬的最低利用閾值Cl=B1^Tl0步驟303,伺服器。如果所述上傳帶寬的最低利用閾值Cl大於上傳帶寬的當前使用量U,即UCl時,執行步驟309。步驟304,伺服器根據當前數據內容的直接鄰居節點的數量N以及上傳帶寬的當前使用量U,計算當前直接鄰居節點的平均下載帶寬V=U/N。步驟305,伺服器計算為數據內容提供的剩餘上傳帶寬L=C1-U。此外,步驟304與步驟305之間沒有嚴格的時間順序。步驟306,伺服器根據所述數據內容提供的剩餘上傳帶寬L和所述當前直接鄰居節點的平均下載帶寬V計算可增加直接鄰居節點的數量D=L/V並取整。步驟307,伺服器根據所述當前數據內容的直接鄰居節點的數量N及所述可增加直接鄰居節點的數量D計算增加直接鄰居節點後的數量E=N+D;步驟308,確定需要增加的直接鄰居節點的數量D或F。具體包括伺服器判斷所述可以支持的直接鄰居節點數量閾值M大於或等於所述增加直接鄰居節點後的數量E,確定需要增加的直接鄰居節點的數量D;否則,計算需要增加的直接鄰居節點的數量F=M-N,並確定需要增加的直接鄰居節點的數量為F=M-N。步驟309,伺服器根據所述上傳帶寬的最高利用率Th和為數據內容分配上傳帶寬B1計算上傳帶寬的最高利用閾值C2=B1^Th0步驟310,伺服器判斷當前數據內容的上傳帶寬的當前使用量U是否大於上傳帶寬的最高利用閾值C2。若U>C2,則執行步驟311;若Cl<U<C2,可以執行步驟314,結束調整直接鄰居節點的數量流程。步驟311,伺服器根據當前數據內容的直接鄰居節點的數量N以及上傳帶寬的當前使用量U,計算當前直接鄰居節點的平均下載帶寬V=U/N。步驟312,伺服器根據伺服器上傳帶寬的當前使用量U和為數據內容分配上傳帶寬B1計算上傳帶寬的超出量E=U-B1^Th0步驟313,伺服器根據上傳帶寬的超出量E以及平均下載帶寬V確定需要減少的直接鄰居節點的數量G=E/V,取整數位加1個。對於以上流程也可以先執行步驟309到313,不滿足步驟309中的條件轉入步驟302處理,其原理與圖3所示原理相同,在此不再詳述。以實際應用中的情況為例,假設當前系統中共有10個直接鄰居節點下載數據內容,即N=10,而數據內容可以支持的直接鄰居節點數量閾值為15即M=15,Tl=80%,Th=95%,Bi=IOM0數據內容的上傳帶寬的當前使用量U為7M即U=7M,上傳帶寬的最低利用閾值Cl=B1*!!=8M。所以U<C1,且N<M。那麼此時需要增加直接鄰居節點的個數,伺服器按304-308的步驟進行操作計算V=U/N=0.7M,L=Cl-U=1M,從而得到可增加的直接鄰居中節點的數量D=L/V=1.3;對該值進行4舍5入則可以增加直接鄰居節點的個數為1個;計算增加直接鄰居節點後的數量E=N+D=10,並且E小於M。確定需要增加的直接鄰居節點的數量為D。其他根據網絡狀況以及客戶端下載連接狀況進行對直接鄰居節點的調整也是可以的,例如只設置上述Tl,Th其中的一個值,或不設置上述Tl,Th,當上傳帶寬的當前使用量U超過B1時對直接鄰居節點的個數進行調整。通過上述實施例,實現了伺服器根據客戶端的連接狀況以及網絡狀況對直接鄰居節點的個數進行調整,從而充分利用網絡帶寬資源,將數據內容提供給直接鄰居節點,利用儘可能多的直接鄰居節點的上傳能力使得數據內容更快的分發到P2P網絡當中。根據本發明的另一實施例,伺服器還可以承擔管理直接鄰居節點的角色。在實際應用中,還可能存在多個存儲有數據內容的伺服器,其中一個伺服器可以作為管理直接鄰居節點和非直接鄰導節點的管理伺服器,或獨立設置一個管理伺服器。管理伺服器接收客戶端在上述實施例中發送的消息,例如客戶端上報的內容分發能力消息,根據接收到的消息進行處理,例如確定直接鄰居節點或確定非直接鄰居節點,並將處理結果發送給存儲有數據內容的伺服器。例如將確定為直接鄰居節點的客戶端或確定為非直接鄰居節點的客戶端的記錄發送給存儲有數據內容的伺服器,以便於存儲有數據內容的伺服器為作為直接鄰居節點的客戶端提供數據內容,以及拒絕為作為非直接鄰居節點的客戶端提供數據內容。管理伺服器還可以進行直接鄰居節點更新處理,具體參考上述實施例的直接鄰居節點更新過程。管理伺服器還可以根據對直接鄰居節點的管理,對於確定的直接鄰居節點和淘汰的直接鄰居節點發送相應的通知消息。本發明實施例還提供一種伺服器,參照圖4,包括接收模塊401、確定模塊403,其中接收模塊401,用於接收客戶端發送的內容分發能力消息,所述內容分發能力消息中包含客戶端當前的內容分發能力。其中,所述內容分發能力可以是客戶端對數據內容的上傳速率和/或客戶端對數據內容的內容傳輸放大係數;確定模塊;403,用於根據接收到的客戶端的當前的內容分發能力確定直接鄰居節點。在本發明另外的實施例中的伺服器,仍然參照圖4,伺服器包括接收模塊401、確定模塊403和存儲模塊402,其中接收模塊401與前述實施例接收模塊401的功能相同;存儲模塊402,用於存儲每個數據內容可以支持的直接鄰居節點數量閾值,確定模塊403根據客戶端當前的內容分發能力從大到小的順序以及設置的直接鄰居節點數量閾值,在滿足所述直接鄰居節點數量閾值的條件下,確定相應數量的客戶端為直接鄰居節點。此外,在本實施例中,客戶端當前的內容分發能力為上傳速率。在本發明另外的實施例中的伺服器,仍然參照圖4,伺服器包括接收模塊401、確定模塊403和存儲模塊402,其中接收模塊401與前述實施例接收模塊401的功能相同;存儲模塊402用於存儲可以支持的直接鄰居節點數量閾值以及設置的直接鄰居節點更新值;確定模塊403具體用於根據設置的直接鄰居節點數量閾值以及設置的直接鄰居節點更新值,在滿足所述直接鄰居節點數量閾值的條件下,根據作為非直接鄰居節點的客戶端的當前內容分發能力從大到小的順序,確定相應更新值數量的非直接鄰居節點為直接鄰居節點;以及根據作為直接鄰居節點的客戶端的當前內容分發能力從小到大的順序,確定相應更新值數量的直接鄰居節點為非直接鄰居節點。。此外,在本實施例中,作為非直接鄰居節點的客戶端,其當前內容分發能力為上傳速率;所述作為直接鄰居節點的客戶端,其當前內容分發能力為內容傳輸放大係數。或者所有的客戶端當前的內容分發能力都為上傳速率。在以上伺服器的實施例中,確定模塊403具體確定直接鄰居節點的過程可以參考上述多個實施例所公開的伺服器確定直接鄰居節點的過程,例如圖2所對應的實施例步驟202所公開的確定過程,在此不再詳述。在以上伺服器的實施例中,所述伺服器還可以包括獲取模塊404、計算模塊405。其中,獲取模塊404,用於獲取數據內容的上傳帶寬的當前使用量;調整模塊405,用於根據所述上傳帶寬的當前使用量調整直接鄰居節點的數量。其中,調整模塊405具體調整直接鄰居節點的數量的過程可以考上述多個實施例所公開的伺服器調整直接鄰居節點的數量的過程,例如圖3所對應的實施例的過程,在此不再詳述。在以上伺服器的實施例中,所述伺服器還可以包括發送模塊405,用於向確定為直接鄰居節點的客戶端發送連接通知和/或向確定為非直接鄰居節點的客戶端發送斷開連接通知。此外,對於本發明的其它實施例的伺服器,例如管理伺服器,仍然可以參照圖4所對應的實施例。。當然,本發明實施例提供的伺服器還可以實現圖2,圖3伺服器能夠實現的任何功能,在此不再一一詳述。本發明實施例還提供一種客戶端,如圖5所示,可以包括獲取模塊501、發送模塊502。獲取模塊501,用於獲取對數據內容的內容分發能力;其中,所述內容分發能力可以是客戶端對數據內容的上傳速率和/或客戶端對數據內容的內容傳輸放大係數。例如,如果客戶端為直接鄰居節點,該獲取模塊501可以通過如下公式計算獲取內容分發能力formulaseeoriginaldocumentpage13其中Bandwidthpeeri表示客戶端對數據內容的上傳速率,即對其他客戶端的服務能力,獲取模塊501可以通過如下公式計算獲得該上傳速率Bandwidthpeen=上傳數據內容總量/上傳時間BandWidth。s_peCT,表示客戶端從伺服器上下載數據內容的下載速率,獲取模塊501可以通過如下公式計算獲得該下載速率Bandwidthcs_peer=從伺服器獲取的數據內容總量/獲取時間獲得如果客戶端為非直接鄰居節點,則客戶端的內容分發能力為可以為,具體的對獲取內容的分發能力可參考步驟201的介紹。發送模塊502,用於向伺服器發送內容分發能力消息,所述內容分發能力消息中包含客戶端當前的內容分發能力,以便於伺服器根據所述客戶端當前的內容分發能力確定直接鄰居節點。進一步的,本發明實施例提供的客戶端還包括接收模塊503,用於接收伺服器發送的連接通知或斷開連接通知。當然,本發明實施例提供的客戶端還可以實現圖2,圖3的客戶端能夠實現的任何功能,在此不再一一詳述。本發明實施例還提供一種系統,包括客戶端601、伺服器602。其中,客戶端601可以實現圖5所示客戶端的所有功能,伺服器602可以實現圖4所示的伺服器的所有功能,在此不再一一詳述。通過以上實施例的描述,本領域的技術人員可以清楚地了解到本發明可藉助軟體加必需的通用硬體平臺的方式來實現,當然也可以通過硬體,但很多情況下前者是更佳的實施方式。基於這樣的理解,本發明實施例的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該軟體產品存儲在一個存儲介質中,包括若干指令用以使得行動裝置(可以是手機,個人計算機,媒體播放器等)執行本發明各個實施例所述的方法。這裡所稱的存儲介質,如ROM/RAM、磁碟、光碟等。顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。權利要求一種確定直接鄰居節點的方法,其特徵在於接收客戶端發送的內容分發能力消息,所述內容分發能力消息中包含客戶端當前的內容分發能力;根據客戶端當前的內容分發能力確定直接鄰居節點。2.根據權利要求1所述的方法,其特徵在於,所述根據客戶端當前的內容分發能力確定直接鄰居節點具體包括根據客戶端當前的內容分發能力從大到小的順序以及設置的直接鄰居節點數量閾值,在滿足所述直接鄰居節點數量閾值的條件下,確定相應數量的客戶端為直接鄰居節點。3.根據權利要求1所述的方法,其特徵在於,所述根據客戶端當前的內容分發能力確定直接鄰居節點具體包括根據設置的直接鄰居節點數量閾值以及設置的直接鄰居節點更新值,在滿足所述直接鄰居節點數量閾值的條件下,根據作為非直接鄰居節點的客戶端的當前內容分發能力從大到小的順序,確定相應更新值數量的非直接鄰居節點為直接鄰居節點;以及根據作為直接鄰居節點的客戶端的當前內容分發能力從小到大的順序,確定相應更新值數量的直接鄰居節點為非直接鄰居節點。4.根據權利要求3所述的方法,其特徵在於,所述作為非直接鄰居節點的客戶端,其當前內容分發能力為上傳速率;所述作為直接鄰居節點的客戶端,其當前內容分發能力為內容傳輸放大係數。5.根據權利要求2或3所述的方法,其特徵在於,所述客戶端當前的內容分發能力為上傳速率。6.根據權利要求1-4任一所述的方法,其特徵在於,還包括獲取數據內容的上傳帶寬的當前使用量;根據上傳帶寬的最低利用閾值或最高利用閾值,以及所述上傳帶寬的當前使用量調整直接鄰居節點的數量。7.如權利要求6所述的方法,其特徵在於,所述根據上傳帶寬的最低利用閾值或最高利用閾值,以及所述上傳帶寬的當前使用量調整直接鄰居節點的數量具體為根據預設的上傳帶寬的最低利用率Tl和預設的為數據內容分配上傳帶寬B1計算上傳帶寬的最低利用閾值Cl;如果所述上傳帶寬的最低利用閾值Cl大於上傳帶寬的當前使用量U,則增加直接鄰居節點的數量;否則,根據預設的上傳帶寬的最高利用率Th和預設的為數據內容分配上傳帶寬B1計算上傳帶寬的最高利用閾值C2,如果所述上傳帶寬的最高利用閾值C2小於上傳帶寬的當前使用量U,則減少直接鄰居節點的數量。8.如權利要求7所述的方法,其特徵在於所述增加直接鄰居節點的數量具體為根據預設的當前數據內容的直接鄰居節點的數量N以及預設的上傳帶寬的當前使用量U,計算當前直接鄰居節點的平均下載帶寬V;根據預設的上傳帶寬的最低利用閾值Cl和預設的上傳帶寬的當前使用量U計算為數據內容提供的剩餘上傳帶寬L;根據所述數據內容提供的剩餘上傳帶寬L和所述當前直接鄰居節點的平均下載帶寬V計算可增加直接鄰居節點的數量D;根據所述當前數據內容的直接鄰居節點的數量N及所述可增加直接鄰居節點的數量D計算增加直接鄰居節點後的數量E;判斷所述可以支持的直接鄰居節點數量閾值M大於或等於所述增加直接鄰居節點後的數量E,確定需要增加的直接鄰居節點的數量D;否則,根據所述可以支持的直接鄰居節點數量閾值M及所述當前數據內容的直接鄰居節點的數量N計算需要增加的直接鄰居節點的數量F,並確定需要增加的直接鄰居節點的數量為F。9.如權利要求7所述的方法,其特徵在於所述減少直接鄰居節點的數量具體為根據所述上傳帶寬的最高利用率Th和為數據內容分配上傳帶寬B1計算上傳帶寬的最高利用閾值C2;判斷當前數據內容的上傳帶寬的當前使用量U大於上傳帶寬的最高利用閾值C2,並根據當前數據內容的直接鄰居節點的數量N以及上傳帶寬的當前使用量U,計算當前直接鄰居節點的平均下載帶寬V;伺服器根據伺服器上傳帶寬的當前使用量U和為數據內容分配上傳帶寬B1計算上傳帶寬的超出量E;根據上傳帶寬的超出量E以及平均下載帶寬V確定需要減少的直接鄰居節點的數量G。10.一種伺服器,其特徵在於,該伺服器包括接收模塊,用於接收客戶端發送的內容分發能力消息,所述內容分發能力消息中包含客戶端當前的內容分發能力;確定模塊,用於根據客戶端當前的內容分發能力確定直接鄰居節點。11.根據權利要求10所述的伺服器,其特徵在於,該伺服器還包括存儲模塊,用於存儲可以支持的直接鄰居節點數量閾值;其中所述確定模塊具體用於根據客戶端當前的內容分發能力從大到小的順序以及設置的直接鄰居節點數量閾值,在滿足所述直接鄰居節點數量閾值的條件下,確定相應數量的客戶端為直接鄰居節點。12.根據權利要求10所述的伺服器,其特徵在於,該伺服器還包括存儲模塊,用於存儲可以支持的直接鄰居節點數量閾值以及設置的直接鄰居節點更新值;所述確定模塊具體用於根據設置的直接鄰居節點數量閾值以及設置的直接鄰居節點更新值,在滿足所述直接鄰居節點數量閾值的條件下,根據作為非直接鄰居節點的客戶端的當前內容分發能力從大到小的順序,確定相應更新值數量的非直接鄰居節點為直接鄰居節點;以及根據作為直接鄰居節點的客戶端的當前內容分發能力從小到大的順序,確定相應更新值數量的直接鄰居節點為非直接鄰居節點。13.根據權利要求12所述的伺服器,其特徵在於,所述作為非直接鄰居節點的客戶端,其當前內容分發能力為上傳速率;所述作為直接鄰居節點的客戶端,其當前內容分發能力為內容傳輸放大係數。14.根據權利要求11或12所述的伺服器,其特徵在於,所述客戶端當前的內容分發能力為上傳速率。15.如權利要求10-13任一所述的,其特徵在於還包括獲取模塊,用於獲取數據內容的上傳帶寬的當前使用量;調整模塊,用於根據所述上傳帶寬的當前使用量調整直接鄰居節點的數量。16.根據權利要求12或13所述的伺服器,其特徵在於,還包括發送模塊,用於向確定為非直接鄰居節點的客戶端發送斷開連接通知,以及向確定為直接鄰居節點的客戶端發送連接通知。17.一種客戶端,其特徵在於,客戶端包括獲取模塊,用於獲取對數據內容的內容分發能力;發送模塊,用於發送內容分發能力消息,所述內容分發能力消息中包含客戶端當前的內容分發能力;以便於伺服器根據所述客戶端當前的內容分發能力確定直接鄰居節點。18.根據權利要求17所述的客戶端,其特徵在於,還包括接收模塊用於接收伺服器發送的連接通知或斷開連接通知。全文摘要本發明提供了一種確定直接鄰居節點的方法伺服器和客戶端,包括接收客戶端發送的內容分發能力消息,所述內容分發能力消息中包含客戶端當前的內容分發能力;根據接收到的客戶端的當前的內容分發能力確定直接鄰居節點。該方法通過利用直接鄰居節點對數據內容的內容分發能力確定直接鄰居節點,使得作為直接鄰居節點的客戶端可以很好的分發獲取到的數據內容。文檔編號H04L29/08GK101808079SQ200910105428公開日2010年8月18日申請日期2009年2月12日優先權日2009年2月12日發明者任立勇,侯孟書,戴芬,段翰聰申請人:華為技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀