CN101854374A - 数据节点装置、对端信息获取方法和系统 - Google Patents
数据节点装置、对端信息获取方法和系统 Download PDFInfo
- Publication number
- CN101854374A CN101854374A CN200910132675A CN200910132675A CN101854374A CN 101854374 A CN101854374 A CN 101854374A CN 200910132675 A CN200910132675 A CN 200910132675A CN 200910132675 A CN200910132675 A CN 200910132675A CN 101854374 A CN101854374 A CN 101854374A
- Authority
- CN
- China
- Prior art keywords
- opposite end
- tabulation
- unit
- back end
- processing unit
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1063—Discovery through centralising entities
-
- 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
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1072—Discovery involving ranked list compilation of candidate peers
-
- 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/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/023—Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/50—Service provisioning or reconfiguring
Abstract
本发明提供了数据节点装置、对端信息获取方法和系统。一种充当数据节点的装置,包括:数据节点应用单元,该数据节点应用单元发出对端列表请求并与对端进行数据交换;以及列表处理单元,该列表处理单元截取索引服务器响应于对端列表请求而提供的原始对端列表,向信息服务器发出对端位置请求并接收所述信息服务器响应于所述对端位置请求而提供的对端位置信息,基于所述对端位置信息对所述原始对端列表进行处理以得出经处理的对端列表,并将经处理的对端列表提供给所述数据节点应用单元。
Description
技术领域
本发明总地涉及计算机网络,具体而言涉及在对等(peer-to-peer,简写为P2P)数据交换中使用的可用于降低P2P跨域流量的数据节点装置、对端(peer)信息获取方法以及用于提供和获取对端信息的系统。
背景技术
P2P系统是一种分布式数据共享系统,它可以提供文件共享,流媒体以及基于互联网协议的语音(VoIP)等服务。P2P系统的流量巨大。有报道显示,P2P流量占全世界互联网流量的70%之多。当前存在的P2P实现方式大都没有考虑网络的拓扑情况。对等判决(peering decision)是独立于网络拓扑和流量状况作出的。索引服务器在响应提出查询的数据节点应用单元的请求时,通常从现有的元数据集合中随机地选出一个子集返回,这种随机的答案往往会带来严重的跨域流量问题。
例如,图1示出了根据现有技术的提供和获取对端信息的系统5的框图。如图所示,当数据节点60中的数据节点应用单元61需要与其所属的P2P系统中的对端(未示出)交换某一数据文件时,其对端信息请求单元612向该P2P系统中的索引服务器50发出对端列表请求。索引服务器50中的对端信息管理单元52在接收到该对端列表请求后,搜索对端信息存储单元51以找出所有能够与数据节点应用单元61交换该数据文件的对端,并从这些对端中随机选择若干个对端包括在对端列表中,作为响应返回给数据节点应用单元61。数据节点应用单元61中的对端信息请求单元612在接收该对端列表响应后,将其提供给数据交换单元611。数据交换单元611从而与对端列表中列出的对端交换数据。
由于索引服务器50返回的对端列表中的对端是随机选择的,因此它可能包括位于另一个不同网络域中的数据节点上的数据节点应用单元,例如属于另一个不同的ISP(互联网服务提供商)的数据节点上的数据节点应用单元。从而,一个网络域中的数据节点会从另一个网络域中的数据节点下载数据文件,即使本网络域中的某个数据节点也拥有该数据文件,从而造成了大量的跨域流量。
为降低P2P系统带来的巨大跨域流量,ISP一度对P2P应用采取封堵政策,但收效甚微。目前,也有学者提出修改已有系统代码的解决方案。例如,在Haiyong Xie,Y.Richard Yang,Arvind Krishnamurthy,Yanbin Liuand Avi Silberschatz,“P4P:Provider Portal for Applications”,SIGCOMM’2008,pp.351-362(文献1)中介绍了一种新的P2P网络架构:P4P(全称:Proactive network Provider Participation for P2P,即网络提供商主动参与P2P)。该架构使得网络提供商可以向应用提供更多信息,并可以降低多余的跨ISP流量。作为网络和应用之间通信的接口,P4P可以向提出查询的客户端提供诸如静态网络策略、反映网络状态的P4P距离(P4Pdistance)以及网络能力(network capability)等许多信息。这种新架构的核心是P4P距离接口,通过这个接口,ISP可以向应用提供当前内部链路和外部链路上的应用开销信息。P4P架构引入信息服务器作为网络运营商和应用之间通信的接口。
例如,图2示出了根据文献1中所述的现有技术的另一种提供和获取对端信息的系统5a的框图。系统5a与图1所示的系统5的不同之处在于,其中还包括信息服务器70。信息服务器70提供网络信息,包括距离、延迟、流量状况等。网络中的其他实体(索引服务器、数据节点)可以通过其提供的服务接口查询两个结点之间的距离和网络流量等信息。
该图所示的索引服务器50a与图1所示的索引服务器50的不同之处在于,它除了包括对端信息存储单元51和对端信息管理单元52a外,还包括位置信息请求单元53。这样,索引服务器50中的对端信息管理单元52a在接收到对端列表请求后,首先,与对端信息管理单元52一样,搜索对端信息存储单元51以找出所有可与数据节点应用单元61交换该数据的对端。然后,与对端信息管理单元52不同,对端信息管理单元52a不是从这些对端中随机选择若干个对端,而是指示位置信息请求单元53向信息服务器70请求关于所有这些对端所在的数据节点相对于数据节点60的位置(P4P距离)的信息,并且根据位置信息请求单元53从信息服务器接收到的位置信息,从可与数据节点应用单元61交换数据的对端中选择其所在的数据节点与数据节点60位置接近的对端,并把这些位置接近的对端包括在对端列表中,作为响应返回给数据节点60。
从而,利用来自信息服务器的信息,索引服务器可以利用包括大多来自同一域(例如,同一ISP)的对端的对端列表来答复客户端。
可见,文献1中定义了一种新的P2P网络架构来传递网络信息和管理跨域流量。但是,该方案很难对当前网络产生作用。这是因为:首先,当前有很多已经部署的P2P系统已经在产生大量的网络流量;其次,降低当前P2P系统的跨域流量需要对已有P2P系统中索引服务器的代码进行修改,而这一点是很难实现的。
发明内容
本发明提供了一种在P2P数据交换中使用的能够降低跨域流量的数据节点装置及其使用的对端信息获取方法,以及相关的系统。
根据本发明的一个方面,提供了一种在P2P数据交换中充当数据节点的装置,包括:数据节点应用单元,该数据节点应用单元发出对端列表请求并与对端进行数据交换;以及列表处理单元,该列表处理单元截取索引服务器响应于对端列表请求而提供的原始对端列表,向信息服务器发出对端位置请求并接收所述信息服务器响应于所述对端位置请求而提供的对端位置信息,基于所述对端位置信息对所述原始对端列表进行处理以得出经处理的对端列表,并将经处理的对端列表提供给所述数据节点应用单元。
根据本发明的另一个方面,提供了一种在用于P2P数据交换的数据节点处获取对端信息的方法,包括:向索引服务器发出对端列表请求;截取所述索引服务器响应于所述对端列表请求而提供的原始对端列表;向所述信息服务器发出对端位置请求;接收所述信息服务器响应于所述对端位置请求而提供的对端位置信息;基于所述对端位置信息对所述原始对端列表进行处理以得出经处理的对端列表;以及将经处理的对端列表提供给数据节点应用单元。
根据本发明另一个方面,提供了一种在P2P数据交换中提供和获取对端信息的系统,包括:一个或多个索引服务器,其中每一个响应于对端列表请求提供原始对端列表;响应于对端位置请求提供对端位置信息的信息服务器;以及如上所述的装置。
根据本发明,可以在不修改现有索引服务器和数据节点应用单元的情况下降低已经存在的P2P跨域流量,并且,只要在数据节点中部署一个列表处理单元就可以同时处理与多个不同的P2P系统相关的消息。另外,还可以通过重请求对端列表来保证较短的下载时间。
附图说明
通过结合附图阅读以下详细描述可以更好地理解本发明的以上和其他特征和优点。附图中,相同或相似的标号指示相同或相似的要素,其中:
图1示出了根据现有技术的一种系统的框图。
图2示出了根据现有技术的另一种系统的框图。
图3示出了包括根据本发明第一实施例的作为数据节点的装置的系统的框图。
图4示出了图3所示的数据节点获取对端信息的方法的流程图。
图5示出了包括根据本发明第二实施例的作为数据节点的装置的系统的框图。
图6示出了图5所示的数据节点获取对端信息的方法的流程图。
具体实施方式
在参考附图描述本发明的实施例之前,将对本文中出现的一些术语进行解释。
P2P系统:一个P2P系统可包括索引服务器、信息服务器以及多个进行数据交换的数据节点应用单元,这些数据节点应用单元互为对端。
索引服务器(Indexing Server):是存储P2P系统中所有被交换的文件的元数据以及交换这些文件的所有数据节点应用所在的数据节点的信息的实体,也可以称为信令节点(Signaling Node)、Tracker、appTracker或者超节点(Super Node)。当接收到对端列表请求时,它利用相应的对端列表响应来作出答复。一个P2P系统可包括一个或多个索引服务器,不同的P2P系统通常具有各自的索引服务器。
信息服务器(Information Server):又称为iTracker,是提供包括距离、延迟、流量状况等在内的网络信息的实体。网络中的其他实体(索引服务器、数据节点)可以通过其提供的服务接口查询两个数据结点之间的距离和网络流量等信息。多个P2P系统可共享一个信息服务器。例如,该信息服务器可由ISP提供。
数据节点(Data Node):存储实际的全部或部分数据项的实体。数据节点可以是各种能够存储数据并能通过网络与其他网络节点通信的信息处理装置,例如个人计算机(PC)、移动电话、个人数字助理(PDA),等等。一个数据节点可容纳分别属于一个或多个P2P系统的一个或多个数据节点应用单元。例如,一台PC上可安装BitTorrent应用单元、eMule应用单元,等等。在本文中,数据节点有时也可以称为数据节点装置或者作为数据节点的装置。
数据节点应用单元:它是P2P系统中的数据交换和对端信息查询的单元。它包括数据交换单元和对端信息请求单元。对端信息请求单元向数据节点应用单元所属的P2P系统中的索引服务器请求关于正在交换(下载/上载)所需文件的对端的信息。数据交换单元与对端列表中的对端建立连接并且与这些对端进行文件数据的下载/上载。数据节点应用单元也可以被称为数据节点应用。并且,在与索引服务器和信息服务器的交互中,数据节点应用单元也可被称为客户端应用单元或者客户端应用。
对端:一个P2P系统中的各数据节点应用单元互为对端。另外,在本文中,也可以称互为对端的这些数据节点应用单元所在的各数据节点互为对端。
元数据:该信息描述实际数据的属性,例如实际数据项位于何处及其大小。
网络域:泛指就网络拓扑而言处于同一区域中的网络节点的集合。例如,同一个“网络域”可以指同一个ISP、同一个局域网,等等。如果两个数据节点属于同一网络域,则可以说这两个数据节点分别容纳的数据节点应用单元属于同一网络域。
位置:这里的“位置”不一定是指物理位置。更确切地说,这里的“位置”指的是数据节点就网络拓扑而言的位置。在本发明中,某个数据节点应用单元的对端相对于该数据节点应用单元的位置就相当于容纳这些对端的数据节点相对于容纳该数据节点应用单元的数据节点的位置。在一个示例中,数据节点之间的相对位置可用其间的网络距离来表达。
网络距离:反映了数据节点之间就网络拓扑而言的距离。它可以是如前文所述的反映了网络状态和就流量而言的偏好的P4P距离。类似地,在本发明中,某个数据节点应用单元的对端与该数据节点应用单元之间的网络距离就相当于容纳这些对端的数据节点与容纳该数据节点应用单元的数据节点之间的网络距离。
下面参考附图来详细描述本发明的示例性实施例。
图3示出了根据本发明第一实施例的作为数据节点的装置20(以下称之为数据节点20)及其与一个或多个索引服务器10和信息服务器30构成的系统1的框图。如图3所示,系统1包括一个或多个索引服务器10-1、10-2、……、10-N(统称为索引服务器10)、数据节点20以及信息服务器30,其中N为大于或等于1的整数。
索引服务器10是存储和索引对端信息的实体,它们中的每一个可包括如图1所示的对端信息存储单元和对端信息管理单元。为简洁起见,图3中没有示出索引服务器10的内部配置。每个索引服务器10的对端信息存储单元存储该索引服务器10所属的P2P系统中的所有数据节点应用单元所在的数据节点的信息,例如包括联络信息、所拥有的文件的元数据,等等,并且按这些数据节点(或者说这些数据节点所容纳的数据节点应用单元)所交换的文件来对数据节点进行索引。对端信息管理单元则负责与所有数据节点应用单元通信。它在接收到数据节点应用单元的报告时将信息存储在对端信息存储单元中,并且在接收到来自数据节点应用单元的请求时提供适当的对端列表。
信息服务器30是提供包括距离、延迟、流量状况等在内的网络信息的实体。索引服务器和数据节点应用单元可以通过其提供的服务接口查询两个数据结点之间的距离和网络流量等信息。为简洁起见,图3中没有示出信息服务器30的内部配置。
数据节点20包括分别属于一个或多个P2P系统的一个或多个数据节点应用单元21-1、21-2、……、21-N(统称为数据节点应用单元21),以及列表处理单元22。数据节点应用单元21-1与索引服务器10-1和信息服务器30以及可能分别位于其他一个或多个数据节点上的其他一个或多个数据节点应用单元(未示出)可构成第1P2P系统;数据节点应用单元21-2与索引服务器10-2和信息服务器30以及可能分别位于其他一个或多个数据节点上的其他一个或多个数据节点应用单元(未示出)可构成第2P2P系统;……;数据节点应用单元21-N与索引服务器10-N和信息服务器30以及可能分别位于其他一个或多个数据节点上的其他一个或多个数据节点应用单元(未示出)可构成第N P2P系统,等等。例如,若干个数据节点上的BitTorrent应用单元与BitTorrent索引服务器和共享的信息服务器可构成BitTorrent P2P系统,而这若干个数据节点上的eMule应用单元与eMule索引服务器和该共享的信息服务器可构成eMule P2P系统。注意,这里示出了N个P2P系统各自包括一个索引服务器,并且所有P2P系统共享一个信息服务器的情况。但本领域的技术人员可以明白,本发明并不限于此。例如,每个P2P系统可包括多个索引服务器。又例如,每个P2P系统可拥有各自的信息服务器。另外,不同P2P系统也可以共享一个或多个索引服务器。
每个数据节点应用单元21可包括数据交换单元和对端信息请求单元。例如,数据节点应用单元21-1包括数据交换单元211-1和对端信息请求单元212-1;数据节点应用单元21-2包括数据交换单元211-2和对端信息请求单元212-2;……;数据节点应用单元21-N包括数据交换单元211-N和对端信息请求单元212-N,等等。
在本实施例中,列表处理单元22包括响应消息截取单元221、响应消息构造单元223、以及一个或多个应用消息处理单元222-1、222-2、……、222-N(统称为应用消息处理单元222)。应用消息处理单元222-1、222-2、……、222-N分别与数据节点应用单元21-1、21-2、……、21-N相关联,即应用消息处理单元222-1、222-2、……、222-N与数据节点应用单元21-1、21-2、……、21-N之间例如具有一一对应关系。每个应用消息处理单元222处理与相应的数据节点应用单元21所属的P2P系统相关联的消息,例如BitTorrent消息,eMule消息等等。
当数据节点20中的某个数据节点应用单元例如数据节点应用单元21-1想要与它所属的P2P系统中的其他数据节点应用单元交换数据时,首先,数据节点应用单元21-1中的对端信息请求单元212-1向相应的索引服务器10-1发出对端列表请求,以请求获得一列表,该列表列出数据节点应用单元21-1所属的P2P系统中能够与该数据节点应用单元交换所需数据文件的数据节点应用单元(即,对端)。索引服务器10-1中的对端信息管理单元在接收到对端列表请求后,在其对端信息存储单元中搜索能够交换所述数据的数据节点应用单元,并且从这些数据节点应用单元中随机选择若干个数据节点应用单元并将随机选择的数据节点应用单元作为对端包括在要返回的对端列表中。由于是随机选择的,所以该对端列表中可能包括这样的对端:这些对端所在的数据节点与数据节点应用单元21-1所在的数据节点20距离较远,例如来自不同网络域,换句话说,这些对端与数据节点应用单元21-1距离较远,例如来自不同的网络域。
在本文中,将把每个索引服务器10这样随机选择的对端的列表称为原始对端列表。在一种实现方式中,每个索引服务器10将该原始对端列表包括在对端列表响应消息中并且向发送对端列表请求的数据节点返回该响应消息。
如上所述,本发明的数据节点20包括列表处理单元22。该列表处理单元22可以以插件模块的形式添加到数据节点20的操作系统的内核空间中。但是,本发明并不限于此。本领域的技术人员可以明白,列表处理单元22可以以其他软件、硬件、固件或其组合的方式实现。
列表处理单元22截取从索引服务器10之一发送来、本该由数据节点应用单元21接收的对端列表响应消息。具体而言,列表处理单元22中的响应消息截取单元221可以截取该对端列表响应消息。在一种实现方式中,响应消息截取单元221可以通过向数据节点20的操作系统添加钩子程序(hook)来截取索引服务器发送来的所有消息。在一种实现方式中,响应消息截取单元221可以直接从操作系统的TCP/IP协议栈截取这些消息。
响应消息截取单元221对所截取的对端列表响应消息进行分类,以判定该对端列表响应消息是属于哪个P2P系统的消息,即,与数据节点应用单元21-1、21-2、……、21-N中的哪一个相关联,并根据分类结果将该对端列表响应消息递送到相应的应用消息处理单元222。
在本示例中,由于如上所述对端列表请求是由数据节点应用单元21-1发出的并且相应地对端列表响应消息是由索引服务器10-1返回的,所以响应消息截取单元221根据接收到的对端列表响应消息中包含的标识信息可判定该消息是针对数据节点应用单元21-1的。因此,响应消息截取单元221将该对端列表响应消息递送到与数据节点应用单元21-1相关联的应用消息处理单元222-1。例如,如果数据节点应用单元21-1是BitTorrent应用,响应消息截取单元221则可基于接收到的消息中包含的标识信息识别出该消息是BitTorrent响应消息,从而可以将该消息递送到与BitTorrent应用消息相关联的应用消息处理单元222-1。
应用消息处理单元222-1在接收到从响应消息截取单元221递送来的对端列表响应消息后,提取出其中包括的原始对端列表。然后,应用消息处理单元222-1向信息服务器30发出对端位置请求,以请求获得关于该原始对端列表中包括的对端所在的数据节点相对于本数据节点20的位置的信息。
信息服务器30响应于来自应用消息处理单元222-1的对端位置请求,向该应用消息处理单元222-1返回对端位置信息。在一个示例中,该对端位置信息包括原始对端列表中列出的对端所在的数据节点与数据节点20之间的网络距离(例如,P4P距离)的信息。
应用消息处理单元222-1基于从信息服务器30返回的对端位置信息,对原始对端列表中的对端进行处理。在一种实现方式中,该处理包括按这些对端所在的数据节点与数据节点20之间的网络距离的降序对这些对端进行排序。在一个示例中,处理还包括在对对端排序之后,根据需要从列表中删除其所在的数据节点与数据节点20距离较远的对端。这样,经过这样处理的对端列表只包括其所在的数据节点与数据节点20距离较近的对端,例如其所在的数据节点与数据节点20属于同一个网络域的对端。
应用消息处理单元222-1将这样得到的经处理的对端列表递送给响应消息构造单元223。
响应消息构造单元223收集从应用消息处理单元递送来的经处理的对端列表,并且将包括经处理的对端列表的对端列表响应消息提供给相应的数据节点应用单元。在本示例中,响应消息构造单元223在接收到从应用消息处理单元222-1递送来的经处理的对端列表后,将其以针对相应P2P系统的对端列表响应消息的形式提供给数据节点应用单元21-1。例如,如果数据节点应用单元21-1是BitTorrent应用,响应消息构造单元223则将经过处理的对端列表包括在BitTorrent响应消息中提供给数据节点应用单元21-1。
数据节点应用单元21-1中的对端信息请求单元212-1在接收到包括经处理的对端列表的对端列表响应消息后,提取出其中的对端列表并将其提供给数据交换单元211-1。数据交换单元211-1从而可与该对端列表中列出的对端进行数据交换。
注意,以上虽然以数据节点应用单元21-1及相关联的应用消息处理单元222-1和索引服务器10-1为例进行了说明,但是同样的方案也适用于数据节点20中的其他数据节点应用单元及相关联的应用消息处理单元和索引服务器。
可见,想要与对端交换数据的数据节点应用单元获得了包括与之位置接近的对端的对端列表,而不是随机选择的对端的列表。因此,根据本发明,可以在不修改现有索引服务器和数据节点应用单元的情况下降低已经存在的P2P跨域流量,并且,只要在数据节点中部署一个例如以插件形式提供的列表处理单元就可以同时处理与多个不同的P2P系统相关的消息。
下面参考图4来描述图3所示的数据节点20获取对端列表的方法。
在步骤S101中,数据节点应用单元21之一的对端信息请求单元向相应的索引服务器10发出对端列表请求。
在步骤S102中,原始对端列表被截取。在本实施例中,此步骤可包括响应消息截取单元221截取索引服务器10之一响应于对端列表请求而发送来对端列表响应消息,并判定该对端列表响应消息与数据节点应用单元21中的哪一个相关联,然后将该对端列表响应消息递送到相应的应用消息处理单元222。此步骤还可包括接收到从响应消息截取单元221递送来的对端列表响应消息的应用消息处理单元222提取出对端列表响应消息中包括的原始对端列表,从而实现对原始对端列表的截取。
在步骤S103中,应用消息处理单元222之一向信息服务器30发出对端位置请求,以请求获得关于该原始对端列表中包括的对端所在的数据节点相对于本数据节点20的位置的信息。
在步骤S104中,发出该对端位置请求的应用消息处理单元接收到从信息服务器30返回来的对端位置信息。
在步骤S105中,该应用消息处理单元基于对端位置信息,对原始对端列表中的对端进行例如包括排序和删除部分对端在内的处理,并将经处理的对端列表递送到响应消息构造单元223。
在步骤S106中,响应消息构造单元223在接收到从应用消息处理单元222之一递送来的经处理的对端列表后,将包括经处理的对端列表的对端列表响应消息提供给相应的数据节点应用单元。该过程随后结束。
图5示出了根据本发明第二实施例的作为数据节点的装置20a(以下称之为数据节点20a)及其与一个或多个索引服务器10和信息服务器30构成的系统1a的框图。在图5中,与图3所示的第一实施例中的组件相同的组件将用相同的标号来指示,并且将省略对这些组件的详细描述。
如图5所示,数据节点20a与图3所示的数据节点20的不同之处在于,其中的列表处理单元22a除了包括响应消息截取单元221、应用消息处理单元222和响应消息构造单元223之外,还包括与数据节点应用单元21-1、21-2、……、21-N一一对应并从而与应用消息处理单元222-1、222-2、……、222-N一一对应的一个或多个重请求单元224-1、224-2、……、224-N(统称为重请求单元224),以及缓存单元225。
重请求单元224能够构造用于相应P2P系统中的对端列表请求以向相应索引服务器10请求更多的对端信息。缓存单元225可用于缓存在获取对端列表的过程中得到的经过处理的对端列表。注意,在本实施例中,示出了多个应用消息处理单元222共享一个缓存单元225的情形。在这种情形下,每个应用消息处理单元222可访问缓存单元225中的一个相应的区域。当然,本领域的技术人员可以设想其他实现方式。例如,每个应用消息处理单元222可拥有各自的缓存单元。
概括来说,本实施例的应用消息处理单元对原始对端列表进行的处理除了包括按距离对原始对端列表进行排序并根据需要删除其中的一些距离较远的对端之外,还包括将这样得到的对端列表与缓存单元225的相应区域中已经缓存的对端列表(如果有的话)相组合。然后,应用消息处理单元判断经过这样处理的对端列表中的对端是否足够,例如其数目是否达到某个阈值。如果对端数目过少,数据节点应用单元在进行数据交换时将无法拥有足够的数据来源,从而下载数据的时间可能会延长。为了保证较短的下载时间,本实施例的应用消息处理单元在判定对端数目过少的情况下,将把当前经过处理的对端列表暂时存储在缓存单元225的相应区域中,并指示相应的重请求单元向相应的索引服务器10发出一个或多个额外的对端列表请求。相应的索引服务器10的对端信息管理单元在接收到这些额外的对端列表请求后,将会再次搜索对端信息存储单元,并从中随机选择能够交换相应数据节点应用单元所需的数据文件的对端,从而向数据节点20a提供一个或多个额外的包括原始对端列表的对端列表响应消息。应用消息处理单元对提取出一个或多个额外的原始对端列表再进行上述的包括排序、删除和组合在内的处理以及上述的判定,并在必要时重复重请求,直到对端数目足够为止。
仍以应用消息处理单元222-1为例进行说明。具体而言,在一种实现方式中,应用消息处理单元222-1在提取出从响应消息截取单元221递送来的对端列表响应消息中的原始对端列表后,对其进行处理。
这里的处理包括对该原始对端列表中的对端进行排序并根据需要删除距离较远的(例如,不在同一网络域中的)对端,并且将包括剩余对端的对端列表与缓存单元225的相应区域中的对端列表(如果有的话)相组合。
在此情况下,应用消息处理单元222-1首先查看缓存单元225的相应区域中是否已存在先前缓存的对端列表。
如果当前处理的原始对端列表是索引服务器10-1响应于数据节点应用单元发出的对端列表请求而返回的原始对端列表,则缓存单元225的相应区域应当为空。在此情况下,无需进行组合,经过排序并被删除了部分对端的对端列表就是经处理的对端列表。
另一方面,如果缓存单元225中的相应区域中已缓存有对端列表,则表明当前处理的原始对端列表是索引服务器10-1响应于重请求单元发出的额外的对端列表请求而返回的原始对端列表,于是应用消息处理单元222-1将上述经过排序并可能删除了部分对端的对端列表与缓存单元225中的对端列表相组合来得出经处理的对端列表。
在任一情况下,应用消息处理单元222-1随后判定经处理的对端列表中的对端是否足够,例如数目是否达到预定的阈值。
如果数目已足够,应用消息处理单元222-1则将经处理的对端列表经由响应消息构造单元223提供给相应的数据节点应用单元21-1。在此之前或之后,应用消息处理单元222-1可以清空缓存单元225中的相应区域。
另一方面,如果对端不足够,应用消息处理单元222-1则将经处理的对端列表以例如覆盖缓存单元225的相应区域中原先缓存的任何对端列表的方式缓存在该相应区域中,并且指示相应的重请求单元224-1向索引服务器10-1发出额外的对端列表请求。索引服务器10-1响应于该对端列表请求将再返回包括随机选择的对端列表的对端列表响应消息。列表处理单元22a于是重复上述过程,直到经处理的对端列表中的对端数目足够为止。
当然,上述过程只是一个示例。例如,应用消息处理单元222在提取出原始对端列表后,可先将原始对端列表与缓存的对端列表(如果有的话)相组合,然后对组合的对端列表中的所有对端进行按网络距离的排序,并根据需要删除一些距离相对较远的对端,以得出经处理的对端列表。在这种情况下,除了缓存对端列表本身外,还可缓存容纳每个对端的数据节点与本数据节点的网络距离的信息。本领域的技术人员可以设想出其他实施方式。
与第一实施例中类似,以上虽然以数据节点应用单元21-1及相关联的应用消息处理单元222-1和重请求单元224-1以及索引服务器10-1为例进行了说明,但是同样的方案也适用于数据节点20中的其他数据节点应用单元及相关联的应用消息处理单元、重请求单元和索引服务器。
如上所述,根据本实施例,在对端数目不足的情况下,可以再次请求索引服务器返回若干个随机选择的对端,从而保证了对端的充足,并因此保证了较短的下载时间。
下面参考图6来描述图5所示的数据节点20a获取对端列表的方法。
在步骤S201中,数据节点应用单元之一的对端信息请求单元向相应的索引服务器10发出对端列表请求。
在步骤S202中,原始对端列表被截取。在本实施例中,该原始对端列表既可能是索引服务器10之一响应于相应数据节点应用单元的对端信息请求单元发出的初始对端列表请求而返回的原始对端列表,也可能是索引服务器10之一响应于相应的重请求单元发出的额外对端列表请求而返回的原始对端列表。在任一种情况下,响应消息截取单元221都可截取包括原始对端列表的对端列表响应消息,并将该对端列表响应消息递送到相应的应用消息处理单元222。然后,相应的应用消息处理单元222提取出对端列表响应消息中包括的原始对端列表。
在步骤S203中,提取出原始对端列表的应用消息处理单元222向信息服务器30发出对端位置请求,以请求获得关于该原始对端列表中包括的对端相对于相应数据节点应用单元的位置(即,这些对端所在的数据节点相对于本数据节点20的位置)的信息。
在步骤S204中,发出该对端位置请求的应用消息处理单元接收到从信息服务器30返回来的对端位置信息。
在步骤S205中,该应用消息处理单元基于对端位置信息,对原始对端列表进行处理,该处理例如包括排序、删除以及与缓存的对端列表(如果有的话)的组合。
在步骤S206中,应用消息处理单元判定经处理的对端列表中的对端是否足够,例如数目是否达到预定的阈值。
如果对端不足够(步骤S206中的“否”),应用消息处理单元则将经处理的对端列表缓存在缓存单元中的相应区域中(步骤S207),并且指示相应的重请求单元向索引服务器发出额外的对端列表请求(步骤S208)。然后,数据节点20重复步骤S202至S206,直到经处理的对端列表中的对端数目足够为止。
另一方面,如果在步骤S206中判定对端足够(步骤S206中的“是”),则在步骤S209中,应用消息处理单元清空缓存单元225中的相应区域,并且在步骤S210中将经处理的对端列表经由响应消息构造单元提供给相应的数据节点应用单元。该过程随后结束。
虽然以上已经描述了本发明的一些具体实施例,但是本领域的技术人员将会明白,可以对本发明进行多种修改、组合和替换,并且本发明包含落在所附权利要求书的范围内的这种修改、组合和替换。
Claims (14)
1.一种在对等数据交换中充当数据节点的装置,包括:
数据节点应用单元,该数据节点应用单元发出对端列表请求并与对端进行对等数据交换;以及
列表处理单元,该列表处理单元截取索引服务器响应于对端列表请求而提供的原始对端列表,向信息服务器发出对端位置请求并接收所述信息服务器响应于所述对端位置请求而提供的对端位置信息,基于所述对端位置信息对所述原始对端列表进行处理以得出经处理的对端列表,并将经处理的对端列表提供给所述数据节点应用单元。
2.如权利要求1所述的装置,其中
所述列表处理单元包括:
消息截取单元,其截取所述索引服务器响应于对端列表请求而提供的包括原始对端列表的对端列表响应消息,并将截取的对端列表响应消息递送给应用消息处理单元,
应用消息处理单元,其在接收到从所述消息截取单元递送来的对端列表响应消息后,提取该对端列表响应消息中包括的原始对端列表,向所述信息服务器发出对端位置请求并接收所述信息服务器响应于对端位置请求而提供的对端位置信息,基于所述对端位置信息对提取出的原始对端列表进行处理以得出经处理的对端列表,并将经处理的对端列表递送给消息构造单元,以及
消息构造单元,其收集从所述应用消息处理单元递送来的经处理的对端列表,并且将包括经处理的对端列表的对端列表响应消息提供给所述数据节点应用单元。
3.如权利要求2所述的装置,其中,
所述列表处理单元还包括:
重请求单元,用于发出对端列表请求,以及
缓存单元,用于临时存储对端列表;并且
所述应用消息处理单元在对原始对端列表进行处理之后,判定经处理的对端列表中列出的对端的数目是否达到阈值,并且在所述数目未达到所述阈值的情况下,将经处理的对端列表临时存储在所述缓存单元中并指示所述重请求单元发出对端列表请求。
4.如权利要求2所述的装置,其中,
所述数据节点应用单元包括一个或多个数据节点应用单元;
所述应用消息处理单元包括与所述一个或多个数据节点应用单元相对应的一个或多个应用消息处理单元;
所述消息截取单元截取响应于与所述一个或多个数据节点应用单元中的特定数据节点应用单元相关联的对端列表请求而提供的包括原始对端列表的对端列表响应消息,并将截取的对端列表响应消息递送给所述一个或多个应用消息处理单元中与所述特定数据节点应用单元相对应的应用消息处理单元;并且
所述消息构造单元收集从所述一个或多个应用消息处理单元中的特定应用消息处理单元递送来的经处理的对端列表,并且将包括经处理的对端列表的对端列表响应消息提供给所述一个或多个数据节点应用单元中与所述特定应用消息处理单元相对应的数据节点应用单元。
5.如权利要求3所述的装置,其中
所述数据节点应用单元包括一个或多个数据节点应用单元;
所述应用消息处理单元包括与所述一个或多个数据节点应用单元相对应的一个或多个应用消息处理单元;
所述重请求单元包括与所述一个或多个应用消息处理单元相对应的一个或多个重请求单元;
所述消息截取单元截取响应于与所述一个或多个数据节点应用单元中的特定数据节点应用单元相关联的对端列表请求而提供的包括原始对端列表的对端列表响应消息,并将截取的对端列表响应消息递送给所述一个或多个应用消息处理单元中与所述特定数据节点应用单元相对应的应用消息处理单元;
所述一个或多个应用消息处理单元中的每一个在所述数目未达到所述阈值的情况下将经处理的对端列表临时存储在所述缓存单元中并指示所述一个或多个重请求单元中与本应用消息处理单元相对应的重请求单元发出对端列表请求;并且
所述消息构造单元收集从所述一个或多个应用消息处理单元中的特定应用消息处理单元递送来的经处理的对端列表,并且将包括经处理的对端列表的对端列表响应消息提供给所述一个或多个数据节点应用单元中与所述特定应用消息处理单元相对应的数据节点应用单元。
6.如权利要求1所述的装置,其中,
所述对端位置信息包括关于所述原始对端列表中列出的对端所在的数据节点与所述数据节点之间的网络距离的信息;并且
所述处理包括按所述网络距离的降序对所述原始对端列表中列出的对端进行排序。
7.如权利要求6所述的装置,其中,所述处理还包括删除所述原始对端列表列出的对端之中位于与所述数据节点不在同一网络域中的数据节点上的对端。
8.如权利要求3所述的装置,其中,
所述对端位置信息包括关于所述原始对端列表中列出的对端所在的数据节点与所述数据节点之间的网络距离的信息;并且
所述处理包括按所述网络距离的降序对所述原始对端列表中列出的对端进行排序,删除所述原始对端列表列出的对端之中位于与所述数据节点不在同一网络域中的数据节点上的对端,并将包括剩余对端的对端列表与所述缓存单元中已缓存的对端列表相组合。
9.一种在用于对等数据交换的数据节点处获取对端信息的方法,包括以下步骤:
向索引服务器发出对端列表请求;
截取所述索引服务器响应于所述对端列表请求而提供的原始对端列表;
向信息服务器发出对端位置请求;
接收所述信息服务器响应于所述对端位置请求而提供的对端位置信息;
基于所述对端位置信息对所述原始对端列表进行处理以得出经处理的对端列表;以及
将经处理的对端列表提供给数据节点应用单元。
10.如权利要求9所述的方法,还包括:
判定经处理的对端列表中列出的对端的数目是否达到阈值,并且在所述数目未达到所述阈值的情况下,缓存经处理的对端列表并发出一个或多个额外的对端列表请求。
11.如权利要求9所述的方法,其中,
所述对端位置信息包括关于所述原始对端列表中列出的对端所在的数据节点与所述数据节点之间的网络距离的信息;并且
所述处理包括按所述网络距离的降序对所述原始对端列表中列出的对端进行排序。
12.如权利要求11所述的方法,其中,所述处理还包括删除所述原始对端列表列出的对端之中位于与所述数据节点不在同一网络域中的数据节点上的对端。
13.如权利要求10所述的方法,其中,
所述对端位置信息包括关于所述原始对端列表中列出的对端所在的数据节点与所述数据节点之间的网络距离的信息;并且
所述处理包括按所述网络距离的降序对所述原始对端列表中列出的对端进行排序,删除所述原始对端列表列出的对端之中位于与所述数据节点不在同一网络域中的数据节点上的对端,并将包括剩余对端的对端列表与已缓存的对端列表相组合。
14.一种在对等数据交换中提供和获取对端信息的系统,包括:
一个或多个索引服务器,其中每一个响应于对端列表请求提供原始对端列表;
响应于对端位置请求提供对端位置信息的信息服务器;以及
如权利要求1-8中任何一项所述的装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910132675A CN101854374A (zh) | 2009-04-01 | 2009-04-01 | 数据节点装置、对端信息获取方法和系统 |
JP2011541075A JP5259835B2 (ja) | 2009-04-01 | 2010-03-19 | データノード装置、ピア情報取得方法およびシステム |
US13/124,770 US20110307564A1 (en) | 2009-04-01 | 2010-03-19 | Data node apparatus, peer information acquisition method and system |
PCT/CN2010/000335 WO2010111887A1 (zh) | 2009-04-01 | 2010-03-19 | 数据节点装置、对端信息获取方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910132675A CN101854374A (zh) | 2009-04-01 | 2009-04-01 | 数据节点装置、对端信息获取方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101854374A true CN101854374A (zh) | 2010-10-06 |
Family
ID=42805639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910132675A Pending CN101854374A (zh) | 2009-04-01 | 2009-04-01 | 数据节点装置、对端信息获取方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20110307564A1 (zh) |
JP (1) | JP5259835B2 (zh) |
CN (1) | CN101854374A (zh) |
WO (1) | WO2010111887A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010277314A (ja) * | 2009-05-28 | 2010-12-09 | Kddi Corp | P2p配信方法およびシステム |
US9235519B2 (en) * | 2012-07-30 | 2016-01-12 | Futurewei Technologies, Inc. | Method for peer to peer cache forwarding |
US11386233B2 (en) | 2019-04-30 | 2022-07-12 | JFrog, Ltd. | Data bundle generation and deployment |
US11886390B2 (en) | 2019-04-30 | 2024-01-30 | JFrog Ltd. | Data file partition and replication |
US11340894B2 (en) | 2019-04-30 | 2022-05-24 | JFrog, Ltd. | Data file partition and replication |
US10972289B2 (en) | 2019-07-19 | 2021-04-06 | JFrog, Ltd. | Software release verification |
US10999314B2 (en) | 2019-07-19 | 2021-05-04 | JFrog Ltd. | Software release tracking and logging |
US11695829B2 (en) * | 2020-01-09 | 2023-07-04 | JFrog Ltd. | Peer-to-peer (P2P) downloading |
US11860680B2 (en) | 2020-11-24 | 2024-01-02 | JFrog Ltd. | Software pipeline and release validation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020178261A1 (en) * | 2001-05-25 | 2002-11-28 | Chang Frederic Robert | Method of improving the reliability of peer-to-peer network downloads |
CN1816053A (zh) * | 2006-03-10 | 2006-08-09 | 清华大学 | 基于会话初始化协议的流媒体直播p2p网络方法 |
CN101005606A (zh) * | 2006-12-31 | 2007-07-25 | 华为技术有限公司 | 一种减少媒体播放延时的方法和装置 |
CN101018172A (zh) * | 2007-02-09 | 2007-08-15 | 浪潮电子信息产业股份有限公司 | 一种优化城域网内p2p传输的方法 |
CN101394423A (zh) * | 2008-09-27 | 2009-03-25 | 中兴通讯股份有限公司 | 一种媒体定位、搜索方法和系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060212542A1 (en) * | 2005-03-15 | 2006-09-21 | 1000 Oaks Hu Lian Technology Development Co., Ltd. | Method and computer-readable medium for file downloading in a peer-to-peer network |
EP1821487B1 (en) * | 2006-02-21 | 2010-04-07 | Microsoft Corporation | Topology management in peer-to-peer content distribution clouds |
ATE551816T1 (de) * | 2006-09-28 | 2012-04-15 | Rayv Inc | System und verfahren zum peer-to-peer-medien- streaming |
US20090100128A1 (en) * | 2007-10-15 | 2009-04-16 | General Electric Company | Accelerating peer-to-peer content distribution |
CN101552719A (zh) * | 2008-04-01 | 2009-10-07 | 华为技术有限公司 | 路由选择方法和装置 |
US9106668B2 (en) * | 2008-06-24 | 2015-08-11 | Azureus Software, Inc. | Distributed peer location in peer-to-peer file transfers |
-
2009
- 2009-04-01 CN CN200910132675A patent/CN101854374A/zh active Pending
-
2010
- 2010-03-19 US US13/124,770 patent/US20110307564A1/en not_active Abandoned
- 2010-03-19 WO PCT/CN2010/000335 patent/WO2010111887A1/zh active Application Filing
- 2010-03-19 JP JP2011541075A patent/JP5259835B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020178261A1 (en) * | 2001-05-25 | 2002-11-28 | Chang Frederic Robert | Method of improving the reliability of peer-to-peer network downloads |
CN1816053A (zh) * | 2006-03-10 | 2006-08-09 | 清华大学 | 基于会话初始化协议的流媒体直播p2p网络方法 |
CN101005606A (zh) * | 2006-12-31 | 2007-07-25 | 华为技术有限公司 | 一种减少媒体播放延时的方法和装置 |
CN101018172A (zh) * | 2007-02-09 | 2007-08-15 | 浪潮电子信息产业股份有限公司 | 一种优化城域网内p2p传输的方法 |
CN101394423A (zh) * | 2008-09-27 | 2009-03-25 | 中兴通讯股份有限公司 | 一种媒体定位、搜索方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2010111887A1 (zh) | 2010-10-07 |
JP2012512471A (ja) | 2012-05-31 |
JP5259835B2 (ja) | 2013-08-07 |
US20110307564A1 (en) | 2011-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101854374A (zh) | 数据节点装置、对端信息获取方法和系统 | |
Goian et al. | Popularity-based video caching techniques for cache-enabled networks: A survey | |
Su et al. | Haggle: Seamless networking for mobile applications | |
US8321539B2 (en) | Peer-to-peer (P2P) network system and method of operating the same | |
US20120240062A1 (en) | Text-based messaging application cloud | |
CN103345521A (zh) | 一种在哈希表数据库中处理键值的方法和装置 | |
CN104113466A (zh) | 一种骚扰电话的识别方法、客户端、服务器及系统 | |
Nordström et al. | Haggle: Opportunistic mobile content sharing using search | |
US8208477B1 (en) | Data-dependent overlay network | |
Moeini et al. | Routing in IoT network for dynamic service discovery | |
CN102420864B (zh) | 一种面向海量数据的数据交换方法 | |
Tato et al. | Split and migrate: Resource-driven placement and discovery of microservices at the edge | |
Sourlas et al. | Caching in content-based publish/subscribe systems | |
Machado et al. | A socially-aware in-network caching framework for the next generation of wireless networks | |
Pitkanen et al. | Searching for content in mobile DTNs | |
Karolewicz et al. | On efficient data storage service for IoT | |
CN106330953A (zh) | 一种智能路由器设备、服务器设备及其数据处理方法 | |
Strayer et al. | Content sharing with mobility in an infrastructure-less environment | |
da Costa | Next Generation Machine Learning Based Real Time Fraud Detection | |
Morris et al. | Urban scale context dissemination in the internet of things: challenge accepted | |
Alhisnawi | Forwarding information base design techniques in content-centric networking: a survey | |
Lomotey et al. | P2P key-value storage synchronization workflow for agronomic data management | |
US9473881B2 (en) | Mobile terminals locating | |
Vassilakis et al. | Scalable Bloom-filter based content dissemination in community networks using information centric principles | |
Cutting et al. | SPICE: Scalable P2P implicit group messaging |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C05 | Deemed withdrawal (patent law before 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20101006 |