專利名稱:為p2p網絡提供節點信息的服務器、方法及系統的制作方法
技術領域:
本發明涉及對等(peer to peer,簡稱為P2P)技術,更具體而言涉及為P2P網絡提 供節點信息的服務器、方法及系統。
背景技術:
P2P技術是近年來互聯網應用領域的一個熱點,它為因特網(Internet)用戶實現 資源共享提供了新的有效的方法。節點選擇是P2P網絡中一個關鍵的問題。當某個數據節 點需要與其他數據節點交換某個資源(即,數據項)時,它可向P2P網絡中的服務器發出請 求。服務器可找到擁有這個資源的數據節點,并且從中選擇一部分節點來返回給請求者。然 后請求者可以直接從這些節點下載其所需的資源。現有的P2P系統大多從擁有某個資源的節點中隨機選擇一部分節點,這種方法不 能有效的使用網絡。例如,大量的網絡流量經過因特網服務提供商(ISP)的骨干網,對骨干 網造成大的傳輸負載。或者,網絡流量頻繁的跨ISP傳輸,產生很多的跨網(跨ISP)流量。 另外,這種方法對所提供業務的質量和性能也有影響,因為即使P2P網絡中存在低通信延 時的節點,隨機節點選擇機制也可能選擇其他高通信延時的節點。為了解決這個問題,已經提出了新的基于位置信息的P2P系統,這種方法進行節 點選擇的時候,優先選擇“鄰近”的節點。通過選擇鄰近的節點來解決隨機節點選擇機制的 問題,從而有效的使用網絡,減少跨網流量,同時提高應用性能。2007年8月15日公開的題為“一種優化城域網內P2P傳輸的方法”的中國專利申 請公開CN101018172A (文獻1)中公開了一種針對城域網的P2P應用的優化方法。在文獻1 中,通過增加拓撲服務器和索引服務器,把P2P的流量盡量限制在網絡的邊緣發生,降低骨 干網的傳輸負載,因此避免P2P造成網絡堵塞。在 P4P Provider Portal for Applications,Haiyong Xie,Y. Richard Yang, Arvind Krishnamurthy, Yanbin Liu, Avi Silberschatz,in Sigcomm 2008 (文獻 2)中提 出了一種稱為P4P的新的架構,使得P2P應用和ISP之間進行更有效的合作,來進行網絡流 量的控制。這種機制在維持甚至提高現有的P2P應用性能的同時,還可以降低ISP的成本。在2008年8月6日公開的題為“一種引入矢量定位的移動對等網絡資源發現方 法”的中國專利申請公開CN101237467A(文獻3)中公開了一種引入矢量定位的移動對等網 絡資源發現方法。在該方法中,引入極坐標定位理論,對整個蜂窩網按照歸屬大區、距離和 方向進行區域劃分并建立包含位置矢量信息的新路由表,從而實現了蜂窩的快速準確定位 和資源的雙向查找。
圖1示出了文獻1中所述的城域網的結構。作為P2P網絡中的一個數據節點的用 戶計算機一般先接入樓宇交換機,再連接到小區交換機,然后連接到接入層交換機或路由 器(以下稱為接入交換機),進而接入到匯聚層交換機或路由器(以下稱為匯聚交換機), 最后連接到核心交換機或路由器。一般由一臺到多臺核心交換機或路由器構成城域網的核 心網,通常情況下一個樓宇交換機構成一個子網。
文獻1中的優化城域網內P2P傳輸的方法是1)當一個P2P節點需要下載某資源 (該節點被稱為請求方P2P節點)時,首先通過P2P索引服務器查詢到擁有該資源的P2P節 點列表(這些節點被稱為資源P2P節點);2)在資源P2P節點中尋找出與請求方P2P節點 在網絡上最鄰近的節點;3)請求方P2P節點從網絡上最鄰近的一個或多個資源P2P節點下 載資源。選擇請求方P2P節點的鄰近節點的算法如下首先選擇與請求方節點附接到同一 個樓宇交換機的節點,然后選擇與請求方節點附接到同一個小區交換機的節點,然后再選 擇與請求方節點附接到同一個接入交換機的節點,接著再選擇與請求方節點附接到同一個 匯聚交換機的節點,如果所選節點數目還不夠請求的數目,則所有的擁有該資源的節點都 被認為是鄰近的節點。這個方法使P2P流量盡量遠離核心網,在網絡的邊緣傳輸,從而降低 流經核心網和匯聚網等骨干網絡的P2P流量。為了查找鄰近節點,需要對城域網中的交換機或路由器進行編碼。如圖1所示,Sl 是匯聚交換機的編碼,取值從1到nl ;s2是接入交換機的編碼,取值從1到π2 ;s3是小區 交換機的編碼,取值從1到n3 ;s4是樓宇交換機的編碼,取值從1到π4。從核心網到每臺 計算機,所經過的交換機或路由器的編碼構成了這臺計算機的位置向量(位置信息)S = (sl,s2,s3,s4) ο查找鄰近節點的計算方法如下。定義兩個節點的位置向量分別為S= (sl,s2,s3, s4)和S’ = (sl’,s2’,s3’,s4’),那么這兩個節點的之間的距離向量D為D = (dl, d2, d3, d4)= (sl, s2, s3, s4)_(sl,,s2,,s3,,s4,)= (sl-sl,,s2_s2,,s3_s3,,s4_s4,),其中當si = si,時,di = 0,而當 si 乒 si,時,di = 1。定義兩個距離向量D = (dl, d2,d3,d4)和 D,= (dl,,d2,,d3,,d4,)的大小比
較方法為當dl=dl’, d2=d2’,d3 = d3’ i1 d4 = d4,時,D = D,;
當dl=1 且 dl:’ =0,或者
dl =dl,,d2 =1且d2,= 0,或者
dl =dl,,d2 =d2,,d3 = 1 且 d3,=0,或者
dl =dl,,d2 =d2,,d3 = d3,,d4=1 且 d4’=0 時,D > D距離向量D越小,表明兩個節點在網絡上越鄰近。拓撲服務器中的位置信息表存儲了城域網的拓撲信息,如表1所示。表1 位置信息表
權利要求
一種對等網絡中的服務器,包括位置信息存儲單元,該位置信息存儲單元存儲指示出所述對等網絡中的每個數據節點在一坐標系統中的坐標的坐標信息,該坐標系統是基于所述對等網絡中的數據節點之間的通信延時來創建的;以及節點信息提供單元,該節點信息提供單元在接收到對關于擁有第一數據項的數據節點的信息的請求后,基于所述位置信息存儲單元中存儲的坐標信息,從擁有所述第一數據項的數據節點中選擇一個或多個數據節點,并提供指示出所選擇的一個或多個數據節點的信息。
2.如權利要求1所述的服務器,其中,所述對等網絡包括M個數據節點1^,...,%}^ 是大于1的整數,并且所述坐標系統被創建為使得F =Hi ,H,…’ HM }最小化,其中Err ()是誤差函數,是基于兩個數據節點印和&之間的所測量的通信 延時的距離,知是這兩個數據節點氏和氏在所述坐標系統中的坐標之間的歐氏距離。
3.根據權利要求1所述的服務器,其中,所述節點信息提供單元包括節點選擇單元,該 節點選擇單元在所述位置信息存儲單元中查找擁有所述第一數據項的數據節點中的每一 個的坐標和第一數據節點的坐標,基于查找出的坐標計算擁有所述第一數據項的數據節點 中的每一個與所述第一數據節點之間的距離,并且按計算出的距離的升序從擁有所述第一 數據項的數據節點中選擇一個或多個數據節點。
4.如權利要求1所述的服務器,還包括節點信息存儲單元,該節點信息存儲單元對于 每個數據項,存儲指示出所述對等網絡中擁有該數據項的數據節點的節點信息。
5.如權利要求4所述的服務器,其中所述節點信息提供單元包括節點檢索單元,該節 點檢索單元在所述節點信息存儲單元中檢索出擁有所述第一數據項的數據節點。
6.如權利要求4所述的服務器,還包括節點信息更新單元,該節點信息更新單元在接 收到指示出第一數據節點擁有第二數據項的信息時,將接收到的信息添加到所述節點信息 存儲單元所存儲的節點信息中。
7.如權利要求4所述的服務器,其中,在所述節點信息存儲單元所存儲的節點信息中,擁有每個數據項的數據節點是按這些 數據節點在所述坐標系統中的坐標排列的;并且所述節點信息提供單元在接收到所述請求后,在所述位置信息存儲單元中查找第一數 據節點的坐標,并且在所述節點信息存儲單元所存儲的節點信息中排列的擁有所述第一數 據項的數據節點中,以所述第一數據節點的坐標為起始點,依序選擇一個或多個數據節點。
8.如權利要求6所述的服務器,其中,在所述節點信息存儲單元所存儲的節點信息中,擁有每個數據項的數據節點是按這些 數據節點在所述坐標系統中的坐標排列的;并且所述節點信息更新單元在接收到所述信息后,在所述位置信息存儲單元中查找所述第 一數據節點的坐標,并且按照查找出的坐標將接收到的信息添加到所述節點信息存儲單元 所存儲的節點信息中,以便基于所述第一數據節點的坐標將所述第一數據節點排列在擁有 所述第二數據項的數據節點之中。
9.如權利要求1所述的服務器,還包括位置信息更新單元,該位置信息更新單元在接 收到從第一數據節點反饋來的指示出所述第一數據節點與其他數據節點之間的數據項交 換的狀況的性能信息后,基于接收到的性能信息更新所述位置信息存儲單元中存儲的坐標 fn息ο
10. 一種在對等網絡中提供節點信息的方法,包括以下步驟 接收對關于擁有第一數據項的數據節點的信息的請求;基于坐標信息,從擁有所述第一數據項的數據節點中選擇一個或多個數據節點;以及 提供指示出所選擇的一個或多個數據節點的信息,其中所述坐標信息指示出所述對等網絡中的每個數據節點在一坐標系統中的坐標,該坐標 系統是基于所述對等網絡中的數據節點之間的通信延時來創建的。
11.如權利要求10所述的方法,其中,所述對等網絡包括M個數據節點!^,...,HmLM 是大于1的整數,并且所述坐標系統被創建為使得F = YjErriLij^ij)Hi ,Hj S{H!,..., Hm }最小化,其中ErrO是誤差函數,Lu是基于兩個數據節點Hi和&之間的所測量的通信 延時的距離,Clij是這兩個數據節點Hi和Hj在所述坐標系統中的坐標之間的歐氏距離。
12.如權利要求10所述的方法,其中,選擇一個或多個數據節點的步驟包括 在指示出擁有每個數據項的數據節點的節點信息中檢索出擁有所述第一數據項的數據節點;基于所述坐標信息查找擁有所述第一數據項的數據節點中的每一個的坐標和第一數 據節點的坐標;基于查找出的坐標計算擁有所述第一數據項的數據節點中的每一個與所述第一數據 節點之間的距離;以及按計算出的距離的升序從擁有所述第一數據項的數據節點中選擇一個或多個數據節點ο
13.如權利要求10所述的方法,還包括在接收到指示出第一數據節點擁有第二數據項的信息后,將接收到的信息添加到指示 擁有每個數據項的數據節點的節點信息中。
14.如權利要求10所述的方法,其中,在指示擁有每個數據項的數據節點的節點信息中,擁有每個數據項的數據節點是按這 些數據節點在所述坐標系統中的坐標排列的;并且 選擇一個或多個數據節點的步驟包括 基于所述坐標信息查找第一數據節點的坐標;以及在所述節點信息中排列的擁有所述第一數據項的數據節點中,以所述第一數據節點的 坐標為起始點,依序選擇一個或多個數據節點。
15.如權利要求13所述的方法,其中,在指示出擁有每個數據項的數據節點的節點信息中,擁有每個數據項的數據節點是按 這些數據節點在所述坐標系統中的坐標排列的;并且 將接收到的信息添加到所述節點信息中的步驟包括基于所述坐標信息查找所述第一數據節點的坐標;以及按照查找出的坐標將接收到的信息添加到所述節點信息中,以便基于所述第一數據節 點的坐標將所述第一數據節點排列在擁有所述第二數據項的數據節點之中。
16.如權利要求10所述的方法,還包括在接收到從第一數據節點反饋來的指示出所述第一數據節點與其他數據節點之間的 數據項交換的狀況的性能信息后,基于接收到的性能信息更新所述坐標信息。
17.—種在對等網絡中提供節點信息的系統,包括數據節點,該數據節點包括節點信息請求單元,該節點信息請求單元向服務器發送對關于擁有第一數據項的數據 節點的信息的請求;以及數據交換單元,該數據交換單元與所述服務器提供的信息中指示出的數據節點交換所 述第一數據項;以及服務器,該服務器包括位置信息存儲單元,該位置信息存儲單元存儲指示出所述對等網絡中的每個數據節點 在一坐標系統中的坐標的坐標信息,該坐標系統是基于所述對等網絡中的數據節點之間的 通信延時來創建的;以及節點信息提供單元,該節點信息提供單元在接收到來自所述數據節點的對關于擁有 所述第一數據項的數據節點的信息的請求后,基于所述位置信息存儲單元中存儲的坐標信 息,從擁有所述第一數據項的數據節點中選擇一個或多個數據節點,并向所述數據節點提 供指示出所選擇的一個或多個數據節點的信息。
18.如權利要求17所述的系統,其中,所述對等網絡包括M個數據節點{Hi,...,^}^ 是大于1的整數,并且所述坐標系統被創建為使得F = X ErriL^dij)HI ,H j e{H^HM }最小化,其中Err ()是誤差函數,是基于兩個數據節點印和&之間的所測量的通信 延時的距離,dij是這兩個數據節點氏和&在所述坐標系統中的坐標之間的歐氏距離。
19.根據權利要求17所述的系統,其中,所述節點信息提供單元包括節點選擇單元,該 節點選擇單元在所述位置信息存儲單元中查找擁有所述第一數據項的數據節點中的每一 個的坐標和所述數據節點的坐標,基于查找出的坐標計算擁有所述第一數據項的數據節點 中的每一個與所述數據節點之間的距離,并且按計算出的距離的升序從擁有所述第一數據 項的數據節點中選擇一個或多個數據節點。
20.如權利要求17所述的系統,其中,所述服務器還包括節點信息存儲單元,該節點信 息存儲單元對于每個數據項,存儲指示出所述對等網絡中擁有該數據項的數據節點的節點 fn息o
21.如權利要求20所述的系統,其中所述節點信息提供單元包括節點檢索單元,該節 點檢索單元在所述節點信息存儲單元中檢索出擁有所述第一數據項的數據節點。
22.如權利要求20所述的系統,其中,所述數據節點還包括數據信息報告單元,該數據信息報告單元向所述服務器報告指示 出所述數據節點擁有第二數據項的信息;并且所述服務器還包括節點信息更新單元,該節點信息更新單元在接收到所述數據節點所 報告的信息后,將接收到的信息添加到所述節點信息存儲單元所存儲的節點信息中。
23.如權利要求20所述的系統,其中,在所述節點信息存儲單元所存儲的節點信息中,擁有每個數據項的數據節點是按這些 數據節點在所述坐標系統中的坐標排列的;并且所述節點信息提供單元在接收到所述請求后,在所述位置信息存儲單元中查找所述數 據節點的坐標,并且在所述節點信息存儲單元所存儲的節點信息中排列的擁有所述第一數 據項的數據節點中,以所述數據節點的坐標為起始點,依序選擇一個或多個數據節點。
24.如權利要求22所述的系統,其中,在所述節點信息存儲單元所存儲的節點信息中,擁有每個數據項的數據節點是按這些 數據節點在所述坐標系統中的坐標排列的;并且所述節點信息更新單元在接收到來自所述數據節點的信息后,在所述位置信息存儲單 元中查找所述數據節點的坐標,并且按照查找出的坐標將接收到的信息添加到所述節點信 息存儲單元所存儲的節點信息中,以便基于所述數據節點的坐標將所述數據節點排列在擁 有所述第二數據項的數據節點之中。
25.如權利要求17所述的系統,其中所述數據節點還包括性能信息反饋單元,該信息反饋單元收集指示出所述數據節點與 其他數據節點之間的數據項交換的狀況的性能信息并將收集到的性能信息反饋給所述服 務器;并且所述服務器還包括位置信息更新單元,該位置信息更新單元在接收到從所述數據節點 反饋來的性能信息后,基于接收到的性能信息更新所述位置信息存儲單元中存儲的坐標信 肩、ο
全文摘要
本發明提供了為P2P網絡提供節點信息的服務器、方法及系統。一種對等網絡中的服務器包括位置信息存儲單元,存儲指示出對等網絡中的每個數據節點在一坐標系統中的坐標的坐標信息,該坐標系統是基于對等網絡中的數據節點之間的通信延時來創建的;以及節點信息提供單元,在接收到對關于擁有第一數據項的數據節點的信息的請求后,基于坐標信息,從擁有第一數據項的數據節點中選擇一個或多個數據節點,并提供指示出該一個或多個數據節點的信息。
文檔編號H04L29/08GK101938509SQ20091015103
公開日2011年1月5日 申請日期2009年6月29日 優先權日2009年6月29日
發明者劉永強, 夏勇, 胡艷, 黃權 申請人:日電(中國)有限公司