CN101938509B - 为p2p网络提供节点信息的服务器、方法及系统 - Google Patents
为p2p网络提供节点信息的服务器、方法及系统 Download PDFInfo
- Publication number
- CN101938509B CN101938509B CN200910151035.4A CN200910151035A CN101938509B CN 101938509 B CN101938509 B CN 101938509B CN 200910151035 A CN200910151035 A CN 200910151035A CN 101938509 B CN101938509 B CN 101938509B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- information
- nodes
- coordinates
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000004891 communication Methods 0.000 claims abstract description 48
- 230000001174 ascending effect Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 10
- 239000013598 vector Substances 0.000 description 9
- 230000002776 aggregation Effects 0.000 description 6
- 238000004220 aggregation Methods 0.000 description 6
- 230000001934 delay Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 235000019580 granularity Nutrition 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/121—Shortest path evaluation by minimising delays
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了为P2P网络提供节点信息的服务器、方法及系统。一种对等网络中的服务器包括:位置信息存储单元,存储指示出对等网络中的每个数据节点在一坐标系统中的坐标的坐标信息,该坐标系统是基于对等网络中的数据节点之间的通信延时来创建的;以及节点信息提供单元,在接收到对关于拥有第一数据项的数据节点的信息的请求后,基于坐标信息,从拥有第一数据项的数据节点中选择一个或多个数据节点,并提供指示出该一个或多个数据节点的信息。
Description
技术领域
本发明涉及对等(peertopeer,简称为P2P)技术,更具体而言涉及为P2P网络提供节点信息的服务器、方法及系统。
背景技术
P2P技术是近年来互联网应用领域的一个热点,它为因特网(Internet)用户实现资源共享提供了新的有效的方法。节点选择是P2P网络中一个关键的问题。当某个数据节点需要与其他数据节点交换某个资源(即,数据项)时,它可向P2P网络中的服务器发出请求。服务器可找到拥有这个资源的数据节点,并且从中选择一部分节点来返回给请求者。然后请求者可以直接从这些节点下载其所需的资源。
现有的P2P系统大多从拥有某个资源的节点中随机选择一部分节点,这种方法不能有效的使用网络。例如,大量的网络流量经过因特网服务提供商(ISP)的骨干网,对骨干网造成大的传输负载。或者,网络流量频繁的跨ISP传输,产生很多的跨网(跨ISP)流量。另外,这种方法对所提供业务的质量和性能也有影响,因为即使P2P网络中存在低通信延时的节点,随机节点选择机制也可能选择其他高通信延时的节点。
为了解决这个问题,已经提出了新的基于位置信息的P2P系统,这种方法进行节点选择的时候,优先选择“邻近”的节点。通过选择邻近的节点来解决随机节点选择机制的问题,从而有效的使用网络,减少跨网流量,同时提高应用性能。
2007年8月15日公开的题为“一种优化城域网内P2P传输的方法”的中国专利申请公开CN101018172A(文献1)中公开了一种针对城域网的P2P应用的优化方法。在文献1中,通过增加拓扑服务器和索引服务器,把P2P的流量尽量限制在网络的边缘发生,降低骨干网的传输负载,因此避免P2P造成网络堵塞。
在P4P:ProviderPortalforApplications,HaiyongXie,Y.RichardYang,ArvindKrishnamurthy,YanbinLiu,AviSilberschatz,inSigcomm2008(文献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所示,s1是汇聚交换机的编码,取值从1到n1;s2是接入交换机的编码,取值从1到n2;s3是小区交换机的编码,取值从1到n3;s4是楼宇交换机的编码,取值从1到n4。从核心网到每台计算机,所经过的交换机或路由器的编码构成了这台计算机的位置向量(位置信息):S=(s1,s2,s3,s4)。
查找邻近节点的计算方法如下。定义两个节点的位置向量分别为S=(s1,s2,s3,s4)和S’=(s1’,s2’,s3’,s4’),那么这两个节点的之间的距离向量D为:
D=(d1,d2,d3,d4)
=(s1,s2,s3,s4)-(s1’,s2’,s3’,s4’)
=(s1-s1’,s2-s2’,s3-s3’,s4-s4’),
其中当si=si’时,di=0,而当si≠si’时,di=1。
定义两个距离向量D=(d1,d2,d3,d4)和D’=(d1’,d2’,d3’,d4’)的大小比较方法为:
当d1=d1’,d2=d2’,d3=d3’且d4=d4’时,D=D’;
当d1=1且d1’=0,或者
d1=d1’,d2=1且d2’=0,或者
d1=d1’,d2=d2’,d3=1且d3’=0,或者
d1=d1’,d2=d2’,d3=d3’,d4=1且d4’=0时,D>D’。
距离向量D越小,表明两个节点在网络上越邻近。
拓扑服务器中的位置信息表存储了城域网的拓扑信息,如表1所示。
表1:位置信息表
子网IP地址 | 汇聚交换机编码s1 | 接入交换机编码s2 | 小区交换机编码s3 | 楼宇交换机编码s4 |
… | … | … | … | … |
10.30.11.65/26 | 2 | 3 | 5 | 4 |
10.30.11.129/26 | 2 | 3 | 5 | 5 |
… | … | … | … | … |
文献1使用计算机在城域网中的具体物理位置来表达此机器在P2P网络中的位置信息,表达方式是通过对城域网中的交换机或路由器进行编码,用从这台计算机到核心网所经过的交换机或路由器的编码构成此机器的位置向量。下文称这种表达方式为基于层次化编码的位置信息表达方式。
这种基于层次化编码的位置信息表达方式在精确性和可扩展性方面有局限性。
精确性是指系统返回的节点是否确切的是网络上“邻近”的节点,这样作出的节点选择是否既能提高应用性能,又能更有效的使用网络。例如,在文献1中采用的层次化编码方法中,当多个节点在树的同一层上时,这些节点与请求方节点之间的距离没法进行比较。在图1所示的示例中,如果某个接入交换机下的某个节点请求获知拥有某个数据项的10个节点,并且该接入交换机下有4个节点有该数据数据项,则这4个节点被选择为邻近节点。该接入交换机所属的汇聚交换机下还有96个节点有该数据项,这96个节点与请求方节点之间的距离用层次化编码的方法就没法进行比较,虽然其中有些节点与请求方节点在网络上更邻近。
可扩展性指的是系统能否很方便的扩展到更大规模的网络甚至整个因特网。基于层次化编码的位置信息表达方法适用于拓扑信息完全了解的城域网(即,知晓每一台计算机通过哪些交换机或路由器连接到核心网的城域网)。但是此方法不太容易被扩展到更大的网络甚至整个因特网,因为在更大的网络中,很难完全了解网络所有部分的拓扑信息。
另外,层次化编码通常需要预先设定一共用多少层来表达位置信息,以及每层具体表达的信息。例如,在文献1的方法中,位置信息被用汇聚交换机、接入交换机、小区交换机和楼宇交换机这四层来表达。这也使得此方法的灵活性和可扩展性受到限制。
发明内容
为了解决上述和其他问题,本发明提供了一种对等网络中的服务器,一种在对等网络中提供节点信息的方法,以及一种在对等网络中提供节点信息的系统,它们能够基于位置信息准确地提供节点信息,并且具有很强的灵活性和可扩展性。
根据本发明的一个方面,提供了一种对等网络中的服务器,包括:位置信息存储单元,该位置信息存储单元存储指示出所述对等网络中的每个数据节点在一坐标系统中的坐标的坐标信息,该坐标系统是基于所述对等网络中的数据节点之间的通信延时来创建的;以及节点信息提供单元,该节点信息提供单元在接收到对关于拥有第一数据项的数据节点的信息的请求后,基于所述位置信息存储单元中存储的坐标信息,从拥有所述第一数据项的数据节点中选择一个或多个数据节点,并提供指示出所选择的一个或多个数据节点的信息。
根据本发明的另一个方面,提供了一种在对等网络中提供节点信息的方法,包括以下步骤:接收对关于拥有第一数据项的数据节点的信息的请求;基于坐标信息,从拥有所述第一数据项的数据节点中选择一个或多个数据节点;以及提供指示出所选择的一个或多个数据节点的信息,其中所述坐标信息指示出所述对等网络中的每个数据节点在一坐标系统中的坐标,该坐标系统是基于所述对等网络中的数据节点之间的通信延时来创建的。
根据本发明的另一个方面,提供了一种在对等网络中提供节点信息的系统,包括:数据节点,该数据节点包括:节点信息请求单元,该节点信息请求单元向服务器发送对关于拥有第一数据项的数据节点的信息的请求;以及数据交换单元,该数据交换单元与所述服务器提供的信息中指示出的数据节点交换所述第一数据项;以及服务器,该服务器包括:位置信息存储单元,该位置信息存储单元存储指示出所述对等网络中的每个数据节点在一坐标系统中的坐标的坐标信息,该坐标系统是基于所述对等网络中的数据节点之间的通信延时来创建的;以及节点信息提供单元,该节点信息提供单元在接收到来自所述数据节点的对关于拥有所述第一数据项的数据节点的信息的请求后,基于所述位置信息存储单元中存储的坐标信息,从拥有所述第一数据项的数据节点中选择一个或多个数据节点,并向所述数据节点提供指示出所选择的一个或多个数据节点的信息。
本发明的其他目的、特征和优点将从以下结合附图的详细描述中更清楚显现出来。
附图说明
图1示出了现有技术的层次化编码方法的示意图。
图2示出了根据本发明第一实施例的系统的框图。
图3示出了为坐标系统选择不同粒度的示意图。
图4示出了根据本发明第一实施例的系统中执行的方法的过程流程。
图5示出了根据本发明的第一实施例的系统的一种具体实现方式的框图。
图6示出了图5所示的系统中执行的方法的过程流程。
图7示出根据本发明的第二实施例的系统的框图。
图8A示出了根据本发明第二实施例的节点信息存储单元中的节点信息表的存储方式的示意图。
图8B示出了根据本发明第二实施例的节点信息提供单元依序选择数据节点的示意图。
图9示出了根据本发明第二实施例的系统中执行的方法的过程流程。
图10示出了根据本发明的第三实施例的系统的框图。
图11示出了根据本发明第三实施例的系统中执行的方法的过程流程。
具体实施方式
首先对本文中使用的一些术语做出说明。
P2P网络(P2PNetwork):也可称为P2P系统。一个P2P网络可包括索引服务器(IndexingServer,也可称为Tracker或appTracker)、拓扑服务器(TopologySever,也可称为iTracker)、以及多个进行数据交换的数据节点。这些数据节点互为对端(peer)。注意,索引服务器和拓扑服务器可以只是逻辑上的划分,它们可统称为服务器。
数据节点(DataNode):也可称为节点或者主机,即P2P网络中的一个用户(机器)。数据节点是存储一个或多个数据项的全部或部分的实体。一个数据节点可拥有某个数据项,并且/或者请求从P2P网络中的其他节点(对端)下载(与其他节点交换)某个数据项。数据节点可以是任何一种能够存储数据并能通过网络与其他网络节点通信的信息处理装置,例如个人计算机(PC)、移动电话、个人数字助理(PDA),等等。
对端(peer):一个P2P系统中的各数据节点互为对端。
数据项:也可被称为数据、资源、数据文件,等等。数据项是P2P网络中的数据节点之间共享的资源,例如音频文件、视频文件、文本文件,等等。
节点信息:由服务器提供的、指示出拥有某个数据项D的全部或部分节点的信息。
位置信息:在本发明中,位置信息包括指示出每个数据节点在根据本发明的坐标系统中的坐标的坐标信息。
数据信息:由数据节点报告给服务器的、指示出该数据节点拥有某个数据项D的信息。
性能信息:由数据节点在数据交换过程之中或之后反馈给服务器的、反映数据交换的状况(例如通信延时,带宽等)的信息。
一个P2P网络中可包括多个数据节点,下面将以其中的某个特定数据节点P(即下文中所述的数据节点10)为例来进行说明。本领域的技术人员应该明白,P2P网络中的其他数据节点可具有与数据节点P相同或相似的结构,并按照与数据节点P相同或相似的方式与服务器交互。
下面参考附图来描述本发明的实施例。注意,在说明书和附图中,相同或相似的标号将用来指代相同或相似的要素。有时将省略对相同要素的重复描述。
图2示出了根据本发明第一实施例的系统1的框图。如图2所示,系统1包括数据节点10和服务器20。
这里的数据节点10表示P2P网络中的一个示例性数据节点P,它包括节点信息请求单元101、数据交换单元102以及数据信息报告单元103。
服务器20包括节点信息存储单元201、位置信息存储单元202、节点信息提供单元203以及节点信息更新单元204。
当数据节点10希望从P2P网络中的其他数据节点(即,对端)下载某一数据项D1时,它首先需要知道P2P网络中拥有该数据项D1的数据节点。为此,数据节点10的节点信息请求单元101向服务器20发送节点信息请求,以请求获取关于拥有数据项D1的数据节点的信息。注意,这里的“拥有数据项”指的是拥有数据项的至少一部分可供下载。
服务器20的节点信息存储单元201中存储着P2P网络中共享的所有数据项的节点信息,表明哪些节点上存储着某个特定的数据项。换言之,对于P2P网络中的数据节点之间共享的数据项中的每一个,所存储的节点信息指示出P2P网络中拥有该数据项的所有数据节点。例如,节点信息存储单元201可以如下所示的节点信息表的方式来存储节点信息。
表2:节点信息表
数据 | 节点 |
D1 | P1 |
D1 | P2 |
D1 | … |
D2 | P2 |
D2 | P3 |
D2 | … |
D3 | … |
位置信息存储单元202中存储着位置信息。具体而言,本发明的位置信息包括指示出P2P网络中的每个数据节点在根据本发明的坐标系统中的坐标的坐标信息。该坐标系统是基于P2P网络中的至少一部分数据节点之间的通信延时来创建的。换言之,位置信息存储单元202以坐标的方式存储整个P2P网络中所有节点的位置信息。这与文献1中基于层次化编码的位置信息表达方式是不同的。下面将对根据本发明的位置信息表达方式进行详细描述。
在本发明中,根据P2P网络中已知的数据节点之间的通信延时建立一个多维的欧氏坐标系统,为数据节点分配坐标,以预测任意节点之间的通信延时。预测出的节点之间的通信延时表达了它们在网络上的邻近程度。从而请求方节点可优先选择从邻近的数据节点下载数据项。
在根据本发明的坐标系统中,因特网中的每个数据节点都由坐标空间中的一个点来表示。例如,以三维欧氏空间为例,节点P的坐标是Cp=(xp,yp,zp)。两个节点之间的距离由空间中表示这两个节点的点之间的欧氏距离来表达。例如,坐标为(xp,yp,zp)的节点P和坐标为(xq,yq,zq)的节点Q之间的距离d为:
距离d越小,表明两个节点越邻近。
位置信息存储单元202中可以位置信息表的形式来存储位置信息。位置信息表存储了P2P网络中节点的坐标信息,例如下表3所示。
表3:位置信息表
节点ID | 子网IP地址 | 坐标C=(x,y,z) |
P | 129.3.1.0/24 | (10,20,30) |
P1 | 202.30.11.0/24 | (15,15,30) |
P2 | 166.134.3.0/24 | (25,35,40) |
… | … | … |
注意,以上的节点ID只是示例。
可根据P2P网络中数据节点之间的通信延时来创建坐标系统。假设P2P网络中有M个数据节点{H1,…,HM},其中M是大于1的整数。测量节点Hi和Hj之间的通信延时并基于此得出距离Lij,所有的Lij形成一个M*M的矩阵。这里的目标是为每个数据节点计算出一个坐标{C1,…,CM},使得基于测量出的通信延时的距离(即Lij)和通过欧氏空间坐标计算出来的距离(记为dij)的累计误差最小,也就是最小化以下目标函数F:
其中,Err()是误差函数。例如,可以选择如下的误差函数:
Err(Lij,dij)=(Lij-dij)2
有了Lij矩阵,计算坐标就是一个最优化问题,现有的研究成果可以近似的解决这个问题,比如Vivaldi:ADecentralizedNetworkCoordinateSystem,FrankDabek,etc,insigcomm2004(文献4)中描述的springforces方法,或者PredictingInternetNetworkDistancewithCoordinates-BasedApproaches,T.S.EugeneNgetc,inInfocom2002(文献5)中描述的simplexdownhill方法。
实际中的情况是,坐标系统初始建立时,只能测量到部分节点之间的通信延时,因为大规模的网络测量需要很大的代价。也就是说,在Lij形成的M*M的矩阵中,很多的Lij是没有值的。在系统的运行过程中,更多的通信延时信息被测量和采集。构建坐标系统(为每个节点计算一个坐标值C)的具体方法如下(以文献4中的springforces为例):
(1)在系统的M个节点{H1,…,HM}中选择I个路标节点{K1,…,KI},这些节点符合如下两个特点:
a.这些节点Ki,1≤i≤I与尽量多的其他节点Hj,1≤j≤M有已测量的通信延时值,即与尽量多的其他节点Hj,1≤j≤M之间有已测量的距离Lij,也称为有尽量多的邻居;
b.这些节点在坐标空间上尽量分散,具体表现为Ki,1≤i≤I和Kj,1≤j≤I之间的距离(Lij)尽量大;
(2)使用这I个路标节点之间基于测量的通信延时的距离Lij,用文献4中的springforces方法为这I个路标节点ki,1≤i≤I计算坐标C(Ki);
(3)为其他的R=M-I个节点{N1,…,NR}计算坐标,对于每个节点Ni:
a.先用此节点Ni与I个路标节点Kj,1≤j≤I之间基于测量的通信延时的距离Lij,用文献4中的springforces方法为此节点计算坐标CI,CI表示了此节点在坐标空间中的大致位置;
b.再用距离此节点比较近(Lij小)的那些节点与此节点Ni之间的基于测量的通信延时的距离Lij,用springforces方法更新CI,得到此节点在坐标空间中的准确位置,即Ni的坐标C(Ni)。
返回图2,节点信息提供单元203在接收到来自数据节点10的节点信息请求后,基于位置信息存储单元202中存储的坐标信息,从节点信息存储单元201存储的节点信息所指示的拥有数据项D1的数据节点中选择一个或多个数据节点,并向数据节点10提供指示出所选择的一个或多个数据节点的信息。
具体而言,在接收到请求后,节点信息提供单元203在节点信息存储单元201中检索出所有拥有数据项D1的数据节点,例如T个节点{P1,…,PT}。然后,节点信息提供单元203利用例如节点ID或节点的子网IP地址在位置信息存储单元202中查找拥有数据项D1的这些数据节点{P1,…,PT}中的每一个的坐标以及数据节点10的坐标。接着,节点信息提供单元203基于查找出的这些坐标计算每个拥有数据项D1的数据节点与数据节点10之间的距离。然后,节点信息提供单元203按计算出的距离从小到大的顺序从所有拥有数据项D1的数据节点中选择一部分数据节点,例如S个节点{Pi1,…,Pis}等等。在本发明中,所选择的数据节点的数目S可以是预定的或者是数据节点10或服务器20根据需要指定的。或者,也可以设置“距离小于某个预定阈值”的条件,使得所有满足该条件的数据节点被选择。这些都是本领域的技术人员所熟知的。所选择的这些数据节点就是与数据节点10最邻近的数据节点。节点信息提供单元203随后将选择出的邻近数据节点告知给数据节点10。
数据节点10中的节点信息请求单元101在接收到服务器20所告知的信息后,将该信息传达给数据交换单元102。数据交换单元102于是从服务器20提供的信息中指示出的邻近数据节点下载(或者说与这些数据节点交换)数据项D1。
另外,如图所示,数据节点10(即节点P)还包括数据信息报告单元103。当数据节点10拥有可与P2P网络中的其他数据节点交换的数据项D2时,为了使服务器20以及P2P网络中的其他数据节点能够获知这一信息,数据信息报告单元103向服务器20报告指示出数据节点10拥有数据项D2的数据信息,例如{D2:P}。
相应地,服务器20还包括节点信息更新单元204。节点信息更新单元204在接收到数据节点10中的数据信息报告单元103所报告的数据信息后,将接收到的信息(例如,{D2:P})添加到节点信息存储单元所存储的节点信息中以对节点信息进行更新。例如,添加了该信息的节点信息表如下表4所示(添加的条目用粗斜体示出)。
表4:节点信息表
数据 | 节点 |
D1 | P1 |
D1 | P2 |
D1 | … |
D2 | P |
D2 | P2 |
D2 | P3 |
D2 | … |
D3 | … |
如上所述,根据本发明的坐标系统的建立不需要了解数据节点的地理位置信息(比如此节点是在哪个国家及城市)和其他的网络拓扑信息(比如用户计算机到核心网所经过的交换机或路由器),而是根据测量出的节点之间的通信延时信息来确定节点的坐标。
另外,与文献1中的现有技术不同,坐标系统是非层次化的,也就是说,每一维坐标是平等的,而不是不同维的坐标表示不同级别的信息(比如国家,城市)或者不同类型的信息(比如接入交换机,小区交换机)。因此,不需要预先设定层数及每层表达的信息。
根据本发明的位置信息表达方法有更好的精确性和可扩展性。预测出的节点之间的通信延时表达了它们在网络上的邻近程度,优先选择从邻近的数据节点下载文件,提高了下载性能,同时减少了随机节点选择造成的大量的跨网流量。坐标系统的建立不需要了解数据节点的地理位置信息和其他的网络拓扑信息,而是根据测量出的节点之间的通信延时信息计算,因此有更好的可扩展性,可以适用于城域网,自治系统(AS)或者整个因特网。另外,坐标系统是非层次化的,不需要预先设定层数及每层表达的信息,使用起来更加灵活方便。
另外,当系统扩展到整个因特网时,坐标系统可以灵活地为不同的网络选择不同的粒度,对于了解更多信息的网络(有条件进行更多的通信延时的测量的网络),可以使用更细粒度的坐标,而对于了解少量信息的网络,可以使用粗粒度的坐标,如图3所示。
图4示出了根据本发明第一实施例的系统1中执行的方法的过程流程。
如图4所示,数据节点10和服务器20之间的交互可包括两个部分,即报告数据信息的第一部分,以及提供节点信息的第二部分。
在报告数据信息的第一部分中,在步骤S110中,当数据节点10拥有可与P2P网络中的其他数据节点交换的数据项D2时,数据信息报告单元103向服务器20报告指示出数据节点10拥有数据项D2的数据信息。
然后,在步骤S120中,服务器20的节点信息更新单元204在接收到数据节点10的数据信息报告单元103所报告的信息后,更新节点信息存储单元201所存储的节点信息以使其反映出接收到的信息。
在提供节点信息的第二部分中,在步骤S210中,数据节点10的节点信息请求单元101向服务器20发送节点信息请求,以请求获取关于拥有数据项D1的数据节点的信息。
节点信息提供单元203在接收到来自数据节点10的节点信息请求后,在步骤S220中,在节点信息存储单元201中检索出所有拥有数据项D1的数据节点。
然后,在步骤S230中,节点信息提供单元203在位置信息存储单元202中查找拥有数据项D1的所有数据节点中的每一个的坐标以及数据节点10的坐标,并且基于查找出的这些坐标计算每个拥有数据项D1的数据节点与数据节点10之间的距离。
接下来,在步骤S240中,节点信息提供单元203按计算出的距离的升序从所有拥有数据项D1的数据节点中选择一个或多个数据节点。所选择的这些数据节点就是与数据节点10最邻近的数据节点。
在步骤S250中,节点信息提供单元203随后将选择出的邻近数据节点告知给数据节点10。
本领域的技术人员应当明白,以上第一部分和第二部分的相对顺序只是示例。报告数据信息的第一部分也可在提供节点信息的第二部分之后执行或者与其并行执行。并且,报告数据信息的数据节点和接收从服务器提供的节点信息的数据节点当然可以是不同的数据节点,其中所涉及的数据项也可以是相同或不同的数据项。
图5是示出根据本发明的第一实施例的系统1的一种具体实现方式的框图。
在图5所示的具体实现方式中,服务器20根据具体功能进一步分为两个服务器。即,服务器20包括索引服务器20-1和拓扑服务器20-2。应当注意,这种划分是一般来说是逻辑上、功能上的划分,但并不一定是物理上的划分。例如,在一种实现方式中,索引服务器20-1和拓扑服务器20-2在物理上可以位于同一个位置,集成为一个服务器。在另一种实现方式中,索引服务器20-1和拓扑服务器20-2可以是位于不同位置的两个分开的服务器。
相应地,节点信息提供单元203可包括节点检索单元203-1和节点选择单元203-2。
节点检索单元203-1、节点信息存储单元201和节点信息更新单元204可包括在索引服务器20-1中。节点选择单元203-2和位置信息存储单元202可包括在拓扑服务器20-2中。
数据节点10的结构可与图2所示的相同。
节点检索单元203-1在接收到来自数据节点10中的节点信息请求单元101的要求获取关于拥有数据项D1的数据节点的信息的请求后,在节点信息存储单元201中检索出拥有数据项D1的数据节点,并且请求节点选择单元203-2从拥有数据项D1的数据节点中选择一个或多个与数据节点10邻近的数据节点。
节点选择单元203-2在接收到来自节点检索单元203-1的请求后,在位置信息存储单元202中查找拥有数据项D1的每个数据节点的坐标和数据节点10的坐标,基于查找出的坐标计算每个拥有数据项D1的数据节点与数据节点10之间的距离,按计算出的距离的升序从拥有数据项D1的数据节点中选择一个或多个数据节点,并将所选择的一个或多个数据节点通知给节点检索单元203-1。
节点检索单元203-1向数据节点10的节点信息请求单元101提供指示出所选择的这一个或多个数据节点的信息。
图6示出了图5所示的系统中执行的方法的过程流程。
图6所示的报告数据信息的第一部分与图4基本相同,这里将省略对其的描述。另外,同样,第一部分和第二部分的相对顺序只是示例。报告数据信息的第一部分也可在提供节点信息的第二部分之后执行或者与其并行执行。并且,报告数据信息的数据节点和接收从服务器提供的节点信息的数据节点可以是不同的数据节点,其中所涉及的数据项也可以是相同或不同的数据项。
在提供节点信息的第二部分中,在步骤S210中,数据节点10的节点信息请求单元101向服务器20发送节点信息请求,以请求获取关于拥有数据项D1的数据节点的信息。
节点信息提供单元203中的节点检索单元203-1在接收到来自数据节点10的节点信息请求后,在步骤S220中,在节点信息存储单元201中检索出所有拥有数据项D1的数据节点。
在接下来的步骤S221中,节点检索单元203-1向节点选择单元203-2发出请求,要求节点选择单元203-2从所有拥有数据项D1的数据节点中选择一些数据节点。
然后,在步骤S230中,节点选择单元203-2在位置信息存储单元202中查找拥有数据项D1的每个数据节点的坐标以及数据节点10的坐标,并且基于查找出的这些坐标计算每个拥有数据项D1的数据节点与数据节点10之间的距离。
接下来,在步骤S240中,节点选择单元203-2按计算出的距离的升序从所有拥有数据项D1的数据节点中选择一些数据节点。所选择的这些数据节点就是与数据节点10最邻近的数据节点。
在接下来的步骤S241中,节点选择单元203-2将其选择的一个或多个数据节点告知给节点检索单元203-1。
在步骤S250中,节点检索单元203-1随后将选择出的邻近数据节点告知给数据节点10。
图7示出根据本发明的第二实施例的系统1a的框图。
根据第二实施例的系统1a包括数据节点10和服务器20a。其中数据节点10可与图2所示的数据节点10相同。
本发明的第二实施例应用了选择邻近节点的改进算法。选择节点时要解决的问题是:一个请求方节点P请求关于数据项D1的节点,怎样在系统中找到拥有数据项D1的S个与节点P邻近的节点。根据第一实施例,先找到P2P网络中拥有数据项D1的所有共T个节点{P1,…,PT},然后计算请求方节点P与拥有数据项D1的所有节点{P1,…,PT}之间的距离di=distance(P,Pi),从最小的di开始按由小到大的顺序选择S个节点作为P的邻近节点。这种方法在T>>S的时候效率比较低。
根据第二实施例,服务器20a包括节点信息存储单元201a、位置信息存储单元202、节点信息提供单元203a和节点信息更新单元204a。
在节点信息存储单元201a所存储的节点信息中,拥有每个数据项的数据节点是按这些数据节点在坐标系统中的坐标来存储的。
具体而言,在第二实施例中,位置信息被结合到节点信息表中。也就是,假设{P1,…,PT}有数据项D1,将这些信息存储在节点信息表中时,是根据这T个节点在欧氏空间的位置的顺序来存储的。当为请求方节点P寻找邻近节点时,以P的坐标作为起始点,在欧氏空间中寻找P的邻居节点。这样大概S个节点会被访问和比较,而不是比较T个节点,在T>>S时大大加快了寻找邻近节点的速度。
下面的表5给出了在二维欧氏空间的情况下节点信息表的一个示例。如图所示,根据本实施例的节点信息表中包括每个节点的坐标信息。
表5:节点信息表
数据 | 节点 | 坐标 |
D1 | P1 | (5,6) |
D1 | P2 | (7,8) |
D1 | … | … |
D2 | P2 | (7,8) |
D2 | P3 | (3,10) |
D2 | … | … |
D3 | … | … |
图8A示出了根据本实施例的节点信息存储单元201a中的节点信息表的存储方式的示意图。如图8A所示,所有拥有数据项D1的节点的信息是按其每一维的坐标顺序存储的。例如,对于数据项D1,可以设置两个数组x[]和y[],分别存储所有拥有数据项D1的节点的x坐标和y坐标,以及指向相应节点的指针。例如,数组x[]的第i个元素存储着拥有数据项D1的所有节点的x坐标中的第i个x坐标xi,以及一个或多个指针,该一个或多个指针指向拥有数据项D1的节点中所有x坐标为xi的节点的信息。类似地,数组y[]的第j个元素存储着拥有数据项D1的所有节点的y坐标中的第j个y坐标yj,以及一个或多个指针,该一个或多个指针指向拥有数据项D1的节点中所有y坐标为yj的节点的信息。
相应地,节点信息更新单元204a在接收到某一数据节点(例如数据节点10)所报告的有关其拥有某一数据项(例如数据项D2)的信息后,首先在位置信息存储单元202中查找该数据节点10的坐标,并且按照查找出的坐标将接收到的信息以及该节点的坐标一起作为该节点的信息添加到节点信息存储单元所存储的节点信息中,以使得添加该节点的信息后的节点信息表仍以如上所述的方式按坐标存储。另外,节点信息提供单元203a在接收到来自某一数据节点(例如数据节点10,即节点P)的要求获取有关拥有某一数据项(例如数据项D1)的数据节点的信息的请求后,在位置信息存储单元202中查找数据节点10的坐标,并且在节点信息存储单元201a所存储的节点信息中列出的拥有数据项D1的数据节点中,以数据节点10的坐标为起点,在坐标空间中依序选择数据节点。图8B以坐标空间的方式示出了节点信息提供单元203a依序选择数据节点的示意图。假设坐标为(6,7)节点P请求关于数据项D1的S=5个节点,在例如以图8A所示的方式存储节点信息的节点信息存储单元201a中,节点信息提供单元203a从节点P的坐标开始,在每个维度上逐渐向两个方向扩展,所覆盖的区域内的节点为节点P的邻居节点。当找到足够多(例如,节点数目达到指定数目,或者距离达到某个阈值)的邻居节点时,停止扩展。
例如,节点信息提供单元203a先查看上述的x[]数组中是否有某个元素中存储着x坐标=6,同时y[]数组中是否有某个元素存储着y坐标=7,并且这两个元素还存储着指向同一个节点的指针。如果是,则表明存在坐标为(6,7)的另一个节点拥有数据项D1,此节点可被选择。在图8A和8B所示的情况下,不存在这样的节点。
然后,可查看x[]数组中是否有某个元素中存储着x坐标=6,同时y[]数组中是否有某个元素存储着y坐标=6,并且这两个元素还存储着指向同一个节点的指针。如果是,则表明存在坐标为(6,6)的另一个节点拥有数据项D1,此节点可被选择。在图8A和8B所示的情况下,不存在这样的节点。
然后,可查看x[]数组中是否有某个元素中存储着x坐标=6,同时y[]数组中是否有某个元素存储着y坐标=8,并且这两个元素还存储着指向同一个节点的指针。如果是,则表明存在坐标为(6,8)的另一个节点拥有数据项D1,此节点可被选择。在图8A和8B所示的情况下,不存在这样的节点。
然后,可查看x[]数组中是否有某个元素中存储着x坐标=5,同时y[]数组中是否有某个元素存储着y坐标=7,并且这两个元素还存储着指向同一个节点的指针。如果是,则表明存在坐标为(5,7)的另一个节点拥有数据项D1,此节点可被选择。在图8A和8B所示的情况下,不存在这样的节点。
然后,可查看x[]数组中是否有某个元素中存储着x坐标=7,同时y[]数组中是否有某个元素存储着y坐标=7,并且这两个元素还存储着指向同一个节点的指针。如果是,则表明存在坐标为(7,7)的另一个节点拥有数据项D1,此节点可被选择。在图8A和8B所示的情况下,不存在这样的节点。
然后,可查看x[]数组中是否有某个元素中存储着x坐标=5,同时y[]数组中是否有某个元素存储着y坐标=6,并且这两个元素还存储着指向同一个节点的指针。如果是,则表明存在坐标为(5,6)的另一个节点拥有数据项D1,此节点可被选择。如图8A和8B所示,此时找到一个节点P1(5,6),于是此节点作为拥有数据项D1且与节点P最接近的节点被选择。
然后,可查看x[]数组中是否有某个元素中存储着x坐标=5,同时y[]数组中是否有某个元素存储着y坐标=8,并且这两个元素还存储着指向同一个节点的指针。如果是,则表明存在坐标为(5,8)的另一个节点拥有数据项D1,此节点可被选择。在图8A和8B所示的情况下,不存在这样的节点。
然后,可查看x[]数组中是否有某个元素中存储着x坐标=7,同时y[]数组中是否有某个元素存储着y坐标=6,并且这两个元素还存储着指向同一个节点的指针。如果是,则表明存在坐标为(7,6)的另一个节点拥有数据项D1,此节点可被选择。在图8A和8B所示的情况下,不存在这样的节点。
然后,可查看x[]数组中是否有某个元素中存储着x坐标=7,同时y[]数组中是否有某个元素存储着y坐标=8,并且这两个元素还存储着指向同一个节点的指针。如果是,则表明存在坐标为(7,8)的另一个节点拥有数据项D1,此节点可被选择。如图8A和8B所示,此时又找到一个节点P2(7,8),于是此节点作为拥有数据项D1且与节点P较为接近的节点被选择。
依此类推,可以依次找出节点P4(5,9)、P7(10,8)以及P9(4,11)。此时已经找到了5个拥有数据项D1且与节点P相对接近的节点。于是这五个节点的信息被包括在节点信息中返回给发出请求的数据节点P。
如上所述,在节点信息存储单元201a中存储的节点信息表中,节点是根据其每维坐标的值顺序存储的,这样可以很方便地为指定的点找到其邻居节点。
图9示出了根据本发明第二实施例的系统1a中执行的方法的过程流程。
如图9所示,与图4中类似,数据节点10和服务器20a之间的交互可分为两个部分,即报告数据信息的第一部分,以及提供节点信息的第二部分。
在报告数据信息的第一部分中,在步骤S110中,当数据节点10拥有可与P2P网络中的其他数据节点交换的数据项D2时,数据信息报告单元103向服务器报告指示出数据节点10拥有数据项D2的数据信息。
在接下来的步骤S121中,服务器20的节点信息更新单元204a在接收到数据节点10的数据信息报告单元103所报告的信息后,在位置信息存储单元202中查找该数据节点10的位置信息,即坐标C(P)。
在步骤S122中,节点信息更新单元204a按照查找出的坐标将接收到的信息添加到节点信息存储单元所存储的节点信息中,以使得数据节点10基于其坐标被排列在拥有数据项D2的数据节点之中。
在第二部分中,当节点信息提供单元203a在接收到在步骤S210中从数据节点10发送来的要求获取有关拥有数据项D1数据节点的信息的请求后,在步骤S241中,节点信息提供单元203a在位置信息存储单元202中查找数据节点10的坐标C(P)。
在步骤S242中,节点信息提供单元203a在节点信息存储单元201a所存储的节点信息中列出的拥有数据项D1的数据节点中,以数据节点10的坐标为起点,依序选择数据节点。
在步骤S250中,节点信息提供单元203a将选择出的数据节点告知数据节点10。
同样,本领域的技术人员应当明白,以上第一部分和第二部分的相对顺序只是示例。报告数据信息的第一部分也可在提供节点信息的第二部分之后执行或者与其并行执行。并且,报告数据信息的数据节点和接收从服务器提供的节点信息的数据节点可以是不同的数据节点,其中所涉及的数据项也可以是相同或不同的数据项。
图10示出了根据本发明的第三实施例的系统1b的框图。
坐标系统初始建立的时候,只能测量到部分节点之间的通信延时,在系统的运行过程中,更多的通信延时信息可以被测量和采集。因此,位置信息表可以根据网络状况更新。具体的方法是,节点收集反映数据交换的状况的性能信息(通信延时,带宽等)并且反馈给服务器,用来更新节点的位置信息。
根据第三实施例的系统1b包括数据节点10b和服务器20b。
数据节点10b除了包括节点信息请求单元101、数据交换单元102、和数据信息报告单元103之外,还包括性能信息反馈单元104。
性能信息反馈单元104收集指示出数据节点10b与其他数据节点交换数据项的状况的性能信息并将其反馈给服务器20。性能信息是在数据节点10b与其他数据节点交换数据项的过程中统计的性能信息,其例如包括通信延时、带宽等等。
相应地,服务器20b包括位置信息更新单元205。位置信息更新单元205在接收到从数据节点10b的性能信息反馈单元104反馈来的信息后,基于接收到的信息更新位置信息存储单元202所存储的坐标信息。基于接收到的信息中包括的通信延时来更新坐标信息的方法与上述基于通信延时计算坐标信息的方法类似。
图11示出了根据本发明第三实施例的系统1b中执行的方法的过程流程。
如图11所示,数据节点10b和服务器20b之间的交互可分为三个部分,即报告数据信息的第一部分、提供节点信息的第二部分,以及更新位置信息的第三部分。
第一部分和第二部分与图9所示的相同,这里将省略对其的描述。
在第三部分中,在步骤S310中,性能信息反馈单元104收集指示出数据节点10b与其他数据节点交换数据项的状况的性能信息。
在步骤S320中,性能信息反馈单元104将收集到的性能信息反馈给服务器20。
在步骤S330中,服务器20b的位置信息更新单元205在接收到从数据节点10b的性能信息反馈单元104反馈来的信息后,基于接收到的信息更新位置信息存储单元202所存储的坐标信息。
同样,本领域的技术人员应当明白,以上第一部分、第二部分和第三部分的相对顺序只是示例。第一部分、第二部分和第三部分也可按其他顺序执行或并行执行。并且,报告数据信息的数据节点、接收从服务器提供的节点信息的数据节点和反馈性能信息的节点可以是不同的数据节点,其中所涉及的数据项也可以是相同或不同的数据项。
虽然已经描述了本发明的一些具体实施例,但是本领域的技术人员将会明白,可以对本发明进行多种修改、组合和替换,并且本发明包含落在所附权利要求书的范围内的这种修改、组合和替换。
例如,虽然图5示出了第一实施例的一种具体实现方式,但这种具体实现方式也可应用于第二实施例和第三实施例。
Claims (22)
1.一种对等网络中的服务器,包括:
位置信息存储单元,该位置信息存储单元存储指示出所述对等网络中的每个数据节点在一坐标系统中的坐标的坐标信息,该坐标系统是基于所述对等网络中的数据节点之间的通信延时来创建的;以及
节点信息提供单元,该节点信息提供单元在接收到对关于拥有第一数据项的数据节点的信息的请求后,基于所述位置信息存储单元中存储的坐标信息,从拥有所述第一数据项的数据节点中选择一个或多个数据节点,并提供指示出所选择的一个或多个数据节点的信息;
其中,
所述对等网络包括M个数据节点{H1,…,HM},M是大于1的整数,并且所述坐标系统被创建为使得
最小化,其中Err()是误差函数,Lij是基于两个数据节点Hi和Hj之间的所测量的通信延时的距离,dij是这两个数据节点Hi和Hj在所述坐标系统中的坐标之间的欧氏距离;
所述坐标系统的创建方法包括,
(1)在系统的M个节点H1,…,HM中选择I个路标节点K1,…,KI,这些节点符合如下两个特点:
a.这些节点Ki与尽量多的其他节点Hj之间有已测量的通信延时值,即与尽量多的其他节点Hj之间有已测量的距离Lij,其中1≤i≤I,1≤j≤M;
b.这些节点在坐标空间上尽量分散,具体表现为Ki和Kj之间的距离Lij尽量大,其中1≤i≤I,1≤j≤I;
(2)使用这I个路标节点之间基于测量的通信延时的距离Lij,为这I个路标节点Ki,1≤i≤I计算坐标C(Ki);
(3)为其他的R=M-I个节点N1,…,NR计算坐标,对于每个节点Ni:
a.先用此节点Ni与I个路标节点Kj之间基于测量的通信延时的距离Lij,为此节点计算坐标CI,CI表示了此节点在坐标空间中的大致位置,其中1≤j≤I;
b.再用Lij小的那些节点与此节点Ni之间的基于测量的通信延时的距离Lij更新CI,得到此节点在坐标空间中的准确位置,即Ni的坐标C(Ni)。
2.根据权利要求1所述的服务器,其中,所述节点信息提供单元包括节点选择单元,该节点选择单元在所述位置信息存储单元中查找拥有所述第一数据项的数据节点中的每一个的坐标和请求所述信息的第一数据节点的坐标,基于查找出的坐标计算拥有所述第一数据项的数据节点中的每一个与所述第一数据节点之间的距离,并且按计算出的距离的升序从拥有所述第一数据项的数据节点中选择一个或多个数据节点。
3.如权利要求1所述的服务器,还包括节点信息存储单元,该节点信息存储单元对于每个数据项,存储指示出所述对等网络中拥有该数据项的数据节点的节点信息。
4.如权利要求3所述的服务器,其中所述节点信息提供单元包括节点检索单元,该节点检索单元在所述节点信息存储单元中检索出拥有所述第一数据项的数据节点。
5.如权利要求3所述的服务器,还包括节点信息更新单元,该节点信息更新单元在接收到指示出请求所述信息的第一数据节点拥有第二数据项的信息时,将接收到的信息添加到所述节点信息存储单元所存储的节点信息中。
6.如权利要求3所述的服务器,其中,
在所述节点信息存储单元所存储的节点信息中,拥有每个数据项的数据节点是按这些数据节点在所述坐标系统中的坐标排列的;并且
所述节点信息提供单元在接收到所述请求后,在所述位置信息存储单元中查找请求所述信息的第一数据节点的坐标,并且在所述节点信息存储单元所存储的节点信息中排列的拥有所述第一数据项的数据节点中,以所述第一数据节点的坐标为起始点,依序选择一个或多个数据节点。
7.如权利要求5所述的服务器,其中,
在所述节点信息存储单元所存储的节点信息中,拥有每个数据项的数据节点是按这些数据节点在所述坐标系统中的坐标排列的;并且
所述节点信息更新单元在接收到指示出第一数据节点拥有第二数据项的信息后,在所述位置信息存储单元中查找所述第一数据节点的坐标,并且按照查找出的坐标将接收到的信息添加到所述节点信息存储单元所存储的节点信息中,以便基于所述第一数据节点的坐标将所述第一数据节点排列在拥有所述第二数据项的数据节点之中。
8.如权利要求1所述的服务器,还包括位置信息更新单元,该位置信息更新单元在接收到从请求所述信息的第一数据节点反馈来的指示出所述第一数据节点与其他数据节点之间的数据项交换的状况的性能信息后,基于接收到的性能信息更新所述位置信息存储单元中存储的坐标信息。
9.一种在对等网络中提供节点信息的方法,包括以下步骤:
接收对关于拥有第一数据项的数据节点的信息的请求;
基于坐标信息,从拥有所述第一数据项的数据节点中选择一个或多个数据节点;以及
提供指示出所选择的一个或多个数据节点的信息,其中
所述坐标信息指示出所述对等网络中的每个数据节点在一坐标系统中的坐标,该坐标系统是基于所述对等网络中的数据节点之间的通信延时来创建的;
其中,
所述对等网络包括M个数据节点{H1,…,HM},M是大于1的整数,并且所述坐标系统被创建为使得
最小化,其中Err()是误差函数,Lij是基于两个数据节点Hi和Hj之间的所测量的通信延时的距离,dij是这两个数据节点Hi和Hj在所述坐标系统中的坐标之间的欧氏距离;
所述坐标系统的创建方法包括,
(1)在系统的M个节点H1,…,HM中选择I个路标节点K1,…,KI,这些节点符合如下两个特点:
a.这些节点Ki与尽量多的其他节点Hj之间有已测量的通信延时值,即与尽量多的其他节点Hj之间有已测量的距离Lij,其中1≤i≤I,1≤j≤M;
b.这些节点在坐标空间上尽量分散,具体表现为Ki和Kj之间的距离Lij尽量大,其中1≤i≤I,1≤j≤I;
(2)使用这I个路标节点之间基于测量的通信延时的距离Lij,为这I个路标节点Ki,1≤i≤I计算坐标C(Ki);
(3)为其他的R=M-I个节点N1,…,NR计算坐标,对于每个节点Ni:
a.先用此节点Ni与I个路标节点Kj之间基于测量的通信延时的距离Lij,为此节点计算坐标CI,CI表示了此节点在坐标空间中的大致位置,其中1≤j≤I;
b.再用Lij小的那些节点与此节点Ni之间的基于测量的通信延时的距离Lij更新CI,得到此节点在坐标空间中的准确位置,即Ni的坐标C(Ni)。
10.如权利要求9所述的方法,其中,选择一个或多个数据节点的步骤包括:
在指示出拥有每个数据项的数据节点的节点信息中检索出拥有所述第一数据项的数据节点;
基于所述坐标信息查找拥有所述第一数据项的数据节点中的每一个的坐标和请求所述信息的第一数据节点的坐标;
基于查找出的坐标计算拥有所述第一数据项的数据节点中的每一个与所述第一数据节点之间的距离;以及
按计算出的距离的升序从拥有所述第一数据项的数据节点中选择一个或多个数据节点。
11.如权利要求9所述的方法,还包括:
在接收到指示出请求所述信息的第一数据节点拥有第二数据项的信息后,将接收到的信息添加到指示拥有每个数据项的数据节点的节点信息中。
12.如权利要求9所述的方法,其中,
在指示拥有每个数据项的数据节点的节点信息中,拥有每个数据项的数据节点是按这些数据节点在所述坐标系统中的坐标排列的;并且
选择一个或多个数据节点的步骤包括:
基于所述坐标信息查找请求所述信息的第一数据节点的坐标;以及
在所述节点信息中排列的拥有所述第一数据项的数据节点中,以所述第一数据节点的坐标为起始点,依序选择一个或多个数据节点。
13.如权利要求11所述的方法,其中,
在指示出拥有每个数据项的数据节点的节点信息中,拥有每个数据项的数据节点是按这些数据节点在所述坐标系统中的坐标排列的;并且
将接收到的信息添加到所述节点信息中的步骤包括:
基于所述坐标信息查找所述第一数据节点的坐标;以及
按照查找出的坐标将接收到的信息添加到所述节点信息中,以便基于所述第一数据节点的坐标将所述第一数据节点排列在拥有所述第二数据项的数据节点之中。
14.如权利要求9所述的方法,还包括:
在接收到从请求所述信息的第一数据节点反馈来的指示出所述第一数据节点与其他数据节点之间的数据项交换的状况的性能信息后,基于接收到的性能信息更新所述坐标信息。
15.一种在对等网络中提供节点信息的系统,包括:
数据节点,该数据节点包括:
节点信息请求单元,该节点信息请求单元向服务器发送对关于拥有第一数据项的数据节点的信息的请求;以及
数据交换单元,该数据交换单元与所述服务器提供的信息中指示出的数据节点交换所述第一数据项;以及
服务器,该服务器包括:
位置信息存储单元,该位置信息存储单元存储指示出所述对等网络中的每个数据节点在一坐标系统中的坐标的坐标信息,该坐标系统是基于所述对等网络中的数据节点之间的通信延时来创建的;以及
节点信息提供单元,该节点信息提供单元在接收到来自所述数据节点的对关于拥有所述第一数据项的数据节点的信息的请求后,基于所述位置信息存储单元中存储的坐标信息,从拥有所述第一数据项的数据节点中选择一个或多个数据节点,并向请求所述信息的所述数据节点提供指示出所选择的一个或多个数据节点的信息;
其中,所述对等网络包括M个数据节点{H1,…,HM},M是大于1的整数,并且所述坐标系统被创建为使得
最小化,其中Err()是误差函数,Lij是基于两个数据节点Hi和Hj之间的所测量的通信延时的距离,dij是这两个数据节点Hi和Hj在所述坐标系统中的坐标之间的欧氏距离;
所述坐标系统的创建方法包括,
(1)在系统的M个节点H1,…,HM中选择I个路标节点K1,…,KI,这些节点符合如下两个特点:
a.这些节点Ki与尽量多的其他节点Hj之间有已测量的通信延时值,即与尽量多的其他节点Hj之间有已测量的距离Lij,其中1≤i≤I,1≤j≤M;
b.这些节点在坐标空间上尽量分散,具体表现为Ki和Kj之间的距离Lij尽量大,其中1≤i≤I,1≤j≤I;
(2)使用这I个路标节点之间基于测量的通信延时的距离Lij,为这I个路标节点Ki,1≤i≤I计算坐标C(Ki);
(3)为其他的R=M-I个节点N1,…,NR计算坐标,对于每个节点Ni:
a.先用此节点Ni与I个路标节点Kj之间基于测量的通信延时的距离Lij,为此节点计算坐标CI,CI表示了此节点在坐标空间中的大致位置,其中1≤j≤I;
b.再用Lij小的那些节点与此节点Ni之间的基于测量的通信延时的距离Lij更新CI,得到此节点在坐标空间中的准确位置,即Ni的坐标C(Ni)。
16.根据权利要求15所述的系统,其中,所述节点信息提供单元包括节点选择单元,该节点选择单元在所述位置信息存储单元中查找拥有所述第一数据项的数据节点中的每一个的坐标和请求所述信息的所述数据节点的坐标,基于查找出的坐标计算拥有所述第一数据项的数据节点中的每一个与请求所述信息的所述数据节点之间的距离,并且按计算出的距离的升序从拥有所述第一数据项的数据节点中选择一个或多个数据节点。
17.如权利要求15所述的系统,其中,所述服务器还包括节点信息存储单元,该节点信息存储单元对于每个数据项,存储指示出所述对等网络中拥有该数据项的数据节点的节点信息。
18.如权利要求17所述的系统,其中所述节点信息提供单元包括节点检索单元,该节点检索单元在所述节点信息存储单元中检索出拥有所述第一数据项的数据节点。
19.如权利要求17所述的系统,其中,
请求所述信息的所述数据节点还包括数据信息报告单元,该数据信息报告单元向所述服务器报告指示出请求所述信息的所述数据节点拥有第二数据项的信息;并且
所述服务器还包括节点信息更新单元,该节点信息更新单元在接收到请求所述信息的所述数据节点所报告的信息后,将接收到的信息添加到所述节点信息存储单元所存储的节点信息中。
20.如权利要求17所述的系统,其中,
在所述节点信息存储单元所存储的节点信息中,拥有每个数据项的数据节点是按这些数据节点在所述坐标系统中的坐标排列的;并且
所述节点信息提供单元在接收到所述请求后,在所述位置信息存储单元中查找请求所述信息的所述数据节点的坐标,并且在所述节点信息存储单元所存储的节点信息中排列的拥有所述第一数据项的数据节点中,以请求所述信息的所述数据节点的坐标为起始点,依序选择一个或多个数据节点。
21.如权利要求19所述的系统,其中,
在所述节点信息存储单元所存储的节点信息中,拥有每个数据项的数据节点是按这些数据节点在所述坐标系统中的坐标排列的;并且
所述节点信息更新单元在接收到来自请求所述信息的所述数据节点的信息后,在所述位置信息存储单元中查找请求所述信息的所述数据节点的坐标,并且按照查找出的坐标将接收到的信息添加到所述节点信息存储单元所存储的节点信息中,以便基于请求所述信息的所述数据节点的坐标将请求所述信息的所述数据节点排列在拥有所述第二数据项的数据节点之中。
22.如权利要求15所述的系统,其中
请求所述信息的所述数据节点还包括性能信息反馈单元,该信息反馈单元收集指示出请求所述信息的所述数据节点与其他数据节点之间的数据项交换的状况的性能信息并将收集到的性能信息反馈给所述服务器;并且
所述服务器还包括位置信息更新单元,该位置信息更新单元在接收到从请求所述信息的所述数据节点反馈来的性能信息后,基于接收到的性能信息更新所述位置信息存储单元中存储的坐标信息。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910151035.4A CN101938509B (zh) | 2009-06-29 | 2009-06-29 | 为p2p网络提供节点信息的服务器、方法及系统 |
PCT/CN2010/000899 WO2011000209A1 (zh) | 2009-06-29 | 2010-06-21 | 为p2p网络提供节点信息的服务器、方法及系统 |
US13/000,981 US8483089B2 (en) | 2009-06-29 | 2010-06-21 | Server, method and system for providing node information for P2P network |
EP10785307.9A EP2451126A4 (en) | 2009-06-29 | 2010-06-21 | SERVER, METHOD AND SYSTEM FOR COMMUNICATING INFORMATION FROM P2P NETWORK N UDS |
JP2012516483A JP5692757B2 (ja) | 2009-06-29 | 2010-06-21 | P2pネットワークのノード情報を提供するサーバ、方法、およびシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910151035.4A CN101938509B (zh) | 2009-06-29 | 2009-06-29 | 为p2p网络提供节点信息的服务器、方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101938509A CN101938509A (zh) | 2011-01-05 |
CN101938509B true CN101938509B (zh) | 2015-11-25 |
Family
ID=43391637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910151035.4A Expired - Fee Related CN101938509B (zh) | 2009-06-29 | 2009-06-29 | 为p2p网络提供节点信息的服务器、方法及系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8483089B2 (zh) |
EP (1) | EP2451126A4 (zh) |
JP (1) | JP5692757B2 (zh) |
CN (1) | CN101938509B (zh) |
WO (1) | WO2011000209A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8856320B2 (en) * | 2011-02-16 | 2014-10-07 | International Business Machines Corporation | Locating a target computer device in an array |
WO2013152312A1 (en) * | 2012-04-06 | 2013-10-10 | Interdigital Patent Holdings, Inc. | Optimization of peer-to-peer content delivery service |
CN103327121A (zh) * | 2013-07-10 | 2013-09-25 | 亿览在线网络技术(北京)有限公司 | 一种p2p网络资源传输方法和装置 |
EP4383272A2 (en) * | 2014-02-21 | 2024-06-12 | The University of Akron | Imaging and display system for guiding medical interventions |
CN109981346B (zh) * | 2019-02-21 | 2020-07-10 | 清华大学 | 基于自治系统的网络空间坐标系创建方法及装置 |
CN110505280B (zh) * | 2019-07-29 | 2022-10-25 | 网宿科技股份有限公司 | P2p传输的控制方法及p2p节点 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1925437A (zh) * | 2005-08-29 | 2007-03-07 | 国际商业机器公司 | 用于检测网络中状态改变的系统及方法 |
CN101098272A (zh) * | 2006-06-27 | 2008-01-02 | 腾讯科技(深圳)有限公司 | P2p系统中的种子查询方法及p2p服务器 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418454B2 (en) * | 2004-04-16 | 2008-08-26 | Microsoft Corporation | Data overlay, self-organized metadata overlay, and application level multicasting |
CN101018172A (zh) | 2007-02-09 | 2007-08-15 | 浪潮电子信息产业股份有限公司 | 一种优化城域网内p2p传输的方法 |
CN100536422C (zh) * | 2007-04-04 | 2009-09-02 | 中兴通讯股份有限公司 | 对等网络及其网络资源查询方法 |
KR101409991B1 (ko) * | 2007-04-16 | 2014-06-20 | 삼성전자주식회사 | P2p 통신 환경에서의 데이터 전송 방법 및 장치 |
US8930522B2 (en) * | 2007-06-29 | 2015-01-06 | Alcatel Lucent | Replica/cache locator, an overlay network and a method to locate replication tables and caches therein |
US7792061B2 (en) * | 2007-07-05 | 2010-09-07 | Ooma, Inc. | System and method for obtaining localized information through a structured overlay network |
US8332375B2 (en) * | 2007-08-29 | 2012-12-11 | Nirvanix, Inc. | Method and system for moving requested files from one storage location to another |
CN100518129C (zh) * | 2007-12-10 | 2009-07-22 | 华中科技大学 | 混杂式对等网络环境下的通用资源管理方法 |
TWI358647B (en) * | 2007-12-28 | 2012-02-21 | Ind Tech Res Inst | Data classification system and method for building |
CN101237467A (zh) | 2008-03-06 | 2008-08-06 | 北京邮电大学 | 一种引入矢量定位的移动对等网络资源发现方法 |
CN101437045B (zh) * | 2008-12-18 | 2012-04-25 | 腾讯科技(深圳)有限公司 | P2p系统中中转节点的选择方法及p2p节点 |
-
2009
- 2009-06-29 CN CN200910151035.4A patent/CN101938509B/zh not_active Expired - Fee Related
-
2010
- 2010-06-21 WO PCT/CN2010/000899 patent/WO2011000209A1/zh active Application Filing
- 2010-06-21 JP JP2012516483A patent/JP5692757B2/ja not_active Expired - Fee Related
- 2010-06-21 EP EP10785307.9A patent/EP2451126A4/en not_active Withdrawn
- 2010-06-21 US US13/000,981 patent/US8483089B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1925437A (zh) * | 2005-08-29 | 2007-03-07 | 国际商业机器公司 | 用于检测网络中状态改变的系统及方法 |
CN101098272A (zh) * | 2006-06-27 | 2008-01-02 | 腾讯科技(深圳)有限公司 | P2p系统中的种子查询方法及p2p服务器 |
Non-Patent Citations (1)
Title |
---|
Frank Dabek等.Vivaldi:A Decentralized Network Coordinate System.《SIGCOMM’04》.2004,摘要,第1-7节. * |
Also Published As
Publication number | Publication date |
---|---|
US20120124226A1 (en) | 2012-05-17 |
JP2012531765A (ja) | 2012-12-10 |
EP2451126A1 (en) | 2012-05-09 |
JP5692757B2 (ja) | 2015-04-01 |
WO2011000209A1 (zh) | 2011-01-06 |
CN101938509A (zh) | 2011-01-05 |
EP2451126A4 (en) | 2015-01-21 |
US8483089B2 (en) | 2013-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101938509B (zh) | 为p2p网络提供节点信息的服务器、方法及系统 | |
US7644167B2 (en) | Identifying a service node in a network | |
US7483391B2 (en) | Providing a notification including location information for nodes in an overlay network | |
JP3809872B2 (ja) | クラスタ化したノード構成でのマスタ・ノードの選択 | |
US8756253B2 (en) | Two-level structured overlay design for cluster management in a peer-to-peer network | |
US7788400B2 (en) | Utilizing proximity information in an overlay network | |
US20050204042A1 (en) | Requesting a service from a multicast network | |
US7773609B2 (en) | Overlay network system which constructs and maintains an overlay network | |
Zhang et al. | Continuous k-means monitoring over moving objects | |
CN110022234B (zh) | 面向边缘计算的非结构化数据共享机制实现方法 | |
Mohan et al. | Managing data in computational edge clouds | |
CN105357247A (zh) | 基于分层云对等网络的多维属性云资源区间查找方法 | |
CN101399765A (zh) | 降低对等网络中热点节点负荷的方法和系统 | |
CN101753567A (zh) | 用于运营商主动参与的对等网络的资源共享方法 | |
CN113641869B (zh) | 一种人机物融合环境下的数字对象访问方法和系统 | |
CN101719155B (zh) | 一种支持分布式多集群计算环境的多维属性范围查询的方法 | |
CN1937584B (zh) | 非结构化对等网络系统及其资源查找及路由更新方法 | |
CN101917475B (zh) | 一种基于p2p模式的psrd普适服务资源发现方法 | |
Sharma et al. | Optimal nearest neighbor queries in sensor networks | |
Pourqasem | Toward the optimization resource discovery service in grid systems: a survey | |
Ariyoshi et al. | Efficient processing of conjunctive queries in p2p dhts using bloom filter | |
Morris et al. | Context dissemination for dynamic urban-scale applications | |
Wang et al. | Development of Low Cost Message Delivery Path for Mobile Agent Communication. | |
Chirita et al. | Knowing Where to Search: Personalized Search Strategies for Peers in P2P Networks. | |
Zhou et al. | Personalized query evaluation in ring-based P2P networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151125 Termination date: 20170629 |
|
CF01 | Termination of patent right due to non-payment of annual fee |