使用节点的位置信息选择网络中靠近另一个节点的节点的制作方法

文档序号:7634435阅读:201来源:国知局
专利名称:使用节点的位置信息选择网络中靠近另一个节点的节点的制作方法
技术领域
本发明一般地涉及网络。更具体地,本发明涉及在网络中使用节点的位置信息。
背景技术
随着因特网在大小和普及方面相当大地发展,它正在用于为用户提供各种业务和应用。不同的应用,比如流播演示如何装配一件设备的短电影、虚拟浏览房地产财产或景点、观看艺术家的生动表演、以及参与网络的多用户计算机游戏或会议,对于用户来说都可以通过因特网来得到。
一个重要的趋势是用户不再满意接收其目标为多数观众的业务。用户正在要求适合他们个人需要的业务。随着个性化业务的增殖,面对未来网络基础结构的重要挑战是权衡提供个性化业务给每个用户与有效使用网络资源之间的折衷。
在有效利用网络资源和业务中的一个根本挑战是在大的网络比如因特网中有效和快速定位想要的资源/业务。例如,用户可以生成用于在网络中找到可得到的特定媒体内容的查询。位置和距离估计技术可以用于在网络中找到最近的高速缓存或代理,该最近的高速缓存或代理提供想要的数据或业务比如想要的媒体内容。
标志点聚类(landmark clustering)是一种用于确定到网络中的一个节点的距离的已知位置和距离估计技术。引入标志点聚类用于在大的网络中进行路由。在网络中一个节点的物理位置通过确定该节点到网络中一组普通标志点节点的距离来估计。标志点聚类假定,如果两个节点具有到标志点节点的相似距离(例如,所测量的等待时间),则该两个节点很可能彼此靠近。路由器存储所述节点的估计的物理位置并且使用该位置信息用于路由到最近的节点。
图11示出了在网络1100中使用标志点聚类估计节点1110和1120的物理位置。客户节点1110和1120确定它们到标志点节点L1101和L1102的距离。因为节点1110和1120具有到标志点节点L1101和L1102的相似距离,所以节点1110和1120被确定彼此靠近。
标志点聚类是一种用于确定节点的通用位置信息的有效技术。然而,当前的标志点聚类技术趋向导致伪聚类,其中在网络中相距遥远的节点在彼此附近聚类。那些远离标志点节点的节点往往是当它们实际位于彼此相隔相当大的距离时被估计为具有彼此靠近的位置。其次,标志点聚类是一种粗略近似并且在区分距离上相对靠近的节点之间不是很有效。

发明内容
根据一个实施例,一种用于在网络中识别靠近第一节点的至少一个节点的方法包括基于候选节点和第一节点的位置信息从多个节点选择一组候选节点。该方法还包括应用一种聚类算法到候选节点和第一节点的位置信息,并且基于应用该聚类算法的结果识别该组候选节点最靠近第一节点的一个子组。
根据另一个实施例,网络中的一个节点包括用于基于候选节点和第一节点的位置信息从多个节点选择一组候选节点的装置。该节点还包括用于应用一种聚类算法到候选节点和第一节点的位置信息的装置,以及用于基于应用该聚类算法的结果识别该组候选节点最靠近第一节点的一个子组的装置。
根据又另一个实施例,计算机系统可操作来连接到一个对等网络并且可操作地起分布式散列表覆盖网络中的分布式散列表节点的作用。该分布式散列表覆盖网络为所述对等网络的一种逻辑表示。该计算机系统包括一个存储器,可操作来存储对等网络中的多个节点的位置信息,该多个节点物理上靠近计算机系统。该计算机系统还包括一个处理器,该处理器可操作来比较所述多个节点的位置信息与第一节点的位置信息以从所述多个节点中识别出物理上靠近所述对等网络中的第一节点的一组节点。
根据又另一个实施例,一种存储网络中的节点的信息的方法,其中该节点可操作地起分布式散列表覆盖网络中的分布式散列表节点的作用,该方法包括接收多个节点的位置信息。所述节点在网络中物理上位置靠近。该方法还包括在一个表中存储所述位置信息,其中所述多个节点的位置信息包括从所述多个节点的每一个节点到多个全球标志点节点和到至少一个本地标志点节点所测量的距离。


实施例的各种特征可以得到更充分地理解,因为结合附图参照下面对实施例的详细描述,其将变得更好理解,其中图1示出了根据一个实施例在网络中使用全球标志点节点和本地标志点节点以生成位置信息;图2示出了根据一个实施例的图1中所示网络的2维CAN覆盖网络;图3示出了根据一个实施例的包括标志点矢量的标志点空间;图4示出了根据一个实施例使用散列函数来将图3所示的标志点空间中的点转换到如图2所示的覆盖网络;图5示出了根据一个实施例的另一个网络;图6示出了根据一个实施例的如图5所示网络的覆盖网络;图7示出了根据一个实施例的用于确定网络中的一个节点的位置信息的方法的流程图;图8示出了根据一个实施例的用于确定到给定节点的最近节点的方法的流程图;图9示出了根据一个实施例的对等系统;图10示出了根据一个实施例的一种计算机系统,该计算机系统可以作为如图9所示的对等系统中的节点工作;以及图11示出了一个常规的标志点聚类方案。
具体实施例方式
为了简化和说明的目的,描述了所述实施例的原理。然而,本领域的技术人员将容易地认识到,同样的原理同样可以应用到所有类型的网络系统中并且可以实现在所有类型的网络系统中,并且任何这样的变化不会背离本发明实施例的真实精神实质和范围。而且,在下面的具体描述中,所参考的附图示出特定实施例。可以在不背离本发明的实施例的精神和范围的前提下,对实施例做出电的、机械的、逻辑的和结构性的变化。
根据一个实施例,使用了一种增强的标志点聚类技术来估计网络中的节点的物理位置。节点可以是通过网络发送和/或接收来自另一个设备的消息的任何设备。网络中节点的物理位置,这里也称作节点位置,是网络中的节点相对网络中的其它节点的位置。例如,节点的位置信息可以通过测量到网络中的其它节点的距离来确定,所述其它节点比如位置上最接近该节点的全球标志点节点和本地标志点节点。位置信息可以用作该节点在网络中的物理位置的估计。例如,到一个节点的距离可以使用一个网络公制比如往返时间或网络单跳来测量。节点之间的距离和节点的位置信息可能不同于节点之间的地理距离和节点的地理位置,因为距离根据网络公制比如往返时间或网络单跳来测量,并且不根据地理距离公制比如千米或米来测量。
全球标志点节点和本地标志点节点可以从网络中的节点来随机选择。网络中的几乎任何节点可以被选择成全球标志点节点或本地标志点节点。选择为本地标志点节点和全球标志点节点的节点的数量通常大大小于网络中的节点总数。此外,网络中的全球标志点节点总数通常小于本地标志点节点的数量。网络中所使用的全球和本地标志点节点的数量可以取决于位置信息的想要精度。为了最小化网络业务量,本地标志点节点可以在网络中被战略性地放置,比如在网关路由器附近。例如,从节点到全球标志点节点途中的消息所遇到的路由器可以被用作本地标志点节点。
如上所述,节点的位置信息可以通过测量到全球标志点节点和本地标志点节点的距离来确定,所述全球标志点节点和本地标志点在位置上最接近该节点。在一个实施例中,该节点测量到网络中的全球标志点节点和位置最近的本地标志点节点中的每一个的距离,以确定该节点的位置信息。在一个例子中,一个最近位置的本地标志点标志节点通常比至少一个全球标志点节点更靠近该节点。例如,本地标志点节点可能在该节点和全球标志点节点之间的路由路径上。在这个例子中,如果这些本地标志点节点可以对应测量业务比如用于测量往返时间的探测分组,那么到本地标志点节点的距离可以使用极少的或无附加的消息收发开销来获得。不必生成到本地标志点节点的另外距离测量业务,因为这个例子可以利用被传送到全球标志点节点的探测分组以测量到本地标志点节点的距离,在到全球标志点节点途中遇到该本地标志点节点。在另一个例子中,如果本地标志点节点位于到一个节点的预定距离之内,则该本地标志点节点可能最靠近该节点。在这个例子中,节点可以使用全球信息表来识别到该节点最近的本地标志点节点,并且然后测量到所识别的本地标志点节点的距离。因此,可以使用本地标志点节点,该本地标志点节点可以不在到全球标志点节点的路由路径上但仍旧可用于精确确定该节点的位置信息。
可以为网络中的基本所有节点来生成位置信息。位置信息可以用于多种应用。例如,位置信息可以用于识别用于在网络中路由的节点。在另一个例子中,该位置信息可以用于找到为用户提供想要的内容或业务的一个最近节点。
与常规的标志点聚类技术相比,根据本发明实施例的标志点技术,节点的物理位置可以通过确定到相当小数量的全球和本地标志点节点的距离来精确估计。此外,本地标志点节点提供本地网络特性的精确信息。因此,可以选择基于本地网络特性用于路由的最佳路径。
根据另一个实施例,网络中的给定节点和其它节点的位置信息用于选择到网络中的给定节点最近的节点。网络中的给定节点到其它节点的接近与节点的物理位置有关。如上所述,物理位置可以基于节点之间的距离来估计。
在一个例子中,选择靠近给定节点的一组候选节点。该候选节点可以通过比较给定节点与候选节点的位置信息来选择。在选择了候选节点之后,应用聚类算法到候选节点的位置信息以选择靠近给定节点的候选节点子组。该给定节点可以测量到该候选节点子组的距离以识别到给定节点的一个最近节点。因此,在应用该聚类算法之后,到最小数量的节点的距离可以用于精确地识别一个最近节点同时生成通过测量到节点的距离引起的最小网络业务量。
图1示出了在网络中使用全球标志点节点和本地标志点节点以生成位置信息的一个例子。通过测量到接近节点10和20的全球标志点节点和本地标志点节点的距离,为网络100中的节点10和20生成位置信息。例如,对于节点10,测量到全球标志点节点GL1和GL2的距离。还测量到本地标志点节点LL1和LL2的距离。到一个节点的距离可以使用一种已知的网络公制比如往返时间(RTT)或网络单跳来测量。例如,节点10可以传送一个探测分组到全球标志点节点GL1以及测量探测分组的RTT,以确定到全球标志点节点GL1的距离。例如,探测分组为由节点生成的用来测量一个或多个预定网络公制比如RTT的分组。
生成表示节点10的位置信息的标志点矢量,其包括到全球标志点节点GL1和GL2的距离和到本地标志点节点LL1和LL4的距离。节点10的标志点矢量可以表示为<d(n,GL1),d(n,LL1),d(n,GL2),d(n,LL4)>,其中d为节点之间的距离并且n表示为其生成位置信息的节点。
类似地,可以为节点20生成位置信息。例如,测量到全球标志点节点GL1和GL2的距离。还测量到本地标志点节点LL2和LL3的距离。生成表示节点20的位置信息的标志点矢量,其包括到全球标志点节点GL1和GL2的距离和到本地标志点节点LL2和LL3的距离。节点20的标志点矢量可以表示为<d(n,GL1),d(n,LL2),d(n,GL2),d(n,LL3)>。
仅考虑到全球标志点节点GL1和GL2的距离的位置估计技术可以推断节点10和20在网络100中是最接近的,因为节点10和20具有到全球标志点节点GL1和GL2的相似距离。这些类型的不精确性称为伪聚类。通过说明到本地标志点节点LL1-LL4的距离,最小化伪聚类并且确定节点10和20的位置的更精确估计。
网络100可以包括未示出的许多本地标志点节点和全球标志点节点。选择为本地标志点节点和全球标志点节点的节点数量通常大大少于网络中的节点的总数。此外,网络100中的全球标志点节点的总数通常少于本地标志点节点的数量。网络100中所使用的全球和本地标志点节点的数量可以取决于位置信息的想要精确度。仿真显示需要相当小数量的全球标志点,例如,10,000个节点的网络的15个全球标志点节点,以生成精确的位置信息。网络100中的几乎任何节点都可选择为全球标志点节点或本地标志点节点。例如,网络中预定数量的节点可以随机选择为全球标志点节点和本地标志点节点,由此全球标志点节点的数量少于本地标志点节点的数量。为了最小化网络业务量,本地标志点节点可以在网络100中被策略性地放置,比如在网关路由器附近。例如,在网关路由器附近的节点可以被选择为本地标志点节点。
如上所述,节点10和20测量到位置最接近节点10和20的本地标志点节点的距离。在一个实施例中,如果本地标志点节点在到一个全球节点的路由路径上,则本地标志点节点位置最接近一个节点。例如,节点10传送一个探测分组到全球标志点节点GL1。该探测分组遇到本地标志点节点LL1,因为它在到全球标志点节点GL1的路由路径R1上。本地标志点节点LL1将应答(ACK)消息传回节点10。节点10例如使用探测分组的RTT和ACK消息确定到本地标志点节点LL1的距离。此外,为了最小化网络业务量,探测分组可以例如通过更新分组报头中类似于使用期限(time-to-live)字段的一个字段,来留意(keeptrack of)它遇到的本地标志点节点的数量。如果本地标志点节点接收到探测分组,该探测分组已经遇到预定数量的本地标志点节点,则该本地标志点节点简单地转发该分组而无需传送ACK消息。
在另一个实施例中,本地标志点节点的每一个测量其到全球标志点节点的距离以获得其自己的标志点矢量。这些标志点矢量被存储在网络100的节点中所存储的一个全球信息表中。该全球信息表被询问以识别接近一个节点的本地标志点节点。例如,节点10询问全球信息表以识别本地标志点节点,比如接近节点10的本地标志点节点LL1和LL4。这可以包括识别与节点10具有预定相似性的标志点矢量的本地标志点节点,其中所述预定相似性与该节点和所述标志点节点之间的距离阈值有关。然后,节点10确定到本地标志点节点LL1和LL4的距离。因此,本地标志点节点不必在到一个全球标志点节点的路由路径上而被认为接近于节点10。
网络100中的每个节点可以通过确定到所述全球标志点节点和位置最近本地标志点节点的距离以生成位置信息,比如标志点矢量。每个节点在一个全球信息表中存储其位置信息。因此,该全球信息表可以包括网络中的基本所有节点的标志点矢量。
根据一个实施例,该全球信息表使用一个分布式散列表(DHT)覆盖网络来实现。DHT覆盖网络是一个基础物理网络比如网络100的逻辑表示,其提供在其它类型的功能性中的数据布局、信息检索、以及路由。DHT覆盖网络具有几种想要的属性,比如可量测性、容错性、以及低管理成本。可以用于本发明的实施例的DHT覆盖网络的某些例子包括内容可寻址网络(CAN)、PASTRY、CHORD和为CAN体系版本的高速公路路由CAN(eCAN)。该eCAN覆盖网络还描述在2002年8月29日提交的序列号为10/231,184、题目为“Expressway Routing AmongPeers”的美国专利申请中,其具有与本申请共同的受让人,并且因此结合了其全部内容作为参考。
DHT覆盖网络提供一个散列表摘录,其映射密钥到值。例如,在一个覆盖网络中,数据被表示为一个(密钥,值)对,比如(K1,V1)。使用一个散列函数例如P=h(K1)将K1可确定性地映射到覆盖网络中的点P。散列函数的例子当散列到不同维数的空间时为求校验和或空间填充曲线。密钥值对(K1,V1)于是被存储在覆盖网络中的点P处,即拥有一区域的节点处,其中点P位于所述区域中。同样的散列函数用于检索数据。该散列函数还用于从DHT覆盖网络检索数据。例如,该散列函数用于从K1计算点P。然后,从该点P检索数据。
在一个例子中,全球信息表存储在CAN覆盖网络中,然而可以使用其它类型的DHT覆盖网络。在这个例子中,节点的标志点矢量或标志点矢量的一部分可以用作密钥以识别DHT覆盖网络中的位置,用于存储关于该节点的信息。通过使用该标志点矢量作为密钥,在基础物理网络中关于物理上彼此靠近的节点的信息被彼此靠近地存储在DHT覆盖网络中,结果导致当在网络中识别靠近给定节点的一组节点时生成最小数量的业务量。
图2示出了2维CAN覆盖网络200的一个例子,其为基础物理网络100的一种逻辑表示。图2中示出的节点30-50在图1所示的网络100中并未示出,但是节点30-50也可以在网络100中。CAN覆盖网络使用一个d圆环面上的d维笛卡尔坐标空间来逻辑表示该基础物理网络。图2示出了覆盖网络200中的一个2维
×
笛卡尔坐标空间。示出了区域210-214的坐标。笛卡尔空间被分割成分别由节点10-50所拥有的CAN区域210-214。覆盖网络中的每个DHT节点拥有一个区域。节点30和20为到节点10的邻近节点并且节点40-50和10为到节点20的邻近节点。如果两个节点的区域沿着d-1个维度重叠并且沿着一个维度毗连,那么这两个节点邻近。例如,区域210和214沿着
×[.5,0]毗连。区域210和213不是邻近区域,因为这些区域沿着一个维度不毗连。
节点10-50每个维持一个坐标路由表,该路由表可以包括其每个近邻的覆盖网络中的IP地址和区域坐标。该路由表用于从一个源节点通过该DHT覆盖网络200中的邻近节点路由到一个目的地节点。假定节点20正在从节点30拥有的区域214中的点P检索数据。因为该点P不在区域211或区域211的任何一个邻近区域中,所以用于所述数据的请求通过邻近区域比如节点40所拥有的区域213来路由到拥有区域214的节点30以检索数据,其中点P位于所述区域214。因此,CAN消息包括目的地坐标,比如使用散列函数确定的用于路由的点P的坐标。
全球信息表包括关于网络100中的节点的信息,并且该信息被存储在DHT覆盖网络200的节点中。为了存储关于全球信息表中的节点的信息,该节点的标志点矢量(其包括到网络中的全球标志点节点的距离和到位置最近的本地标志点节点的距离)被用作密钥以识别DHT覆盖网络中的一个位置从而用于存储关于所述节点的信息。通过使用该标志点节点或标志点节点的一部分(比如到全球标志点节点的距离)作为密钥,关于网络中物理上彼此靠近的节点的信息在DHT覆盖网络中彼此靠近地存储。图3示出了一个标志点空间300,包括节点10和20的标志点矢量310和320。所述标志点空间300为用于映射网络100中的节点的标志点矢量的空间逻辑表示。所示的该标志点空间300表示所述标志点矢量到DHT覆盖网络200中的位置的映射,用于将信息存储在全球信息表中。
节点10和20的标志点矢量的全球标志点部分用于识别标志点空间300中的点,该点被映射到DHT覆盖网络100中用于将信息存储在全球信息表中。节点10的全球标志点部分为<d(n,GL1),d(n,GL2)>,其中d为到全球标志点节点的距离并且n为节点10或20。网络100中的每个节点可以使用各自的标志点矢量的全球标志点部分被映射到标志点空间。此外,标志点空间300可以大于二维。维数可以等于网络100中使用的全球标志点节点的数目。节点10和20位于标志点空间300中,其坐标基于它们的标志点矢量。因此,标志点空间300中彼此靠近的节点在物理网络100中是靠近的。
散列函数用于将物理节点位置信息(例如,标志点矢量)从标志点空间300转换到覆盖物理200,这样在所述标志点空间300中靠近的点被映射到DHT覆盖网络200中靠近的点。图4示出了使用散列函数将标志点空间300中用于节点10和20的点转换到覆盖网络200。该散列函数用于确定覆盖网络200中的点10和20,其对应标志点空间300中用于节点10和20的点。节点10和20的信息被存储在拥有一区域的节点,其中点10和20位于所述区域。因此,通过散列一个标志点矢量的全球标志点部分,覆盖网络200中的节点被识别用于将信息存储在全球信息表中,比如完备标志点矢量(complete landmarkvector)和与所述节点相关的其它信息。因此,所述全球信息表被存储在DHT覆盖网络200中的节点之间。使用一个DHT覆盖网络以存储标志点矢量,还描述在Tang等人的序列号为10/666,621标题为“Utilizing Proximity Information in an Overlay Network”的美国专利申请中,该申请具有与本申请共同的受让人,因此结合了其全部内容作为参考。
在一定的情况下,标志点空间的维数可以大于覆盖网络的维数。包括空间填充曲线的散列函数可以用于将点从较大维数空间映射到较小维数空间,其也描述在上面所述的专利申请美国专利申请序列号10/666,621中,其被结合作为参考。
网络100中的节点的位置信息(比如包括到全球标志点节点的距离以及位置最近的本地标志点节点的标志点矢量)可以用于识别一个给定节点的最近节点。例如,参照图1,节点10可以是由用户使用的客户节点。该节点10确定其标志点矢量,该标志点矢量包括到全球标志点节点以及位置最近的本地标志点节点的距离。节点10提交请求以找到一个到DHT覆盖网络100的靠近节点。例如,该节点10散列其标志点矢量的全球部分,比如到全球标志点节点GL1和GL2的距离,以识别DHT覆盖网络200中的点。节点10传送该请求到DHT覆盖网络200中的一个节点,该节点拥有一个区域,其中所识别的点位于该区域中。
DHT覆盖网络100选择最靠近节点10的一组候选节点。例如,假定节点10发送该请求到节点50。该节点50使用节点10的标志点矢量的全球标志点部分来选择最靠近节点10的一组候选节点。例如,节点50比较节点10的标志点矢量的全球标志点部分与存在于节点50中的全球信息表中所存储的节点的标志点矢量的全球标志点部分。这可以包括节点50和到节点50的邻近节点所拥有的区域212中的节点的标志点矢量。
标志点矢量或标志点矢量的全球部分之间的相似性的一种量度是两个标志点矢量之间的角度的余弦。最相似于节点例如节点10的标志点矢量的标志点矢量可以被选择作为一个候选节点。所选择的候选节点的数量可以基于用于找到所述最近节点的想要精确度。
使用所有候选节点的完备标志点矢量和节点10的完备标志点矢量,节点50应用聚类算法来识别最靠近节点10的所述组候选节点的一个子组。聚类算法是用于从基于预定特性的一个初始组值来识别一个子组值的任何算法,所述预定特性比如位置信息之间的相似性。下面通过例子并非限制性地加以描述的聚类算法的四个例子为min_sum(最小和)、max_diff(最大差)、order(顺序)和inner_product(内积)。
min_sum聚类算法假定如果有足够数量的全球的或本地的标志点节点,两个节点n和c测量相对距离,那么很可能是标志点节点之一L,其位于两个节点n和c之间的最短路径上,其中n为给定节点,比如节点10,并且c为靠近节点10确定的所述候选节点初始组中的节点。节点L的一个例子为位于节点10和20之间的最短路径上的全球标志点节点GL1。
对于min_sum,dist(n,L)和dist(c,L)之和应当是最小的。对于节点n和表示为C的候选节点的初始组,min_sum(n,C)形式上使用等式1来定义如下等式(1)mincεC:LεL(n,c)(dist(n,L)+dist(c,L))在等式1中,C为所述组候选节点,c为该组C的一个元素,并且L(n,c)为公共组的全球的或本地的标志点节点,节点n和c被相对测量。使用等式1,来自候选节点C的节点被选择为最靠近节点n的所述顶部候选节点的子组,如果它们具有dist(n,L)+dist(c,L)的最小距离和。类似地,max_diff假设是如果有足够数量的全球的或本地的标志点节点,节点n和c被相对测量,那么存在一种很大的可能性,即存在一个标志点节点L以至于c在从n到L的最短路径上或n在c和L之间的最短路径上。在那种情况中,ABS(dist(n,L)-dist(c,L))可以用于识别最靠近节点n的候选节点的一个子组。函数ABS(x)返回x的绝对值。max_diff(n,C)形式上使用等式2来定义如下
等式(2)maxcεC:LεL(n,c)ABS(dist(n,L)-dist(c,L))对于order,其是聚类算法的另一个例子,假设如果两个节点具有到一组公共节点的相似距离,那么该两个节点很可能彼此靠近。使用该order聚类算法,一个节点测量其到全球标志点节点的RTT并且分类该不断增加的RTT中的全球标志点节点。因此,每个节点具有全球标志点节点的一个相关顺序。具有相同的或相似的顺序的全球标志点节点的节点被视作彼此靠近。然而,此技术不能区分具有相同全球标志点顺序的节点,并且因此易于伪聚类。
对于节点n,c和L,其中L为该组全球的或本地的标志点节点的一个元素,其对于节点n和c的标志点矢量是共同的,表示为LεL(n,c),对于节点n来说标志点矢量中的全球标志点的顺序基于所有节点L(n,c)到节点n的距离被定义为该所有节点L(n,c)分类列表中的全球标志点节点的顺序。全球标志点节点的顺序被类似地定义。因此,order(n,c)在等式3中被定义如下等式(3)min∑LεL(n,c)ABS(order(L)n-order(L)c)聚类算法inner_product假定如果一个标志点节点靠近节点n,那么该标志点节点可以给出网络中的节点n的位置的一个较好表示。例如,节点10的标志点矢量可以被表示为<d(n,GL1),d(n,LL1),d(n,GL2)d(n,LL4)>,其中d为节点之间的距离并且n表示节点10。如果d(n,LL1)短于d(n,LL4),那么当比较节点10的标志点矢量和候选节点的标志点矢量时,d(n,LL1)由inner_product聚类算法给出更大的权值。inner_product(n,c)在等式4中被定义如下等式(4)max∑LεL(n,c)((1.0/(dist(n,L)2))x((1.0/(dist(c,L)2)))上面所描述的标志点聚类算法是可以用于识别最靠近节点n比如图1中所示的节点10的候选节点初始组的一个子组的算法的例子。其它已知的聚类算法,比如k-平均(k-means)、主分量分析、以及隐含语意索引法,可以用于选择所述候选节点的子组。
在识别出所述候选节点的子组之后,所述候选节点的子组,比如可以包括所述子组中的节点的标志点矢量的一列节点子组,被传送到节点10。节点10测量到所述子组中的每个节点的距离并且选择最靠近节点10的节点。通过使用这个技术,想要识别一个最近节点的节点测量到少量标志点节点的距离。此外,本地标志点节点提供本地网络特性的精确信息,其可以用于选择最佳路由路径。另外,在利用了聚类算法之后,一个节点测量到使用聚类算法所识别的少量顶部候选节点的距离。
用于选择到给定节点的最近节点的一个应用是用于识别由网络中的一个节点所提供的想要数据或业务。这参照图5加以示出。图5示出了包括节点501-506的网络500。网络500类似于图1所示的网络100并且可以表示为存储了所述全球信息表的DHT覆盖网络。节点506通过网络500提供内容给用户。例如,节点506提供英语内容。节点503和504可以是将来自节点506的内容转换为德语并且使该内容可用于德语用户的业务节点。该业务节点为提供业务给用户的节点。在这种情况中,该业务正提供来自节点506的德语内容。
节点501例如由想要观看来自节点506的德语内容的用户来使用。节点501连同其标志点矢量一起提交该业务请求给DHT覆盖网络。该标志点矢量为节点501的位置信息并且包括到全球标志点节点和本地标志点节点的距离。提交请求给覆盖网络,例如包括节点501传送请求给节点502。节点502可以是一区域的拥有者,其中节点501的散列标志点矢量位于该区域,并且因此该请求被传送到节点502。节点502搜索全球信息表以识别满足所述请求的一组候选节点。该请求除了包括所述想要类型的业务之外,还可以包括与服务质量(QoS)比如连接两个节点的路径的带宽、节点的当前负荷、以及节点的转发能力相关的其它测量的或确定的特性。在这个例子中,全球信息表,除了包括网络500中的节点的标志点矢量之外,还存储包括节点所提供的业务和QoS特性的信息。对于本领域的技术人员而言,显然所述全球信息表可以增加其它类型的数据,这些类型的数据可以有助于提供用户想要的业务。
节点502选择满足所述请求的一组候选节点。节点502应用聚类算法到所述组候选节点以识别最靠近节点501的节点子组。节点502传送一列所述候选节点子组,比如提供德语内容的节点503和504。节点501测量到节点503和504的每一个节点的距离。节点501还可以测量想要的QoS特性,比如带宽、节点的当前负荷、节点的转发能力。测量可以被同时执行。节点501从最满足其需要的所述候选节点子组选择一个节点,比如节点503。这可以包括所述最近节点或提供最佳服务质量的所述最近节点。
如图1和5所示的网络100和500是示出本发明的原理的例子。对于本领域的技术人员而言,显然本发明的实施例可以在比如好几万个节点的更大网络中实施。而且,为了提高位置信息的精确度,更大数量的全球和本地标志点节点可以用于确定节点的位置信息。
图6示出了使用包括到全球标志点节点和本地标志点节点所测量的距离的位置信息以识别用于路由的一个最近节点的例子。图6示出了图5中所示网络500的一个DHT覆盖网络600的例子。该DHT覆盖网络600示出为一个CAN覆盖网络,比如参照图2加以描述的,该CAN覆盖网络包括区域610-615中的节点501-506,然而可以使用其它类型的DHT覆盖网络。节点501-506的位置信息被存储在所述覆盖网络600的节点501-506中的全球信息表中,比如参照图3和4描述的。位置信息可以包括标志点矢量,该标志点矢量包括到全球标志点节点和本地标志点节点的距离。
节点501传送消息给节点503,用于请求来自节点503的个性化业务,比如德语内容。因为节点503不在到区域610的一个邻近区域中,其中节点501位于该区域601,节点501识别一个邻近区域比如区域611中的一个最近节点从而路由到节点503。为了识别区域611中的一个最近节点,节点503传送请求到区域611中的一个节点。该请求包括位置信息,比如节点501的一个标志点矢量。节点501的路由表可以包括区域611中用于传送该请求的至少一个节点。区域611中接收该请求的节点为区域611中最靠近节点501的一组候选节点搜索其全球信息表,并且应用聚类算法以识别最靠近节点501的候选节点子组。该节点子组被传送到节点501。
节点501确定到每个所述候选节点子组的距离并且选择用于路由的一个最近节点,比如节点502。节点501当识别一个用于路由的节点时可以考虑除了物理位置之外的因素。例如,节点501还可以估计所述组候选节点的QoS特性,该QoS特性可以存储在所述全球信息表中。节点501可以从所述组候选节点中选择具有想要的QoS特性的一个最近节点。假设选择了节点502,节点502将来自节点501的业务请求转发到提供该业务的节点503。
图7示出了根据一个实施例用于生成节点的位置信息的方法的流程图。图7结合图1中示出的网络100和图2中示出的覆盖网络200通过示例并非限制性地加以描述。在步骤701中,节点10确定到网络100中的全球标志点节点的距离。例如,节点10使用RTT或另一种网络公制测量到所述全球标志点节点GL1和GL2的距离。
在步骤702中,节点10确定到最接近节点10的本地标志点节点的距离。这可以包括由测量到所述全球标志点节点GL1和GL2的RTT的探测分组所遇到的本地标志点节点LL1和LL4。在另一个例子中,在到所述节点的预定距离内到所有本地标志点节点的距离使用所述全球信息表来确定。这可以通过比较节点的标志点矢量来确定。具有预定相似性的标志点矢量的节点从所述全球信息表中选择。
步骤701和702可以一起执行。例如,当本地标志点节点位于所述路由路径上时,探测所述全球标志点节点可以使用基本上无消息收发开销来获得到相应本地标志点的距离。例如,该网络中的基本上所有的路由器可以被选择为本地标志点节点并且跟踪路由或另一个相似网络应用程序被用于在到全球标志点节点的路由路径上获得到所述全球和本地标志点节点的距离。在这个例子中,可以不测量到所述路由路径上的每个路由器的距离。例如,可以使用一个使用期限字段,这样仅测量到第一预定数量的路由器的距离,该路由器接收所述探测分组。可替换地,例如测量到第1、2、4、8、16个路由器的距离。因此,在到全球标志点节点的路由路径上,可以测量到多个路由器的距离,该多个路径器的数目小于路由器的总数。
在步骤703中,节点10的位置信息使用到全球标志点节点和本地标志点节点的距离来生成。例如,为节点10生成一个标志点矢量,其包括到全球标志点节点GL1和GL2的距离以及到本地标志点节点LL1和LL4的距离。
在步骤704中,节点10在全球信息表中存储其位置信息,比如其标志点矢量。在一个例子中,这包括散列标志点矢量的全球标志点部分以识别如图2所示的DHT覆盖网络200中的一个位置,用于存储位置信息和关于节点10的可能其它信息,比如在所述全球信息表中所提供的业务、负荷、转发能力等等。
图8示出了根据一个实施例用于识别一个最近节点的方法800的流程图。图8结合图1所示的网络100和图2所示的覆盖网络200通过示例并非限制性地加以描述。在步骤801中,确定节点10的位置信息,比如包括到所述全球标志点节点和位置最近的本地标志点节点的距离的标志点矢量。
在步骤802中,节点10发送请求给所述DHT覆盖网络200,用于识别到节点10的一个最近节点。例如,节点10散列其标志点矢量的所述全球部分,比如到全球标志点节点GL1和GL2的距离,以识别DHT覆盖网络200中的一个点。节点10传送该请求到所述DHT覆盖网络200中拥有一区域的一个节点,其中所识别的点位于该区域。
在步骤803中,DHT覆盖网络100选择最靠近节点10的一组候选节点。例如,假设节点10传送请求给节点50。节点50使用节点10的标志点矢量的全球标志点部分来选择最靠近节点10的一组候选节点。例如,节点50比较节点10的标志点矢量的全球标志点部分与位于节点50中的所述全球信息表中所存储的节点的标志点矢量的所述全球标志点部分。这可以包括节点50和到节点50的邻近节点所拥有的区域212中的节点的标志点矢量。比较所述标志点矢量或所述标志点矢量的全球部分以识别最靠近节点10的一组候选节点。
在步骤804中,节点50应用聚类算法到所述组候选节点以识别最近节点10的所述候选节点子组。例如,节点10的标志点矢量使用例如所述聚类算法min_sum、max_diff、order、和inner_product之一与所述候选节点的标志点矢量相比较。
在步骤805中,节点10从在步骤804处确定的节点50中接收一列候选节点子组并且使用一种网络公制比如RTT或网络单跳来确定到所述候选节点子组中的每个节点的距离。在步骤806中,节点10基于所测量的距离来从所述候选节点子组中选择最近的节点。
当选择一个网络节点时可以考虑除了距离之外的因素。例如,如果节点10试图识别网络100中的正在提供特定数据或业务的一个节点,则可以考虑影响数据传输或业务传送的与QoS相关的因素。例如,为所述组候选节点中的每个节点可以确定带宽、供应数据或业务的节点的当前负荷、以及节点的转发能力。节点10从最满足其需要的候选组中选择一个节点,比如提供最佳QoS的一个最近节点。类似地,如果节点10识别用于路由到例如覆盖网络中的一个区域的最近节点,则当从所述候选节点组中选择一个节点时,可以考虑与网络路由相关的带宽、转发能力和其它因素。
图9示出了根据本发明的一个实施例可以由所述基础物理网络比如图1和5所示的网络100和500使用的对等(P2P)通信模型。P2P网络通常被用作DHT覆盖网络的基础物理网络,比如分别由图2和图6所示的CAN DHT覆盖网络200和600。P2P网络900包括多个节点910a...910n,在P2P系统中其起对等作用。节点910a...910n在它们自己之间并且与其它网络节点通过网络920来交换信息。节点910a...910n还可以确定哪些节点910a...910n执行P2P系统中的对等的其它功能,比如对象搜索和检索、对象布局、存储和维护全球信息表等等。对象可以包括文件、URL等等。节点910a...910n可以为具有网络接口的计算机系统(例如,个人数字助理、膝上型计算机、工作站、服务器、以及其它类似设备)。节点910a...910n可以进一步可操作地来执行一个或多个软件应用(未示出),该软件应用包括以P2P方式共享信息(例如,数据、应用等等)的能力以及作为DHT覆盖网络中的节点工作的能力。
网络920可操作地来提供节点910a...910n之间的通信通道。网络920可以实现为一个局域网、广域网或其组合。网络920可以实现有线协议比如以太网、令牌环等等,无线协议比如蜂窝数字分组数据、Mobitex、IEEE802.11b、蓝牙、无线应用协议、全球移动系统等等或其组合。
可以存储在节点910a...910n中的一些信息在节点910a中示出。节点910a存储路由表931、全球信息表932以及可能测量的QoS特性。
图10示出了计算机系统1000的示例性框图,该计算机系统1000可以用作如图9所示的P2P网络900中的一个节点。该计算机系统1000包括一个或多个处理器,比如处理器1002,提供用于执行软件的执行平台。
来自处理器1002的命令和数据通过通信总线1004来传送。该计算机系统1000还包括主存储器1006,比如其中软件可以在运行时间期间执行的随机存取存储器(RAM),以及辅助存储器1008。该辅助存储器1008包括例如硬盘驱动器1010和/或可移动存储驱动器1012,其表示软盘驱动器、磁带驱动器、光盘驱动器等等、或其中可以存储软件副本的非易失存储器。该辅助存储器1008还可以包括ROM(只读存储器)、EPROM(可擦可编程ROM)、EEPROM(电可擦除可编程ROM)。除了软件之外,在主存储器1006和/或辅助存储器1008中还可以存储路由表、全球信息表和测量的QoS特性。该可移动存储驱动器1012以已知的方式从可移动存储单元1014中读取和/或写入可移动存储单元1014。
用户与具有一个或多个输入设备108比如键盘、鼠标、触针等等的计算机系统1000相接口。显示适配器1022与通信总线1004和显示器1020相接口并且从处理器1002接收显示数据并且转换该显示数据为显示器1020的显示命令。提供网络接口1030用于通过如图9所示的网络920与其它节点进行通信。此外,提供传感器1032用于测量节点的QoS特性,其可以包括转发能力、负荷、带宽等等。
方法700和800的一个或多个步骤可以实现为嵌入计算机可读介质比如存储器1006和/或1008上并且在计算机系统1000上执行的软件。所述步骤通过计算机程序来实现,所述计算机程序可以以活动和不活动的多种形式存在。例如,它们可以作为一个(或多个)软件程序存在,该软件程序包含以源代码、目标代码、可执行代码形式或用于执行某些步骤的其它格式的程序指令。上述中的任何一个可以在计算机可读介质上实现,其包括存储设备和以压缩形式或未压缩形式的信号。
合适的计算机可读存储设备的例子包括常规的计算机系统RAM(随机存取存储器)、ROM(只读存储器)、EPROM(可擦可编程ROM)、EEPROM(电可擦除可编程ROM)以及磁盘或光盘或磁带。计算机可读信号的例子(不管该信号是否使用载波调制)是作为计算机程序的宿主的计算机系统或运行计算机程序的计算机系统可以被配置来存取的信号,包括通过因特网或其它网络下载的信号。上述的具体例子包括在一个CD ROM上或通过因特网下载来分配程序。在某种意义上,因特网自身,作为抽象实体,为一个计算机可读介质。通常对于计算机网络同样适用。因此,应当理解下面所列出的那些功能可以由能够执行上面所述功能的任何电子设备来执行。
可以由软件执行的所述步骤的一些例子可以包括用于确定距离以生成位置信息的步骤。例如,软件指示处理器1002使用其它硬件用于生成用来测量到全球标志点节点的RTT以确定距离的探测分组。在另一个例子中,该软件可以生成到所述全球信息表的请求,用于识别预定附近内的本地标志点节点和测量到那些本地标志点节点的距离。该软件包括用于实现DHT覆盖网络和用于通过散列一个标志点矢量来存储信息到DHT覆盖网络中的全球信息表的指令。此外,用于识别一个最近节点的方法800的一些或全部步骤还可以使用计算机系统1000中的软件来执行。
对于本领域的技术人员而言,很显然这里所描述的其它步骤可以由软件来执行。例如,如果计算机系统1000被选择作为本地标志点节点,则计算机系统1000通过生成传送回节点的一个ACK消息可以响应所接收的探测分组。因此,传送探测分组的节点能够确定到位置最近的标志点节点的距离。
虽然本发明已经参照其典型实施例加以描述,但是本领域的技术人员在不背离真实的精神实质和范围的情况下将能够对所描述的实施例做出各种修改。例如,对于本领域的技术人员而言,这里描述的存储位置消息的好处可以应用到许多应用,比如信息存储、负荷平衡、阻塞控制、满足服务质量(QoS)保证、利用存储能力和转发能力中的多相性、等等。这里使用的术语和描述仅通过示例的方式来阐述并且并非用于限制。特别地,尽管本方法已经通过例子加以描述,然而本发明的步骤可以以不同于所示例的顺序或同时来执行。本领域的技术人员将认识到这些和其它变化可能在下面的权利要求和其等价物所定义的精神实质和范围内。
权利要求
1.一种用于在网络100中识别靠近第一节点10的至少一个节点的方法,该方法包括基于候选节点和第一节点10的位置信息,从多个节点选择一组候选节点;应用聚类算法到所述候选节点和所述第一节点10的位置信息;以及基于应用所述聚类算法的结果,识别最靠近所述第一节点10的所述组候选节点的子组。
2.根据权利要求1的方法,其中选择一组候选节点包括比较所述多个节点的位置信息与所述第一节点的位置信息,以从最靠近所述第一节点10的所述多个节点中选择所述组候选节点。
3.根据权利要求2的方法,还包括在一个分布式散列表覆盖网络200中的节点50处,接收所述第一节点10的位置信息,该分布式散列表覆盖网络200是包括所述第一节点10和所述多个节点的网络100的一种逻辑表示;以及在所述分布式散列表覆盖网络200中的节点50处,存储第一节点10的所述位置信息。
4.根据权利要求3的方法,还包括第一节点10散列第一节点10的位置信息以识别所述分布式散列表覆盖网络200中的位置以存储第一节点10的位置信息,其中分布式散列表覆盖网络200中的节点50大约在所识别的位置处。
5.根据权利要求3的方法,还包括在分布式散列表覆盖网络200中的节点50处,接收所述多个节点的位置信息;以及在分布式散列表覆盖网络200中的节点50处,存储所述多个节点的所接收的位置信息。
6.根据权利要求5的方法,还包括在分布式散列表覆盖网络200中的节点50处,从所存储的位置信息检索所述多个节点和所述第一节点10的位置信息;以及比较所检索的位置信息以从所述多个节点选择位置最接近第一节点10的所述组候选节点。
7.根据权利要求1的方法,还包括确定从所述第一节点10到所述候选节点子组的每一个的距离;以及基于所确定的距离,从所述候选节点子组选择到所述第一节点10的一个最近节点。
8.根据权利要求1的方法,其中所述聚类算法为可操作来识别第一节点10和候选节点的位置信息之间的相似性。
9.一种计算机系统1000,可操作来连接一个对等网络900以及可操作来作为分布式散列表覆盖网络中的分布式散列表节点工作,该分布式散列表覆盖网络为所述对等网络900的一种逻辑表示,其中所述计算机系统1000包括存储器1006/1008,可操作来存储所述对等网络900中的多个节点的位置信息,所述多个节点在网络900中物理上靠近;以及处理器1002,可操作来比较所述多个节点的位置信息与第一节点的位置信息,以从所述对等网络900中物理上靠近所述第一节点的多个节点中识别一组节点。
10.根据权利要求9的计算机系统,其中处理器1002可操作来应用一种聚类算法到所述组节点的位置信息以识别最靠近所述第一节点的节点子组。
全文摘要
网络100包括多个节点10-50。基于网络100中的候选节点以及第一节点10的位置信息,从所述多个节点10-50选择一组候选节点。一种聚类算法被应用到所述候选节点和所述第一节点10的位置信息。并且基于应用该聚类算法的结果,识别出最靠近所述第一节点10的所述组候选节点的子组。
文档编号H04L12/56GK1939003SQ200580009708
公开日2007年3月28日 申请日期2005年1月28日 优先权日2004年1月30日
发明者Z·徐, S·巴内杰, S·-J·李 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1